From 167b1183ef50f4ed7380abf53c9cdbeb46b0efaa Mon Sep 17 00:00:00 2001 From: GinjaNinja32 Date: Sun, 26 Jul 2015 05:47:04 +0100 Subject: [PATCH 1/5] Fixes 'Fixes sealed rig removal exploit' --- code/modules/mob/living/carbon/human/inventory.dm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index c7940cd7ab4..29cad675bf3 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -772,11 +772,15 @@ It can still be worn/put on as normal. if(slot_to_process) if(strip_item) //Stripping an item from the mob var/obj/item/W = strip_item - target.unEquip(W) + if(W.canremove) + target.remove_from_mob(W) W.add_fingerprint(source) if(slot_to_process == slot_l_store) //pockets! Needs to process the other one too. Snowflake code, wooo! It's not like anyone will rewrite this anytime soon. If I'm wrong then... CONGRATULATIONS! ;) if(target.r_store) - target.u_equip(target.r_store) //At this stage l_store is already processed by the code above, we only need to process r_store. + W = target.r_store + if(W.canremove) + target.remove_from_mob(W) //At this stage l_store is already processed by the code above, we only need to process r_store. + W.add_fingerprint(source) else if(item && target.has_organ_for_slot(slot_to_process)) //Placing an item on the mob if(item.mob_can_equip(target, slot_to_process, 0)) From 07cf41604c63ec1c225e774200d551eadd4a75a4 Mon Sep 17 00:00:00 2001 From: PsiOmega Date: Sun, 26 Jul 2015 11:28:16 +0200 Subject: [PATCH 2/5] Removes minting. Fixes #10274. --- code/game/jobs/access.dm | 6 ------ code/game/jobs/job/civilian.dm | 10 +++++----- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/code/game/jobs/access.dm b/code/game/jobs/access.dm index 7f2ec98d120..21f6297f31c 100644 --- a/code/game/jobs/access.dm +++ b/code/game/jobs/access.dm @@ -50,8 +50,6 @@ /var/const/access_mining = 48 /var/const/access_mining_office = 49 //not in use /var/const/access_mailsorting = 50 -/var/const/access_mint = 51 -/var/const/access_mint_vault = 52 /var/const/access_heads_vault = 53 /var/const/access_mining_station = 54 /var/const/access_xenobiology = 55 @@ -354,10 +352,6 @@ return "Mining Office" if(access_mailsorting) return "Cargo Office" - if(access_mint) - return "Mint" - if(access_mint_vault) - return "Mint Vault" if(access_heads_vault) return "Main Vault" if(access_mining_station) diff --git a/code/game/jobs/job/civilian.dm b/code/game/jobs/job/civilian.dm index 64209f675b3..8497d7472ca 100644 --- a/code/game/jobs/job/civilian.dm +++ b/code/game/jobs/job/civilian.dm @@ -114,8 +114,8 @@ spawn_positions = 1 supervisors = "the head of personnel" selection_color = "#dddddd" - access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mint, access_mining, access_mining_station) - minimal_access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mint, access_mining, access_mining_station) + access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station) + minimal_access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station) equip(var/mob/living/carbon/human/H) @@ -144,7 +144,7 @@ spawn_positions = 2 supervisors = "the quartermaster and the head of personnel" selection_color = "#dddddd" - access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mint, access_mining, access_mining_station) + access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station) minimal_access = list(access_maint_tunnels, access_cargo, access_cargo_bot, access_mailsorting) @@ -172,8 +172,8 @@ spawn_positions = 3 supervisors = "the quartermaster and the head of personnel" selection_color = "#dddddd" - access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mint, access_mining, access_mining_station) - minimal_access = list(access_mining, access_mint, access_mining_station, access_mailsorting) + access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station) + minimal_access = list(access_mining, access_mining_station, access_mailsorting) alt_titles = list("Drill Technician","Prospector") equip(var/mob/living/carbon/human/H) From a5ca80656df11f3ccdb5693603a2aefbbaeacaf4 Mon Sep 17 00:00:00 2001 From: SparklySheep Date: Sun, 26 Jul 2015 10:13:33 -0500 Subject: [PATCH 3/5] Chops out "Security Cadet" from assistant Alt Titles. Will remove the other "intern" alt titles if requested but this one in particular seemed to be pretty disliked in this thread: http://baystation12.net/forums/threads/discussion-suggestion-alt-titles.237/ --- code/game/jobs/job/assistant.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/jobs/job/assistant.dm b/code/game/jobs/job/assistant.dm index 32118034127..ea31738545d 100644 --- a/code/game/jobs/job/assistant.dm +++ b/code/game/jobs/job/assistant.dm @@ -9,7 +9,7 @@ selection_color = "#dddddd" access = list() //See /datum/job/assistant/get_access() minimal_access = list() //See /datum/job/assistant/get_access() - alt_titles = list("Technical Assistant","Medical Intern","Research Assistant","Security Cadet","Visitor") + alt_titles = list("Technical Assistant","Medical Intern","Research Assistant","Visitor") /datum/job/assistant/equip(var/mob/living/carbon/human/H) if(!H) return 0 From ade491b32600a4cb19ca2a4b7fd3a9668b2f8309 Mon Sep 17 00:00:00 2001 From: PsiOmegaDelta Date: Mon, 27 Jul 2015 09:53:35 +0200 Subject: [PATCH 4/5] Changelog update. --- html/changelog.html | 7 +++++++ html/changelogs/.all_changelog.yml | 5 +++++ html/changelogs/Kelenius-ofBorgsAndShakers.yml | 6 ------ 3 files changed, 12 insertions(+), 6 deletions(-) delete mode 100644 html/changelogs/Kelenius-ofBorgsAndShakers.yml diff --git a/html/changelog.html b/html/changelog.html index b1fb843f989..d6b531d013b 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -56,6 +56,13 @@ -->
+

27 July 2015

+

Kelenius updated:

+
    +
  • Borg shaker now works similarly to hypospray. It generates reagents that can be poured into glasses.
  • +
  • Therefore, they can no longer duplicate rare reagents such as phoron.
  • +
+

14 July 2015

HarpyEagle updated:

    diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index b30d3cebf5b..c2fe49f1110 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -1975,3 +1975,8 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. PsiOmegaDelta: - tweak: Ninjas can no longer teleport unto turfs that contain solid objects. - tweak: Wizards can no longer etheral jaunt unto turfs that contain solid objects. +2015-07-27: + Kelenius: + - tweak: Borg shaker now works similarly to hypospray. It generates reagents that + can be poured into glasses. + - bugfix: Therefore, they can no longer duplicate rare reagents such as phoron. diff --git a/html/changelogs/Kelenius-ofBorgsAndShakers.yml b/html/changelogs/Kelenius-ofBorgsAndShakers.yml deleted file mode 100644 index 5f338749868..00000000000 --- a/html/changelogs/Kelenius-ofBorgsAndShakers.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: Kelenius - -delete-after: True -changes: - - tweak: "Borg shaker now works similarly to hypospray. It generates reagents that can be poured into glasses." - - bugfix: "Therefore, they can no longer duplicate rare reagents such as phoron." From 0838de3ba2400d506a28e69e31daf14e0e2be5f3 Mon Sep 17 00:00:00 2001 From: PsiOmegaDelta Date: Mon, 27 Jul 2015 10:03:31 +0200 Subject: [PATCH 5/5] Compilation fixes. --- code/game/machinery/bots/mulebot.dm | 2 +- .../mob/living/carbon/human/inventory.dm | 439 +----------------- 2 files changed, 2 insertions(+), 439 deletions(-) diff --git a/code/game/machinery/bots/mulebot.dm b/code/game/machinery/bots/mulebot.dm index 2f6166905a1..fd2b11c3b1d 100644 --- a/code/game/machinery/bots/mulebot.dm +++ b/code/game/machinery/bots/mulebot.dm @@ -59,7 +59,7 @@ ..() wires = new(src) botcard = new(src) - botcard.access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mint, access_mining, access_mining_station) + botcard.access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station) cell = new(src) cell.charge = 2000 cell.maxcharge = 2000 diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index 66a630a06ca..2fb446e1acc 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -338,444 +338,7 @@ This saves us from having to call add_fingerprint() any time something is put in return 0 return 1 -/obj/effect/equip_e/process() - return - -/obj/effect/equip_e/proc/done() - return - -/obj/effect/equip_e/New() - if (!ticker) - del(src) - spawn(100) - del(src) - ..() - return - -/obj/effect/equip_e/human/process() - if (item) - item.add_fingerprint(source) - else - switch(place) - if("mask") - if (!( target.wear_mask )) - del(src) - if("l_hand") - if (!( target.l_hand )) - del(src) - if("r_hand") - if (!( target.r_hand )) - del(src) - if("suit") - if (!( target.wear_suit )) - del(src) - if("uniform") - if (!( target.w_uniform )) - del(src) - if("back") - if (!( target.back )) - del(src) - if("syringe") - return - if("pill") - return - if("fuel") - return - if("drink") - return - if("dnainjector") - return - if("handcuff") - if (!( target.handcuffed )) - del(src) - if("id") - if ((!( target.wear_id ) || !( target.w_uniform ))) - del(src) - if("splints") - var/count = 0 - for(var/organ in list("l_leg","r_leg","l_arm","r_arm")) - var/datum/organ/external/o = target.organs_by_name[organ] - if(o.status & ORGAN_SPLINTED) - count = 1 - break - if(count == 0) - del(src) - return - if("sensor") - if (! target.w_uniform ) - del(src) - if("internal") - if ((!( (istype(target.wear_mask, /obj/item/clothing/mask) && (istype(target.back, /obj/item/weapon/tank) || istype(target.belt, /obj/item/weapon/tank) || istype(target.s_store, /obj/item/weapon/tank)) && !( target.internal )) ) && !( target.internal ))) - del(src) - - var/list/L = list( "syringe", "pill", "drink", "dnainjector", "fuel", "sensor", "internal", "tie") - if ((item && !( L.Find(place) ))) - if(isrobot(source) && place != "handcuff") - del(src) - for(var/mob/O in viewers(target, null)) - O.show_message("\red [source] is trying to put \a [item] on [target]", 1) - else - - var/target_part = null - var/obj/item/target_item = null - var/message = null - - switch(place) - if("mask") - target_part = "head" - target_item = target.wear_mask - if("l_hand") - target_part = "left hand" - target_item = target.l_hand - if("r_hand") - target_part = "right hand" - target_item = target.r_hand - if("gloves") - target_part = "hands" - target_item = target.gloves - if("eyes") - target_part = "eyes" - target_item = target.glasses - if("l_ear") - target_part = "left ear" - target_item = target.l_ear - if("r_ear") - target_part = "right ear" - target_item = target.r_ear - if("head") - target_part = "head" - target_item = target.head - if("shoes") - target_part = "feet" - target_item = target.shoes - if("belt") - target_part = "waist" - target_item = target.belt - if("suit") - target_part = "body" - target_item = target.wear_suit - if("back") - target_part = "back" - target_item = target.back - if("s_store") - target_part = "suit" - target_item = target.s_store - if("id") - target_part = "uniform" - target_item = target.wear_id - - if("syringe") - message = "\red [source] is trying to inject [target]!" - if("pill") - message = "\red [source] is trying to force [target] to swallow [item]!" - if("drink") - message = "\red [source] is trying to force [target] to swallow a gulp of [item]!" - if("dnainjector") - message = "\red [source] is trying to inject [target] with the [item]!" - if("uniform") - target.attack_log += text("\[[time_stamp()]\] Has had their uniform ([target.w_uniform]) removed by [source.name] ([source.ckey])") - source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) uniform ([target.w_uniform])") - if(target.w_uniform && !target.w_uniform.canremove) - message = "\red [source] fails to take off \a [target.w_uniform] from [target]'s body!" - return - else - message = "\red [source] is trying to take off \a [target.w_uniform] from [target]'s body!" - for(var/obj/item/I in list(target.l_store, target.r_store)) - if(I.on_found(source)) - return - if("handcuff") - target.attack_log += text("\[[time_stamp()]\] Was unhandcuffed by [source.name] ([source.ckey])") - source.attack_log += text("\[[time_stamp()]\] Attempted to unhandcuff [target.name]'s ([target.ckey])") - message = "\red [source] is trying to unhandcuff [target]!" - if("legcuff") - target.attack_log += text("\[[time_stamp()]\] Was unlegcuffed by [source.name] ([source.ckey])") - source.attack_log += text("\[[time_stamp()]\] Attempted to unlegcuff [target.name]'s ([target.ckey])") - message = "\red [source] is trying to unlegcuff [target]!" - if("tie") - var/obj/item/clothing/under/suit = target.w_uniform - if(suit.accessories.len) - var/obj/item/clothing/accessory/A = suit.accessories[1] - target.attack_log += "\[[time_stamp()]\] Has had their accessory ([A]) removed by [source.name] ([source.ckey])" - source.attack_log += "\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) accessory ([A])" - if(istype(A, /obj/item/clothing/accessory/holobadge) || istype(A, /obj/item/clothing/accessory/medal)) - for(var/mob/M in viewers(target, null)) - M.show_message("\red [source] tears off \the [A] from [target]'s [suit]!" , 1) - done() - return - else - message = "\red [source] is trying to take off \a [A] from [target]'s [suit]!" - if("pockets") - target.attack_log += text("\[[time_stamp()]\] Has had their pockets emptied by [source.name] ([source.ckey])") - source.attack_log += text("\[[time_stamp()]\] Attempted to empty [target.name]'s ([target.ckey]) pockets") - for(var/obj/item/I in list(target.l_store, target.r_store)) - if(I.on_found(source)) - return - message = "\red [source] is trying to empty [target]'s pockets." - if("CPR") - if (!target.cpr_time) - del(src) - target.cpr_time = 0 - message = "\red [source] is trying perform CPR on [target]!" - if("internal") - target.attack_log += text("\[[time_stamp()]\] Has had their internals toggled by [source.name] ([source.ckey])") - source.attack_log += text("\[[time_stamp()]\] Attempted to toggle [target.name]'s ([target.ckey]) internals") - if (target.internal) - message = "\red [source] is trying to remove [target]'s internals" - else - message = "\red [source] is trying to set on [target]'s internals." - if("splints") - message = text("\red [] is trying to remove []'s splints!", source, target) - if("sensor") - target.attack_log += text("\[[time_stamp()]\] Has had their sensors toggled by [source.name] ([source.ckey])") - source.attack_log += text("\[[time_stamp()]\] Attempted to toggle [target.name]'s ([target.ckey]) sensors") - var/obj/item/clothing/under/suit = target.w_uniform - if (suit.has_sensor >= 2) - source << "The controls are locked." - return - message = "\red [source] is trying to set [target]'s suit sensors!" - - if(target_item) - target.attack_log += text("\[[time_stamp()]\] Had their [target_item] removed by [source.name] ([source.ckey])") - source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) [target_item]") - - if(target_item.canremove) - message = "[source] is trying to take off \a [target_item] from [target]'s [target_part]!" - else - source.visible_message("[source] fails to take off \a [target_item] from [target]'s [target_part]!") - return - - source.visible_message(message) - - spawn( HUMAN_STRIP_DELAY ) - done() - return - return - -/* -This proc equips stuff (or does something else) when removing stuff manually from the character window when you click and drag. -It works in conjuction with the process() above. -This proc works for humans only. Aliens stripping humans and the like will all use this proc. Stripping monkeys or somesuch will use their version of this proc. -The first if statement for "mask" and such refers to items that are already equipped and un-equipping them. -The else statement is for equipping stuff to empty slots. -!canremove refers to variable of /obj/item/clothing which either allows or disallows that item to be removed. -It can still be worn/put on as normal. -*/ -/obj/effect/equip_e/human/done() //TODO: And rewrite this :< ~Carn - target.cpr_time = 1 - if(isanimal(source)) return //animals cannot strip people - if(!source || !target) return //Target or source no longer exist - if(source.loc != s_loc) return //source has moved - if(target.loc != t_loc) return //target has moved - if(LinkBlocked(s_loc,t_loc)) return //Use a proxi! - if(item && source.get_active_hand() != item) return //Swapped hands / removed item from the active one - if ((source.restrained() || source.stat)) return //Source restrained or unconscious / dead - - var/slot_to_process - var/strip_item //this will tell us which item we will be stripping - if any. - - switch(place) //here we go again... - if("mask") - slot_to_process = slot_wear_mask - if (target.wear_mask && target.wear_mask.canremove) - strip_item = target.wear_mask - if("gloves") - slot_to_process = slot_gloves - if (target.gloves && target.gloves.canremove) - strip_item = target.gloves - if("eyes") - slot_to_process = slot_glasses - if (target.glasses) - strip_item = target.glasses - if("belt") - slot_to_process = slot_belt - if (target.belt) - strip_item = target.belt - if("s_store") - slot_to_process = slot_s_store - if (target.s_store) - strip_item = target.s_store - if("head") - slot_to_process = slot_head - if (target.head && target.head.canremove) - strip_item = target.head - if("l_ear") - slot_to_process = slot_l_ear - if (target.l_ear) - strip_item = target.l_ear - if("r_ear") - slot_to_process = slot_r_ear - if (target.r_ear) - strip_item = target.r_ear - if("shoes") - slot_to_process = slot_shoes - if (target.shoes && target.shoes.canremove) - strip_item = target.shoes - if("l_hand") - if (istype(target, /obj/item/clothing/suit/straight_jacket)) - del(src) - slot_to_process = slot_l_hand - if (target.l_hand) - strip_item = target.l_hand - if("r_hand") - if (istype(target, /obj/item/clothing/suit/straight_jacket)) - del(src) - slot_to_process = slot_r_hand - if (target.r_hand) - strip_item = target.r_hand - if("uniform") - slot_to_process = slot_w_uniform - if(target.w_uniform && target.w_uniform.canremove) - strip_item = target.w_uniform - if("suit") - slot_to_process = slot_wear_suit - if (target.wear_suit && target.wear_suit.canremove) - strip_item = target.wear_suit - if("tie") - var/obj/item/clothing/under/suit = target.w_uniform - //var/obj/item/clothing/accessory/tie = suit.hastie - /*if(tie) - if (istype(tie,/obj/item/clothing/accessory/storage)) - var/obj/item/clothing/accessory/storage/W = tie - if (W.hold) - W.hold.close(usr) - usr.put_in_hands(tie) - suit.hastie = null*/ - if(suit && suit.accessories.len) - var/obj/item/clothing/accessory/A = suit.accessories[1] - A.on_removed(usr) - suit.accessories -= A - target.update_inv_w_uniform() - if("id") - slot_to_process = slot_wear_id - if (target.wear_id) - strip_item = target.wear_id - if("back") - slot_to_process = slot_back - if (target.back) - strip_item = target.back - if("handcuff") - slot_to_process = slot_handcuffed - if (target.handcuffed) - strip_item = target.handcuffed - else if (source != target && ishuman(source)) - //check that we are still grabbing them - var/grabbing = 0 - for (var/obj/item/weapon/grab/G in target.grabbed_by) - if (G.loc == source && G.state >= GRAB_AGGRESSIVE) - grabbing = 1 - break - if (!grabbing) - slot_to_process = null - source << "\red Your grasp was broken before you could restrain [target]!" - - if("legcuff") - slot_to_process = slot_legcuffed - if (target.legcuffed) - strip_item = target.legcuffed - if("splints") - var/can_reach_splints = 1 - if(target.wear_suit && istype(target.wear_suit,/obj/item/clothing/suit/space)) - var/obj/item/clothing/suit/space/suit = target.wear_suit - if(suit.supporting_limbs && suit.supporting_limbs.len) - source << "You cannot remove the splints - [target]'s [suit] is supporting some of the breaks." - can_reach_splints = 0 - - if(can_reach_splints) - for(var/organ in list("l_leg","r_leg","l_arm","r_arm")) - var/datum/organ/external/o = target.get_organ(organ) - if (o && o.status & ORGAN_SPLINTED) - var/obj/item/W = new /obj/item/stack/medical/splint(amount=1) - o.status &= ~ORGAN_SPLINTED - if (W) - W.loc = target.loc - W.layer = initial(W.layer) - W.add_fingerprint(source) - if("CPR") - if ((target.health > config.health_threshold_dead && target.health < config.health_threshold_crit)) - var/suff = min(target.getOxyLoss(), 5) //Pre-merge level, less healing, more prevention of dieing. - target.adjustOxyLoss(-suff) - target.updatehealth() - for(var/mob/O in viewers(source, null)) - O.show_message("\red [source] performs CPR on [target]!", 1) - target << "\blue You feel a breath of fresh air enter your lungs. It feels good." - source << "\red Repeat at least every 7 seconds." - if("dnainjector") - var/obj/item/weapon/dnainjector/S = item - if(S) - S.add_fingerprint(source) - if (!( istype(S, /obj/item/weapon/dnainjector) )) - S.inuse = 0 - del(src) - S.inject(target, source) - if (S.s_time >= world.time + 30) - S.inuse = 0 - del(src) - S.s_time = world.time - for(var/mob/O in viewers(source, null)) - O.show_message("\red [source] injects [target] with the DNA Injector!", 1) - S.inuse = 0 - if("pockets") - if (!item || (target.l_store && target.r_store)) // Only empty pockets when hand is empty or both pockets are full - slot_to_process = slot_l_store - strip_item = target.l_store //We'll do both - else if (target.l_store) - slot_to_process = slot_r_store - else - slot_to_process = slot_l_store - if("sensor") - var/obj/item/clothing/under/suit = target.w_uniform - if (suit) - if(suit.has_sensor >= 2) - source << "The controls are locked." - else - suit.set_sensors(source) - if("internal") - if (target.internal) - target.internal.add_fingerprint(source) - target.internal = null - if (target.internals) - target.internals.icon_state = "internal0" - else - if (!( istype(target.wear_mask, /obj/item/clothing/mask) )) - return - else - if (istype(target.back, /obj/item/weapon/tank)) - target.internal = target.back - else if (istype(target.s_store, /obj/item/weapon/tank)) - target.internal = target.s_store - else if (istype(target.belt, /obj/item/weapon/tank)) - target.internal = target.belt - if (target.internal) - for(var/mob/M in viewers(target, 1)) - M.show_message("[target] is now running on internals.", 1) - target.internal.add_fingerprint(source) - if (target.internals) - target.internals.icon_state = "internal1" - if(slot_to_process) - if(strip_item) //Stripping an item from the mob - var/obj/item/W = strip_item - if(W.canremove) - target.remove_from_mob(W) - W.add_fingerprint(source) - if(slot_to_process == slot_l_store) //pockets! Needs to process the other one too. Snowflake code, wooo! It's not like anyone will rewrite this anytime soon. If I'm wrong then... CONGRATULATIONS! ;) - if(target.r_store) - W = target.r_store - if(W.canremove) - target.remove_from_mob(W) //At this stage l_store is already processed by the code above, we only need to process r_store. - W.add_fingerprint(source) - else - if(item && target.has_organ_for_slot(slot_to_process)) //Placing an item on the mob - if(item.mob_can_equip(target, slot_to_process, 0)) - source.u_equip(item) - target.equip_to_slot_if_possible(item, slot_to_process, 0, 1, 1) - item.dropped(source) - source.update_icons() - target.update_icons() - - if(source && target) - if(source.machine == target) - target.show_inv(source) - del(src)/mob/living/carbon/human/get_equipped_item(var/slot) +/mob/living/carbon/human/get_equipped_item(var/slot) switch(slot) if(slot_back) return back if(slot_legcuffed) return legcuffed