diff --git a/code/modules/mob/living/carbon/alien/humanoid/inventory.dm b/code/modules/mob/living/carbon/alien/humanoid/inventory.dm index 1705f690b2f..12d6b04a87c 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/inventory.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/inventory.dm @@ -21,36 +21,34 @@ /mob/living/carbon/alien/humanoid/db_click(text, t1) var/obj/item/W = get_active_hand() - if(W && !istype(W)) - return - - switch(text) - if("o_clothing") - if(wear_suit) - if(!W) wear_suit.attack_alien(src) - return - return - if("head") - if(head) - if(!W) head.attack_alien(src) - return - return - if("storage1") - if(l_store) - if(!W) l_store.attack_alien(src) - return - if(W.w_class > 3) - return - u_equip(W) - l_store = W - update_inv_pockets() - if("storage2") - if(r_store) - if(!W) r_store.attack_alien(src) - return - if(W.w_class > 3) - return - u_equip(W) - r_store = W - update_inv_pockets() - return \ No newline at end of file + if(W) + if(!istype(W)) return + switch(text) +// if("o_clothing") +// if("head") + if("storage1") + if(l_store) + return + if(W.w_class > 3) + return + u_equip(W) + l_store = W + update_inv_pockets() + if("storage2") + if(r_store) + return + if(W.w_class > 3) + return + u_equip(W) + r_store = W + update_inv_pockets() + else + switch(text) + if("o_clothing") + if(wear_suit) wear_suit.attack_alien(src) + if("head") + if(head) head.attack_alien(src) + if("storage1") + if(l_store) l_store.attack_alien(src) + if("storage2") + if(r_store) r_store.attack_alien(src) \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index 07fb47832fa..9dbd39f7b0e 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -1013,173 +1013,190 @@ It can still be worn/put on as normal. /mob/living/carbon/human/db_click(text, t1) var/obj/item/W = get_active_hand() - if(W && !istype(W)) return + if(W) + if(!istype(W)) return + switch(text) + if("mask") + if(wear_mask) + return + if( !(W.slot_flags & SLOT_MASK) ) + return + u_equip(W) + wear_mask = W + if(wear_mask.flags & BLOCKHAIR) + update_hair(0) //rebuild hair + W.equipped(src, text) + update_inv_wear_mask() + if("back") + if(back) + return + if( !(W.slot_flags & SLOT_BACK) ) + return + if(istype(W,/obj/item/weapon/twohanded) && W:wielded) //TODO + usr << "Unwield the [initial(W.name)] first!" + return + u_equip(W) + back = W + W.equipped(src, text) + update_inv_back() + if("o_clothing") + if(wear_suit) + return + if( !(W.slot_flags & SLOT_OCLOTHING) ) + return + if( !(W.flags & ONESIZEFITSALL) && (FAT in mutations) ) + src << "\red You're too fat to wear the [W.name]!" + return + u_equip(W) + wear_suit = W + W.equipped(src, text) + update_inv_wear_suit() + if("gloves") + if(gloves) + return + if( !(W.slot_flags & SLOT_GLOVES) ) + return + u_equip(W) + gloves = W + W.equipped(src, text) + update_inv_gloves() + if("shoes") + if(shoes) + return + if( !( W.slot_flags & SLOT_FEET) ) + return + u_equip(W) + shoes = W + W.equipped(src, text) + update_inv_shoes() + if("belt") + if(belt) + return + if(!w_uniform) + return + if( !(W.slot_flags & SLOT_BELT) ) + return + u_equip(W) + belt = W + W.equipped(src, text) + update_inv_belt() + if("eyes") + if(glasses) + return + if( !(W.slot_flags & SLOT_EYES) ) + return + u_equip(W) + glasses = W + W.equipped(src, text) + update_inv_glasses() + if("head") + if(head) + return + if( !(W.slot_flags & SLOT_HEAD) ) + return + u_equip(W) + head = W + if(head.flags & BLOCKHAIR) + update_hair(0) //rebuild hair + if(istype(W,/obj/item/clothing/head/kitty)) + W.update_icon(src) + W.equipped(src, text) + update_inv_head() + if("ears") + if(ears) + return + if( !(W.slot_flags & SLOT_EARS) ) + return + u_equip(W) + ears = W + W.equipped(src, text) + update_inv_ears() + if("i_clothing") + if(w_uniform) + return + if( !(W.slot_flags & SLOT_ICLOTHING) ) + return + if( !(W.flags & ONESIZEFITSALL) && (FAT in src.mutations) ) + src << "\red You're too fat to wear the [W.name]!" + return + u_equip(W) + w_uniform = W + W.equipped(src, text) + update_inv_w_uniform() + if("id") + if(wear_id) + return + if(!w_uniform) + return + if( !(W.slot_flags & SLOT_ID) ) + return + u_equip(W) + wear_id = W + W.equipped(src, text) + update_inv_wear_id() + if("storage1") + if(l_store) + return + if(!w_uniform) + return + if(W.slot_flags & SLOT_DENYPOCKET) + return + if( W.w_class <= 2 || (W.slot_flags & SLOT_POCKET) ) + u_equip(W) + l_store = W + update_inv_pockets() + if("storage2") + if(r_store) + return + if(!w_uniform) + return + if(W.slot_flags & SLOT_DENYPOCKET) + return + if( W.w_class <= 2 || (W.slot_flags & SLOT_POCKET) ) + u_equip(W) + r_store = W + update_inv_pockets() + if("suit storage") + if(s_store) + return + if(!wear_suit) + return + if(!wear_suit.allowed) + usr << "You somehow have a suit with no defined allowed items for suit storage, stop that." + return + if( istype(W, /obj/item/device/pda) || istype(W, /obj/item/weapon/pen) || is_type_in_list(W, wear_suit.allowed) ) + u_equip(W) + s_store = W + update_inv_s_store() + else + switch(text) + if("mask") + if(wear_mask) wear_mask.attack_hand(src) + if("back") + if(back) back.attack_hand(src) + if("o_clothing") + if(wear_suit) wear_suit.attack_hand(src) + if("gloves") + if(gloves) gloves.attack_hand(src) + if("shoes") + if(shoes) shoes.attack_hand(src) + if("belt") + if(belt) belt.attack_hand(src) + if("eyes") + if(glasses) glasses.attack_hand(src) + if("head") + if(head) head.attack_hand(src) + if("ears") + if(ears) ears.attack_hand(src) + if("i_clothing") + if(w_uniform) w_uniform.attack_hand(src) + if("id") + if(wear_id) wear_id.attack_hand(src) + if("storage1") + if(l_store) l_store.attack_hand(src) + if("storage2") + if(r_store) r_store.attack_hand(src) + if("suit storage") + if(s_store) s_store.attack_hand(src) + return - switch(text) - if("mask") - if(wear_mask) - if(!W) wear_mask.attack_hand(src) - return - if( !(W.slot_flags & SLOT_MASK) ) - return - u_equip(W) - wear_mask = W - if(wear_mask.flags & BLOCKHAIR) - update_hair(0) //rebuild hair - W.equipped(src, text) - update_inv_wear_mask() - if("back") - if(back) - if(!W) back.attack_hand(src) - return - if( !(W.slot_flags & SLOT_BACK) ) - return - if(istype(W,/obj/item/weapon/twohanded) && W:wielded) //TODO - usr << "Unwield the [initial(W.name)] first!" - return - u_equip(W) - back = W - W.equipped(src, text) - update_inv_back() - if("o_clothing") - if(wear_suit) - if(!W) wear_suit.attack_hand(src) - return - if( !(W.slot_flags & SLOT_OCLOTHING) ) - return - if( !(W.flags & ONESIZEFITSALL) && (FAT in mutations) ) - src << "\red You're too fat to wear the [W.name]!" - return - u_equip(W) - wear_suit = W - W.equipped(src, text) - update_inv_wear_suit() - if("gloves") - if(gloves) - if(!W) gloves.attack_hand(src) - return - if( !(W.slot_flags & SLOT_GLOVES) ) - return - u_equip(W) - gloves = W - W.equipped(src, text) - update_inv_gloves() - if("shoes") - if(shoes) - if(!W) shoes.attack_hand(src) - return - if( !( W.slot_flags & SLOT_FEET) ) - return - u_equip(W) - shoes = W - W.equipped(src, text) - update_inv_shoes() - if("belt") - if(belt) - if(!W) belt.attack_hand(src) - return - if(!w_uniform) - return - if( !(W.slot_flags & SLOT_BELT) ) - return - u_equip(W) - belt = W - W.equipped(src, text) - update_inv_belt() - if("eyes") - if(glasses) - if(!W) glasses.attack_hand(src) - return - if( !(W.slot_flags & SLOT_EYES) ) - return - u_equip(W) - glasses = W - W.equipped(src, text) - update_inv_glasses() - if("head") - if(head) - if(!W) head.attack_hand(src) - return - if( !(W.slot_flags & SLOT_HEAD) ) - return - u_equip(W) - head = W - if(head.flags & BLOCKHAIR) - update_hair(0) //rebuild hair - if(istype(W,/obj/item/clothing/head/kitty)) - W.update_icon(src) - W.equipped(src, text) - update_inv_head() - if("ears") - if(ears) - if(!W) ears.attack_hand(src) - return - if( !(W.slot_flags & SLOT_EARS) ) - return - u_equip(W) - ears = W - W.equipped(src, text) - update_inv_ears() - if("i_clothing") - if(w_uniform) - if(!W) w_uniform.attack_hand(src) - return - if( !(W.slot_flags & SLOT_ICLOTHING) ) - return - if( !(W.flags & ONESIZEFITSALL) && (FAT in src.mutations) ) - src << "\red You're too fat to wear the [W.name]!" - return - u_equip(W) - w_uniform = W - W.equipped(src, text) - update_inv_w_uniform() - if("id") - if(wear_id) - if(!W) wear_id.attack_hand(src) - return - if(!w_uniform) - return - if( !(W.slot_flags & SLOT_ID) ) - return - u_equip(W) - wear_id = W - W.equipped(src, text) - update_inv_wear_id() - if("storage1") - if(l_store) - if(!W) l_store.attack_hand(src) - return - if(!w_uniform) - return - if(W.slot_flags & SLOT_DENYPOCKET) - return - if( W.w_class <= 2 || (W.slot_flags & SLOT_POCKET) ) - u_equip(W) - l_store = W - update_inv_pockets() - if("storage2") - if(r_store) - if(!W) r_store.attack_hand(src) - return - if(!w_uniform) - return - if(W.slot_flags & SLOT_DENYPOCKET) - return - if( W.w_class <= 2 || (W.slot_flags & SLOT_POCKET) ) - u_equip(W) - r_store = W - update_inv_pockets() - if("suit storage") - if(s_store) - if(!W) s_store.attack_hand(src) - return - if(!wear_suit) - return - if(!wear_suit.allowed) - usr << "You somehow have a suit with no defined allowed items for suit storage, stop that." - return - if( istype(W, /obj/item/device/pda) || istype(W, /obj/item/weapon/pen) || is_type_in_list(W, wear_suit.allowed) ) - u_equip(W) - s_store = W - update_inv_s_store() - return \ No newline at end of file diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index a533952313f..844e34cb6c9 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -109,29 +109,30 @@ //Used by monkeys, *chimpers* //TODO: eliminate this convoluted proc it's incredibly shitty. ~Carn /mob/proc/db_click(text, t1) var/obj/item/W = get_active_hand() - if(W && !istype(W)) return - switch(text) - if("mask") - if(wear_mask) - return - if( !(W.slot_flags & SLOT_MASK) ) - return - u_equip(W) - wear_mask = W - W.equipped(src, text) - update_inv_wear_mask() - if("back") - if(back) - return - if( !(W.slot_flags & SLOT_BACK) ) - return - if( istype(W,/obj/item/weapon/twohanded) && W:wielded ) //TODO: Carn - usr << "Unwield the [initial(W.name)] first!" - return - u_equip(W) - back = W - W.equipped(src, text) - update_inv_back() + if(W) + if(!istype(W)) return + switch(text) + if("mask") + if(wear_mask) + return + if( !(W.slot_flags & SLOT_MASK) ) + return + u_equip(W) + wear_mask = W + W.equipped(src, text) + update_inv_wear_mask() + if("back") + if(back) + return + if( !(W.slot_flags & SLOT_BACK) ) + return + if( istype(W,/obj/item/weapon/twohanded) && W:wielded ) //TODO: Carn + usr << "Unwield the [initial(W.name)] first!" + return + u_equip(W) + back = W + W.equipped(src, text) + update_inv_back() return /mob/proc/reset_view(atom/A)