Removes MASK/HEADCOVERSMOUTH

Code that used to check this flag now checks body_parts_covered for FACE
instead. Added a FLEXIBLEMATERIAL item flag to continue to allow vox to
eat food without poisoning themselves.
This commit is contained in:
mwerezak
2015-07-11 02:06:43 -04:00
committed by HarpyEagle
parent d70f064b1b
commit fd8f6d9639
17 changed files with 32 additions and 61 deletions

View File

@@ -29,22 +29,18 @@
#define ON_BORDER 0x8 // Item has priority to check when entering or leaving. #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 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 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()? #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) //Flags for items (equipment)
#define THICKMATERIAL 0x1 // Prevents syringes, parapens and hyposprays if equiped to slot_suit or slot_head. #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 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 AIRTIGHT 0x4 // Functions with internals.
#define NOSLIP 0x8 // Prevents from slipping on wet floors, in space, etc. #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 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. // Flags for pass_flags.
#define PASSTABLE 0x1 #define PASSTABLE 0x1

View File

@@ -49,7 +49,6 @@
icon_state = "magus" icon_state = "magus"
desc = "A helm worn by the followers of Nar-Sie." desc = "A helm worn by the followers of Nar-Sie."
flags_inv = HIDEFACE | BLOCKHAIR flags_inv = HIDEFACE | BLOCKHAIR
flags = HEADCOVERSMOUTH
body_parts_covered = HEAD|FACE|EYES body_parts_covered = HEAD|FACE|EYES
/obj/item/clothing/head/culthood/alt /obj/item/clothing/head/culthood/alt

View File

@@ -49,7 +49,6 @@
name = "gladiator helmet" name = "gladiator helmet"
desc = "Ave, Imperator, morituri te salutant." desc = "Ave, Imperator, morituri te salutant."
icon_state = "gladiator" icon_state = "gladiator"
flags = HEADCOVERSMOUTH
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|BLOCKHAIR flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|BLOCKHAIR
body_parts_covered = HEAD|FACE body_parts_covered = HEAD|FACE
siemens_coefficient = 1 siemens_coefficient = 1

View File

@@ -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?" 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" icon_state = "cueball"
item_state = "cueball" item_state = "cueball"
flags = HEADCOVERSMOUTH
flags_inv = BLOCKHAIR flags_inv = BLOCKHAIR
body_parts_covered = HEAD|FACE|EYES body_parts_covered = HEAD|FACE|EYES
@@ -100,7 +99,6 @@
desc = "A helmet made out of a box." desc = "A helmet made out of a box."
icon_state = "cardborg_h" icon_state = "cardborg_h"
item_state = "cardborg_h" item_state = "cardborg_h"
flags = HEADCOVERSMOUTH
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE
body_parts_covered = HEAD|FACE|EYES body_parts_covered = HEAD|FACE|EYES
@@ -108,7 +106,6 @@
name = "justice hat" name = "justice hat"
desc = "fight for what's righteous!" desc = "fight for what's righteous!"
icon_state = "justicered" icon_state = "justicered"
flags = HEADCOVERSMOUTH
flags_inv = BLOCKHAIR flags_inv = BLOCKHAIR
body_parts_covered = HEAD|EYES body_parts_covered = HEAD|EYES

View File

@@ -19,7 +19,6 @@
slot_l_hand_str = "welding", slot_l_hand_str = "welding",
slot_r_hand_str = "welding", slot_r_hand_str = "welding",
) )
flags = HEADCOVERSMOUTH
matter = list(DEFAULT_WALL_MATERIAL = 3000, "glass" = 1000) matter = list(DEFAULT_WALL_MATERIAL = 3000, "glass" = 1000)
var/up = 0 var/up = 0
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 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(usr.canmove && !usr.stat && !usr.restrained())
if(src.up) if(src.up)
src.up = !src.up src.up = !src.up
src.flags |= (HEADCOVERSMOUTH)
flags_inv |= (HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE)
body_parts_covered |= (EYES|FACE) body_parts_covered |= (EYES|FACE)
flags_inv |= (HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE)
icon_state = base_state icon_state = base_state
usr << "You flip the [src] down to protect your eyes." usr << "You flip the [src] down to protect your eyes."
else else
src.up = !src.up src.up = !src.up
src.flags &= ~(HEADCOVERSMOUTH)
flags_inv &= ~(HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE)
body_parts_covered &= ~(EYES|FACE) body_parts_covered &= ~(EYES|FACE)
flags_inv &= ~(HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE)
icon_state = "[base_state]up" icon_state = "[base_state]up"
usr << "You push the [src] up out of your face." usr << "You push the [src] up out of your face."
update_clothing_icon() //so our mob-overlays update_clothing_icon() //so our mob-overlays
@@ -125,7 +122,6 @@
name = "carved pumpkin" name = "carved pumpkin"
desc = "A jack o' lantern! Believed to ward off evil spirits." desc = "A jack o' lantern! Believed to ward off evil spirits."
icon_state = "hardhat0_pumpkin"//Could stand to be renamed icon_state = "hardhat0_pumpkin"//Could stand to be renamed
flags = HEADCOVERSMOUTH
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|BLOCKHAIR flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|BLOCKHAIR
body_parts_covered = HEAD|FACE|EYES body_parts_covered = HEAD|FACE|EYES
brightness_on = 2 brightness_on = 2
@@ -156,5 +152,4 @@
desc = "You can hear the distant sounds of rhythmic electronica." desc = "You can hear the distant sounds of rhythmic electronica."
icon_state = "richard" icon_state = "richard"
body_parts_covered = HEAD|FACE body_parts_covered = HEAD|FACE
flags = HEADCOVERSMOUTH
flags_inv = BLOCKHAIR flags_inv = BLOCKHAIR

View File

@@ -3,9 +3,8 @@
name = "breath mask" name = "breath mask"
icon_state = "breath" icon_state = "breath"
item_state = "breath" item_state = "breath"
flags = MASKCOVERSMOUTH item_flags = AIRTIGHT|FLEXIBLEMATERIAL
item_flags = AIRTIGHT body_parts_covered = FACE
body_parts_covered = 0
w_class = 2 w_class = 2
gas_transfer_coefficient = 0.10 gas_transfer_coefficient = 0.10
permeability_coefficient = 0.50 permeability_coefficient = 0.50
@@ -21,18 +20,16 @@
if(!src.hanging) if(!src.hanging)
src.hanging = !src.hanging src.hanging = !src.hanging
gas_transfer_coefficient = 1 //gas is now escaping to the turf and vice versa gas_transfer_coefficient = 1 //gas is now escaping to the turf and vice versa
flags &= ~(MASKCOVERSMOUTH)
item_flags &= ~(AIRTIGHT) item_flags &= ~(AIRTIGHT)
body_parts_covered = 0 body_parts_covered = ~(FACE)
icon_state = "breathdown" icon_state = "breathdown"
user << "Your mask is now hanging on your neck." user << "Your mask is now hanging on your neck."
else else
src.hanging = !src.hanging src.hanging = !src.hanging
gas_transfer_coefficient = initial(gas_transfer_coefficient) gas_transfer_coefficient = initial(gas_transfer_coefficient)
flags |= MASKCOVERSMOUTH
item_flags |= AIRTIGHT item_flags |= AIRTIGHT
body_parts_covered = initial(body_parts_covered) body_parts_covered |= FACE
icon_state = "breath" icon_state = "breath"
user << "You pull the mask up to cover your face." user << "You pull the mask up to cover your face."
update_clothing_icon() update_clothing_icon()
@@ -52,4 +49,4 @@
name = "medical mask" name = "medical mask"
icon_state = "medical" icon_state = "medical"
item_state = "medical" item_state = "medical"
permeability_coefficient = 0.01 permeability_coefficient = 0.01

View File

@@ -2,7 +2,6 @@
name = "gas mask" name = "gas mask"
desc = "A face-covering mask that can be connected to an air supply. Filters harmful gases from the air." desc = "A face-covering mask that can be connected to an air supply. Filters harmful gases from the air."
icon_state = "gas_alt" icon_state = "gas_alt"
flags = MASKCOVERSMOUTH
item_flags = BLOCK_GAS_SMOKE_EFFECT | AIRTIGHT item_flags = BLOCK_GAS_SMOKE_EFFECT | AIRTIGHT
flags_inv = HIDEEARS|HIDEEYES|HIDEFACE flags_inv = HIDEEARS|HIDEEYES|HIDEFACE
body_parts_covered = FACE|EYES body_parts_covered = FACE|EYES
@@ -35,7 +34,7 @@
icon_state = "plaguedoctor" icon_state = "plaguedoctor"
item_state = "gas_mask" item_state = "gas_mask"
armor = list(melee = 0, bullet = 0, laser = 2,energy = 2, bomb = 0, bio = 90, rad = 0) 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 /obj/item/clothing/mask/gas/swat
name = "\improper SWAT mask" name = "\improper SWAT mask"
@@ -102,3 +101,4 @@
name = "owl mask" name = "owl mask"
desc = "Twoooo!" desc = "Twoooo!"
icon_state = "owl" icon_state = "owl"
body_parts_covered = HEAD|FACE|EYES

View File

@@ -3,8 +3,7 @@
desc = "To stop that awful noise." desc = "To stop that awful noise."
icon_state = "muzzle" icon_state = "muzzle"
item_state = "muzzle" item_state = "muzzle"
flags = MASKCOVERSMOUTH body_parts_covered = FACE
body_parts_covered = 0
w_class = 2 w_class = 2
gas_transfer_coefficient = 0.90 gas_transfer_coefficient = 0.90
voicechange = 1 voicechange = 1
@@ -26,8 +25,8 @@
icon_state = "sterile" icon_state = "sterile"
item_state = "sterile" item_state = "sterile"
w_class = 2 w_class = 2
flags = MASKCOVERSMOUTH body_parts_covered = FACE
body_parts_covered = 0 item_flags = FLEXIBLEMATERIAL
gas_transfer_coefficient = 0.90 gas_transfer_coefficient = 0.90
permeability_coefficient = 0.01 permeability_coefficient = 0.01
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 0) armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 0)
@@ -47,13 +46,14 @@
body_parts_covered = 0 body_parts_covered = 0
//scarves (fit in in mask slot) //scarves (fit in in mask slot)
//None of these actually have on-mob sprites...
/obj/item/clothing/mask/bluescarf /obj/item/clothing/mask/bluescarf
name = "blue neck scarf" name = "blue neck scarf"
desc = "A blue neck scarf." desc = "A blue neck scarf."
icon_state = "blueneckscarf" icon_state = "blueneckscarf"
item_state = "blueneckscarf" item_state = "blueneckscarf"
flags = MASKCOVERSMOUTH body_parts_covered = FACE
item_flags = FLEXIBLEMATERIAL
w_class = 2 w_class = 2
gas_transfer_coefficient = 0.90 gas_transfer_coefficient = 0.90
@@ -62,7 +62,8 @@
desc = "A red and white checkered neck scarf." desc = "A red and white checkered neck scarf."
icon_state = "redwhite_scarf" icon_state = "redwhite_scarf"
item_state = "redwhite_scarf" item_state = "redwhite_scarf"
flags = MASKCOVERSMOUTH body_parts_covered = FACE
item_flags = FLEXIBLEMATERIAL
w_class = 2 w_class = 2
gas_transfer_coefficient = 0.90 gas_transfer_coefficient = 0.90
@@ -71,7 +72,8 @@
desc = "A green neck scarf." desc = "A green neck scarf."
icon_state = "green_scarf" icon_state = "green_scarf"
item_state = "green_scarf" item_state = "green_scarf"
flags = MASKCOVERSMOUTH body_parts_covered = FACE
item_flags = FLEXIBLEMATERIAL
w_class = 2 w_class = 2
gas_transfer_coefficient = 0.90 gas_transfer_coefficient = 0.90
@@ -80,7 +82,8 @@
desc = "A stealthy, dark scarf." desc = "A stealthy, dark scarf."
icon_state = "ninja_scarf" icon_state = "ninja_scarf"
item_state = "ninja_scarf" item_state = "ninja_scarf"
flags = MASKCOVERSMOUTH body_parts_covered = FACE
item_flags = FLEXIBLEMATERIAL
w_class = 2 w_class = 2
gas_transfer_coefficient = 0.90 gas_transfer_coefficient = 0.90
siemens_coefficient = 0 siemens_coefficient = 0

View File

@@ -37,7 +37,6 @@
slot_r_hand_str = "syndicate-helm-black-red", slot_r_hand_str = "syndicate-helm-black-red",
) )
armor = list(melee = 65, bullet = 55, laser = 35,energy = 20, bomb = 30, bio = 100, rad = 60) armor = list(melee = 65, bullet = 55, laser = 35,energy = 20, bomb = 30, bio = 100, rad = 60)
flags = HEADCOVERSMOUTH
item_flags = STOPPRESSUREDAMAGE | THICKMATERIAL item_flags = STOPPRESSUREDAMAGE | THICKMATERIAL
flags_inv = BLOCKHAIR flags_inv = BLOCKHAIR
siemens_coefficient = 0.6 siemens_coefficient = 0.6

View File

@@ -4,7 +4,6 @@
/obj/item/clothing/head/helmet/space/rig /obj/item/clothing/head/helmet/space/rig
name = "helmet" name = "helmet"
flags = HEADCOVERSMOUTH
item_flags = THICKMATERIAL item_flags = THICKMATERIAL
flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|BLOCKHAIR flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|BLOCKHAIR
body_parts_covered = HEAD|FACE|EYES body_parts_covered = HEAD|FACE|EYES

View File

@@ -6,7 +6,6 @@
name = "Space helmet" name = "Space helmet"
icon_state = "space" icon_state = "space"
desc = "A special helmet designed for work in a hazardous, low-pressure environment." desc = "A special helmet designed for work in a hazardous, low-pressure environment."
flags = HEADCOVERSMOUTH
item_flags = STOPPRESSUREDAMAGE | THICKMATERIAL | AIRTIGHT item_flags = STOPPRESSUREDAMAGE | THICKMATERIAL | AIRTIGHT
flags_inv = BLOCKHAIR flags_inv = BLOCKHAIR
item_state_slots = list( item_state_slots = list(

View File

@@ -8,7 +8,6 @@
) )
desc = "A hood that protects the head and face from biological comtaminants." desc = "A hood that protects the head and face from biological comtaminants."
permeability_coefficient = 0.01 permeability_coefficient = 0.01
flags = HEADCOVERSMOUTH
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20) armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20)
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|BLOCKHAIR flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|BLOCKHAIR
body_parts_covered = HEAD|FACE|EYES body_parts_covered = HEAD|FACE|EYES

View File

@@ -47,7 +47,6 @@
name = "bomb hood" name = "bomb hood"
desc = "Use in case of bomb." desc = "Use in case of bomb."
icon_state = "bombsuit" icon_state = "bombsuit"
flags = HEADCOVERSMOUTH
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 100, bio = 0, rad = 0) armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 100, bio = 0, rad = 0)
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|BLOCKHAIR flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|BLOCKHAIR
body_parts_covered = HEAD|FACE|EYES body_parts_covered = HEAD|FACE|EYES
@@ -86,7 +85,6 @@
name = "Radiation Hood" name = "Radiation Hood"
icon_state = "rad" icon_state = "rad"
desc = "A hood with radiation protective properties. Label: Made with lead, do not eat insulation" desc = "A hood with radiation protective properties. Label: Made with lead, do not eat insulation"
flags = HEADCOVERSMOUTH
flags_inv = BLOCKHAIR flags_inv = BLOCKHAIR
body_parts_covered = HEAD|FACE|EYES body_parts_covered = HEAD|FACE|EYES
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 100) armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 100)

View File

@@ -60,10 +60,10 @@
if(!check_has_mouth()) if(!check_has_mouth())
H << "<span class='danger'>They don't have a mouth, you cannot perform CPR!</span>" H << "<span class='danger'>They don't have a mouth, you cannot perform CPR!</span>"
return 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 << "<span class='notice'>Remove your mask!</span>" H << "<span class='notice'>Remove your mask!</span>"
return 0 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 << "<span class='notice'>Remove [src]'s mask!</span>" H << "<span class='notice'>Remove [src]'s mask!</span>"
return 0 return 0

View File

@@ -144,7 +144,7 @@ emp_act
/mob/living/carbon/human/proc/check_mouth_coverage() /mob/living/carbon/human/proc/check_mouth_coverage()
var/list/protective_gear = list(head, wear_mask, wear_suit, w_uniform) var/list/protective_gear = list(head, wear_mask, wear_suit, w_uniform)
for(var/obj/item/gear in protective_gear) 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 gear
return null return null

View File

@@ -15,7 +15,7 @@ var/const/MAX_ACTIVE_TIME = 400
icon_state = "facehugger" icon_state = "facehugger"
item_state = "facehugger" item_state = "facehugger"
w_class = 3 //note: can be picked up by aliens unlike most other items of w_class below 4 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 body_parts_covered = FACE|EYES
throw_range = 5 throw_range = 5
@@ -126,15 +126,6 @@ var/const/MAX_ACTIVE_TIME = 400
L.visible_message("\red \b [src] leaps at [L]'s face!") 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)) if(iscarbon(M))
var/mob/living/carbon/target = L var/mob/living/carbon/target = L
@@ -235,6 +226,6 @@ var/const/MAX_ACTIVE_TIME = 400
if(ishuman(C)) if(ishuman(C))
var/mob/living/carbon/human/H = 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 0
return 1 return 1

View File

@@ -274,14 +274,14 @@
if(H.head.body_parts_covered & EYES) if(H.head.body_parts_covered & EYES)
eyes_covered = 1 eyes_covered = 1
safe_thing = H.head safe_thing = H.head
if(H.head.flags & MASKCOVERSMOUTH) if((H.head.body_parts_covered & FACE) && !(H.head.item_flags & FLEXIBLEMATERIAL))
mouth_covered = 1 mouth_covered = 1
safe_thing = H.head safe_thing = H.head
if(H.wear_mask) if(H.wear_mask)
if(!eyes_covered && H.wear_mask.body_parts_covered & EYES) if(!eyes_covered && H.wear_mask.body_parts_covered & EYES)
eyes_covered = 1 eyes_covered = 1
safe_thing = H.wear_mask 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 mouth_covered = 1
safe_thing = H.wear_mask safe_thing = H.wear_mask
if(H.glasses && H.glasses.body_parts_covered & EYES) if(H.glasses && H.glasses.body_parts_covered & EYES)