From 3c168305ed8fc99697b7ef814c335d73e7fb50b6 Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Thu, 2 Aug 2012 14:33:00 +1000 Subject: [PATCH] reworked equip_if_possible to be a bit better --- code/game/algorithm.dm | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/code/game/algorithm.dm b/code/game/algorithm.dm index 3789a2227fc..f4551129cf4 100644 --- a/code/game/algorithm.dm +++ b/code/game/algorithm.dm @@ -205,16 +205,9 @@ proc/countJob(rank) update_clothing() return - /mob/living/carbon/human/proc/equip_if_possible(obj/item/W, slot, del_on_fail = 1) // since byond doesn't seem to have pointers, this seems like the best way to do this :/ //warning: icky code var/equipped = 0 - if((slot == l_store || slot == r_store || slot == belt || slot == wear_id) && !src.w_uniform) - del(W) - return - if(slot == s_store && !src.wear_suit) - del(W) - return switch(slot) if(slot_back) if(!src.back) @@ -237,11 +230,11 @@ proc/countJob(rank) src.r_hand = W equipped = 1 if(slot_belt) - if(!src.belt) + if(!src.belt && src.w_uniform) src.belt = W equipped = 1 if(slot_wear_id) - if(!src.wear_id) + if(!src.wear_id && src.w_uniform) src.wear_id = W equipped = 1 if(slot_ears) @@ -276,15 +269,15 @@ proc/countJob(rank) src.w_uniform = W equipped = 1 if(slot_l_store) - if(!src.l_store) + if(!src.l_store && src.w_uniform) src.l_store = W equipped = 1 if(slot_r_store) - if(!src.r_store) + if(!src.r_store && src.w_uniform) src.r_store = W equipped = 1 if(slot_s_store) - if(!src.s_store) + if(!src.s_store && src.wear_suit) src.s_store = W equipped = 1 if(slot_in_backpack) @@ -296,6 +289,8 @@ proc/countJob(rank) if(equipped) W.layer = 20 + if(src.back && W.loc != src.back) + W.loc = src else if (del_on_fail) del(W)