diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm index d78c8d19335..07d497514be 100644 --- a/code/__DEFINES/flags.dm +++ b/code/__DEFINES/flags.dm @@ -81,6 +81,8 @@ #define CRITICAL_ATOM_2 (1<<18) /// Use this flag for items that can block randomly #define RANDOM_BLOCKER_2 (1<<19) +/// This flag allows for wearing of a belt item, even if you're not wearing a jumpsuit +#define ALLOW_BELT_NO_JUMPSUIT_2 (1<<20) //Reagent flags #define REAGENT_NOREACT 1 diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 6a42ab0295e..3f6d592dbc6 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -259,6 +259,7 @@ item_state = "katana" flags = CONDUCT slot_flags = SLOT_FLAG_BELT | SLOT_FLAG_BACK + flags_2 = ALLOW_BELT_NO_JUMPSUIT_2 //Look, you can strap it to your back. You can strap it to your waist too. force = 5 throwforce = 5 w_class = WEIGHT_CLASS_NORMAL @@ -441,6 +442,7 @@ item_state = "inflatable" icon = 'icons/obj/clothing/belts.dmi' slot_flags = SLOT_FLAG_BELT + flags_2 = ALLOW_BELT_NO_JUMPSUIT_2 /* * Fake meteor diff --git a/code/game/objects/items/weapons/defib.dm b/code/game/objects/items/weapons/defib.dm index 718b564602a..fb7772b6389 100644 --- a/code/game/objects/items/weapons/defib.dm +++ b/code/game/objects/items/weapons/defib.dm @@ -209,6 +209,7 @@ sprite_sheets = null //Because Vox had the belt defibrillator sprites in back.dm w_class = WEIGHT_CLASS_NORMAL slot_flags = SLOT_FLAG_BELT + flags_2 = ALLOW_BELT_NO_JUMPSUIT_2 origin_tech = "biotech=5" /obj/item/defibrillator/compact/loaded/Initialize(mapload) diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm index 5855d7d130c..f1f4f87634e 100644 --- a/code/game/objects/items/weapons/storage/belt.dm +++ b/code/game/objects/items/weapons/storage/belt.dm @@ -7,6 +7,7 @@ lefthand_file = 'icons/mob/inhands/equipment/belt_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/belt_righthand.dmi' slot_flags = SLOT_FLAG_BELT + flags_2 = ALLOW_BELT_NO_JUMPSUIT_2 | BLOCKS_LIGHT_2 attack_verb = list("whipped", "lashed", "disciplined") max_integrity = 300 equip_sound = 'sound/items/equip/toolbelt_equip.ogg' diff --git a/code/game/objects/items/weapons/stunbaton.dm b/code/game/objects/items/weapons/stunbaton.dm index 8a233f98ec8..23742229ad1 100644 --- a/code/game/objects/items/weapons/stunbaton.dm +++ b/code/game/objects/items/weapons/stunbaton.dm @@ -294,6 +294,7 @@ w_class = WEIGHT_CLASS_BULKY hitcost = 2000 slot_flags = SLOT_FLAG_BACK | SLOT_FLAG_BELT + flags_2 = ALLOW_BELT_NO_JUMPSUIT_2 //Look, you can strap it to your back. You can strap it to your waist too. var/obj/item/assembly/igniter/sparkler = null /obj/item/melee/baton/cattleprod/Initialize(mapload) diff --git a/code/game/objects/items/weapons/tanks/tank_types.dm b/code/game/objects/items/weapons/tanks/tank_types.dm index fd17afe2019..b368af7a528 100644 --- a/code/game/objects/items/weapons/tanks/tank_types.dm +++ b/code/game/objects/items/weapons/tanks/tank_types.dm @@ -104,6 +104,7 @@ icon_state = "plasmaman_tank_belt" item_state = "plasmaman_tank_belt" slot_flags = SLOT_FLAG_BELT + flags_2 = ALLOW_BELT_NO_JUMPSUIT_2 force = 5 volume = 35 w_class = WEIGHT_CLASS_SMALL @@ -131,6 +132,7 @@ icon_state = "emergency" flags = CONDUCT slot_flags = SLOT_FLAG_BELT + flags_2 = ALLOW_BELT_NO_JUMPSUIT_2 w_class = WEIGHT_CLASS_SMALL force = 4 distribute_pressure = TANK_DEFAULT_RELEASE_PRESSURE diff --git a/code/game/objects/items/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm index ab1a66fcc40..6667e4ad4da 100644 --- a/code/game/objects/items/weapons/weaponry.dm +++ b/code/game/objects/items/weapons/weaponry.dm @@ -83,6 +83,7 @@ item_state = "katana" flags = CONDUCT slot_flags = SLOT_FLAG_BELT | SLOT_FLAG_BACK + flags_2 = ALLOW_BELT_NO_JUMPSUIT_2 //Look, you can strap it to your back. You can strap it to your waist too. force = 40 throwforce = 10 sharp = TRUE diff --git a/code/modules/martial_arts/judo.dm b/code/modules/martial_arts/judo.dm index 91d42c6f789..30ff28801c1 100644 --- a/code/modules/martial_arts/judo.dm +++ b/code/modules/martial_arts/judo.dm @@ -18,6 +18,7 @@ icon_state = "judobelt" item_state = "judo" slot_flags = SLOT_FLAG_BELT + flags_2 = ALLOW_BELT_NO_JUMPSUIT_2 w_class = WEIGHT_CLASS_BULKY var/datum/martial_art/judo/style diff --git a/code/modules/mob/living/carbon/human/human_inventory.dm b/code/modules/mob/living/carbon/human/human_inventory.dm index e8f4cad7be5..8e482ef37df 100644 --- a/code/modules/mob/living/carbon/human/human_inventory.dm +++ b/code/modules/mob/living/carbon/human/human_inventory.dm @@ -87,7 +87,7 @@ unEquip(l_store, 1) if(wear_id) unEquip(wear_id) - if(belt) + if(belt && !(belt.flags_2 & ALLOW_BELT_NO_JUMPSUIT_2)) unEquip(belt) w_uniform = null update_inv_w_uniform() diff --git a/code/modules/mob/living/carbon/human/human_update_icons.dm b/code/modules/mob/living/carbon/human/human_update_icons.dm index 98898bae117..1cedbfa0fff 100644 --- a/code/modules/mob/living/carbon/human/human_update_icons.dm +++ b/code/modules/mob/living/carbon/human/human_update_icons.dm @@ -614,7 +614,8 @@ GLOBAL_LIST_EMPTY(damage_icon_parts) standing.alpha = w_uniform.alpha standing.color = w_uniform.color overlays_standing[UNIFORM_LAYER] = standing - else if(!dna.species.nojumpsuit) + //If anyone asks, /mob/living/carbon/human/unEquip in human_inventory.dm already handles unequip code + /* else if(!dna.species.nojumpsuit) var/list/uniform_slots = list() var/obj/item/organ/external/L = get_organ(BODY_ZONE_L_LEG) if(!(L?.status & ORGAN_ROBOT)) @@ -639,7 +640,7 @@ GLOBAL_LIST_EMPTY(damage_icon_parts) thing.forceMove(drop_location()) // thing.dropped(src) // thing.layer = initial(thing.layer) - thing.plane = initial(thing.plane) + thing.plane = initial(thing.plane) */ apply_overlay(UNIFORM_LAYER) update_hands_layer() diff --git a/code/modules/mob/living/carbon/human/species/_species.dm b/code/modules/mob/living/carbon/human/species/_species.dm index 4a4a36d0d39..b4a36695805 100644 --- a/code/modules/mob/living/carbon/human/species/_species.dm +++ b/code/modules/mob/living/carbon/human/species/_species.dm @@ -757,7 +757,7 @@ return FALSE var/obj/item/organ/external/O = H.get_organ(BODY_ZONE_CHEST) - if(!H.w_uniform && !nojumpsuit && !(O?.status & ORGAN_ROBOT)) + if(!H.w_uniform && !nojumpsuit && !(O?.status & ORGAN_ROBOT) && !(I.flags_2 & ALLOW_BELT_NO_JUMPSUIT_2)) if(!disable_warning) to_chat(H, "You need a jumpsuit before you can attach this [I.name].") return FALSE