diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm
index 56b4044c7f2..6fe3cb03d0b 100644
--- a/code/game/gamemodes/cult/runes.dm
+++ b/code/game/gamemodes/cult/runes.dm
@@ -750,11 +750,11 @@ var/list/sacrificed = list()
if (cultist.handcuffed)
cultist.handcuffed.loc = cultist.loc
cultist.handcuffed = null
- cultist.update_inv_handcuffed(0)
+ cultist.update_inv_handcuffed()
if (cultist.legcuffed)
cultist.legcuffed.loc = cultist.loc
cultist.legcuffed = null
- cultist.update_inv_legcuffed(0)
+ cultist.update_inv_legcuffed()
if (istype(cultist.wear_mask, /obj/item/clothing/mask/muzzle))
cultist.unEquip(cultist.wear_mask)
if(istype(cultist.loc, /obj/structure/closet)&&cultist.loc:welded)
diff --git a/code/game/objects/items/weapons/cigs_lighters.dm b/code/game/objects/items/weapons/cigs_lighters.dm
index 8af07589f9c..07c8af45854 100644
--- a/code/game/objects/items/weapons/cigs_lighters.dm
+++ b/code/game/objects/items/weapons/cigs_lighters.dm
@@ -195,9 +195,9 @@ CIGARETTE PACKETS ARE IN FANCY.DM
//can't think of any other way to update the overlays :<
if(ismob(loc))
var/mob/M = loc
- M.update_inv_wear_mask(0)
- M.update_inv_l_hand(0)
- M.update_inv_r_hand(0)
+ M.update_inv_wear_mask()
+ M.update_inv_l_hand()
+ M.update_inv_r_hand()
/obj/item/clothing/mask/cigarette/proc/handle_reagents()
@@ -365,7 +365,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
lit = 0
icon_state = icon_off
item_state = icon_off
- M.update_inv_wear_mask(0)
+ M.update_inv_wear_mask()
packeditem = 0
name = "empty [initial(name)]"
SSobj.processing.Remove(src)
diff --git a/code/game/objects/items/weapons/handcuffs.dm b/code/game/objects/items/weapons/handcuffs.dm
index f8a00e2fd38..6aad3fe9b6c 100644
--- a/code/game/objects/items/weapons/handcuffs.dm
+++ b/code/game/objects/items/weapons/handcuffs.dm
@@ -193,7 +193,7 @@
if(!C.legcuffed) //beartrap can't cuff your leg if there's already a beartrap or legcuffs.
C.legcuffed = src
src.loc = C
- C.update_inv_legcuffed(0)
+ C.update_inv_legcuffed()
feedback_add_details("handcuffs","B") //Yes, I know they're legcuffs. Don't change this, no need for an extra variable. The "B" is used to tell them apart.
else if(isanimal(L))
var/mob/living/simple_animal/SA = L
diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm
index aeb0602a5d6..1daf245f01b 100644
--- a/code/game/objects/structures/watercloset.dm
+++ b/code/game/objects/structures/watercloset.dm
@@ -283,34 +283,34 @@
if(H.head)
if(H.head.clean_blood())
- H.update_inv_head(0)
+ H.update_inv_head()
if(H.wear_suit)
if(H.wear_suit.clean_blood())
- H.update_inv_wear_suit(0)
+ H.update_inv_wear_suit()
else if(H.w_uniform)
if(H.w_uniform.clean_blood())
- H.update_inv_w_uniform(0)
+ H.update_inv_w_uniform()
if(washgloves)
clean_blood()
if(H.shoes && washshoes)
if(H.shoes.clean_blood())
- H.update_inv_shoes(0)
+ H.update_inv_shoes()
if(H.wear_mask)
if(washmask)
if(H.wear_mask.clean_blood())
- H.update_inv_wear_mask(0)
+ H.update_inv_wear_mask()
else
H.lip_style = null
H.update_body()
if(H.glasses && washglasses)
if(H.glasses.clean_blood())
- H.update_inv_glasses(0)
+ H.update_inv_glasses()
if(H.ears && washears)
if(H.ears.clean_blood())
- H.update_inv_ears(0)
+ H.update_inv_ears()
if(H.belt)
if(H.belt.clean_blood())
- H.update_inv_belt(0)
+ H.update_inv_belt()
else
if(M.wear_mask) //if the mob is not human, it cleans the mask without asking for bitflags
if(M.wear_mask.clean_blood())
diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm
index 26c6cced4ef..1997ac51b41 100644
--- a/code/modules/clothing/clothing.dm
+++ b/code/modules/clothing/clothing.dm
@@ -259,7 +259,7 @@ BLIND // can't see anything
if(istype(loc, /mob/living/carbon/human))
var/mob/living/carbon/human/H = loc
- H.update_inv_w_uniform(0)
+ H.update_inv_w_uniform()
return 1
@@ -390,7 +390,7 @@ atom/proc/generate_female_clothing(index,t_color,icon,type)
if(istype(loc, /mob/living/carbon/human))
var/mob/living/carbon/human/H = loc
- H.update_inv_w_uniform(0)
+ H.update_inv_w_uniform()
/obj/item/clothing/proc/weldingvisortoggle() //Malk: proc to toggle welding visors on helmets, masks, goggles, etc.
if(can_use(usr))
@@ -414,11 +414,11 @@ atom/proc/generate_female_clothing(index,t_color,icon,type)
tint = 0
if(istype(src, /obj/item/clothing/head)) //makes the mob-overlays update
- usr.update_inv_head(0)
+ usr.update_inv_head()
if(istype(src, /obj/item/clothing/glasses))
- usr.update_inv_glasses(0)
+ usr.update_inv_glasses()
if(istype(src, /obj/item/clothing/mask))
- usr.update_inv_wear_mask(0)
+ usr.update_inv_wear_mask()
/obj/item/clothing/proc/can_use(mob/user)
if(user && ismob(user))
diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm
index 2d2ca4ff400..5bdf5f9eaff 100644
--- a/code/modules/clothing/head/helmet.dm
+++ b/code/modules/clothing/head/helmet.dm
@@ -58,14 +58,14 @@
flags_inv |= (visor_flags_inv)
icon_state = initial(icon_state)
usr << "[toggle_message] \the [src]."
- usr.update_inv_head(0)
+ usr.update_inv_head()
else
up = !up
flags &= ~(visor_flags)
flags_inv &= ~(visor_flags_inv)
icon_state = "[initial(icon_state)]up"
usr << "[alt_toggle_message] \the [src]"
- usr.update_inv_head(0)
+ usr.update_inv_head()
if(active_sound)
while(up)
playsound(src.loc, "[active_sound]", 100, 0, 4)
@@ -180,7 +180,7 @@
if(istype(loc, /mob/living/carbon/human))
var/mob/living/carbon/human/H = loc
- H.update_inv_head(0)
+ H.update_inv_head()
return
@@ -214,7 +214,7 @@
update_helmlight(user)
S.update_brightness(user)
update_icon()
- usr.update_inv_head(0)
+ usr.update_inv_head()
verbs -= /obj/item/clothing/head/helmet/proc/toggle_helmlight
return
diff --git a/code/modules/clothing/head/soft_caps.dm b/code/modules/clothing/head/soft_caps.dm
index 8c7fa5b2204..0f6e39d72cf 100644
--- a/code/modules/clothing/head/soft_caps.dm
+++ b/code/modules/clothing/head/soft_caps.dm
@@ -38,7 +38,7 @@
else
icon_state = "[item_color]soft"
user << "You flip the hat back in normal position."
- usr.update_inv_head(0) //so our mob-overlays update
+ usr.update_inv_head() //so our mob-overlays update
/obj/item/clothing/head/soft/examine(mob/user)
..()
diff --git a/code/modules/clothing/shoes/magboots.dm b/code/modules/clothing/shoes/magboots.dm
index 843f69e25c5..7759f4bd7e6 100644
--- a/code/modules/clothing/shoes/magboots.dm
+++ b/code/modules/clothing/shoes/magboots.dm
@@ -29,7 +29,7 @@
magpulse = !magpulse
icon_state = "[magboot_state][magpulse]"
user << "You [magpulse ? "enable" : "disable"] the mag-pulse traction system."
- user.update_inv_shoes(0) //so our mob-overlays update
+ user.update_inv_shoes() //so our mob-overlays update
user.update_gravity(user.mob_has_gravity())
/obj/item/clothing/shoes/magboots/negates_gravity()
diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm
index 4e0a620168d..8c8ab32c83b 100644
--- a/code/modules/mob/inventory.dm
+++ b/code/modules/mob/inventory.dm
@@ -30,7 +30,7 @@
W.equipped(src,slot_l_hand)
if(client) client.screen |= W
if(pulling == W) stop_pulling()
- update_inv_l_hand(0)
+ update_inv_l_hand()
W.pixel_x = initial(W.pixel_x)
W.pixel_y = initial(W.pixel_y)
return 1
@@ -49,7 +49,7 @@
W.equipped(src,slot_r_hand)
if(client) client.screen |= W
if(pulling == W) stop_pulling()
- update_inv_r_hand(0)
+ update_inv_r_hand()
W.pixel_x = initial(W.pixel_x)
W.pixel_y = initial(W.pixel_y)
return 1
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 85a63338919..65d84763147 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm
@@ -1,12 +1,3 @@
-//Xeno Overlays Indexes//////////
-#define X_L_HAND_LAYER 1
-#define X_R_HAND_LAYER 2
-#define X_FIRE_LAYER 3
-#define X_TOTAL_LAYERS 3
-/////////////////////////////////
-
-/mob/living/carbon/alien/humanoid
- var/list/overlays_standing[X_TOTAL_LAYERS]
/mob/living/carbon/alien/humanoid/update_icons()
update_hud() //TODO: remove the need for this to be here
@@ -50,15 +41,10 @@
pixel_y = get_standard_pixel_y_offset(lying)
/mob/living/carbon/alien/humanoid/regenerate_icons()
- ..()
- if (notransform) return
-
- update_inv_r_hand(0)
- update_inv_l_hand(0)
- update_hud()
-// update_icons() //Handled in update_transform(), leaving this here as a reminder
- update_fire()
- update_transform()
+ if(!..())
+ update_hud()
+ // update_icons() //Handled in update_transform(), leaving this here as a reminder
+ update_transform()
/mob/living/carbon/alien/humanoid/update_transform() //The old method of updating lying/standing was update_icons(). Aliens still expect that.
if(lying > 0)
@@ -67,47 +53,12 @@
update_icons()
-
-/mob/living/carbon/alien/humanoid/update_hud()
- if(client)
- client.screen |= contents
-
-
-/mob/living/carbon/alien/humanoid/update_inv_r_hand(update_icons = 1)
- if(r_hand)
- var/t_state = r_hand.item_state
- if(!t_state)
- t_state = r_hand.icon_state
- r_hand.screen_loc = ui_rhand
- overlays_standing[X_R_HAND_LAYER] = image("icon" = r_hand.righthand_file, "icon_state" = t_state)
- else
- overlays_standing[X_R_HAND_LAYER] = null
- if(update_icons)
- update_icons()
-
-/mob/living/carbon/alien/humanoid/update_inv_l_hand(update_icons = 1)
- if(l_hand)
- var/t_state = l_hand.item_state
- if(!t_state)
- t_state = l_hand.icon_state
- l_hand.screen_loc = ui_lhand
- overlays_standing[X_L_HAND_LAYER] = image("icon" = l_hand.lefthand_file, "icon_state" = t_state)
- else
- overlays_standing[X_L_HAND_LAYER] = null
- if(update_icons)
- update_icons()
-
-/mob/living/carbon/alien/humanoid/update_fire()
- overlays -= overlays_standing[X_FIRE_LAYER]
- if(on_fire)
- overlays_standing[X_FIRE_LAYER] = image("icon"='icons/mob/OnFire.dmi', "icon_state"="Standing", "layer"= -X_FIRE_LAYER)
- overlays += overlays_standing[X_FIRE_LAYER]
- return
- else
- overlays_standing[X_FIRE_LAYER] = null
-
-//Xeno Overlays Indexes//////////
-#undef X_L_HAND_LAYER
-#undef X_R_HAND_LAYER
-#undef X_FIRE_LAYER
-#undef X_TOTAL_LAYERS
+#undef FACEMASK_LAYER
+#undef HEAD_LAYER
+#undef BACK_LAYER
+#undef LEGCUFF_LAYER
+#undef HANDCUFF_LAYER
+#undef L_HAND_LAYER
+#undef R_HAND_LAYER
+#undef FIRE_LAYER
+#undef TOTAL_LAYERS
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/alien/larva/update_icons.dm b/code/modules/mob/living/carbon/alien/larva/update_icons.dm
index 104811c4fc1..dba2774866a 100644
--- a/code/modules/mob/living/carbon/alien/larva/update_icons.dm
+++ b/code/modules/mob/living/carbon/alien/larva/update_icons.dm
@@ -22,4 +22,7 @@
icon_state = "larva[state]"
/mob/living/carbon/alien/larva/update_transform() //All this is handled in update_icons()
- return update_icons()
\ No newline at end of file
+ return update_icons()
+
+/mob/living/carbon/larva/update_inv_handcuffed()
+ return
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm
index b2132b36d51..6c4d86d89ae 100644
--- a/code/modules/mob/living/carbon/carbon.dm
+++ b/code/modules/mob/living/carbon/carbon.dm
@@ -433,13 +433,13 @@ var/const/GALOSHES_DONT_HELP = 8
handcuffed = null
if(buckled && buckled.buckle_requires_restraints)
buckled.unbuckle_mob()
- update_inv_handcuffed(0)
+ update_inv_handcuffed()
return
if(legcuffed)
legcuffed.loc = loc
legcuffed.dropped()
legcuffed = null
- update_inv_legcuffed(0)
+ update_inv_legcuffed()
else
src << "You fail to remove [I]!"
@@ -456,11 +456,11 @@ var/const/GALOSHES_DONT_HELP = 8
if(handcuffed)
handcuffed = null
- update_inv_handcuffed(0)
+ update_inv_handcuffed()
return
else
legcuffed = null
- update_inv_legcuffed(0)
+ update_inv_legcuffed()
else
src << "You fail to break [I]!"
@@ -470,7 +470,7 @@ var/const/GALOSHES_DONT_HELP = 8
handcuffed = null
if (buckled && buckled.buckle_requires_restraints)
buckled.unbuckle_mob()
- update_inv_handcuffed(0)
+ update_inv_handcuffed()
if (client)
client.screen -= W
if (W)
@@ -481,7 +481,7 @@ var/const/GALOSHES_DONT_HELP = 8
if (legcuffed)
var/obj/item/weapon/W = legcuffed
legcuffed = null
- update_inv_legcuffed(0)
+ update_inv_legcuffed()
if (client)
client.screen -= W
if (W)
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 939fbf76081..679fb191dc1 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -791,11 +791,11 @@
var/mob/living/carbon/human/H = src
if(H.gloves)
if(H.gloves.clean_blood())
- H.update_inv_gloves(0)
+ H.update_inv_gloves()
else
..() // Clear the Blood_DNA list
if(H.bloody_hands)
H.bloody_hands = 0
H.bloody_hands_mob = null
- H.update_inv_gloves(0)
+ H.update_inv_gloves()
update_icons() //apply the now updated overlays to the mob
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm
index 01787095f8b..06944984cf5 100644
--- a/code/modules/mob/living/carbon/human/human_defense.dm
+++ b/code/modules/mob/living/carbon/human/human_defense.dm
@@ -170,10 +170,10 @@ emp_act
if(get_dist(H, src) <= 1) //people with TK won't get smeared with blood
if(H.wear_suit)
H.wear_suit.add_blood(src)
- H.update_inv_wear_suit(0) //updates mob overlays to show the new blood (no refresh)
+ H.update_inv_wear_suit() //updates mob overlays to show the new blood (no refresh)
else if(H.w_uniform)
H.w_uniform.add_blood(src)
- H.update_inv_w_uniform(0) //updates mob overlays to show the new blood (no refresh)
+ H.update_inv_w_uniform() //updates mob overlays to show the new blood (no refresh)
if (H.gloves)
var/obj/item/clothing/gloves/G = H.gloves
G.add_blood(H)
@@ -194,13 +194,13 @@ emp_act
if(bloody) //Apply blood
if(wear_mask)
wear_mask.add_blood(src)
- update_inv_wear_mask(0)
+ update_inv_wear_mask()
if(head)
head.add_blood(src)
- update_inv_head(0)
+ update_inv_head()
if(glasses && prob(33))
glasses.add_blood(src)
- update_inv_glasses(0)
+ update_inv_glasses()
if("chest") //Easier to score a stun but lasts less time
if(stat == CONSCIOUS && I.force && prob(I.force + 10))
@@ -211,10 +211,10 @@ emp_act
if(bloody)
if(wear_suit)
wear_suit.add_blood(src)
- update_inv_wear_suit(0)
+ update_inv_wear_suit()
if(w_uniform)
w_uniform.add_blood(src)
- update_inv_w_uniform(0)
+ update_inv_w_uniform()
if(Iforce > 10 || Iforce >= 5 && prob(33))
forcesay(hit_appends) //forcesay checks stat already
diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm
index a86275539aa..30f90b8c51a 100644
--- a/code/modules/mob/living/carbon/human/inventory.dm
+++ b/code/modules/mob/living/carbon/human/inventory.dm
@@ -167,9 +167,9 @@
return
if(H.equip_to_appropriate_slot(I))
if(hand)
- update_inv_l_hand(0)
+ update_inv_l_hand()
else
- update_inv_r_hand(0)
+ update_inv_r_hand()
else if(s_active && s_active.can_be_inserted(I,1)) //if storage active insert there
s_active.handle_item_insertion(I)
else if(istype(S, /obj/item/weapon/storage) && S.can_be_inserted(I,1)) //see if we have box in other hand
@@ -250,7 +250,7 @@
wear_suit = null
if(I.flags_inv & HIDEJUMPSUIT)
update_inv_w_uniform()
- update_inv_wear_suit(0)
+ update_inv_wear_suit()
else if(I == w_uniform)
if(r_store)
unEquip(r_store, 1) //Again, makes sense for pockets to drop.
@@ -262,45 +262,45 @@
unEquip(belt)
w_uniform = null
update_suit_sensors()
- update_inv_w_uniform(0)
+ update_inv_w_uniform()
else if(I == gloves)
gloves = null
- update_inv_gloves(0)
+ update_inv_gloves()
else if(I == glasses)
glasses = null
- update_inv_glasses(0)
+ update_inv_glasses()
else if(I == ears)
ears = null
- update_inv_ears(0)
+ update_inv_ears()
else if(I == shoes)
shoes = null
- update_inv_shoes(0)
+ update_inv_shoes()
else if(I == belt)
belt = null
- update_inv_belt(0)
+ update_inv_belt()
else if(I == wear_mask)
wear_mask = null
if(I.flags & BLOCKHAIR)
- update_hair(0) //rebuild hair
+ update_hair() //rebuild hair
if(internal)
if(internals)
internals.icon_state = "internal0"
internal = null
sec_hud_set_ID()
- update_inv_wear_mask(0)
+ update_inv_wear_mask()
else if(I == wear_id)
wear_id = null
sec_hud_set_ID()
- update_inv_wear_id(0)
+ update_inv_wear_id()
else if(I == r_store)
r_store = null
- update_inv_pockets(0)
+ update_inv_pockets()
else if(I == l_store)
l_store = null
- update_inv_pockets(0)
+ update_inv_pockets()
else if(I == s_store)
s_store = null
- update_inv_s_store(0)
+ update_inv_s_store()
//This is an UNSAFE proc. Use mob_can_equip() before calling this one! Or rather use equip_to_slot_if_possible() or advanced_equip_to_slot_if_possible()
//set redraw_mob to 0 if you don't wish the hud to be updated - if you're doing it manually in your own proc.
diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm
index 887f52a85d4..4d4876bb4db 100644
--- a/code/modules/mob/living/carbon/human/species.dm
+++ b/code/modules/mob/living/carbon/human/species.dm
@@ -578,17 +578,17 @@
if(H.overeatduration < 100)
H << "You feel fit again!"
H.disabilities &= ~FAT
- H.update_inv_w_uniform(0)
+ H.update_inv_w_uniform()
H.update_inv_wear_suit()
else
if(H.overeatduration > 500)
H << "You suddenly feel blubbery!"
H.disabilities |= FAT
- H.update_inv_w_uniform(0)
+ H.update_inv_w_uniform()
H.update_inv_wear_suit()
// nutrition decrease and satiety
- if (H.nutrition > 0 && H.stat != 2)
+ if (H.nutrition > 0 && H.stat != DEAD)
var/hunger_rate = HUNGER_FACTOR
if(H.satiety > 0)
H.satiety--
@@ -1016,10 +1016,10 @@
if(get_dist(H, H) <= 1) //people with TK won't get smeared with blood
if(H.wear_suit)
H.wear_suit.add_blood(H)
- H.update_inv_wear_suit(0) //updates mob overlays to show the new blood (no refresh)
+ H.update_inv_wear_suit() //updates mob overlays to show the new blood (no refresh)
else if(H.w_uniform)
H.w_uniform.add_blood(H)
- H.update_inv_w_uniform(0) //updates mob overlays to show the new blood (no refresh)
+ H.update_inv_w_uniform() //updates mob overlays to show the new blood (no refresh)
if (H.gloves)
var/obj/item/clothing/gloves/G = H.gloves
G.add_blood(H)
@@ -1042,13 +1042,13 @@
if(bloody) //Apply blood
if(H.wear_mask)
H.wear_mask.add_blood(H)
- H.update_inv_wear_mask(0)
+ H.update_inv_wear_mask()
if(H.head)
H.head.add_blood(H)
- H.update_inv_head(0)
+ H.update_inv_head()
if(H.glasses && prob(33))
H.glasses.add_blood(H)
- H.update_inv_glasses(0)
+ H.update_inv_glasses()
if("chest") //Easier to score a stun but lasts less time
if(H.stat == CONSCIOUS && I.force && prob(I.force + 10))
@@ -1059,10 +1059,10 @@
if(bloody)
if(H.wear_suit)
H.wear_suit.add_blood(H)
- H.update_inv_wear_suit(0)
+ H.update_inv_wear_suit()
if(H.w_uniform)
H.w_uniform.add_blood(H)
- H.update_inv_w_uniform(0)
+ H.update_inv_w_uniform()
if(Iforce > 10 || Iforce >= 5 && prob(33))
H.forcesay(hit_appends) //forcesay checks stat already.
diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm
index aa276babfbd..8866d7fccf9 100644
--- a/code/modules/mob/living/carbon/human/update_icons.dm
+++ b/code/modules/mob/living/carbon/human/update_icons.dm
@@ -47,8 +47,7 @@ If you have any questions/constructive-comments/bugs-to-report
Please contact me on #coderbus IRC. ~Carnie x
//Carn can sometimes be hard to reach now. However IRC is still your best bet for getting help.
*/
-
-//Human Overlays Indexes/////////
+// Human Overlays Indexes /////////////////
#define SPECIES_LAYER 26 // mutantrace colors... these are on a seperate layer in order to prvent
#define BODY_BEHIND_LAYER 25
#define BODY_LAYER 24 //underwear, undershirts, socks, eyes, lips(makeup)
@@ -65,21 +64,11 @@ Please contact me on #coderbus IRC. ~Carnie x
#define GLASSES_LAYER 13
#define BELT_LAYER 12 //Possible make this an overlay of somethign required to wear a belt?
#define SUIT_STORE_LAYER 11
-#define BACK_LAYER 10
-#define HAIR_LAYER 9 //TODO: make part of head layer?
-#define FACEMASK_LAYER 8
-#define HEAD_LAYER 7
-#define HANDCUFF_LAYER 6
-#define LEGCUFF_LAYER 5
-#define L_HAND_LAYER 4
-#define R_HAND_LAYER 3 //Having the two hands seperate seems rather silly, merge them together? It'll allow for code to be reused on mobs with arbitarily many hands
-#define BODY_FRONT_LAYER 2
-#define FIRE_LAYER 1 //If you're on fire
-#define TOTAL_LAYERS 26 //KEEP THIS UP-TO-DATE OR SHIT WILL BREAK ;_;
-//////////////////////////////////
+#define HAIR_LAYER 10 //TODO: make part of head layer?
+#define BODY_FRONT_LAYER 9
-/mob/living/carbon/human
- var/list/overlays_standing[TOTAL_LAYERS]
+//KEEP THE TOTAL_LAYER DEFINE UPDATED !
+//////////////////////////////////////////
/mob/living/carbon/human/proc/update_base_icon_state()
//var/race = dna ? dna.mutantrace : null
@@ -94,17 +83,6 @@ Please contact me on #coderbus IRC. ~Carnie x
icon_state = "[base_icon_state]_s"
-/mob/living/carbon/human/proc/apply_overlay(cache_index)
- var/image/I = overlays_standing[cache_index]
-
- if(I)
- overlays += I
-
-/mob/living/carbon/human/proc/remove_overlay(cache_index)
- if(overlays_standing[cache_index])
- overlays -= overlays_standing[cache_index]
- overlays_standing[cache_index] = null
-
//UPDATES OVERLAYS FROM OVERLAYS_STANDING
//TODO: Remove all instances where this proc is called. It used to be the fastest way to swap between standing/lying.
/mob/living/carbon/human/update_icons()
@@ -174,12 +152,7 @@ Please contact me on #coderbus IRC. ~Carnie x
dna.species.handle_body(src)
/mob/living/carbon/human/update_fire()
-
- remove_overlay(FIRE_LAYER)
- if(on_fire)
- overlays_standing[FIRE_LAYER] = image("icon"='icons/mob/OnFire.dmi', "icon_state"="Standing", "layer"=-FIRE_LAYER)
-
- apply_overlay(FIRE_LAYER)
+ ..("Standing")
/mob/living/carbon/human/proc/update_augments()
@@ -212,33 +185,28 @@ Please contact me on #coderbus IRC. ~Carnie x
/* --------------------------------------- */
//For legacy support.
/mob/living/carbon/human/regenerate_icons()
- ..()
- if(notransform) return
- update_body()
- update_hair()
- update_inv_w_uniform()
- update_inv_wear_id()
- update_inv_gloves()
- update_inv_glasses()
- update_inv_ears()
- update_inv_shoes()
- update_inv_s_store()
- update_inv_wear_mask()
- update_inv_head()
- update_inv_belt()
- update_inv_back()
- update_inv_wear_suit()
- update_inv_r_hand()
- update_inv_l_hand()
- update_inv_handcuffed()
- update_inv_legcuffed()
- update_inv_pockets()
- update_fire()
- update_transform()
- //Hud Stuff
- update_hud()
- // Mutantrace colors
- update_mutcolor()
+
+ if(!..())
+ update_body()
+ update_hair()
+ update_inv_w_uniform()
+ update_inv_wear_id()
+ update_inv_gloves()
+ update_inv_glasses()
+ update_inv_ears()
+ update_inv_shoes()
+ update_inv_s_store()
+ update_inv_wear_mask()
+ update_inv_head()
+ update_inv_belt()
+ update_inv_back()
+ update_inv_wear_suit()
+ update_inv_pockets()
+ update_transform()
+ //Hud Stuff
+ update_hud()
+ // Mutantrace colors
+ update_mutcolor()
/* --------------------------------------- */
//vvvvvv UPDATE_INV PROCS vvvvvv
@@ -414,27 +382,12 @@ Please contact me on #coderbus IRC. ~Carnie x
/mob/living/carbon/human/update_inv_head()
- remove_overlay(HEAD_LAYER)
-
- if(head)
+ var/obj/item/H = ..()
+ if(H)
if(client && hud_used && hud_used.hud_shown)
if(hud_used.inventory_shown) //if the inventory is open ...
- head.screen_loc = ui_head //TODO //...draw the item in the inventory screen
- client.screen += head //Either way, add the item to the HUD
-
- var/image/standing
- if(head.alternate_worn_icon)
- standing = image("icon"=head.alternate_worn_icon, "icon_state"="[head.icon_state]", "layer"=-HEAD_LAYER)
- if(!standing)
- standing = image("icon"='icons/mob/head.dmi', "icon_state"="[head.icon_state]", "layer"=-HEAD_LAYER)
- standing.color = head.color // For now, this is here solely for kitty ears, but everything should do this eventually
- standing.alpha = head.alpha
-
- overlays_standing[HEAD_LAYER] = standing
-
- if(head.blood_DNA)
- standing.overlays += image("icon"='icons/effects/blood.dmi', "icon_state"="helmetblood")
-
+ H.screen_loc = ui_head //TODO //...draw the item in the inventory screen
+ client.screen += H //Either way, add the item to the HUD
apply_overlay(HEAD_LAYER)
@@ -491,6 +444,7 @@ Please contact me on #coderbus IRC. ~Carnie x
apply_overlay(SUIT_LAYER)
+
/mob/living/carbon/human/update_inv_pockets()
if(l_store)
l_store.screen_loc = ui_storage1 //TODO
@@ -503,125 +457,41 @@ Please contact me on #coderbus IRC. ~Carnie x
/mob/living/carbon/human/update_inv_wear_mask()
- remove_overlay(FACEMASK_LAYER)
-
- if(istype(wear_mask, /obj/item/clothing/mask))
+ var/obj/item/clothing/mask/M = ..()
+ if(M)
if(client && hud_used && hud_used.hud_shown)
if(hud_used.inventory_shown) //if the inventory is open ...
- wear_mask.screen_loc = ui_mask //TODO //...draw the item in the inventory screen
- client.screen += wear_mask //Either way, add the item to the HUD
-
- var/image/standing
- if(wear_mask.alternate_worn_icon)
- standing = image("icon"=wear_mask.alternate_worn_icon, "icon_state"="[wear_mask.icon_state]", "layer"=-FACEMASK_LAYER)
- if(!standing)
- standing = image("icon"='icons/mob/mask.dmi', "icon_state"="[wear_mask.icon_state]", "layer"=-FACEMASK_LAYER)
-
- overlays_standing[FACEMASK_LAYER] = standing
-
- if(wear_mask.blood_DNA && !istype(wear_mask, /obj/item/clothing/mask/cigarette))
- standing.overlays += image("icon"='icons/effects/blood.dmi', "icon_state"="maskblood")
-
+ M.screen_loc = ui_mask //TODO //...draw the item in the inventory screen
+ client.screen += M //Either way, add the item to the HUD
update_mutant_bodyparts()
-
apply_overlay(FACEMASK_LAYER)
+
/mob/living/carbon/human/update_inv_back()
- remove_overlay(BACK_LAYER)
-
- if(back)
- back.screen_loc = ui_back
+ var/obj/item/B = ..()
+ if(B)
+ B.screen_loc = ui_back
if(client && hud_used && hud_used.hud_shown)
- client.screen += back
-
- var/image/standing
- if(back.alternate_worn_icon)
- standing = image("icon"=back.alternate_worn_icon, "icon_state"="[back.icon_state]", "layer"=-BACK_LAYER)
- if(!standing)
- standing = image("icon"='icons/mob/back.dmi', "icon_state"="[back.icon_state]", "layer"=-BACK_LAYER)
-
- overlays_standing[BACK_LAYER] = standing
-
+ client.screen += B
apply_overlay(BACK_LAYER)
-
-
-/mob/living/carbon/human/update_hud() //TODO: do away with this if possible
- if(client)
- client.screen |= contents
- if(hud_used)
- hud_used.hidden_inventory_update() //Updates the screenloc of the items on the 'other' inventory bar
-
-
/mob/living/carbon/human/update_inv_handcuffed()
- remove_overlay(HANDCUFF_LAYER)
-
- if(handcuffed)
- drop_r_hand()
- drop_l_hand()
- stop_pulling() //TODO: should be handled elsewhere
- if(hud_used) //hud handcuff icons
- var/obj/screen/inventory/R = hud_used.adding[3]
- var/obj/screen/inventory/L = hud_used.adding[4]
- R.overlays += image("icon"='icons/mob/screen_gen.dmi', "icon_state"="markus")
- L.overlays += image("icon"='icons/mob/screen_gen.dmi', "icon_state"="gabrielle")
-
- overlays_standing[HANDCUFF_LAYER] = image("icon"='icons/mob/mob.dmi', "icon_state"="handcuff1", "layer"=-HANDCUFF_LAYER)
- else
- if(hud_used)
- var/obj/screen/inventory/R = hud_used.adding[3]
- var/obj/screen/inventory/L = hud_used.adding[4]
- R.overlays = null
- L.overlays = null
-
- apply_overlay(HANDCUFF_LAYER)
-
+ if(..())
+ overlays_standing[HANDCUFF_LAYER] = image("icon"='icons/mob/mob.dmi', "icon_state"="handcuff1", "layer"=-HANDCUFF_LAYER)
+ apply_overlay(HANDCUFF_LAYER)
/mob/living/carbon/human/update_inv_legcuffed()
remove_overlay(LEGCUFF_LAYER)
-
if(legcuffed)
- overlays_standing[LEGCUFF_LAYER] = image("icon"='icons/mob/mob.dmi', "icon_state"="legcuff1", "layer"=-LEGCUFF_LAYER)
-
+ overlays_standing[LEGCUFF_LAYER] = image("icon"='icons/mob/mob.dmi', "icon_state"="legcuff1", "layer"=-LEGCUFF_LAYER)
apply_overlay(LEGCUFF_LAYER)
+/mob/living/carbon/human/update_hud() //TODO: do away with this if possible
+ if(..())
+ if(hud_used)
+ hud_used.hidden_inventory_update() //Updates the screenloc of the items on the 'other' inventory bar
-/mob/living/carbon/human/update_inv_r_hand()
- remove_overlay(R_HAND_LAYER)
- if (handcuffed)
- drop_r_hand()
- return
- if(r_hand)
- r_hand.screen_loc = ui_rhand //TODO
- if(client)
- client.screen += r_hand
-
- var/t_state = r_hand.item_state
- if(!t_state) t_state = r_hand.icon_state
-
- overlays_standing[R_HAND_LAYER] = image("icon" = r_hand.righthand_file, "icon_state"="[t_state]", "layer"=-R_HAND_LAYER)
-
- apply_overlay(R_HAND_LAYER)
-
-
-
-/mob/living/carbon/human/update_inv_l_hand()
- remove_overlay(L_HAND_LAYER)
- if (handcuffed)
- drop_l_hand()
- return
- if(l_hand)
- l_hand.screen_loc = ui_lhand //TODO
- if(client)
- client.screen += l_hand
-
- var/t_state = l_hand.item_state
- if(!t_state) t_state = l_hand.icon_state
-
- overlays_standing[L_HAND_LAYER] = image("icon" = l_hand.lefthand_file, "icon_state"="[t_state]", "layer"=-L_HAND_LAYER)
-
- apply_overlay(L_HAND_LAYER)
/mob/living/carbon/human/proc/wear_female_version(t_color, icon, layer, type)
var/index = "[t_color]_s"
@@ -652,15 +522,7 @@ Please contact me on #coderbus IRC. ~Carnie x
#undef EARS_LAYER
#undef SUIT_LAYER
#undef GLASSES_LAYER
-#undef FACEMASK_LAYER
#undef BELT_LAYER
#undef SUIT_STORE_LAYER
-#undef BACK_LAYER
#undef HAIR_LAYER
-#undef HEAD_LAYER
-#undef HANDCUFF_LAYER
-#undef LEGCUFF_LAYER
-#undef L_HAND_LAYER
-#undef R_HAND_LAYER
-#undef FIRE_LAYER
#undef TOTAL_LAYERS
diff --git a/code/modules/mob/living/carbon/inventory.dm b/code/modules/mob/living/carbon/inventory.dm
index 876f23fc37a..44ba92c73f2 100644
--- a/code/modules/mob/living/carbon/inventory.dm
+++ b/code/modules/mob/living/carbon/inventory.dm
@@ -25,22 +25,22 @@
if(I == head)
head = null
if(I.flags & BLOCKHAIR)
- update_hair(0)
- update_inv_head(0)
+ update_hair()
+ update_inv_head()
else if(I == back)
back = null
- update_inv_back(0)
+ update_inv_back()
else if(I == wear_mask)
if(istype(src, /mob/living/carbon/human)) //If we don't do this hair won't be properly rebuilt.
return
wear_mask = null
- update_inv_wear_mask(0)
+ update_inv_wear_mask()
else if(I == handcuffed)
handcuffed = null
if(buckled && buckled.buckle_requires_restraints)
buckled.unbuckle_mob()
- update_inv_handcuffed(0)
+ update_inv_handcuffed()
else if(I == legcuffed)
legcuffed = null
- update_inv_legcuffed(0)
+ update_inv_legcuffed()
diff --git a/code/modules/mob/living/carbon/monkey/update_icons.dm b/code/modules/mob/living/carbon/monkey/update_icons.dm
index 3e47c990d9d..03e2f721a9c 100644
--- a/code/modules/mob/living/carbon/monkey/update_icons.dm
+++ b/code/modules/mob/living/carbon/monkey/update_icons.dm
@@ -1,31 +1,13 @@
-//Monkey Overlays Indexes////////
-#define M_FIRE_LAYER 7
-#define M_MASK_LAYER 6
-#define M_HEAD_LAYER 5
-#define M_BACK_LAYER 4
-#define M_HANDCUFF_LAYER 3
-#define M_L_HAND_LAYER 2
-#define M_R_HAND_LAYER 1
-#define M_TOTAL_LAYERS 7
-/////////////////////////////////
-
-/mob/living/carbon/monkey
- var/list/overlays_standing[M_TOTAL_LAYERS]
/mob/living/carbon/monkey/regenerate_icons()
- ..()
- update_inv_wear_mask(0)
- update_inv_head(0)
- update_inv_back(0)
- update_inv_r_hand(0)
- update_inv_l_hand(0)
- update_inv_handcuffed(0)
- update_fire()
- update_icons()
- update_transform()
- //Hud Stuff
- update_hud()
- return
+ if(!..())
+ update_inv_wear_mask()
+ update_inv_head()
+ update_inv_back()
+ update_icons()
+ update_transform()
+ //Hud Stuff
+ update_hud()
/mob/living/carbon/monkey/update_icons()
update_hud()
@@ -35,138 +17,43 @@
overlays += I
////////
-/mob/living/carbon/monkey/update_inv_wear_mask(update_icons=1)
- if(wear_mask && istype(wear_mask, /obj/item/clothing/mask) )
- wear_mask.screen_loc = ui_monkey_mask
+/mob/living/carbon/monkey/update_inv_wear_mask()
+ var/obj/item/clothing/mask/M = ..()
+ if(M)
+ M.screen_loc = ui_monkey_mask
if(client && hud_used)
- client.screen += wear_mask
- overlays -= overlays_standing[M_MASK_LAYER]
- var/image/standing = image("icon" = 'icons/mob/mask.dmi', "icon_state" = "[wear_mask.icon_state]", "layer" = -M_MASK_LAYER)
- if(!istype(wear_mask, /obj/item/clothing/mask/cigarette) && wear_mask.blood_DNA )
- standing.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "maskblood")
- overlays_standing[M_MASK_LAYER] = standing
- overlays += overlays_standing[M_MASK_LAYER]
- else
- overlays -= overlays_standing[M_MASK_LAYER]
- overlays_standing[M_MASK_LAYER] = null
- if(update_icons) update_icons()
+ client.screen += M
+ apply_overlay(FACEMASK_LAYER)
-/mob/living/carbon/monkey/update_inv_head(update_icons=1)
- if(head)
- head.screen_loc = ui_monkey_head
+/mob/living/carbon/monkey/update_inv_head()
+ var/obj/item/H = ..()
+ if(H)
+ H.screen_loc = ui_monkey_head
if(client && hud_used)
- client.screen += head
- overlays -= overlays_standing[M_HEAD_LAYER]
- var/image/standing = image("icon" = 'icons/mob/head.dmi', "icon_state" = "[head.icon_state]", "layer" = -M_HEAD_LAYER)
- overlays_standing[M_HEAD_LAYER] = standing
- overlays += overlays_standing[M_HEAD_LAYER]
- else
- overlays -= overlays_standing[M_HEAD_LAYER]
- overlays_standing[M_HEAD_LAYER] = null
- if(update_icons) update_icons()
+ client.screen += H
+ apply_overlay(HEAD_LAYER)
-
-/mob/living/carbon/monkey/update_inv_r_hand(update_icons=1)
- if (handcuffed)
- drop_r_hand()
- return
- if(r_hand)
- r_hand.screen_loc = ui_rhand
+/mob/living/carbon/monkey/update_inv_back()
+ var/obj/item/B = ..()
+ if(B)
+ B.screen_loc = ui_monkey_back
if(client && hud_used)
- client.screen += r_hand
- var/t_state = r_hand.item_state
- if(!t_state) t_state = r_hand.icon_state
- overlays -= overlays_standing[M_R_HAND_LAYER]
- var/image/standing = image("icon" = r_hand.righthand_file, "icon_state" = t_state, "layer" = -M_R_HAND_LAYER)
- standing.pixel_y = 2
- overlays_standing[M_R_HAND_LAYER] = standing
- overlays += overlays_standing[M_R_HAND_LAYER]
- else
- overlays -= overlays_standing[M_R_HAND_LAYER]
- overlays_standing[M_R_HAND_LAYER] = null
- if(update_icons) update_icons()
-
-
-/mob/living/carbon/monkey/update_inv_l_hand(update_icons=1)
- if (handcuffed)
- drop_l_hand()
- return
- if(l_hand)
- l_hand.screen_loc = ui_lhand
- if(client && hud_used)
- client.screen += l_hand
- var/t_state = l_hand.item_state
- if(!t_state) t_state = l_hand.icon_state
- overlays -= overlays_standing[M_L_HAND_LAYER]
- var/image/standing = image("icon" = l_hand.lefthand_file, "icon_state" = t_state, "layer" = -M_L_HAND_LAYER)
- standing.pixel_y = 2
- overlays_standing[M_L_HAND_LAYER] = standing
- overlays += overlays_standing[M_L_HAND_LAYER]
- else
- overlays -= overlays_standing[M_L_HAND_LAYER]
- overlays_standing[M_L_HAND_LAYER] = null
- if(update_icons) update_icons()
-
-
-/mob/living/carbon/monkey/update_inv_back(update_icons=1)
- if(back)
- back.screen_loc = ui_monkey_back
- if(client && hud_used)
- client.screen += back
- overlays -= overlays_standing[M_BACK_LAYER]
- overlays_standing[M_BACK_LAYER] = image("icon" = 'icons/mob/back.dmi', "icon_state" = "[back.icon_state]", "layer" = -M_BACK_LAYER)
- overlays += overlays_standing[M_BACK_LAYER]
- else
- overlays -= overlays_standing[M_BACK_LAYER]
- overlays_standing[M_BACK_LAYER] = null
- if(update_icons) update_icons()
-
-
-/mob/living/carbon/monkey/update_inv_handcuffed(update_icons=1)
- if(handcuffed)
- drop_r_hand()
- drop_l_hand()
- stop_pulling()
- if(hud_used) //hud handcuff icons
- var/obj/screen/inventory/R = hud_used.adding[4]
- var/obj/screen/inventory/L = hud_used.adding[5]
- R.overlays += image("icon" = 'icons/mob/screen_gen.dmi', "icon_state" = "markus")
- L.overlays += image("icon" = 'icons/mob/screen_gen.dmi', "icon_state" = "gabrielle")
- overlays -= overlays_standing[M_HANDCUFF_LAYER]
- overlays_standing[M_HANDCUFF_LAYER] = image("icon" = 'icons/mob/monkey.dmi', "icon_state" = "handcuff1", "layer" = -M_HANDCUFF_LAYER)
- overlays += overlays_standing[M_HANDCUFF_LAYER]
- else
- if(hud_used)
- var/obj/screen/inventory/R = hud_used.adding[4]
- var/obj/screen/inventory/L = hud_used.adding[5]
- R.overlays = null
- L.overlays = null
- overlays -= overlays_standing[M_HANDCUFF_LAYER]
- overlays_standing[M_HANDCUFF_LAYER] = null
- if(update_icons) update_icons()
-
-
-/mob/living/carbon/monkey/update_hud()
- if(client)
- client.screen |= contents
+ client.screen += B
+ apply_overlay(BACK_LAYER)
/mob/living/carbon/monkey/update_fire()
- overlays -= overlays_standing[M_FIRE_LAYER]
- if(on_fire)
- overlays_standing[M_FIRE_LAYER] = image("icon"='icons/mob/OnFire.dmi', "icon_state"="Standing", "layer"= -M_FIRE_LAYER)
- overlays += overlays_standing[M_FIRE_LAYER]
- return
- else
- overlays_standing[M_FIRE_LAYER] = null
+ ..("Monkey_burning")
+/mob/living/carbon/monkey/update_inv_handcuffed()
+ if(..())
+ overlays_standing[HANDCUFF_LAYER] = image("icon"='icons/mob/mob.dmi', "icon_state"="handcuff1", "layer"=-HANDCUFF_LAYER)
+ apply_overlay(HANDCUFF_LAYER)
-//Monkey Overlays Indexes////////
-#undef M_FIRE_LAYER
-#undef M_MASK_LAYER
-#undef M_BACK_LAYER
-#undef M_HANDCUFF_LAYER
-#undef M_L_HAND_LAYER
-#undef M_R_HAND_LAYER
-#undef M_TOTAL_LAYERS
-
+/mob/living/carbon/monkey/update_inv_legcuffed()
+ remove_overlay(LEGCUFF_LAYER)
+ if(legcuffed)
+ var/image/standing = image("icon"='icons/mob/mob.dmi', "icon_state"="legcuff1", "layer"=-LEGCUFF_LAYER)
+ standing.pixel_y = 8
+ overlays_standing[LEGCUFF_LAYER] = standing
+ apply_overlay(LEGCUFF_LAYER)
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/update_icons.dm b/code/modules/mob/living/carbon/update_icons.dm
index 2b2c3470a04..95724c27f01 100644
--- a/code/modules/mob/living/carbon/update_icons.dm
+++ b/code/modules/mob/living/carbon/update_icons.dm
@@ -1,6 +1,18 @@
-//LOOK G-MA, I'VE JOINED CARBON PROCS THAT ARE IDENTICAL IN ALL CASES INTO ONE PROC, I'M BETTER THAN LIFE()
-//I thought about mob/living but silicons and simple_animals don't want this just yet.
-//Right now just handles lying down, but could handle other cases later.
+
+
+//Carbon Overlays Indexes/////////
+#define FACEMASK_LAYER 8
+#define HEAD_LAYER 7
+#define BACK_LAYER 6
+#define LEGCUFF_LAYER 5
+#define HANDCUFF_LAYER 4
+#define L_HAND_LAYER 3
+#define R_HAND_LAYER 2 //Having the two hands seperate seems rather silly, merge them together? It'll allow for code to be reused on mobs with arbitarily many hands
+#define FIRE_LAYER 1 //If you're on fire
+#define TOTAL_LAYERS 26 //KEEP THIS UP-TO-DATE OR SHIT WILL BREAK ;_;
+//////////////////////////////////
+
+
//IMPORTANT: Multiple animate() calls do not stack well, so try to do them all at once if you can.
/mob/living/carbon/update_transform()
var/matrix/ntransform = matrix(transform) //aka transform.Copy()
@@ -27,4 +39,137 @@
if(changed)
animate(src, transform = ntransform, time = 2, pixel_y = final_pixel_y, dir = final_dir, easing = EASE_IN|EASE_OUT)
- floating = 0 // If we were without gravity, the bouncing animation got stopped, so we make sure we restart it in next life().
\ No newline at end of file
+ floating = 0 // If we were without gravity, the bouncing animation got stopped, so we make sure we restart it in next life().
+
+
+/mob/living/carbon
+ var/list/overlays_standing[TOTAL_LAYERS]
+
+/mob/living/carbon/proc/apply_overlay(cache_index)
+ var/image/I = overlays_standing[cache_index]
+ if(I)
+ overlays += I
+
+/mob/living/carbon/proc/remove_overlay(cache_index)
+ if(overlays_standing[cache_index])
+ overlays -= overlays_standing[cache_index]
+ overlays_standing[cache_index] = null
+
+/mob/living/carbon/update_inv_r_hand()
+ remove_overlay(R_HAND_LAYER)
+ if (handcuffed)
+ drop_r_hand()
+ return
+ if(r_hand)
+ r_hand.screen_loc = ui_rhand
+ if(client && hud_used)
+ client.screen += r_hand
+ var/t_state = r_hand.item_state
+ if(!t_state)
+ t_state = r_hand.icon_state
+ overlays_standing[R_HAND_LAYER] = image("icon" = r_hand.righthand_file, "icon_state"="[t_state]", "layer"=-R_HAND_LAYER)
+
+ apply_overlay(R_HAND_LAYER)
+
+/mob/living/carbon/update_inv_l_hand()
+ remove_overlay(L_HAND_LAYER)
+ if (handcuffed)
+ drop_l_hand()
+ return
+ if(l_hand)
+ l_hand.screen_loc = ui_lhand
+ if(client && hud_used)
+ client.screen += l_hand
+ var/t_state = l_hand.item_state
+ if(!t_state)
+ t_state = l_hand.icon_state
+ overlays_standing[L_HAND_LAYER] = image("icon" = l_hand.lefthand_file, "icon_state"="[t_state]", "layer"=-L_HAND_LAYER)
+
+ apply_overlay(L_HAND_LAYER)
+
+/mob/living/carbon/update_fire(var/fire_icon = "Generic_mob_burning")
+ remove_overlay(FIRE_LAYER)
+ if(on_fire)
+ overlays_standing[FIRE_LAYER] = image("icon"='icons/mob/OnFire.dmi', "icon_state"= fire_icon, "layer"=-FIRE_LAYER)
+
+ apply_overlay(FIRE_LAYER)
+
+/mob/living/carbon/update_hud()
+ if(client)
+ client.screen |= contents
+ return 1
+
+/mob/living/carbon/regenerate_icons()
+ if(notransform)
+ return 1
+ update_inv_r_hand()
+ update_inv_l_hand()
+ update_inv_handcuffed()
+ update_inv_legcuffed()
+ update_fire()
+
+/mob/living/carbon/update_inv_wear_mask()
+ remove_overlay(FACEMASK_LAYER)
+ if(istype(wear_mask, /obj/item/clothing/mask))
+ var/image/standing
+ if(wear_mask.alternate_worn_icon)
+ standing = image("icon"=wear_mask.alternate_worn_icon, "icon_state"="[wear_mask.icon_state]", "layer"=-FACEMASK_LAYER)
+ if(!standing)
+ standing = image("icon"='icons/mob/mask.dmi', "icon_state"="[wear_mask.icon_state]", "layer"=-FACEMASK_LAYER)
+
+ overlays_standing[FACEMASK_LAYER] = standing
+
+ if(wear_mask.blood_DNA && (wear_mask.body_parts_covered & HEAD))
+ standing.overlays += image("icon"='icons/effects/blood.dmi', "icon_state"="maskblood")
+ return wear_mask
+
+/mob/living/carbon/human/update_inv_back()
+ remove_overlay(BACK_LAYER)
+ if(back)
+ var/image/standing
+ if(back.alternate_worn_icon)
+ standing = image("icon"=back.alternate_worn_icon, "icon_state"="[back.icon_state]", "layer"=-BACK_LAYER)
+ if(!standing)
+ standing = image("icon"='icons/mob/back.dmi', "icon_state"="[back.icon_state]", "layer"=-BACK_LAYER)
+
+ overlays_standing[BACK_LAYER] = standing
+ return back
+
+
+/mob/living/carbon/human/update_inv_head()
+ remove_overlay(HEAD_LAYER)
+ if(head)
+ var/image/standing
+ if(head.alternate_worn_icon)
+ standing = image("icon"=head.alternate_worn_icon, "icon_state"="[head.icon_state]", "layer"=-HEAD_LAYER)
+ if(!standing)
+ standing = image("icon"='icons/mob/head.dmi', "icon_state"="[head.icon_state]", "layer"=-HEAD_LAYER)
+ standing.color = head.color // For now, this is here solely for kitty ears, but everything should do this eventually
+ standing.alpha = head.alpha
+
+ overlays_standing[HEAD_LAYER] = standing
+
+ if(head.blood_DNA)
+ standing.overlays += image("icon"='icons/effects/blood.dmi', "icon_state"="helmetblood")
+ return head
+
+/mob/living/carbon/update_inv_handcuffed()
+ remove_overlay(HANDCUFF_LAYER)
+ if(handcuffed)
+ drop_r_hand()
+ drop_l_hand()
+ stop_pulling() //TODO: should be handled elsewhere
+ if(hud_used) //hud handcuff icons
+ var/obj/screen/inventory/R = hud_used.r_hand_hud_object
+ var/obj/screen/inventory/L = hud_used.l_hand_hud_object
+ R.overlays += image("icon"='icons/mob/screen_gen.dmi', "icon_state"="markus")
+ L.overlays += image("icon"='icons/mob/screen_gen.dmi', "icon_state"="gabrielle")
+ return 1
+ else
+ if(hud_used)
+ var/obj/screen/inventory/R = hud_used.r_hand_hud_object
+ var/obj/screen/inventory/L = hud_used.l_hand_hud_object
+ R.overlays = null
+ L.overlays = null
+
+
diff --git a/code/modules/mob/living/silicon/robot/life.dm b/code/modules/mob/living/silicon/robot/life.dm
index bb3a9dce86a..fed748e1a3d 100644
--- a/code/modules/mob/living/silicon/robot/life.dm
+++ b/code/modules/mob/living/silicon/robot/life.dm
@@ -192,9 +192,9 @@
return
/mob/living/silicon/robot/update_fire()
- overlays -= image("icon"='icons/mob/OnFire.dmi', "icon_state"="Standing")
+ overlays -= image("icon"='icons/mob/OnFire.dmi', "icon_state"="Generic_mob_burning")
if(on_fire)
- overlays += image("icon"='icons/mob/OnFire.dmi', "icon_state"="Standing")
+ overlays += image("icon"='icons/mob/OnFire.dmi', "icon_state"="Generic_mob_burning")
/mob/living/silicon/robot/fire_act()
if(!on_fire) //Silicons don't gain stacks from hotspots, but hotspots can ignite them
diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm
index 0fca94e2b05..b0e916f11a9 100644
--- a/code/modules/mob/living/silicon/robot/robot.dm
+++ b/code/modules/mob/living/silicon/robot/robot.dm
@@ -876,16 +876,16 @@
if(cleaned_human.lying)
if(cleaned_human.head)
cleaned_human.head.clean_blood()
- cleaned_human.update_inv_head(0)
+ cleaned_human.update_inv_head()
if(cleaned_human.wear_suit)
cleaned_human.wear_suit.clean_blood()
- cleaned_human.update_inv_wear_suit(0)
+ cleaned_human.update_inv_wear_suit()
else if(cleaned_human.w_uniform)
cleaned_human.w_uniform.clean_blood()
- cleaned_human.update_inv_w_uniform(0)
+ cleaned_human.update_inv_w_uniform()
if(cleaned_human.shoes)
cleaned_human.shoes.clean_blood()
- cleaned_human.update_inv_shoes(0)
+ cleaned_human.update_inv_shoes()
cleaned_human.clean_blood()
cleaned_human << "[src] cleans your face!"
return
diff --git a/code/modules/mob/living/simple_animal/friendly/drone/inventory.dm b/code/modules/mob/living/simple_animal/friendly/drone/inventory.dm
index faf63c739c4..a739daac976 100644
--- a/code/modules/mob/living/simple_animal/friendly/drone/inventory.dm
+++ b/code/modules/mob/living/simple_animal/friendly/drone/inventory.dm
@@ -125,9 +125,9 @@
return
if(equip_to_appropriate_slot(I))
if(hand)
- update_inv_l_hand(0)
+ update_inv_l_hand()
else
- update_inv_r_hand(0)
+ update_inv_r_hand()
else if(s_active && s_active.can_be_inserted(I,1)) //if storage active insert there
s_active.handle_item_insertion(I)
else if(istype(S, /obj/item/weapon/storage) && S.can_be_inserted(I,1)) //see if we have box in other hand
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index b76f3056cc0..b2415704445 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -421,12 +421,12 @@ var/list/slot_equipment_priority = list( \
var/obj/item/W = l_hand
if (W)
W.attack_self(src)
- update_inv_l_hand(0)
+ update_inv_l_hand()
else
var/obj/item/W = r_hand
if (W)
W.attack_self(src)
- update_inv_r_hand(0)
+ update_inv_r_hand()
return
/*
diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm
index b7c64faa7a7..cc5bd988992 100644
--- a/code/modules/projectiles/gun.dm
+++ b/code/modules/projectiles/gun.dm
@@ -229,9 +229,9 @@
semicd = 0
if(user.hand)
- user.update_inv_l_hand(0)
+ user.update_inv_l_hand()
else
- user.update_inv_r_hand(0)
+ user.update_inv_r_hand()
feedback_add_details("gun_fired","[src.name]")
/obj/item/weapon/gun/attack(mob/M as mob, mob/user)
diff --git a/code/modules/reagents/Chemistry-Reagents/Other-Reagents.dm b/code/modules/reagents/Chemistry-Reagents/Other-Reagents.dm
index 923dfa759b9..2ebceebbd64 100644
--- a/code/modules/reagents/Chemistry-Reagents/Other-Reagents.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Other-Reagents.dm
@@ -576,21 +576,21 @@
C.l_hand.clean_blood()
if(C.wear_mask)
if(C.wear_mask.clean_blood())
- C.update_inv_wear_mask(0)
+ C.update_inv_wear_mask()
if(ishuman(M))
var/mob/living/carbon/human/H = C
if(H.head)
if(H.head.clean_blood())
- H.update_inv_head(0)
+ H.update_inv_head()
if(H.wear_suit)
if(H.wear_suit.clean_blood())
- H.update_inv_wear_suit(0)
+ H.update_inv_wear_suit()
else if(H.w_uniform)
if(H.w_uniform.clean_blood())
- H.update_inv_w_uniform(0)
+ H.update_inv_w_uniform()
if(H.shoes)
if(H.shoes.clean_blood())
- H.update_inv_shoes(0)
+ H.update_inv_shoes()
M.clean_blood()
/datum/reagent/cryptobiolin
diff --git a/icons/mob/OnFire.dmi b/icons/mob/OnFire.dmi
index 44ead91e362..7768bf0269f 100644
Binary files a/icons/mob/OnFire.dmi and b/icons/mob/OnFire.dmi differ