diff --git a/code/game/dna.dm b/code/game/dna.dm
index ad034485649..455b43f6013 100644
--- a/code/game/dna.dm
+++ b/code/game/dna.dm
@@ -385,14 +385,14 @@
M.see_invisible = 0
if (isblockon(getblock(M.dna.struc_enzymes, 1,3),1))
- M.disabilities |= 1
+ M.disabilities |= NEARSIGHTED
M << "\red Your eyes feel strange."
if (isblockon(getblock(M.dna.struc_enzymes, HULKBLOCK,3),2))
if(inj || prob(15))
M << "\blue Your muscles hurt."
M.mutations.Add(HULK)
if (isblockon(getblock(M.dna.struc_enzymes, 3,3),3))
- M.disabilities |= 2
+ M.disabilities |= EPILEPSY
M << "\red You get a headache."
if (isblockon(getblock(M.dna.struc_enzymes, FAKEBLOCK,3),4))
M << "\red You feel strange."
@@ -404,13 +404,13 @@
else
randmutg(M)
if (isblockon(getblock(M.dna.struc_enzymes, 5,3),5))
- M.disabilities |= 4
+ M.disabilities |= COUGHING
M << "\red You start coughing."
if (isblockon(getblock(M.dna.struc_enzymes, CLUMSYBLOCK,3),6))
M << "\red You feel lightheaded."
M.mutations.Add(CLUMSY)
if (isblockon(getblock(M.dna.struc_enzymes, 7,3),7))
- M.disabilities |= 8
+ M.disabilities |= TOURETTES
M << "\red You twitch."
if (isblockon(getblock(M.dna.struc_enzymes, XRAYBLOCK,3),8))
if(inj || prob(30))
@@ -420,21 +420,21 @@
M.see_invisible = 2
M.mutations.Add(XRAY)
if (isblockon(getblock(M.dna.struc_enzymes, 9,3),9))
- M.disabilities |= 16
+ M.disabilities |= NERVOUS
M << "\red You feel nervous."
if (isblockon(getblock(M.dna.struc_enzymes, FIREBLOCK,3),10))
if(inj || prob(30))
M << "\blue Your body feels warm."
M.mutations.Add(COLD_RESISTANCE)
if (isblockon(getblock(M.dna.struc_enzymes, BLINDBLOCK,3),11))
- M.sdisabilities |= 1
+ M.sdisabilities |= BLIND
M << "\red You can't seem to see anything."
if (isblockon(getblock(M.dna.struc_enzymes, TELEBLOCK,3),12))
if(inj || prob(25))
M << "\blue You feel smarter."
M.mutations.Add(TK)
if (isblockon(getblock(M.dna.struc_enzymes, DEAFBLOCK,3),13))
- M.sdisabilities |= 4
+ M.sdisabilities |= DEAF
M.ear_deaf = 1
M << "\red You can't seem to hear anything..."
diff --git a/code/game/gamemodes/changeling/changeling_powers.dm b/code/game/gamemodes/changeling/changeling_powers.dm
index cd86642da01..ea5b5ead99d 100644
--- a/code/game/gamemodes/changeling/changeling_powers.dm
+++ b/code/game/gamemodes/changeling/changeling_powers.dm
@@ -701,9 +701,9 @@ Tarjan shit, not recoding this -Sieve{R}*/
if(!T.changeling)
T << text("\blue Your eyes cry out in pain!")
- T.disabilities |= 1
+ T.disabilities |= NEARSIGHTED
spawn(300)
- T.disabilities &= ~1
+ T.disabilities &= ~NEARSIGHTED
T.eye_blind = 10
T.eye_blurry = 20
@@ -744,9 +744,9 @@ Tarjan shit, not recoding this -Sieve{R}*/
feedback_add_details("changeling_powers","DS")
if(!T.changeling)
- T.sdisabilities |= 4
+ T.sdisabilities |= DEAF
spawn(300)
- T.sdisabilities &= ~4
+ T.sdisabilities &= ~DEAF
usr.verbs -= /client/proc/changeling_deaf_sting
diff --git a/code/game/gamemodes/events.dm b/code/game/gamemodes/events.dm
index 44845b684ea..23020437bd2 100644
--- a/code/game/gamemodes/events.dm
+++ b/code/game/gamemodes/events.dm
@@ -212,7 +212,7 @@
continue
if(virus_type == /datum/disease/dnaspread) //Dnaspread needs strain_data set to work.
- if((!H.dna) || (H.sdisabilities & 1)) //A blindness disease would be the worst.
+ if((!H.dna) || (H.sdisabilities & BLIND)) //A blindness disease would be the worst.
continue
var/datum/disease/dnaspread/D = new
D.strain_data["name"] = H.real_name
diff --git a/code/game/gamemodes/wizard/spells.dm b/code/game/gamemodes/wizard/spells.dm
index df629713141..37499c642db 100644
--- a/code/game/gamemodes/wizard/spells.dm
+++ b/code/game/gamemodes/wizard/spells.dm
@@ -30,9 +30,9 @@
del(B)
M.canmove = 1
M << text("\blue Your eyes cry out in pain!")
- M.disabilities |= 1
+ M.disabilities |= NEARSIGHTED
spawn(300)
- M.disabilities &= ~1
+ M.disabilities &= ~NEARSIGHTED
M.eye_blind = 10
M.eye_blurry = 20
return
diff --git a/code/game/machinery/bots/ed209bot.dm b/code/game/machinery/bots/ed209bot.dm
index ac9103be52d..d0a4934f70f 100644
--- a/code/game/machinery/bots/ed209bot.dm
+++ b/code/game/machinery/bots/ed209bot.dm
@@ -329,6 +329,7 @@ Auto Patrol: []"},
if(istype(src.target,/mob/living/carbon))
src.target.handcuffed = new /obj/item/weapon/handcuffs(src.target)
+ target.update_inv_handcuffed() //update handcuff overlays
mode = SECBOT_IDLE
src.target = null
diff --git a/code/game/machinery/bots/secbot.dm b/code/game/machinery/bots/secbot.dm
index 258df537a71..f0c1b5ad773 100644
--- a/code/game/machinery/bots/secbot.dm
+++ b/code/game/machinery/bots/secbot.dm
@@ -270,7 +270,8 @@ Auto Patrol: []"},
return
if(istype(src.target,/mob/living/carbon))
- src.target.handcuffed = new /obj/item/weapon/handcuffs(src.target)
+ target.handcuffed = new /obj/item/weapon/handcuffs(target)
+ target.update_inv_handcuffed() //update the handcuffs overlay
mode = SECBOT_IDLE
src.target = null
diff --git a/code/game/magic/cultist/ritual.dm b/code/game/magic/cultist/ritual.dm
index 7585286d55a..2dd47abe853 100644
--- a/code/game/magic/cultist/ritual.dm
+++ b/code/game/magic/cultist/ritual.dm
@@ -96,10 +96,10 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology",
// join hide technology - stun rune. Rune color: bright pink.
New()
..()
+ var/image/blood = image(loc = src)
+ blood.override = 1
for(var/mob/living/silicon/ai/AI in world)
if(AI.client)
- var/image/blood = image('blood.dmi', loc = src, icon_state = "floor[rand(1,7)]")
- blood.override = 1
AI.client.images += blood
examine()
diff --git a/code/game/magic/cultist/runes.dm b/code/game/magic/cultist/runes.dm
index 9adbf418d15..211da017694 100644
--- a/code/game/magic/cultist/runes.dm
+++ b/code/game/magic/cultist/runes.dm
@@ -747,6 +747,7 @@ var/list/sacrificed = list()
if (cultist.handcuffed)
cultist.handcuffed.loc = cultist.loc
cultist.handcuffed = null
+ cultist.update_inv_handcuffed()
if (istype(cultist.wear_mask, /obj/item/clothing/mask/muzzle))
cultist.u_equip(cultist.wear_mask)
if(istype(cultist.loc, /obj/structure/closet)&&cultist.loc:welded)
@@ -810,7 +811,7 @@ var/list/sacrificed = list()
C.show_message("\red The world around you suddenly becomes quiet.", 3)
affected++
if(prob(1))
- C.disabilities |= 4
+ C.sdisabilities |= DEAF
if(affected)
usr.say("Sti' kaliedir!")
usr << "\red The world becomes quiet as the deafening rune dissipates into fine dust."
@@ -849,9 +850,9 @@ var/list/sacrificed = list()
C.eye_blurry += 50
C.eye_blind += 20
if(prob(5))
- C.disabilities |= 1
+ C.disabilities |= NEARSIGHTED
if(prob(10))
- C.sdisabilities |= 1
+ C.sdisabilities |= BLIND
C.show_message("\red Suddenly you see red flash that blinds you.", 3)
affected++
if(affected)
diff --git a/code/game/objects/devices/flashlight.dm b/code/game/objects/devices/flashlight.dm
index acf53cdc2de..de7a0006a4f 100644
--- a/code/game/objects/devices/flashlight.dm
+++ b/code/game/objects/devices/flashlight.dm
@@ -67,7 +67,7 @@
O.show_message("\blue [(O==user?"You direct":"[user] directs")] [src] to [(M==user? "your":"[M]")] eyes", 1)
if(istype(M, /mob/living/carbon/human) || istype(M, /mob/living/carbon/monkey))//robots and aliens are unaffected
- if(M.stat > 1 || M.sdisabilities & 1)//mob is dead or fully blind
+ if(M.stat == DEAD || M.sdisabilities & BLIND)//mob is dead or fully blind
if(M!=user)
user.show_message(text("\red [] pupils does not react to the light!", M),1)
else if(XRAY in M.mutations)//mob has X-RAY vision
diff --git a/code/game/objects/items/item.dm b/code/game/objects/items/item.dm
index e9f447ba32d..4134e2be4a9 100644
--- a/code/game/objects/items/item.dm
+++ b/code/game/objects/items/item.dm
@@ -332,7 +332,7 @@
// M = user
/*
M << "\red You stab yourself in the eye."
- M.sdisabilities |= 1
+ M.sdisabilities |= BLIND
M.weakened += 4
M.adjustBruteLoss(10)
*/
@@ -356,7 +356,7 @@
M.eye_stat += rand(2,4)
if (M.eye_stat >= 10)
M.eye_blurry += 15+(0.1*M.eye_blurry)
- M.disabilities |= 1
+ M.disabilities |= NEARSIGHTED
if(M.stat != 2)
M << "\red Your eyes start to bleed profusely!"
if(prob(50))
@@ -369,7 +369,7 @@
if (prob(M.eye_stat - 10 + 1))
if(M.stat != 2)
M << "\red You go blind!"
- M.sdisabilities |= 1
+ M.sdisabilities |= BLIND
return
diff --git a/code/game/objects/items/weapons/grenades.dm b/code/game/objects/items/weapons/grenades.dm
index 71091215d5a..7c7907ca3ca 100644
--- a/code/game/objects/items/weapons/grenades.dm
+++ b/code/game/objects/items/weapons/grenades.dm
@@ -213,17 +213,17 @@ CRITTER GRENADE
//This really should be in mob not every check
if (M.eye_stat >= 20)
M << "\red Your eyes start to burn badly!"
- M.disabilities |= 1
+ M.disabilities |= NEARSIGHTED
if(!banglet && !(istype(src , /obj/item/weapon/flashbang/clusterbang)))
if (prob(M.eye_stat - 20 + 1))
M << "\red You can't see anything!"
- M.sdisabilities |= 1
+ M.sdisabilities |= BLIND
if (M.ear_damage >= 15)
M << "\red Your ears start to ring badly!"
if(!banglet && !(istype(src , /obj/item/weapon/flashbang/clusterbang)))
if (prob(M.ear_damage - 10 + 5))
M << "\red You can't hear anything!"
- M.sdisabilities |= 4
+ M.sdisabilities |= DEAF
else
if (M.ear_damage >= 5)
M << "\red Your ears start to ring!"
diff --git a/code/game/objects/items/weapons/implants/implantfreedom.dm b/code/game/objects/items/weapons/implants/implantfreedom.dm
index 9338f9a5e78..f95a055eb6d 100644
--- a/code/game/objects/items/weapons/implants/implantfreedom.dm
+++ b/code/game/objects/items/weapons/implants/implantfreedom.dm
@@ -23,6 +23,7 @@
if (source.handcuffed)
var/obj/item/weapon/W = source.handcuffed
source.handcuffed = null
+ source.update_inv_handcuffed()
if (source.client)
source.client.screen -= W
if (W)
diff --git a/code/game/objects/items/weapons/surgery_tools.dm b/code/game/objects/items/weapons/surgery_tools.dm
index db7c226bc2d..c30bd93fea0 100644
--- a/code/game/objects/items/weapons/surgery_tools.dm
+++ b/code/game/objects/items/weapons/surgery_tools.dm
@@ -237,7 +237,7 @@ CIRCULAR SAW
M.updatehealth()
else
M.take_organ_damage(15)
- M.sdisabilities &= ~1
+ M.sdisabilities &= ~BLIND
M.eye_stat = 0
M:eye_op_stage = 0.0
diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm
index 9c4a335d00f..21c26cd518b 100644
--- a/code/game/objects/items/weapons/tools.dm
+++ b/code/game/objects/items/weapons/tools.dm
@@ -312,14 +312,14 @@ WELDINGTOOOL
user << "\red Your eyes are really starting to hurt. This can't be good for you!"
if (prob(user.eye_stat - 25 + 1))
user << "\red You go blind!"
- user.sdisabilities |= 1
+ user.sdisabilities |= BLIND
else if (prob(user.eye_stat - 15 + 1))
user << "\red You go blind!"
user.eye_blind = 5
user.eye_blurry = 5
- user.disabilities |= 1
+ user.disabilities |= NEARSIGHTED
spawn(100)
- user.disabilities &= ~1
+ user.disabilities &= ~NEARSIGHTED
return
diff --git a/code/modules/chemical/Chemistry-Reagents.dm b/code/modules/chemical/Chemistry-Reagents.dm
index 00c7621430e..113e9fdf398 100644
--- a/code/modules/chemical/Chemistry-Reagents.dm
+++ b/code/modules/chemical/Chemistry-Reagents.dm
@@ -643,16 +643,19 @@ datum
var/mob/living/carbon/human/H = M
if(H.wear_mask)
del (H.wear_mask)
+ H.update_inv_wear_mask()
H << "\red Your mask melts away but protects you from the acid!"
return
if(H.head)
del (H.head)
+ H.update_inv_head()
H << "\red Your helmet melts into uselessness but protects you from the acid!"
return
- if(istype(M, /mob/living/carbon/monkey))
+ else if(istype(M, /mob/living/carbon/monkey))
var/mob/living/carbon/monkey/MK = M
if(MK.wear_mask)
del (MK.wear_mask)
+ MK.update_inv_wear_mask()
MK << "\red Your mask melts away but protects you from the acid!"
return
if(!M.unacidable)
@@ -662,6 +665,7 @@ datum
if(affecting)
if(affecting.take_damage(25, 0))
H.UpdateDamageIcon()
+ H.status_flags |= DISFIGURED
H.emote("scream")
else
M.take_organ_damage(min(15, volume * 2)) // uses min() and volume to make sure they aren't being sprayed in trace amounts (1 unit != insta rape) -- Doohl
@@ -704,6 +708,7 @@ datum
if(H.head)
if(prob(15))
del(H.head)
+ H.update_inv_head()
H << "\red Your helmet melts from the acid!"
else
H << "\red Your helmet protects you from the acid!"
@@ -719,6 +724,7 @@ datum
var/mob/living/carbon/monkey/MK = M
if(MK.wear_mask)
del (MK.wear_mask)
+ MK.update_inv_wear_mask()
MK << "\red Your mask melts away but protects you from the acid!"
return
if(!MK.unacidable)
@@ -731,6 +737,7 @@ datum
if(affecting.take_damage(15, 0))
H.UpdateDamageIcon()
H.emote("scream")
+ H.status_flags |= DISFIGURED
else
M.take_organ_damage(min(15, volume * 4))
@@ -1259,8 +1266,8 @@ datum
M.sdisabilities = 0
M.eye_blurry = 0
M.eye_blind = 0
- M.disabilities &= ~1
- M.sdisabilities &= ~1
+// M.disabilities &= ~NEARSIGHTED //doesn't even do anythig cos of the disabilities = 0 bit
+// M.sdisabilities &= ~BLIND //doesn't even do anythig cos of the sdisabilities = 0 bit
M.SetWeakened(0)
M.SetStunned(0)
M.SetParalysis(0)
@@ -1368,7 +1375,7 @@ datum
if(!M) M = holder.my_atom
M.eye_blurry = max(M.eye_blurry-5 , 0)
M.eye_blind = max(M.eye_blind-5 , 0)
- M.disabilities &= ~1
+ M.disabilities &= ~NEARSIGHTED
M.eye_stat = max(M.eye_stat-5, 0)
// M.sdisabilities &= ~1 Replaced by eye surgery
..()
@@ -2126,7 +2133,7 @@ datum
//nothing
if(21 to INFINITY)
if (prob(data-10))
- M.disabilities &= ~1
+ M.disabilities &= ~NEARSIGHTED
data++
..()
return
diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm
index 12b0cd3a99c..cd305eda444 100644
--- a/code/modules/clothing/glasses/glasses.dm
+++ b/code/modules/clothing/glasses/glasses.dm
@@ -95,9 +95,9 @@
if(M.glasses == src)
M.eye_blind = 3
M.eye_blurry = 5
- M.disabilities |= 1
+ M.disabilities |= NEARSIGHTED
spawn(100)
- M.disabilities &= ~1
+ M.disabilities &= ~NEARSIGHTED
..()
/obj/item/clothing/glasses/thermal/syndi //These are now a traitor item, concealed as mesons. -Pete
diff --git a/code/modules/mob/living/carbon/alien/humanoid/life.dm b/code/modules/mob/living/carbon/alien/humanoid/life.dm
index f6661247e0c..3e72436821f 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/life.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/life.dm
@@ -71,23 +71,23 @@
/mob/living/carbon/alien/humanoid
proc/handle_disabilities()
- if (disabilities & 2)
+ if (disabilities & EPILEPSY)
if ((prob(1) && paralysis < 10))
src << "\red You have a seizure!"
Paralyse(10)
- if (disabilities & 4)
+ if (disabilities & COUGHING)
if ((prob(5) && paralysis <= 1))
drop_item()
spawn( 0 )
emote("cough")
return
- if (disabilities & 8)
+ if (disabilities & TOURETTES)
if ((prob(10) && paralysis <= 1))
Stun(10)
spawn( 0 )
emote("twitch")
return
- if (disabilities & 16)
+ if (disabilities & NERVOUS)
if (prob(10))
stuttering = max(10, stuttering)
@@ -412,7 +412,7 @@
move_delay_add = max(0, move_delay_add - rand(1, 2))
//Eyes
- if(sdisabilities & 1) //disabled-blind, doesn't get better on its own
+ if(sdisabilities & BLIND) //disabled-blind, doesn't get better on its own
blinded = 1
else if(eye_blind) //blindness, heals slowly over time
eye_blind = max(eye_blind-1,0)
@@ -421,7 +421,7 @@
eye_blurry = max(eye_blurry-1, 0)
//Ears
- if(sdisabilities & 4) //disabled-deaf, doesn't get better on its own
+ if(sdisabilities & DEAF) //disabled-deaf, doesn't get better on its own
ear_deaf = max(ear_deaf, 1)
else if(ear_deaf) //deafness, heals slowly over time
ear_deaf = max(ear_deaf-1, 0)
@@ -501,7 +501,7 @@
else
blind.layer = 0
- if (disabilities & 1)
+ if (disabilities & NEARSIGHTED)
client.screen += hud_used.vimpaired
if (eye_blurry)
diff --git a/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm b/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm
index c9eddfdd634..b2bb37f3c02 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm
@@ -64,15 +64,9 @@
//TODO
wear_suit.screen_loc = ui_alien_oclothing
if (istype(wear_suit, /obj/item/clothing/suit/straight_jacket))
- if (handcuffed)
- handcuffed.loc = loc
- handcuffed.layer = initial(handcuffed.layer)
- handcuffed = null
- if ((l_hand || r_hand))
- drop_item()
- hand = !hand
- drop_item()
- hand = !hand
+ drop_from_inventory(handcuffed)
+ drop_r_hand()
+ drop_l_hand()
overlays_lying[X_SUIT_LAYER] = lying
overlays_standing[X_SUIT_LAYER] = standing
diff --git a/code/modules/mob/living/carbon/alien/larva/life.dm b/code/modules/mob/living/carbon/alien/larva/life.dm
index 34258153cd9..c5e7af6efe0 100644
--- a/code/modules/mob/living/carbon/alien/larva/life.dm
+++ b/code/modules/mob/living/carbon/alien/larva/life.dm
@@ -336,7 +336,7 @@
move_delay_add = max(0, move_delay_add - rand(1, 2))
//Eyes
- if(sdisabilities & 1) //disabled-blind, doesn't get better on its own
+ if(sdisabilities & BLIND) //disabled-blind, doesn't get better on its own
blinded = 1
else if(eye_blind) //blindness, heals slowly over time
eye_blind = max(eye_blind-1,0)
@@ -345,7 +345,7 @@
eye_blurry = max(eye_blurry-1, 0)
//Ears
- if(sdisabilities & 4) //disabled-deaf, doesn't get better on its own
+ if(sdisabilities & DEAF) //disabled-deaf, doesn't get better on its own
ear_deaf = max(ear_deaf, 1)
else if(ear_deaf) //deafness, heals slowly over time
ear_deaf = max(ear_deaf-1, 0)
@@ -426,7 +426,7 @@
else
blind.layer = 0
- if (disabilities & 1)
+ if (disabilities & NEARSIGHTED)
client.screen += hud_used.vimpaired
if (eye_blurry)
diff --git a/code/modules/mob/living/carbon/brain/life.dm b/code/modules/mob/living/carbon/brain/life.dm
index 983690f1553..81c9e00e8ea 100644
--- a/code/modules/mob/living/carbon/brain/life.dm
+++ b/code/modules/mob/living/carbon/brain/life.dm
@@ -172,16 +172,16 @@
//Eyes
- if(sdisabilities & 1) //disabled-blind, doesn't get better on its own
+ if(sdisabilities & BLIND) //disabled-blind, doesn't get better on its own
blinded = 1
else if(eye_blind) //blindness, heals slowly over time
eye_blind = max(eye_blind-1,0)
blinded = 1
- else if(eye_blurry) //blurry eyes heal slowly
+ else if(eye_blurry) //blurry eyes heal slowly
eye_blurry = max(eye_blurry-1, 0)
//Ears
- if(sdisabilities & 4) //disabled-deaf, doesn't get better on its own
+ if(sdisabilities & DEAF) //disabled-deaf, doesn't get better on its own
ear_deaf = max(ear_deaf, 1)
else if(ear_deaf) //deafness, heals slowly over time
ear_deaf = max(ear_deaf-1, 0)
@@ -256,7 +256,7 @@
else
blind.layer = 0
- if (disabilities & 1)
+ if (disabilities & NEARSIGHTED)
client.screen += hud_used.vimpaired
if (eye_blurry)
diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm
index 13b53211186..07fb2c21b93 100644
--- a/code/modules/mob/living/carbon/human/examine.dm
+++ b/code/modules/mob/living/carbon/human/examine.dm
@@ -2,7 +2,7 @@
set src in view()
if(!usr || !src) return
- if(((usr.sdisabilities & 1) || usr.blinded || usr.stat) && !(istype(usr,/mob/dead/observer/)))
+ if( (usr.sdisabilities & BLIND || usr.blinded || usr.stat) && !istype(usr,/mob/dead/observer) )
usr << "Something is there but you can't see it."
return
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 5f70a6d2071..ce96edbbc29 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -522,22 +522,22 @@
//repurposed proc. Now it combines get_id_name() and get_face_name() to determine a mob's name variable. Made into a seperate proc as it'll be useful elsewhere
/mob/living/carbon/human/proc/get_visible_name()
- if ((wear_mask && !(wear_mask.see_face))) //Making this work -Sieve
+ if( wear_mask && !wear_mask.see_face ) //Wearing a mask which covers our face, use id-name if possible
return get_id_name("Unknown")
- else
- var/face_name = get_face_name()
- var/id_name = get_id_name("")
- if(id_name && (id_name != face_name))
- return "[face_name] as ([id_name])"
- return face_name
+
+ var/face_name = get_face_name()
+ var/id_name = get_id_name("")
+ if(id_name && (id_name != face_name))
+ return "[face_name] as ([id_name])"
+ return face_name
//Returns "Unknown" if facially disfigured and real_name if not. Useful for setting name when polyacided or when updating a human's name variable
/mob/living/carbon/human/proc/get_face_name()
- var/datum/organ/external/head/head = get_organ("head")
- if(!head) //no face!
+ var/datum/organ/external/O = get_organ("head")
+
+ if( (status_flags&DISFIGURED) || (O.brutestate+O.burnstate)>2 ) //disfigured. use id-name if possible
return "Unknown"
- else
- return "[real_name]"
+ return real_name
//gets name from ID or PDA itself, ID inside PDA doesn't matter
//Useful when player is being seen by other mobs
diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm
index 06429c75d34..476a08d9375 100644
--- a/code/modules/mob/living/carbon/human/life.dm
+++ b/code/modules/mob/living/carbon/human/life.dm
@@ -75,8 +75,7 @@
//Update our name based on whether our face is obscured/disfigured
name = get_visible_name() //TODO: this was broken by the dismemberment revert ~Carn
- if(client)
- handle_regular_hud_updates()
+ handle_regular_hud_updates()
// Grabbing
for(var/obj/item/weapon/grab/G in src)
@@ -111,7 +110,7 @@
proc/handle_disabilities()
- if (disabilities & 2)
+ if (disabilities & EPILEPSY)
if ((prob(1) && paralysis < 1))
src << "\red You have a seizure!"
for(var/mob/O in viewers(src, null))
@@ -120,13 +119,13 @@
O.show_message(text("\red [src] starts having a seizure!"), 1)
Paralyse(10)
make_jittery(1000)
- if (disabilities & 4)
+ if (disabilities & COUGHING)
if ((prob(5) && paralysis <= 1))
drop_item()
spawn( 0 )
emote("cough")
return
- if (disabilities & 8)
+ if (disabilities & TOURETTES)
if ((prob(10) && paralysis <= 1))
Stun(10)
spawn( 0 )
@@ -143,7 +142,7 @@
pixel_x = old_x
pixel_y = old_y
return
- if (disabilities & 16)
+ if (disabilities & NERVOUS)
if (prob(10))
stuttering = max(10, stuttering)
if (getBrainLoss() >= 60 && stat != 2)
@@ -747,7 +746,7 @@
stat = CONSCIOUS
//Eyes
- if(sdisabilities & 1) //disabled-blind, doesn't get better on its own
+ if(sdisabilities & BLIND) //disabled-blind, doesn't get better on its own
blinded = 1
else if(eye_blind) //blindness, heals slowly over time
eye_blind = max(eye_blind-1,0)
@@ -759,7 +758,7 @@
eye_blurry = max(eye_blurry-1, 0)
//Ears
- if(sdisabilities & 4) //disabled-deaf, doesn't get better on its own
+ if(sdisabilities & DEAF) //disabled-deaf, doesn't get better on its own
ear_deaf = max(ear_deaf, 1)
else if(ear_deaf) //deafness, heals slowly over time
ear_deaf = max(ear_deaf-1, 0)
@@ -786,287 +785,188 @@
druggy = max(druggy-1, 0)
return 1
-
proc/handle_regular_hud_updates()
-
if(!client) return 0
for(var/image/hud in client.images)
if(copytext(hud.icon_state,1,4) == "hud") //ugly, but icon comparison is worse, I believe
del(hud)
- if (stat == 2 || (XRAY in mutations))
- sight |= SEE_TURFS
- sight |= SEE_MOBS
- sight |= SEE_OBJS
- see_in_dark = 8
- if(!druggy)
- see_invisible = 2
+ client.screen.Remove(hud_used.blurry, hud_used.druggy, hud_used.vimpaired, hud_used.darkMask)
- else if (seer)
- var/obj/effect/rune/R = locate() in loc
- if (istype(R) && R.word1 == wordsee && R.word2 == wordhell && R.word3 == wordjoin)
- see_invisible = 15
- else
- seer = 0
- see_invisible = 0
- else if (istype(wear_mask, /obj/item/clothing/mask/gas/voice/space_ninja))
- switch(wear_mask:mode)
- if(0)
- if(client)
+ if( stat == DEAD )
+ sight |= (SEE_TURFS|SEE_MOBS|SEE_OBJS)
+ see_in_dark = 8
+ if(!druggy) see_invisible = 2
+ if(healths) healths.icon_state = "health7" //DEAD healthmeter
+ else
+ sight &= ~(SEE_TURFS|SEE_MOBS|SEE_OBJS)
+ switch(mutantrace)
+ if("lizard","metroid")
+ see_in_dark = 3
+ see_invisible = 1
+ else
+ see_in_dark = 2
+
+ if(XRAY in mutations)
+ sight |= SEE_TURFS|SEE_MOBS|SEE_OBJS
+ see_in_dark = 8
+ if(!druggy) see_invisible = 2
+
+ if(seer)
+ var/obj/effect/rune/R = locate() in loc
+ if(R && R.word1 == wordsee && R.word2 == wordhell && R.word3 == wordjoin)
+ see_invisible = 15
+ else
+ see_invisible = 0
+ seer = 0
+
+ if(istype(wear_mask, /obj/item/clothing/mask/gas/voice/space_ninja))
+ var/obj/item/clothing/mask/gas/voice/space_ninja/O = wear_mask
+ switch(O.mode)
+ if(0)
var/target_list[] = list()
for(var/mob/living/target in oview(src))
if( target.mind&&(target.mind.special_role||issilicon(target)) )//They need to have a mind.
target_list += target
if(target_list.len)//Everything else is handled by the ninja mask proc.
- wear_mask:assess_targets(target_list, src)
- if (!druggy)
- see_invisible = 0
- if(1)
- see_in_dark = 5
- if(!druggy)
- see_invisible = 0
- if(2)
- sight |= SEE_MOBS
- if(!druggy)
- see_invisible = 2
- if(3)
+ O.assess_targets(target_list, src)
+ if(!druggy) see_invisible = 0
+ if(1)
+ see_in_dark = 5
+ if(!druggy) see_invisible = 0
+ if(2)
+ sight |= SEE_MOBS
+ if(!druggy) see_invisible = 2
+ if(3)
+ sight |= SEE_TURFS
+ if(!druggy) see_invisible = 0
+
+ if(glasses)
+ if(istype(glasses, /obj/item/clothing/glasses/meson))
sight |= SEE_TURFS
- if(!druggy)
- see_invisible = 0
-
- else if(istype(glasses, /obj/item/clothing/glasses/meson))
- sight |= SEE_TURFS
- if(!druggy)
- see_invisible = 0
- else if(istype(glasses, /obj/item/clothing/glasses/night))
- see_in_dark = 5
- if(!druggy)
- see_invisible = 0
- else if(istype(glasses, /obj/item/clothing/glasses/thermal))
- sight |= SEE_MOBS
- if(!druggy)
- see_invisible = 2
- else if(istype(glasses, /obj/item/clothing/glasses/material))
- sight |= SEE_OBJS
- if (!druggy)
- see_invisible = 0
-
- else if(stat != 2)
- sight &= ~SEE_TURFS
- sight &= ~SEE_MOBS
- sight &= ~SEE_OBJS
- if (mutantrace == "lizard" || mutantrace == "metroid")
- see_in_dark = 3
- see_invisible = 1
- else if (druggy) // If drugged~
- see_in_dark = 2
- //see_invisible regulated by drugs themselves.
- else
- see_in_dark = 2
-
- var/seer = 0
- var/obj/effect/rune/R = locate() in loc
- if (istype(R) && R.word1 == wordsee && R.word2 == wordhell && R.word3 == wordjoin)
- seer = 1
- if(!seer)
- see_invisible = 0
-
-
-
-
-
-
-
- else if(istype(head, /obj/item/clothing/head/welding)) // wat. This is never fucking called.
- if(!head:up && tinted_weldhelh)
- see_in_dark = 1
-
-
-
-
-
-
-
-
+ if(!druggy) see_invisible = 0
+ else if(istype(glasses, /obj/item/clothing/glasses/night))
+ see_in_dark = 5
+ if(!druggy) see_invisible = 0
+ else if(istype(glasses, /obj/item/clothing/glasses/thermal))
+ sight |= SEE_MOBS
+ if(!druggy) see_invisible = 2
+ else if(istype(glasses, /obj/item/clothing/glasses/material))
+ sight |= SEE_OBJS
+ if(!druggy) see_invisible = 0
/* HUD shit goes here, as long as it doesn't modify sight flags */
// The purpose of this is to stop xray and w/e from preventing you from using huds -- Love, Doohl
- if(istype(glasses, /obj/item/clothing/glasses/hud/health))
- if(client)
- glasses:process_hud(src)
- if (!druggy)
- see_invisible = 0
- if(istype(glasses, /obj/item/clothing/glasses/hud/security))
- if(client)
- glasses:process_hud(src)
- if (!druggy)
- see_invisible = 0
+ else if(istype(glasses, /obj/item/clothing/glasses/sunglasses))
+ see_in_dark = 1
+ if(istype(glasses, /obj/item/clothing/glasses/sunglasses/sechud))
+ var/obj/item/clothing/glasses/sunglasses/sechud/O = glasses
+ if(O.hud) O.hud.process_hud(src)
+ if(!druggy) see_invisible = 0
- if(istype(glasses, /obj/item/clothing/glasses/sunglasses))
- see_in_dark = 1
- if(istype(glasses, /obj/item/clothing/glasses/sunglasses/sechud))
- if(client)
- if(glasses:hud)
- glasses:hud:process_hud(src)
- if (!druggy)
- see_invisible = 0
+ else if(istype(glasses, /obj/item/clothing/glasses/hud))
+ var/obj/item/clothing/glasses/hud/health/O = glasses
-/*
- if (istype(glasses, /obj/item/clothing/glasses))
- sight = glasses.vision_flags
- see_in_dark = 2 + glasses.darkness_view
- see_invisible = invisa_view
+ if(istype(O, /obj/item/clothing/glasses/hud/health))
+ O.process_hud(src)
+ if(!druggy) see_invisible = 0
- if(istype(glasses, /obj/item/clothing/glasses/hud))
- if(client)
- glasses:process_hud(src)
-*/
-//Should finish this up later
+ else if(istype(O, /obj/item/clothing/glasses/hud/security))
+ O.process_hud(src)
+ if(!druggy) see_invisible = 0
+ if(sleep && !hal_crit) sleep.icon_state = "sleep[sleeping]" //used?
-
- if (sleep && !hal_crit) sleep.icon_state = text("sleep[]", sleeping)
- if (rest) rest.icon_state = text("rest[]", resting)
-
- if (healths)
- if (stat != 2)
- switch(health - halloss)
- if(100 to INFINITY)
- healths.icon_state = "health0"
- if(80 to 100)
- healths.icon_state = "health1"
- if(60 to 80)
- healths.icon_state = "health2"
- if(40 to 60)
- healths.icon_state = "health3"
- if(20 to 40)
- healths.icon_state = "health4"
- if(0 to 20)
- healths.icon_state = "health5"
+ if(healths)
+ switch(hal_screwyhud)
+ if(1) healths.icon_state = "health6"
+ if(2) healths.icon_state = "health7"
else
- healths.icon_state = "health6"
- else
- healths.icon_state = "health7"
- if(hal_screwyhud == 1)
- healths.icon_state = "health6"
- if(hal_screwyhud == 2)
- healths.icon_state = "health7"
+ switch(health - halloss)
+ if(100 to INFINITY) healths.icon_state = "health0"
+ if(80 to 100) healths.icon_state = "health1"
+ if(60 to 80) healths.icon_state = "health2"
+ if(40 to 60) healths.icon_state = "health3"
+ if(20 to 40) healths.icon_state = "health4"
+ if(0 to 20) healths.icon_state = "health5"
+ else healths.icon_state = "health6"
- if (nutrition_icon)
- switch(nutrition)
- if(450 to INFINITY)
- nutrition_icon.icon_state = "nutrition0"
- if(350 to 450)
- nutrition_icon.icon_state = "nutrition1"
- if(250 to 350)
- nutrition_icon.icon_state = "nutrition2"
- if(150 to 250)
- nutrition_icon.icon_state = "nutrition3"
+ if(nutrition_icon)
+ switch(nutrition)
+ if(450 to INFINITY) nutrition_icon.icon_state = "nutrition0"
+ if(350 to 450) nutrition_icon.icon_state = "nutrition1"
+ if(250 to 350) nutrition_icon.icon_state = "nutrition2"
+ if(150 to 250) nutrition_icon.icon_state = "nutrition3"
+ else nutrition_icon.icon_state = "nutrition4"
+
+ if(pressure)
+ if(istype(wear_suit, /obj/item/clothing/suit/space)||istype(wear_suit, /obj/item/clothing/suit/armor/captain))
+ pressure.icon_state = "pressure0"
else
- nutrition_icon.icon_state = "nutrition4"
+ var/datum/gas_mixture/environment = loc.return_air()
+ if(environment)
+ switch(environment.return_pressure())
+ if(HAZARD_HIGH_PRESSURE to INFINITY) pressure.icon_state = "pressure2"
+ if(WARNING_HIGH_PRESSURE to HAZARD_HIGH_PRESSURE) pressure.icon_state = "pressure1"
+ if(WARNING_LOW_PRESSURE to WARNING_HIGH_PRESSURE) pressure.icon_state = "pressure0"
+ if(HAZARD_LOW_PRESSURE to WARNING_LOW_PRESSURE) pressure.icon_state = "pressure-1"
+ else pressure.icon_state = "pressure-2"
- if (pressure)
+ if(pullin)
+ if(pulling) pullin.icon_state = "pull1"
+ else pullin.icon_state = "pull0"
+// if(rest) //Not used with new UI
+// if(resting || lying || sleeping) rest.icon_state = "rest1"
+// else rest.icon_state = "rest0"
+ if(toxin)
+ if(hal_screwyhud == 4 || toxins_alert) toxin.icon_state = "tox1"
+ else toxin.icon_state = "tox0"
+ if(oxygen)
+ if(hal_screwyhud == 3 || oxygen_alert) oxygen.icon_state = "oxy1"
+ else oxygen.icon_state = "oxy0"
+ if(fire)
+ if(fire_alert) fire.icon_state = "fire1"
+ else fire.icon_state = "fire0"
- if(istype(wear_suit, /obj/item/clothing/suit/space)||istype(wear_suit, /obj/item/clothing/suit/armor/captain))
- pressure.icon_state = "pressure0"
+ if(bodytemp)
+ switch(bodytemperature) //310.055 optimal body temp
+ if(370 to INFINITY) bodytemp.icon_state = "temp4"
+ if(350 to 370) bodytemp.icon_state = "temp3"
+ if(335 to 350) bodytemp.icon_state = "temp2"
+ if(320 to 335) bodytemp.icon_state = "temp1"
+ if(300 to 320) bodytemp.icon_state = "temp0"
+ if(295 to 300) bodytemp.icon_state = "temp-1"
+ if(280 to 295) bodytemp.icon_state = "temp-2"
+ if(260 to 280) bodytemp.icon_state = "temp-3"
+ else bodytemp.icon_state = "temp-4"
+ if(blind)
+ if(blinded) blind.layer = 18
+ else blind.layer = 0
+
+ if( disabilities & NEARSIGHTED && !istype(glasses, /obj/item/clothing/glasses/regular) )
+ client.screen += hud_used.vimpaired
+ if(eye_blurry) client.screen += hud_used.blurry
+ if(druggy) client.screen += hud_used.druggy
+
+ if( istype(head, /obj/item/clothing/head/welding) )
+ var/obj/item/clothing/head/welding/O = head
+ if(!O.up && tinted_weldhelh)
+ client.screen += hud_used.darkMask
+
+ if(eye_stat > 20)
+ if(eye_stat > 30) client.screen += hud_used.darkMask
+ else client.screen += hud_used.vimpaired
+
+ if(machine)
+ if(!machine.check_eye(src)) reset_view(null)
else
- var/datum/gas_mixture/environment = loc.return_air()
- if(environment)
- switch(environment.return_pressure())
- if(HAZARD_HIGH_PRESSURE to INFINITY)
- pressure.icon_state = "pressure2"
- if(WARNING_HIGH_PRESSURE to HAZARD_HIGH_PRESSURE)
- pressure.icon_state = "pressure1"
- if(WARNING_LOW_PRESSURE to WARNING_HIGH_PRESSURE)
- pressure.icon_state = "pressure0"
- if(HAZARD_LOW_PRESSURE to WARNING_LOW_PRESSURE)
- pressure.icon_state = "pressure-1"
- else
- pressure.icon_state = "pressure-2"
-
- if(pullin) pullin.icon_state = "pull[pulling ? 1 : 0]"
-
- if(rest) rest.icon_state = "rest[(resting || lying || sleeping) ? 1 : 0]"
-
-
- if (toxin || hal_screwyhud == 4) toxin.icon_state = "tox[toxins_alert ? 1 : 0]"
- if (oxygen || hal_screwyhud == 3) oxygen.icon_state = "oxy[oxygen_alert ? 1 : 0]"
- if (fire) fire.icon_state = "fire[fire_alert ? 1 : 0]" //NOTE: INVESTIGATE NUKE BURNINGS
- //NOTE: the alerts dont reset when youre out of danger. dont blame me,
- //blame the person who coded them. Temporary fix added.
-
- if(bodytemp)
- switch(bodytemperature) //310.055 optimal body temp
- if(370 to INFINITY)
- bodytemp.icon_state = "temp4"
- if(350 to 370)
- bodytemp.icon_state = "temp3"
- if(335 to 350)
- bodytemp.icon_state = "temp2"
- if(320 to 335)
- bodytemp.icon_state = "temp1"
- if(300 to 320)
- bodytemp.icon_state = "temp0"
- if(295 to 300)
- bodytemp.icon_state = "temp-1"
- if(280 to 295)
- bodytemp.icon_state = "temp-2"
- if(260 to 280)
- bodytemp.icon_state = "temp-3"
- else
- bodytemp.icon_state = "temp-4"
-
- if(!client) return 0 //Wish we did not need these
- client.screen.Remove(hud_used.blurry, hud_used.druggy, hud_used.vimpaired, hud_used.darkMask)
-
- if ((blind && stat != 2))
- if(blinded)
- blind.layer = 18
- else
- blind.layer = 0
-
- if( disabilities & 1 && !istype(glasses, /obj/item/clothing/glasses/regular) )
- client.screen += hud_used.vimpaired
-
- if(eye_blurry)
- client.screen += hud_used.blurry
-
- if(druggy)
- client.screen += hud_used.druggy
-
- if( istype(head, /obj/item/clothing/head/welding) )
- if(!head:up && tinted_weldhelh)
- client.screen += hud_used.darkMask
-
- if(eye_stat > 20)
- if((eye_stat > 30))
- client.screen += hud_used.darkMask
- else
- client.screen += hud_used.vimpaired
-
-
-
- if (stat != 2)
- if (machine)
- if (!( machine.check_eye(src) ))
- reset_view(null)
- else
- if(!client.adminobs)
- reset_view(null)
-
+ if(!client.adminobs) reset_view(null)
return 1
proc/handle_random_events()
- /* // probably stupid -- Doohl
- if (prob(1) && prob(2))
- spawn(0)
- emote("sneeze")
- return
- */
-
// Puke if toxloss is too high
if(!stat)
if (getToxLoss() >= 45 && nutrition > 20)
diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm
index 134ba694b16..876f130f6db 100644
--- a/code/modules/mob/living/carbon/human/update_icons.dm
+++ b/code/modules/mob/living/carbon/human/update_icons.dm
@@ -521,18 +521,10 @@ Please contact me on #coderbus IRC. ~Carn x
standing = null
else
- if( istype(wear_suit, /obj/item/clothing/suit/straight_jacket) ) //TODO
- if (handcuffed) //
- handcuffed.loc = loc //
- handcuffed.layer = initial(handcuffed.layer) //
- handcuffed = null //
- if (l_hand || r_hand) //
- var/h = hand //
- hand = 1 //
- drop_item() //
- hand = 0 //
- drop_item() //
- hand = h //
+ if( istype(wear_suit, /obj/item/clothing/suit/straight_jacket) )
+ drop_from_inventory(handcuffed)
+ drop_l_hand()
+ drop_r_hand()
if(wear_suit.blood_DNA)
var/t_state
diff --git a/code/modules/mob/living/carbon/human/whisper.dm b/code/modules/mob/living/carbon/human/whisper.dm
index 0c79f8e1af3..35608a15a01 100644
--- a/code/modules/mob/living/carbon/human/whisper.dm
+++ b/code/modules/mob/living/carbon/human/whisper.dm
@@ -30,7 +30,7 @@
var/mob/living/carbon/human/H = src
alt_name = " (as [H.get_id_name("Unknown")])"
// Mute disability
- if (src.sdisabilities & 2)
+ if (src.sdisabilities & MUTE)
return
if (istype(src.wear_mask, /obj/item/clothing/mask/muzzle))
diff --git a/code/modules/mob/living/carbon/metroid/examine.dm b/code/modules/mob/living/carbon/metroid/examine.dm
index 5785a378c5e..ec25848ccc0 100644
--- a/code/modules/mob/living/carbon/metroid/examine.dm
+++ b/code/modules/mob/living/carbon/metroid/examine.dm
@@ -2,7 +2,7 @@
set src in oview()
if(!usr || !src) return
- if(((usr.sdisabilities & 1) || usr.blinded || usr.stat) && !(istype(usr,/mob/dead/observer/)))
+ if( (usr.sdisabilities & BLIND || usr.blinded || usr.stat) && !istype(usr,/mob/dead/observer) )
usr << "Something is there but you can't see it."
return
diff --git a/code/modules/mob/living/carbon/metroid/life.dm b/code/modules/mob/living/carbon/metroid/life.dm
index 42d78f72ea6..1817a5a0297 100644
--- a/code/modules/mob/living/carbon/metroid/life.dm
+++ b/code/modules/mob/living/carbon/metroid/life.dm
@@ -461,9 +461,9 @@
src.density = !( src.lying )
- if (src.sdisabilities & 1)
+ if (src.sdisabilities & BLIND)
src.blinded = 1
- if (src.sdisabilities & 4)
+ if (src.sdisabilities & DEAF)
src.ear_deaf = 1
if (src.eye_blurry > 0)
diff --git a/code/modules/mob/living/carbon/monkey/examine.dm b/code/modules/mob/living/carbon/monkey/examine.dm
index b1583999645..869482b13f4 100644
--- a/code/modules/mob/living/carbon/monkey/examine.dm
+++ b/code/modules/mob/living/carbon/monkey/examine.dm
@@ -2,7 +2,7 @@
set src in oview()
if(!usr || !src) return
- if(((usr.sdisabilities & 1) || usr.blinded || usr.stat) && !(istype(usr,/mob/dead/observer/)))
+ if( (usr.sdisabilities & BLIND || usr.blinded || usr.stat) && !istype(usr,/mob/dead/observer) )
usr << "Something is there but you can't see it."
return
diff --git a/code/modules/mob/living/carbon/monkey/life.dm b/code/modules/mob/living/carbon/monkey/life.dm
index 9698b9c89c5..ac08a337a6d 100644
--- a/code/modules/mob/living/carbon/monkey/life.dm
+++ b/code/modules/mob/living/carbon/monkey/life.dm
@@ -81,23 +81,23 @@
proc/handle_disabilities()
- if (disabilities & 2)
+ if (disabilities & EPILEPSY)
if ((prob(1) && paralysis < 10))
src << "\red You have a seizure!"
Paralyse(10)
- if (disabilities & 4)
+ if (disabilities & COUGHING)
if ((prob(5) && paralysis <= 1))
drop_item()
spawn( 0 )
emote("cough")
return
- if (disabilities & 8)
+ if (disabilities & TOURETTES)
if ((prob(10) && paralysis <= 1))
Stun(10)
spawn( 0 )
emote("twitch")
return
- if (disabilities & 16)
+ if (disabilities & NERVOUS)
if (prob(10))
stuttering = max(10, stuttering)
@@ -426,16 +426,16 @@
stat = CONSCIOUS
//Eyes
- if(sdisabilities & 1) //disabled-blind, doesn't get better on its own
+ if(sdisabilities & BLIND) //disabled-blind, doesn't get better on its own
blinded = 1
else if(eye_blind) //blindness, heals slowly over time
eye_blind = max(eye_blind-1,0)
blinded = 1
- else if(eye_blurry) //blurry eyes heal slowly
+ else if(eye_blurry) //blurry eyes heal slowly
eye_blurry = max(eye_blurry-1, 0)
//Ears
- if(sdisabilities & 4) //disabled-deaf, doesn't get better on its own
+ if(sdisabilities & DEAF) //disabled-deaf, doesn't get better on its own
ear_deaf = max(ear_deaf, 1)
else if(ear_deaf) //deafness, heals slowly over time
ear_deaf = max(ear_deaf-1, 0)
@@ -554,7 +554,7 @@
else
blind.layer = 0
- if (disabilities & 1)
+ if (disabilities & NEARSIGHTED)
client.screen += hud_used.vimpaired
if (eye_blurry)
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index a167f906588..cec328a1bfb 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -242,6 +242,7 @@
buckled = initial(src.buckled)
handcuffed = initial(src.handcuffed)
stat = CONSCIOUS
+ regenerate_icons()
..()
return
diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index f36506edcae..3afe593f33e 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -97,7 +97,7 @@ var/list/department_radio_keys = list(
return
// Mute disability
- if (sdisabilities & 2)
+ if (sdisabilities & MUTE)
return
if (istype(wear_mask, /obj/item/clothing/mask/muzzle))
diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm
index 0399540c0b2..1ee631741d0 100644
--- a/code/modules/mob/living/silicon/ai/ai.dm
+++ b/code/modules/mob/living/silicon/ai/ai.dm
@@ -28,14 +28,9 @@
verbs += /mob/living/silicon/ai/proc/show_laws_verb
if (istype(loc, /turf))
- verbs += /mob/living/silicon/ai/proc/ai_call_shuttle
- verbs += /mob/living/silicon/ai/proc/ai_camera_track
- verbs += /mob/living/silicon/ai/proc/ai_camera_list
- //Added ai_network_change by Mord_Sith
- verbs += /mob/living/silicon/ai/proc/ai_network_change
- verbs += /mob/living/silicon/ai/proc/ai_statuschange
- //Hologram verb./N
- verbs += /mob/living/silicon/ai/proc/ai_hologram_change
+ verbs.Add(/mob/living/silicon/ai/proc/ai_call_shuttle,/mob/living/silicon/ai/proc/ai_camera_track, \
+ /mob/living/silicon/ai/proc/ai_camera_list, /mob/living/silicon/ai/proc/ai_network_change, \
+ /mob/living/silicon/ai/proc/ai_statuschange, /mob/living/silicon/ai/proc/ai_hologram_change)
if(!safety)//Only used by AIize() to successfully spawn an AI.
if (!B)//If there is no player/brain inside.
@@ -61,12 +56,6 @@
spawn(0)
ainame(src)
- if(client)
- for(var/obj/effect/rune/rune in world)
- var/image/blood = image('blood.dmi', loc = rune, icon_state = "floor[rand(1,7)]")
- blood.override = 1
- client.images += blood
-
return
diff --git a/code/modules/mob/living/silicon/ai/examine.dm b/code/modules/mob/living/silicon/ai/examine.dm
index c4e9d1ddbcc..1a36ce5a9b7 100644
--- a/code/modules/mob/living/silicon/ai/examine.dm
+++ b/code/modules/mob/living/silicon/ai/examine.dm
@@ -2,7 +2,7 @@
set src in oview()
if(!usr || !src) return
- if(((usr.sdisabilities & 1) || usr.blinded || usr.stat) && !(istype(usr,/mob/dead/observer/)))
+ if( (usr.sdisabilities & BLIND || usr.blinded || usr.stat) && !istype(usr,/mob/dead/observer) )
usr << "Something is there but you can't see it."
return
diff --git a/code/modules/mob/living/silicon/ai/login.dm b/code/modules/mob/living/silicon/ai/login.dm
index 13464e3e15a..8e1c1c1f081 100644
--- a/code/modules/mob/living/silicon/ai/login.dm
+++ b/code/modules/mob/living/silicon/ai/login.dm
@@ -1,6 +1,6 @@
/mob/living/silicon/ai/Login()
for(var/obj/effect/rune/rune in world)
- var/image/blood = image('blood.dmi', loc = rune, icon_state = "floor[rand(1,7)]")
+ var/image/blood = image(loc = rune)
blood.override = 1
client.images += blood
..()
diff --git a/code/modules/mob/living/silicon/robot/examine.dm b/code/modules/mob/living/silicon/robot/examine.dm
index c29674a6f27..90555bf0254 100644
--- a/code/modules/mob/living/silicon/robot/examine.dm
+++ b/code/modules/mob/living/silicon/robot/examine.dm
@@ -2,7 +2,7 @@
set src in oview()
if(!usr || !src) return
- if(((usr.sdisabilities & 1) || usr.blinded || usr.stat) && !(istype(usr,/mob/dead/observer/)))
+ if( (usr.sdisabilities & BLIND || usr.blinded || usr.stat) && !istype(usr,/mob/dead/observer) )
usr << "Something is there but you can't see it."
return
diff --git a/code/modules/mob/living/silicon/robot/life.dm b/code/modules/mob/living/silicon/robot/life.dm
index 14033fa6df9..cb75500620d 100644
--- a/code/modules/mob/living/silicon/robot/life.dm
+++ b/code/modules/mob/living/silicon/robot/life.dm
@@ -128,9 +128,9 @@
src.density = !( src.lying )
- if ((src.sdisabilities & 1))
+ if ((src.sdisabilities & BLIND))
src.blinded = 1
- if ((src.sdisabilities & 4))
+ if ((src.sdisabilities & DEAF))
src.ear_deaf = 1
if (src.eye_blurry > 0)
@@ -259,7 +259,7 @@
else
src.blind.layer = 0
- if (src.disabilities & 1)
+ if (src.disabilities & NEARSIGHTED)
src.client.screen += src.hud_used.vimpaired
if (src.eye_blurry)
diff --git a/code/modules/mob/living/simple_animal/shade.dm b/code/modules/mob/living/simple_animal/shade.dm
index 00b5e72f444..c16313b7e87 100644
--- a/code/modules/mob/living/simple_animal/shade.dm
+++ b/code/modules/mob/living/simple_animal/shade.dm
@@ -22,6 +22,7 @@
max_tox = 0
speed = -1
stop_automated_movement = 1
+ status_flags = 0
Life()
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index 294e2519f46..f9f0ae8b026 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -43,22 +43,22 @@
/mob/proc/show_message(msg, type, alt, alt_type)//Message, type of message (1 or 2), alternative message, alt message type (1 or 2)
if(!client) return
if (type)
- if ((type & 1 && (sdisabilities & 1 || (blinded || paralysis))))//Vision related
+ if(type & 1 && (sdisabilities & BLIND || blinded || paralysis) )//Vision related
if (!( alt ))
return
else
msg = alt
type = alt_type
- if ((type & 2 && (sdisabilities & 4 || ear_deaf)))//Hearing related
+ if (type & 2 && (sdisabilities & DEAF || ear_deaf))//Hearing related
if (!( alt ))
return
else
msg = alt
type = alt_type
- if ((type & 1 && sdisabilities & 1))
+ if ((type & 1 && sdisabilities & BLIND))
return
// Added voice muffling for Issue 41.
- if (stat == 1 || sleeping > 0)
+ if(stat == UNCONSCIOUS || sleeping > 0)
src << "... You can almost hear someone talking ..."
else
src << msg
diff --git a/code/setup.dm b/code/setup.dm
index a3428598ea9..e973a499e3e 100644
--- a/code/setup.dm
+++ b/code/setup.dm
@@ -261,6 +261,18 @@ var/MAX_EXPLOSION_RANGE = 14
#define NANOREGEN 28 // regenerative nanobots, -3 all damage types per second
+//disabilities
+#define NEARSIGHTED 1
+#define EPILEPSY 2
+#define COUGHING 4
+#define TOURETTES 8
+#define NERVOUS 16
+
+//sdisabilities
+#define BLIND 1
+#define MUTE 2
+#define DEAF 4
+
//mob/var/stat things
#define CONSCIOUS 0
#define UNCONSCIOUS 1
@@ -314,7 +326,7 @@ var/list/global_mutations = list() // list of hidden mutation things
//Bluh shields
-//Damage things //TODO: merge these down to reduce on defines >_>
+//Damage things //TODO: merge these down to reduce on defines
#define BRUTE "brute"
#define BURN "fire"
#define TOX "tox"
@@ -334,6 +346,7 @@ var/list/global_mutations = list() // list of hidden mutation things
#define CANSTUN 1
#define CANWEAKEN 2
#define CANPARALYSE 4
+#define DISFIGURED 65536 //I'll probably move this elsewhere if I ever get wround to writing a bitflag mob-damage system
var/static/list/scarySounds = list('thudswoosh.ogg','Taser.ogg','armbomb.ogg','hiss1.ogg','hiss2.ogg','hiss3.ogg','hiss4.ogg','hiss5.ogg','hiss6.ogg','Glassbr1.ogg','Glassbr2.ogg','Glassbr3.ogg','Welder.ogg','Welder2.ogg','airlock.ogg','clownstep1.ogg','clownstep2.ogg')