diff --git a/code/__defines/items_clothing.dm b/code/__defines/items_clothing.dm
index bfc8969dc05..b822c4badce 100644
--- a/code/__defines/items_clothing.dm
+++ b/code/__defines/items_clothing.dm
@@ -29,22 +29,18 @@
#define ON_BORDER 0x8 // Item has priority to check when entering or leaving.
#define NOBLOODY 0x10 // Used for items if they don't want to get a blood overlay.
#define NODELAY 0x20 // 1 second attack-by delay skipped (Can be used once every 0.2s). Most objects have a 1s attack-by delay, which doesn't require a flag.
+#define OPENCONTAINER 0x40 // Is an open container for chemistry purposes.
+#define PHORONGUARD 0x80 // Does not get contaminated by phoron.
+#define NOREACT 0x100 // Reagents don't react inside this container.
#define PROXMOVE 0x200 // Does this object require proximity checking in Enter()?
-//Use these flags to indicate if an item obscures the specified slots from view, whereas body_parts_covered seems to be used to indicate what body parts the item protects.
-#define MASKCOVERSMOUTH 0x100 // On other items, these are just for mask/head.
-#define HEADCOVERSMOUTH 0x100
-
-#define OPENCONTAINER 0x800 // Is an open container for chemistry purposes.
-#define PHORONGUARD 0x2000 // Does not get contaminated by phoron.
-#define NOREACT 0x4000 // Reagents don't react inside this container.
-
//Flags for items (equipment)
#define THICKMATERIAL 0x1 // Prevents syringes, parapens and hyposprays if equiped to slot_suit or slot_head.
#define STOPPRESSUREDAMAGE 0x2 // Counts towards pressure protection. Note that like temperature protection, body_parts_covered is considered here as well.
#define AIRTIGHT 0x4 // Functions with internals.
#define NOSLIP 0x8 // Prevents from slipping on wet floors, in space, etc.
#define BLOCK_GAS_SMOKE_EFFECT 0x10 // Blocks the effect that chemical clouds would have on a mob -- glasses, mask and helmets ONLY! (NOTE: flag shared with ONESIZEFITSALL)
+#define FLEXIBLEMATERIAL 0x20 // At the moment, masks with this flag will not prevent eating even if they are covering your face.
// Flags for pass_flags.
#define PASSTABLE 0x1
diff --git a/code/game/gamemodes/cult/cult_items.dm b/code/game/gamemodes/cult/cult_items.dm
index 749a959fdfd..70e2219440a 100644
--- a/code/game/gamemodes/cult/cult_items.dm
+++ b/code/game/gamemodes/cult/cult_items.dm
@@ -49,7 +49,6 @@
icon_state = "magus"
desc = "A helm worn by the followers of Nar-Sie."
flags_inv = HIDEFACE | BLOCKHAIR
- flags = HEADCOVERSMOUTH
body_parts_covered = HEAD|FACE|EYES
/obj/item/clothing/head/culthood/alt
diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm
index e51b6a28525..138f3fd06f3 100644
--- a/code/modules/clothing/head/helmet.dm
+++ b/code/modules/clothing/head/helmet.dm
@@ -49,7 +49,6 @@
name = "gladiator helmet"
desc = "Ave, Imperator, morituri te salutant."
icon_state = "gladiator"
- flags = HEADCOVERSMOUTH
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|BLOCKHAIR
body_parts_covered = HEAD|FACE
siemens_coefficient = 1
diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm
index e18da419955..47740ff55e5 100644
--- a/code/modules/clothing/head/misc.dm
+++ b/code/modules/clothing/head/misc.dm
@@ -83,7 +83,6 @@
desc = "A large, featureless white orb mean to be worn on your head. How do you even see out of this thing?"
icon_state = "cueball"
item_state = "cueball"
- flags = HEADCOVERSMOUTH
flags_inv = BLOCKHAIR
body_parts_covered = HEAD|FACE|EYES
@@ -100,7 +99,6 @@
desc = "A helmet made out of a box."
icon_state = "cardborg_h"
item_state = "cardborg_h"
- flags = HEADCOVERSMOUTH
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE
body_parts_covered = HEAD|FACE|EYES
@@ -108,7 +106,6 @@
name = "justice hat"
desc = "fight for what's righteous!"
icon_state = "justicered"
- flags = HEADCOVERSMOUTH
flags_inv = BLOCKHAIR
body_parts_covered = HEAD|EYES
diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm
index 9eba8c74364..42e830c4e48 100644
--- a/code/modules/clothing/head/misc_special.dm
+++ b/code/modules/clothing/head/misc_special.dm
@@ -19,7 +19,6 @@
slot_l_hand_str = "welding",
slot_r_hand_str = "welding",
)
- flags = HEADCOVERSMOUTH
matter = list(DEFAULT_WALL_MATERIAL = 3000, "glass" = 1000)
var/up = 0
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
@@ -44,16 +43,14 @@
if(usr.canmove && !usr.stat && !usr.restrained())
if(src.up)
src.up = !src.up
- src.flags |= (HEADCOVERSMOUTH)
- flags_inv |= (HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE)
body_parts_covered |= (EYES|FACE)
+ flags_inv |= (HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE)
icon_state = base_state
usr << "You flip the [src] down to protect your eyes."
else
src.up = !src.up
- src.flags &= ~(HEADCOVERSMOUTH)
- flags_inv &= ~(HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE)
body_parts_covered &= ~(EYES|FACE)
+ flags_inv &= ~(HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE)
icon_state = "[base_state]up"
usr << "You push the [src] up out of your face."
update_clothing_icon() //so our mob-overlays
@@ -125,7 +122,6 @@
name = "carved pumpkin"
desc = "A jack o' lantern! Believed to ward off evil spirits."
icon_state = "hardhat0_pumpkin"//Could stand to be renamed
- flags = HEADCOVERSMOUTH
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|BLOCKHAIR
body_parts_covered = HEAD|FACE|EYES
brightness_on = 2
@@ -156,5 +152,4 @@
desc = "You can hear the distant sounds of rhythmic electronica."
icon_state = "richard"
body_parts_covered = HEAD|FACE
- flags = HEADCOVERSMOUTH
flags_inv = BLOCKHAIR
diff --git a/code/modules/clothing/masks/breath.dm b/code/modules/clothing/masks/breath.dm
index 6d38d3f79fc..78bd0f21638 100644
--- a/code/modules/clothing/masks/breath.dm
+++ b/code/modules/clothing/masks/breath.dm
@@ -3,9 +3,8 @@
name = "breath mask"
icon_state = "breath"
item_state = "breath"
- flags = MASKCOVERSMOUTH
- item_flags = AIRTIGHT
- body_parts_covered = 0
+ item_flags = AIRTIGHT|FLEXIBLEMATERIAL
+ body_parts_covered = FACE
w_class = 2
gas_transfer_coefficient = 0.10
permeability_coefficient = 0.50
@@ -21,18 +20,16 @@
if(!src.hanging)
src.hanging = !src.hanging
gas_transfer_coefficient = 1 //gas is now escaping to the turf and vice versa
- flags &= ~(MASKCOVERSMOUTH)
item_flags &= ~(AIRTIGHT)
- body_parts_covered = 0
+ body_parts_covered = ~(FACE)
icon_state = "breathdown"
user << "Your mask is now hanging on your neck."
else
src.hanging = !src.hanging
gas_transfer_coefficient = initial(gas_transfer_coefficient)
- flags |= MASKCOVERSMOUTH
item_flags |= AIRTIGHT
- body_parts_covered = initial(body_parts_covered)
+ body_parts_covered |= FACE
icon_state = "breath"
user << "You pull the mask up to cover your face."
update_clothing_icon()
@@ -52,4 +49,4 @@
name = "medical mask"
icon_state = "medical"
item_state = "medical"
- permeability_coefficient = 0.01
\ No newline at end of file
+ permeability_coefficient = 0.01
diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm
index 4ceceb590dc..1e9b70377d3 100644
--- a/code/modules/clothing/masks/gasmask.dm
+++ b/code/modules/clothing/masks/gasmask.dm
@@ -2,7 +2,6 @@
name = "gas mask"
desc = "A face-covering mask that can be connected to an air supply. Filters harmful gases from the air."
icon_state = "gas_alt"
- flags = MASKCOVERSMOUTH
item_flags = BLOCK_GAS_SMOKE_EFFECT | AIRTIGHT
flags_inv = HIDEEARS|HIDEEYES|HIDEFACE
body_parts_covered = FACE|EYES
@@ -35,7 +34,7 @@
icon_state = "plaguedoctor"
item_state = "gas_mask"
armor = list(melee = 0, bullet = 0, laser = 2,energy = 2, bomb = 0, bio = 90, rad = 0)
- body_parts_covered = HEAD|FACE
+ body_parts_covered = HEAD|FACE|EYES
/obj/item/clothing/mask/gas/swat
name = "\improper SWAT mask"
@@ -102,3 +101,4 @@
name = "owl mask"
desc = "Twoooo!"
icon_state = "owl"
+ body_parts_covered = HEAD|FACE|EYES
diff --git a/code/modules/clothing/masks/miscellaneous.dm b/code/modules/clothing/masks/miscellaneous.dm
index 9ca38f1fc0a..2ab911f850d 100644
--- a/code/modules/clothing/masks/miscellaneous.dm
+++ b/code/modules/clothing/masks/miscellaneous.dm
@@ -3,8 +3,7 @@
desc = "To stop that awful noise."
icon_state = "muzzle"
item_state = "muzzle"
- flags = MASKCOVERSMOUTH
- body_parts_covered = 0
+ body_parts_covered = FACE
w_class = 2
gas_transfer_coefficient = 0.90
voicechange = 1
@@ -26,8 +25,8 @@
icon_state = "sterile"
item_state = "sterile"
w_class = 2
- flags = MASKCOVERSMOUTH
- body_parts_covered = 0
+ body_parts_covered = FACE
+ item_flags = FLEXIBLEMATERIAL
gas_transfer_coefficient = 0.90
permeability_coefficient = 0.01
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 0)
@@ -47,13 +46,14 @@
body_parts_covered = 0
//scarves (fit in in mask slot)
-
+//None of these actually have on-mob sprites...
/obj/item/clothing/mask/bluescarf
name = "blue neck scarf"
desc = "A blue neck scarf."
icon_state = "blueneckscarf"
item_state = "blueneckscarf"
- flags = MASKCOVERSMOUTH
+ body_parts_covered = FACE
+ item_flags = FLEXIBLEMATERIAL
w_class = 2
gas_transfer_coefficient = 0.90
@@ -62,7 +62,8 @@
desc = "A red and white checkered neck scarf."
icon_state = "redwhite_scarf"
item_state = "redwhite_scarf"
- flags = MASKCOVERSMOUTH
+ body_parts_covered = FACE
+ item_flags = FLEXIBLEMATERIAL
w_class = 2
gas_transfer_coefficient = 0.90
@@ -71,7 +72,8 @@
desc = "A green neck scarf."
icon_state = "green_scarf"
item_state = "green_scarf"
- flags = MASKCOVERSMOUTH
+ body_parts_covered = FACE
+ item_flags = FLEXIBLEMATERIAL
w_class = 2
gas_transfer_coefficient = 0.90
@@ -80,7 +82,8 @@
desc = "A stealthy, dark scarf."
icon_state = "ninja_scarf"
item_state = "ninja_scarf"
- flags = MASKCOVERSMOUTH
+ body_parts_covered = FACE
+ item_flags = FLEXIBLEMATERIAL
w_class = 2
gas_transfer_coefficient = 0.90
siemens_coefficient = 0
diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm
index 5c70616c1bf..b79639dbdce 100644
--- a/code/modules/clothing/spacesuits/miscellaneous.dm
+++ b/code/modules/clothing/spacesuits/miscellaneous.dm
@@ -37,7 +37,6 @@
slot_r_hand_str = "syndicate-helm-black-red",
)
armor = list(melee = 65, bullet = 55, laser = 35,energy = 20, bomb = 30, bio = 100, rad = 60)
- flags = HEADCOVERSMOUTH
item_flags = STOPPRESSUREDAMAGE | THICKMATERIAL
flags_inv = BLOCKHAIR
siemens_coefficient = 0.6
diff --git a/code/modules/clothing/spacesuits/rig/rig_pieces.dm b/code/modules/clothing/spacesuits/rig/rig_pieces.dm
index d7f8b3f38f9..0a6b029f15a 100644
--- a/code/modules/clothing/spacesuits/rig/rig_pieces.dm
+++ b/code/modules/clothing/spacesuits/rig/rig_pieces.dm
@@ -4,7 +4,6 @@
/obj/item/clothing/head/helmet/space/rig
name = "helmet"
- flags = HEADCOVERSMOUTH
item_flags = THICKMATERIAL
flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|BLOCKHAIR
body_parts_covered = HEAD|FACE|EYES
diff --git a/code/modules/clothing/spacesuits/spacesuits.dm b/code/modules/clothing/spacesuits/spacesuits.dm
index 262015d4a1d..3f6525fca8d 100644
--- a/code/modules/clothing/spacesuits/spacesuits.dm
+++ b/code/modules/clothing/spacesuits/spacesuits.dm
@@ -6,7 +6,6 @@
name = "Space helmet"
icon_state = "space"
desc = "A special helmet designed for work in a hazardous, low-pressure environment."
- flags = HEADCOVERSMOUTH
item_flags = STOPPRESSUREDAMAGE | THICKMATERIAL | AIRTIGHT
flags_inv = BLOCKHAIR
item_state_slots = list(
diff --git a/code/modules/clothing/suits/bio.dm b/code/modules/clothing/suits/bio.dm
index 06fcd56bed9..415f8a6da6d 100644
--- a/code/modules/clothing/suits/bio.dm
+++ b/code/modules/clothing/suits/bio.dm
@@ -8,7 +8,6 @@
)
desc = "A hood that protects the head and face from biological comtaminants."
permeability_coefficient = 0.01
- flags = HEADCOVERSMOUTH
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20)
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|BLOCKHAIR
body_parts_covered = HEAD|FACE|EYES
diff --git a/code/modules/clothing/suits/utility.dm b/code/modules/clothing/suits/utility.dm
index 859b7d57a9d..d7b4e87bb0f 100644
--- a/code/modules/clothing/suits/utility.dm
+++ b/code/modules/clothing/suits/utility.dm
@@ -47,7 +47,6 @@
name = "bomb hood"
desc = "Use in case of bomb."
icon_state = "bombsuit"
- flags = HEADCOVERSMOUTH
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 100, bio = 0, rad = 0)
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|BLOCKHAIR
body_parts_covered = HEAD|FACE|EYES
@@ -86,7 +85,6 @@
name = "Radiation Hood"
icon_state = "rad"
desc = "A hood with radiation protective properties. Label: Made with lead, do not eat insulation"
- flags = HEADCOVERSMOUTH
flags_inv = BLOCKHAIR
body_parts_covered = HEAD|FACE|EYES
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 100)
diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm
index 8224d3e518d..d9535b106c4 100644
--- a/code/modules/mob/living/carbon/human/human_attackhand.dm
+++ b/code/modules/mob/living/carbon/human/human_attackhand.dm
@@ -60,10 +60,10 @@
if(!check_has_mouth())
H << "They don't have a mouth, you cannot perform CPR!"
return
- if((H.head && (H.head.flags & HEADCOVERSMOUTH)) || (H.wear_mask && (H.wear_mask.flags & MASKCOVERSMOUTH)))
+ if((H.head && (H.head.body_parts_covered & FACE)) || (H.wear_mask && (H.wear_mask.body_parts_covered & FACE)))
H << "Remove your mask!"
return 0
- if((head && (head.flags & HEADCOVERSMOUTH)) || (wear_mask && (wear_mask.flags & MASKCOVERSMOUTH)))
+ if((head && (head.body_parts_covered & FACE)) || (wear_mask && (wear_mask.body_parts_covered & FACE)))
H << "Remove [src]'s mask!"
return 0
diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm
index cdaad1c42f9..2a67aae0456 100644
--- a/code/modules/mob/living/carbon/human/human_defense.dm
+++ b/code/modules/mob/living/carbon/human/human_defense.dm
@@ -144,7 +144,7 @@ emp_act
/mob/living/carbon/human/proc/check_mouth_coverage()
var/list/protective_gear = list(head, wear_mask, wear_suit, w_uniform)
for(var/obj/item/gear in protective_gear)
- if(istype(gear) && (gear.body_parts_covered & FACE) && (gear.flags & (MASKCOVERSMOUTH|HEADCOVERSMOUTH)))
+ if(istype(gear) && (gear.body_parts_covered & FACE) && !(gear.item_flags & FLEXIBLEMATERIAL))
return gear
return null
diff --git a/code/modules/mob/living/carbon/human/species/xenomorphs/alien_facehugger.dm b/code/modules/mob/living/carbon/human/species/xenomorphs/alien_facehugger.dm
index 187894f4471..335b5660924 100644
--- a/code/modules/mob/living/carbon/human/species/xenomorphs/alien_facehugger.dm
+++ b/code/modules/mob/living/carbon/human/species/xenomorphs/alien_facehugger.dm
@@ -15,7 +15,7 @@ var/const/MAX_ACTIVE_TIME = 400
icon_state = "facehugger"
item_state = "facehugger"
w_class = 3 //note: can be picked up by aliens unlike most other items of w_class below 4
- flags = MASKCOVERSMOUTH | PROXMOVE
+ flags = PROXMOVE
body_parts_covered = FACE|EYES
throw_range = 5
@@ -126,15 +126,6 @@ var/const/MAX_ACTIVE_TIME = 400
L.visible_message("\red \b [src] leaps at [L]'s face!")
- /* Tentatively removed since huggers can't be thrown anymore
- if(ishuman(L))
- var/mob/living/carbon/human/H = L
- if(H.head && H.head.flags & HEADCOVERSMOUTH)
- H.visible_message("\red \b [src] smashes against [H]'s [H.head]!")
- Die()
- return
- */
-
if(iscarbon(M))
var/mob/living/carbon/target = L
@@ -235,6 +226,6 @@ var/const/MAX_ACTIVE_TIME = 400
if(ishuman(C))
var/mob/living/carbon/human/H = C
- if(H.head && H.head.flags & HEADCOVERSMOUTH)
+ if(H.head && (H.head.body_parts_covered & FACE) && !(H.head.item_flags & FLEXIBLEMATERIAL))
return 0
return 1
diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm
index b6cd00bc3d7..94047483f9c 100644
--- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm
@@ -274,14 +274,14 @@
if(H.head.body_parts_covered & EYES)
eyes_covered = 1
safe_thing = H.head
- if(H.head.flags & MASKCOVERSMOUTH)
+ if((H.head.body_parts_covered & FACE) && !(H.head.item_flags & FLEXIBLEMATERIAL))
mouth_covered = 1
safe_thing = H.head
if(H.wear_mask)
if(!eyes_covered && H.wear_mask.body_parts_covered & EYES)
eyes_covered = 1
safe_thing = H.wear_mask
- if(!mouth_covered && H.wear_mask.flags & MASKCOVERSMOUTH)
+ if(!mouth_covered && (H.wear_mask.body_parts_covered & FACE) && !(H.wear_mask.item_flags & FLEXIBLEMATERIAL))
mouth_covered = 1
safe_thing = H.wear_mask
if(H.glasses && H.glasses.body_parts_covered & EYES)