diff --git a/code/game/antagonist/outsider/mercenary.dm b/code/game/antagonist/outsider/mercenary.dm index 8e4b8826b47..ed2964cfad5 100644 --- a/code/game/antagonist/outsider/mercenary.dm +++ b/code/game/antagonist/outsider/mercenary.dm @@ -50,7 +50,7 @@ var/datum/antagonist/mercenary/mercs var/obj/item/device/radio/uplink/U = new(player.loc, player.mind, DEFAULT_TELECRYSTAL_AMOUNT) player.put_in_hands(U) - player.update_icons() + player.update_icons_layers() create_id("Mercenary", player) create_radio(SYND_FREQ, player) diff --git a/code/game/antagonist/outsider/technomancer.dm b/code/game/antagonist/outsider/technomancer.dm index 4ec49230fd2..33dc33b5e87 100644 --- a/code/game/antagonist/outsider/technomancer.dm +++ b/code/game/antagonist/outsider/technomancer.dm @@ -47,7 +47,7 @@ var/datum/antagonist/technomancer/technomancers technomancer_mob.equip_to_slot_or_del(new /obj/item/device/flashlight(technomancer_mob), slot_belt) technomancer_mob.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(technomancer_mob), slot_shoes) technomancer_mob.equip_to_slot_or_del(new /obj/item/clothing/head/technomancer/master(technomancer_mob), slot_head) - technomancer_mob.update_icons() + technomancer_mob.update_icons_layers() return 1 /datum/antagonist/technomancer/proc/equip_apprentice(var/mob/living/carbon/human/technomancer_mob) diff --git a/code/game/antagonist/outsider/wizard.dm b/code/game/antagonist/outsider/wizard.dm index b88af1b1b98..ad5cc104798 100644 --- a/code/game/antagonist/outsider/wizard.dm +++ b/code/game/antagonist/outsider/wizard.dm @@ -87,7 +87,7 @@ var/datum/antagonist/wizard/wizards wizard_mob.equip_to_slot_or_del(new /obj/item/weapon/storage/box(wizard_mob), slot_in_backpack) wizard_mob.equip_to_slot_or_del(new /obj/item/weapon/teleportation_scroll(wizard_mob), slot_r_store) wizard_mob.equip_to_slot_or_del(new /obj/item/weapon/spellbook(wizard_mob), slot_r_hand) - wizard_mob.update_icons() + wizard_mob.update_icons_layers() return 1 /datum/antagonist/wizard/check_victory() diff --git a/code/game/area/Space Station 13 areas.dm b/code/game/area/Space Station 13 areas.dm index d2460e7900f..c25e315babf 100755 --- a/code/game/area/Space Station 13 areas.dm +++ b/code/game/area/Space Station 13 areas.dm @@ -2741,7 +2741,7 @@ area/space/atmosalert() for(var/mob/living/carbon/human/H in src) if(H.s_tone > -55) H.s_tone-- - H.update_body() + H.update_icons_body() if(H.client) mysound.status = SOUND_UPDATE H << mysound @@ -2862,7 +2862,7 @@ var/list/the_station_areas = list ( for(var/mob/living/carbon/human/H in src) // if(H.s_tone > -55) //ugh...nice/novel idea but please no. // H.s_tone-- -// H.update_body() +// H.update_icons_body() if(H.client) mysound.status = SOUND_UPDATE H << mysound diff --git a/code/game/gamemodes/changeling/generic_equip_procs.dm b/code/game/gamemodes/changeling/generic_equip_procs.dm index 9c73a4e3d22..7ff76ff9f62 100644 --- a/code/game/gamemodes/changeling/generic_equip_procs.dm +++ b/code/game/gamemodes/changeling/generic_equip_procs.dm @@ -122,7 +122,7 @@ playsound(src, 'sound/effects/splat.ogg', 30, 1) visible_message("[src] pulls on their clothes, peeling it off along with parts of their skin attached!", "We remove and deform our equipment.") - M.update_icons() + M.update_icons_layers() M.mind.changeling.armor_deployed = 0 return success @@ -138,7 +138,7 @@ M.equip_to_slot_or_del(I, slot_head) grown_items_list.Add("a helmet") playsound(src, 'sound/effects/blobattack.ogg', 30, 1) - M.update_icons() + M.update_icons_layers() success = 1 sleep(1 SECOND) @@ -148,7 +148,7 @@ M.equip_to_slot_or_del(I, slot_w_uniform) grown_items_list.Add("a uniform") playsound(src, 'sound/effects/blobattack.ogg', 30, 1) - M.update_icons() + M.update_icons_layers() success = 1 sleep(1 SECOND) @@ -158,7 +158,7 @@ M.equip_to_slot_or_del(I, slot_gloves) grown_items_list.Add("some gloves") playsound(src, 'sound/effects/splat.ogg', 30, 1) - M.update_icons() + M.update_icons_layers() success = 1 sleep(1 SECOND) @@ -168,7 +168,7 @@ M.equip_to_slot_or_del(I, slot_shoes) grown_items_list.Add("shoes") playsound(src, 'sound/effects/splat.ogg', 30, 1) - M.update_icons() + M.update_icons_layers() success = 1 sleep(1 SECOND) @@ -178,7 +178,7 @@ M.equip_to_slot_or_del(I, slot_belt) grown_items_list.Add("a belt") playsound(src, 'sound/effects/splat.ogg', 30, 1) - M.update_icons() + M.update_icons_layers() success = 1 sleep(1 SECOND) @@ -188,7 +188,7 @@ M.equip_to_slot_or_del(I, slot_glasses) grown_items_list.Add("some glasses") playsound(src, 'sound/effects/splat.ogg', 30, 1) - M.update_icons() + M.update_icons_layers() success = 1 sleep(1 SECOND) @@ -198,7 +198,7 @@ M.equip_to_slot_or_del(I, slot_wear_mask) grown_items_list.Add("a mask") playsound(src, 'sound/effects/splat.ogg', 30, 1) - M.update_icons() + M.update_icons_layers() success = 1 sleep(1 SECOND) @@ -208,7 +208,7 @@ M.equip_to_slot_or_del(I, slot_back) grown_items_list.Add("a backpack") playsound(src, 'sound/effects/blobattack.ogg', 30, 1) - M.update_icons() + M.update_icons_layers() success = 1 sleep(1 SECOND) @@ -218,7 +218,7 @@ M.equip_to_slot_or_del(I, slot_wear_suit) grown_items_list.Add("an exosuit") playsound(src, 'sound/effects/blobattack.ogg', 30, 1) - M.update_icons() + M.update_icons_layers() success = 1 sleep(1 SECOND) @@ -228,7 +228,7 @@ M.equip_to_slot_or_del(I, slot_wear_id) grown_items_list.Add("an ID card") playsound(src, 'sound/effects/splat.ogg', 30, 1) - M.update_icons() + M.update_icons_layers() success = 1 sleep(1 SECOND) diff --git a/code/game/gamemodes/changeling/powers/fabricate_clothing.dm b/code/game/gamemodes/changeling/powers/fabricate_clothing.dm index 138cd156e38..bc37afc1ea7 100644 --- a/code/game/gamemodes/changeling/powers/fabricate_clothing.dm +++ b/code/game/gamemodes/changeling/powers/fabricate_clothing.dm @@ -56,7 +56,7 @@ var/global/list/changeling_fabricated_clothing = list( visible_message("[H] tears off [src]!", "We remove [src].") qdel(src) - H.update_icons() + H.update_icons_layers() /obj/item/clothing/head/chameleon/changeling name = "malformed head" @@ -78,7 +78,7 @@ var/global/list/changeling_fabricated_clothing = list( visible_message("[H] tears off [src]!", "We remove [src].") qdel(src) - H.update_icons() + H.update_icons_layers() /obj/item/clothing/suit/chameleon/changeling name = "chitinous chest" @@ -104,7 +104,7 @@ var/global/list/changeling_fabricated_clothing = list( visible_message("[H] tears off [src]!", "We remove [src].") qdel(src) - H.update_icons() + H.update_icons_layers() /obj/item/clothing/shoes/chameleon/changeling name = "malformed feet" @@ -130,7 +130,7 @@ var/global/list/changeling_fabricated_clothing = list( visible_message("[H] tears off [src]!", "We remove [src].") qdel(src) - H.update_icons() + H.update_icons_layers() /obj/item/weapon/storage/backpack/chameleon/changeling name = "backpack" @@ -158,7 +158,7 @@ var/global/list/changeling_fabricated_clothing = list( for(var/atom/movable/AM in src.contents) //Dump whatever's in the bag before deleting. AM.forceMove(get_turf(loc)) qdel(src) - H.update_icons() + H.update_icons_layers() /obj/item/clothing/gloves/chameleon/changeling name = "malformed hands" @@ -185,7 +185,7 @@ var/global/list/changeling_fabricated_clothing = list( visible_message("[H] tears off [src]!", "We remove [src].") qdel(src) - H.update_icons() + H.update_icons_layers() /obj/item/clothing/mask/chameleon/changeling @@ -213,7 +213,7 @@ var/global/list/changeling_fabricated_clothing = list( visible_message("[H] tears off [src]!", "We remove [src].") qdel(src) - H.update_icons() + H.update_icons_layers() /obj/item/clothing/glasses/chameleon/changeling name = "chitin goggles" @@ -235,7 +235,7 @@ var/global/list/changeling_fabricated_clothing = list( visible_message("[H] tears off [src]!", "We remove [src].") qdel(src) - H.update_icons() + H.update_icons_layers() /obj/item/weapon/storage/belt/chameleon/changeling name = "waist pouch" @@ -261,7 +261,7 @@ var/global/list/changeling_fabricated_clothing = list( visible_message("[H] tears off [src]!", "We remove [src].") qdel(src) - H.update_icons() + H.update_icons_layers() /obj/item/weapon/card/id/syndicate/changeling name = "chitinous card" @@ -288,7 +288,7 @@ var/global/list/changeling_fabricated_clothing = list( visible_message("[H] tears off [src]!", "We remove [src].") qdel(src) - H.update_icons() + H.update_icons_layers() /obj/item/weapon/card/id/syndicate/changeling/Click() //Since we can't hold it in our hands, and attack_hand() doesn't work if it in inventory... diff --git a/code/game/gamemodes/changeling/powers/revive.dm b/code/game/gamemodes/changeling/powers/revive.dm index c640e353925..98b091abaa6 100644 --- a/code/game/gamemodes/changeling/powers/revive.dm +++ b/code/game/gamemodes/changeling/powers/revive.dm @@ -34,7 +34,7 @@ H.restore_blood() H.mutations.Remove(HUSK) H.status_flags -= DISFIGURED - H.update_body(1) + H.update_icons_body() for(var/limb in H.organs_by_name) var/obj/item/organ/external/current_limb = H.organs_by_name[limb] if(current_limb) diff --git a/code/game/machinery/computer3/computers/HolodeckControl.dm b/code/game/machinery/computer3/computers/HolodeckControl.dm index fc781430c40..4d63b956736 100644 --- a/code/game/machinery/computer3/computers/HolodeckControl.dm +++ b/code/game/machinery/computer3/computers/HolodeckControl.dm @@ -155,7 +155,7 @@ var/mob/M = obj.loc if(ismob(M)) M.remove_from_mob(obj) - M.update_icons() //so their overlays update + M.update_icons_layers() //so their overlays update if(!silent) var/obj/oldobj = obj diff --git a/code/game/objects/items/weapons/cosmetics.dm b/code/game/objects/items/weapons/cosmetics.dm index 9d3a9cb0a4f..3d142b223a3 100644 --- a/code/game/objects/items/weapons/cosmetics.dm +++ b/code/game/objects/items/weapons/cosmetics.dm @@ -50,7 +50,7 @@ user.visible_message("[user] does their lips with \the [src].", \ "You take a moment to apply \the [src]. Perfect!") H.lip_style = colour - H.update_body() + H.update_icons_body() else user.visible_message("[user] begins to do [H]'s lips with \the [src].", \ "You begin to apply \the [src].") @@ -58,7 +58,7 @@ user.visible_message("[user] does [H]'s lips with \the [src].", \ "You apply \the [src].") H.lip_style = colour - H.update_body() + H.update_icons_body() else user << "Where are the lips on that?" diff --git a/code/game/objects/items/weapons/grenades/flashbang.dm b/code/game/objects/items/weapons/grenades/flashbang.dm index 04a7b3e100f..5588089cefa 100644 --- a/code/game/objects/items/weapons/grenades/flashbang.dm +++ b/code/game/objects/items/weapons/grenades/flashbang.dm @@ -90,7 +90,7 @@ else if (M.ear_damage >= 5) M << "Your ears start to ring!" - M.update_icons() + M.update_icons() //Forces matrix transform to proc if they are now laying, I guess? /obj/item/weapon/grenade/flashbang/Destroy() walk(src, 0) // Because we might have called walk_away, we must stop the walk loop or BYOND keeps an internal reference to us forever. diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 1d1af705517..123ad1d396c 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -989,8 +989,8 @@ var/list/admin_verbs_event_manager = list( else M.gender = NEUTER - M.update_hair() - M.update_body() + M.update_hair(FALSE) + M.update_icons_body() M.check_dna(M) /client/proc/playernotes() diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index c96397eccc0..555fa00c2bd 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1001,7 +1001,11 @@ //strip their stuff and stick it in the crate for(var/obj/item/I in M) M.drop_from_inventory(I, locker) - M.update_icons() + if(ishuman(M)) + var/mob/living/carbon/human/H = M + H.update_icons_layers() //Cheaper + else + M.update_icons() //so they black out before warping M.Paralyse(5) diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index 55dd383cf9f..961dbdcdfb0 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -482,7 +482,7 @@ Traitors and the like can also be revived with the previous role mostly intact. data_core.manifest_inject(new_character) //A redraw for good measure - new_character.update_icons() + new_character.update_icons_all() //If we're announcing their arrival if(announce) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index ba7a70b968f..72d1202b383 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -289,10 +289,9 @@ datum/preferences if(icon_updates) character.force_update_limbs() character.update_mutations(0) - character.update_body(0) character.update_underwear(0) character.update_hair(0) - character.update_icons() + character.update_icons_all() /datum/preferences/proc/open_load_dialog(mob/user) var/dat = "" diff --git a/code/modules/clothing/under/miscellaneous_vr.dm b/code/modules/clothing/under/miscellaneous_vr.dm index 821e4d1b5ab..d1d56ad2e7e 100644 --- a/code/modules/clothing/under/miscellaneous_vr.dm +++ b/code/modules/clothing/under/miscellaneous_vr.dm @@ -75,7 +75,7 @@ if (isnull(H.size_multiplier)) to_chat(H,"The uniform panics and corrects your apparently microscopic size.") H.resize(RESIZE_NORMAL) - H.update_icons() + H.update_icons() //Just want the matrix transform return if (!IsInRange(new_size,25,200)) diff --git a/code/modules/holodeck/HolodeckControl.dm b/code/modules/holodeck/HolodeckControl.dm index cfffe2282fb..8560e71f345 100644 --- a/code/modules/holodeck/HolodeckControl.dm +++ b/code/modules/holodeck/HolodeckControl.dm @@ -247,7 +247,7 @@ var/mob/M = obj.loc if(ismob(M)) M.remove_from_mob(obj) - M.update_icons() //so their overlays update + M.update_icons_layers() //so their overlays update if(!silent) var/obj/oldobj = obj diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index ac28f40d6c8..087b11578a2 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -101,8 +101,8 @@ if (ishuman(body)) var/mob/living/carbon/human/H = body - icon = H.stand_icon - overlays = H.overlays_standing + icon = H.icon + overlays = H.overlays else icon = body.icon icon_state = body.icon_state diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm index d4fbecf4811..2273fb11ca4 100644 --- a/code/modules/mob/inventory.dm +++ b/code/modules/mob/inventory.dm @@ -134,7 +134,7 @@ var/list/slot_equipment_priority = list( \ remove_from_mob(W, target) if(!(W && W.loc)) return 1 // self destroying objects (tk, grabs) - update_icons() + update_icons_layers() return 1 return 0 diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 84db5c29d21..797a106ae7b 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -320,7 +320,8 @@ H.bloody_hands = 0 H.update_inv_gloves(0) H.germ_level = 0 - update_icons() //apply the now updated overlays to the mob + update_icons_layers(FALSE) //apply the now updated overlays to the mob + update_icons_body() //Throwing stuff /mob/proc/throw_item(atom/target) diff --git a/code/modules/mob/living/carbon/human/appearance.dm b/code/modules/mob/living/carbon/human/appearance.dm index 236de2183c3..454ce677a83 100644 --- a/code/modules/mob/living/carbon/human/appearance.dm +++ b/code/modules/mob/living/carbon/human/appearance.dm @@ -23,7 +23,7 @@ src.gender = gender //reset_hair() //VOREStation Remove - Don't just randomize hair on gender swaps for prometheans. - update_body() + update_icons_body() update_dna() return 1 @@ -91,7 +91,7 @@ b_eyes = blue update_eyes() - update_body() + update_icons_body() return 1 /mob/living/carbon/human/proc/change_hair_color(var/red, var/green, var/blue) @@ -102,8 +102,6 @@ g_hair = green b_hair = blue - force_update_limbs() - update_body() update_hair() return 1 @@ -127,7 +125,7 @@ b_skin = blue force_update_limbs() - update_body() + update_icons_body() return 1 /mob/living/carbon/human/proc/change_skin_tone(var/tone) @@ -137,7 +135,7 @@ s_tone = tone force_update_limbs() - update_body() + update_icons_body() return 1 /mob/living/carbon/human/proc/update_dna() @@ -211,4 +209,4 @@ /mob/living/carbon/human/proc/force_update_limbs() for(var/obj/item/organ/external/O in organs) O.sync_colour_to_human(src) - update_body(0) + update_icons_body(FALSE) diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm index 5fe75e9eae6..eaea5ec06e6 100644 --- a/code/modules/mob/living/carbon/human/death.dm +++ b/code/modules/mob/living/carbon/human/death.dm @@ -118,7 +118,7 @@ mutations.Add(HUSK) status_flags |= DISFIGURED //makes them unknown without fucking up other stuff like admintools - update_body(1) + update_icons_body() return /mob/living/carbon/human/proc/Drain() @@ -137,5 +137,5 @@ mutations.Add(SKELETON) status_flags |= DISFIGURED - update_body(1) + update_icons_body() return \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 68ef935806d..0f4234493a9 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -2,8 +2,8 @@ name = "unknown" real_name = "unknown" voice_name = "unknown" - icon = 'icons/mob/human.dmi' - icon_state = "body_m_s" + icon = 'icons/effects/effects.dmi' //We have an ultra-complex update icons that overlays everything, don't load some stupid random male human + icon_state = "nothing" var/list/hud_list[TOTAL_HUDS] var/embedded_flag //To check if we've need to roll for damage on movement while an item is imbedded in us. @@ -56,6 +56,14 @@ human_mob_list -= src for(var/organ in organs) qdel(organ) + + list_layers.Cut() + list_layers = null //Be free! + list_body.Cut() + list_body = null + list_huds.Cut() + list_huds = null + return ..() /mob/living/carbon/human/Stat() diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index e474610512f..a4a5420b1c2 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -74,10 +74,6 @@ var/skill_specialization = null var/list/skills = list() - var/icon/stand_icon = null - var/icon/lying_icon = null - var/icon/hud_icon = null - var/voice = "" //Instead of new say code calling GetVoice() over and over and over, we're just going to ask this variable, which gets updated in Life() var/miming = null //Toggle for the mime's abilities. diff --git a/code/modules/mob/living/carbon/human/human_powers.dm b/code/modules/mob/living/carbon/human/human_powers.dm index a187436af89..909b2776d7e 100644 --- a/code/modules/mob/living/carbon/human/human_powers.dm +++ b/code/modules/mob/living/carbon/human/human_powers.dm @@ -264,4 +264,4 @@ var/obj/item/organ/O = new limb_path(src) organ_data["descriptor"] = O.name to_chat(src, "You feel a slithering sensation as your [O.name] reform.") - src.update_body() + update_icons_all() diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 56f07b2bc6f..fa539341385 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -1718,7 +1718,7 @@ hud_list[SPECIALROLE_HUD] = holder attempt_vr(src,"handle_hud_list_vr",list()) //VOREStation Add - Custom HUDs. hud_updateflag = 0 - update_icons() + update_icons_huds() /mob/living/carbon/human/handle_stunned() if(!can_feel_pain()) diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index ff85255bd34..ee0aa2660a7 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -70,7 +70,7 @@ There are several things that need to be remembered: > There are also these special cases: update_mutations() //handles updating your appearance for certain mutations. e.g TK head-glows UpdateDamageIcon() //handles damage overlays for brute/burn damage //(will rename this when I geta round to it) - update_body() //Handles updating your mob's icon to reflect their gender/race/complexion etc + update_icons_body() //Handles updating your mob's icon to reflect their gender/race/complexion etc update_hair() //Handles updating your hair overlay (used to be update_face, but mouth and ...eyes were merged into update_body) update_targeted() // Updates the target overlay when someone points a gun at you @@ -141,50 +141,88 @@ Please contact me on #coderbus IRC. ~Carn x ////////////////////////////////// /mob/living/carbon/human + var/list/list_huds = list() + var/list/list_body = list() + var/list/list_layers = list() + var/list/overlays_standing[TOTAL_LAYERS] var/previous_damage_appearance // store what the body last looked like, so we only have to update it if something changed //UPDATES OVERLAYS FROM OVERLAYS_LYING/OVERLAYS_STANDING -//this proc is messy as I was forced to include some old laggy cloaking code to it so that I don't break cloakers //I'll work on removing that stuff by rewriting some of the cloaking stuff at a later date. /mob/living/carbon/human/update_icons() lying_prev = lying //so we don't update overlays for lying/standing unless our stance changes again update_hud() //TODO: remove the need for this - overlays.Cut() - icon = icon('icons/effects/effects.dmi', "icon_state"="nothing") - if(has_huds) - for(var/I in hud_list) - overlays += I - overlays += backplane + //0: We start with their existing appearance (this contains their verbs, important to keep those!) + var/mutable_appearance/ma_compiled = new(src) - overlays += stand_icon - for(var/entry in overlays_standing) - if(istype(entry, /image)) - overlays += entry - else if(istype(entry, /list)) - for(var/inner_entry in entry) - overlays += inner_entry + //1: HUDs because these are hidden behind a backplane. See update_icons_huds() + ma_compiled.overlays = list_huds //The first one can set instead of add - if(species && species.has_floating_eyes) - overlays |= species.get_eyes(src) + //2: The body itself, all the organs and whatnot + ma_compiled.overlays += list_body + //3: The 'layers' list (overlays_standing), from the defines above + ma_compiled.overlays += list_layers + + //4: Apply transforms based on situation if(lying && !species.prone_icon) //Only rotate them if we're not drawing a specific icon for being prone. var/matrix/M = matrix() M.Turn(90) M.Scale(size_multiplier) //VOREStation Edit. Look at Polaris pull #4267 to see things edited. M.Translate(1,-6) - src.transform = M - src.layer = MOB_LAYER -0.1 //VOREStation Edit. Laying people under other people. LEWD. + ma_compiled.transform = M + ma_compiled.layer = MOB_LAYER -0.1 //VOREStation Edit. Laying people under other people. LEWD. else var/matrix/M = matrix() M.Scale(size_multiplier) //VOREStation Edit. M.Translate(0, 16*(size_multiplier-1)) //VOREStation Edit. - src.transform = M - src.layer = MOB_LAYER //VOREStation Edit. Unset laying layer. UNLEWD. + ma_compiled.transform = M + ma_compiled.layer = MOB_LAYER //VOREStation Edit. Unset laying layer. UNLEWD. + + //5: Set appearance once + appearance = ma_compiled + +//Update the layers from the defines above +/mob/living/carbon/human/update_icons_layers(var/update_icons = 1) + list_layers.Cut() + + for(var/entry in overlays_standing) + if(istype(entry, /image)) + list_layers += entry + else if(istype(entry, /list)) //Is this necessary? What adds a list to this? + for(var/inner_entry in entry) + list_layers += inner_entry + + if(species && species.has_floating_eyes) + list_layers += species.get_eyes(src) + + if(update_icons) + update_icons() + +//HUD Icons (ingame huds, not the user interface) +//Update things like med/sec hud icons +/mob/living/carbon/human/update_icons_huds(var/update_icons = 1) + list_huds.Cut() + + if(has_huds) + list_huds = hud_list.Copy() + list_huds += backplane // Required to mask HUDs in context menus: http://www.byond.com/forum/?post=2336679 + + if(update_icons) + update_icons() + +//A full, crunchy reprocess of all three cached lists +/mob/living/carbon/human/update_icons_all(var/update_icons = 1) + update_icons_huds(FALSE) + update_icons_body(FALSE) + update_icons_layers(FALSE) + + if(update_icons) + update_icons() var/global/list/damage_icon_parts = list() - //DAMAGE OVERLAYS //constructs damage icon for each organ from mask * damage field and saves it in our overlays_ lists /mob/living/carbon/human/UpdateDamageIcon(var/update_icons=1) @@ -227,10 +265,11 @@ var/global/list/damage_icon_parts = list() overlays_standing[DAMAGE_LAYER] = standing_image - if(update_icons) update_icons() + if(update_icons) + update_icons_layers() //BASE MOB SPRITE -/mob/living/carbon/human/proc/update_body(var/update_icons=1) +/mob/living/carbon/human/update_icons_body(var/update_icons=1) var/husk_color_mod = rgb(96,88,80) var/hulk_color_mod = rgb(48,224,40) @@ -247,9 +286,10 @@ var/global/list/damage_icon_parts = list() //0 = destroyed, 1 = normal, 2 = robotic, 3 = necrotic. //Create a new, blank icon for our mob to use. - if(stand_icon) - qdel(stand_icon) - stand_icon = new(species.icon_template ? species.icon_template : 'icons/mob/human.dmi',"blank") + var/icon/stand_icon = new(species.icon_template ? species.icon_template : 'icons/mob/human.dmi',"blank") + + //Clean old list_body + list_body.Cut() var/g = "male" if(gender == FEMALE) @@ -354,6 +394,7 @@ var/global/list/damage_icon_parts = list() //END CACHED ICON GENERATION. stand_icon.Blend(base_icon,ICON_OVERLAY) + list_body += stand_icon //A little silly, almost pointless to use a list for this, but can come back later and make this proc itself better if(update_icons) update_icons() @@ -364,7 +405,7 @@ var/global/list/damage_icon_parts = list() /mob/living/carbon/human/proc/update_skin(var/update_icons=1) overlays_standing[SKIN_LAYER] = species.update_skin(src) - if(update_icons) update_icons() + if(update_icons) update_icons_layers() //UNDERWEAR OVERLAY /mob/living/carbon/human/proc/update_underwear(var/update_icons=1) @@ -378,7 +419,7 @@ var/global/list/damage_icon_parts = list() var/datum/category_item/underwear/UWI = all_underwear[category] overlays_standing[UNDERWEAR_LAYER] += UWI.generate_image(all_underwear_metadata[category]) - if(update_icons) update_icons() + if(update_icons) update_icons_layers() //HAIR OVERLAY /mob/living/carbon/human/proc/update_hair(var/update_icons=1) @@ -387,12 +428,12 @@ var/global/list/damage_icon_parts = list() var/obj/item/organ/external/head/head_organ = get_organ(BP_HEAD) if(!head_organ || head_organ.is_stump() ) - if(update_icons) update_icons() + if(update_icons) update_icons_layers() return //masks and helmets can obscure our hair. if( (head && (head.flags_inv & BLOCKHAIR)) || (wear_mask && (wear_mask.flags_inv & BLOCKHAIR))) - if(update_icons) update_icons() + if(update_icons) update_icons_layers() return //base icons @@ -429,7 +470,7 @@ var/global/list/damage_icon_parts = list() overlays_standing[HAIR_LAYER] = image(face_standing) - if(update_icons) update_icons() + if(update_icons) update_icons_layers() /mob/living/carbon/human/update_mutations(var/update_icons=1) var/fat @@ -472,7 +513,7 @@ var/global/list/damage_icon_parts = list() overlays_standing[MUTATIONS_LAYER] = standing else overlays_standing[MUTATIONS_LAYER] = null - if(update_icons) update_icons() + if(update_icons) update_icons_layers() /* --------------------------------------- */ //For legacy support. @@ -482,7 +523,7 @@ var/global/list/damage_icon_parts = list() update_mutations(0) update_skin(0) - update_body(0) + update_icons_body(0) update_underwear(0) update_hair(0) update_inv_w_uniform(0) @@ -506,6 +547,8 @@ var/global/list/damage_icon_parts = list() update_water(0) update_surgery(0) UpdateDamageIcon() + update_icons_layers(0) + update_icons_huds(0) update_icons() //Hud Stuff update_hud() @@ -570,7 +613,7 @@ var/global/list/damage_icon_parts = list() update_inv_shoes(1) if(update_icons) - update_icons() + update_icons_layers() /mob/living/carbon/human/update_inv_wear_id(var/update_icons=1) if(wear_id) @@ -592,7 +635,7 @@ var/global/list/damage_icon_parts = list() BITSET(hud_updateflag, ID_HUD) BITSET(hud_updateflag, WANTED_HUD) - if(update_icons) update_icons() + if(update_icons) update_icons_layers() /mob/living/carbon/human/update_inv_gloves(var/update_icons=1) if(gloves) @@ -629,7 +672,7 @@ var/global/list/damage_icon_parts = list() overlays_standing[GLOVES_LAYER] = bloodsies else overlays_standing[GLOVES_LAYER] = null - if(update_icons) update_icons() + if(update_icons) update_icons_layers() /mob/living/carbon/human/update_inv_glasses(var/update_icons=1) @@ -654,12 +697,12 @@ var/global/list/damage_icon_parts = list() else overlays_standing[GLASSES_LAYER] = null - if(update_icons) update_icons() + if(update_icons) update_icons_layers() /mob/living/carbon/human/update_inv_ears(var/update_icons=1) overlays_standing[EARS_LAYER] = null if( (head && (head.flags_inv & (BLOCKHAIR | BLOCKHEADHAIR))) || (wear_mask && (wear_mask.flags_inv & (BLOCKHAIR | BLOCKHEADHAIR)))) - if(update_icons) update_icons() + if(update_icons) update_icons_layers() return if(l_ear || r_ear) @@ -714,7 +757,7 @@ var/global/list/damage_icon_parts = list() else overlays_standing[EARS_LAYER] = null - if(update_icons) update_icons() + if(update_icons) update_icons_layers() /mob/living/carbon/human/update_inv_shoes(var/update_icons=1) if(shoes && !((wear_suit && wear_suit.flags_inv & HIDESHOES) || (w_uniform && w_uniform.flags_inv & HIDESHOES))) @@ -771,7 +814,7 @@ var/global/list/damage_icon_parts = list() s_store.screen_loc = ui_sstore1 //TODO else overlays_standing[SUIT_STORE_LAYER] = null - if(update_icons) update_icons() + if(update_icons) update_icons_layers() /mob/living/carbon/human/update_inv_head(var/update_icons=1) @@ -831,7 +874,7 @@ var/global/list/damage_icon_parts = list() else overlays_standing[HEAD_LAYER] = null - if(update_icons) update_icons() + if(update_icons) update_icons_layers() /mob/living/carbon/human/update_inv_belt(var/update_icons=1) if(belt) @@ -875,7 +918,7 @@ var/global/list/damage_icon_parts = list() else overlays_standing[BELT_LAYER] = null overlays_standing[BELT_LAYER_ALT] = null - if(update_icons) update_icons() + if(update_icons) update_icons_layers() /mob/living/carbon/human/update_inv_wear_suit(var/update_icons=1) @@ -947,12 +990,12 @@ var/global/list/damage_icon_parts = list() update_tail_showing(0) update_wing_showing(0)//VOREStation Edit - if(update_icons) update_icons() + if(update_icons) update_icons_layers() /mob/living/carbon/human/update_inv_pockets(var/update_icons=1) if(l_store) l_store.screen_loc = ui_storage1 //TODO if(r_store) r_store.screen_loc = ui_storage2 //TODO - if(update_icons) update_icons() + if(update_icons) update_icons_layers() /mob/living/carbon/human/update_inv_wear_mask(var/update_icons=1) @@ -983,7 +1026,7 @@ var/global/list/damage_icon_parts = list() overlays_standing[FACEMASK_LAYER] = standing else overlays_standing[FACEMASK_LAYER] = null - if(update_icons) update_icons() + if(update_icons) update_icons_layers() /mob/living/carbon/human/update_inv_back(var/update_icons=1) @@ -1032,8 +1075,7 @@ var/global/list/damage_icon_parts = list() overlays_standing[BACK_LAYER] = null if(update_icons) - update_icons() - + update_icons_layers() /mob/living/carbon/human/update_hud() //TODO: do away with this if possible if(client) @@ -1066,7 +1108,7 @@ var/global/list/damage_icon_parts = list() overlays_standing[HANDCUFF_LAYER] = null update_hud_handcuffed() - if(update_icons) update_icons() + if(update_icons) update_icons_layers() /mob/living/carbon/human/update_inv_legcuffed(var/update_icons=1) if(legcuffed) @@ -1087,7 +1129,7 @@ var/global/list/damage_icon_parts = list() else overlays_standing[LEGCUFF_LAYER] = null - if(update_icons) update_icons() + if(update_icons) update_icons_layers() /mob/living/carbon/human/update_inv_r_hand(var/update_icons=1) @@ -1123,7 +1165,7 @@ var/global/list/damage_icon_parts = list() else overlays_standing[R_HAND_LAYER] = null - if(update_icons) update_icons() + if(update_icons) update_icons_layers() /mob/living/carbon/human/update_inv_l_hand(var/update_icons=1) @@ -1159,7 +1201,7 @@ var/global/list/damage_icon_parts = list() else overlays_standing[L_HAND_LAYER] = null - if(update_icons) update_icons() + if(update_icons) update_icons_layers() /mob/living/carbon/human/proc/update_tail_showing(var/update_icons=1) overlays_standing[TAIL_LAYER] = null @@ -1180,7 +1222,7 @@ var/global/list/damage_icon_parts = list() animate_tail_reset(0) if(update_icons) - update_icons() + update_icons_layers() /mob/living/carbon/human/proc/get_tail_icon() var/icon_key = "[species.get_race_key(src)][r_skin][g_skin][b_skin][r_hair][g_hair][b_hair]" @@ -1232,19 +1274,19 @@ var/global/list/damage_icon_parts = list() animate_tail_stop() if(update_icons) - update_icons() + update_icons_layers() /mob/living/carbon/human/proc/animate_tail_start(var/update_icons=1) set_tail_state("[species.get_tail(src)]_slow[rand(0,9)]") if(update_icons) - update_icons() + update_icons_layers() /mob/living/carbon/human/proc/animate_tail_fast(var/update_icons=1) set_tail_state("[species.get_tail(src)]_loop[rand(0,9)]") if(update_icons) - update_icons() + update_icons_layers() /mob/living/carbon/human/proc/animate_tail_reset(var/update_icons=1) if(stat != DEAD) @@ -1253,13 +1295,13 @@ var/global/list/damage_icon_parts = list() set_tail_state("[species.get_tail(src)]_static") toggle_tail_vr(0) //VOREStation Add - So tails stop when someone dies. if(update_icons) - update_icons() + update_icons_layers() /mob/living/carbon/human/proc/animate_tail_stop(var/update_icons=1) set_tail_state("[species.get_tail(src)]_static") if(update_icons) - update_icons() + update_icons_layers() //Adds a collar overlay above the helmet layer if the suit has one @@ -1274,7 +1316,7 @@ var/global/list/damage_icon_parts = list() overlays_standing[COLLAR_LAYER] = standing - if(update_icons) update_icons() + if(update_icons) update_icons_layers() /mob/living/carbon/human/update_modifier_visuals(var/update_icons=1) overlays_standing[MODIFIER_EFFECTS_LAYER] = null @@ -1287,14 +1329,14 @@ var/global/list/damage_icon_parts = list() overlays_standing[MODIFIER_EFFECTS_LAYER] = effects if(update_icons) - update_icons() + update_icons_layers() /mob/living/carbon/human/update_fire(var/update_icons=1) overlays_standing[FIRE_LAYER] = null if(on_fire) overlays_standing[FIRE_LAYER] = image("icon"='icons/mob/OnFire.dmi', "icon_state" = get_fire_icon_state()) - if(update_icons) update_icons() + if(update_icons) update_icons_layers() /mob/living/carbon/human/update_water(var/update_icons=1) overlays_standing[WATER_LAYER] = null @@ -1305,7 +1347,7 @@ var/global/list/damage_icon_parts = list() // Lying sideways with the overlay looked strange. Another overlay will be needed in the future. if(update_icons) - update_icons() + update_icons_layers() /mob/living/carbon/human/proc/update_surgery(var/update_icons=1) overlays_standing[SURGERY_LEVEL] = null @@ -1315,7 +1357,7 @@ var/global/list/damage_icon_parts = list() var/image/I = image("icon"='icons/mob/surgery.dmi', "icon_state"="[E.icon_name][round(E.open)]", "layer"=-SURGERY_LEVEL) total.overlays += I overlays_standing[SURGERY_LEVEL] = total - if(update_icons) update_icons() + if(update_icons) update_icons_layers() //Human Overlays Indexes///////// #undef MUTATIONS_LAYER diff --git a/code/modules/mob/living/carbon/human/update_icons_vr.dm b/code/modules/mob/living/carbon/human/update_icons_vr.dm index 64e2d2ceb54..aaf51cbac7d 100644 --- a/code/modules/mob/living/carbon/human/update_icons_vr.dm +++ b/code/modules/mob/living/carbon/human/update_icons_vr.dm @@ -36,7 +36,7 @@ set_wing_state("[species.get_wing(src)]_static") toggle_wing_vr(0) if(update_icons) - update_icons() + update_icons_layers() /mob/living/carbon/human/proc/get_wing_image() //If you are FBP with tail style and didn't set a custom one @@ -61,11 +61,11 @@ overlays_standing[WING_LAYER] = get_wing_image() if(overlays_standing[WING_LAYER]) if(update_icons) - update_icons() + update_icons_layers() return /mob/proc/stop_flying(var/update_icons=1) flying = 0 if(update_icons) - update_icons() \ No newline at end of file + update_icons_layers() \ No newline at end of file diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm index 202b72c0fcf..1e8cc9f6b0a 100644 --- a/code/modules/mob/new_player/preferences_setup.dm +++ b/code/modules/mob/new_player/preferences_setup.dm @@ -252,7 +252,7 @@ update_icon = TRUE if(update_icon) - mannequin.update_icons() + mannequin.update_icons_all() /datum/preferences/proc/update_preview_icon() var/mob/living/carbon/human/dummy/mannequin/mannequin = get_mannequin(client_ckey) diff --git a/code/modules/mob/update_icons.dm b/code/modules/mob/update_icons.dm index ceca667c39c..3eab4b967fb 100644 --- a/code/modules/mob/update_icons.dm +++ b/code/modules/mob/update_icons.dm @@ -7,6 +7,25 @@ /mob/proc/update_icons() return +/mob/proc/update_icons_layers(var/update_icons = TRUE) + if(update_icons) + update_icons() + +/mob/proc/update_icons_huds(var/update_icons = TRUE) + if(update_icons) + update_icons() + +/mob/proc/update_icons_body(var/update_icons = TRUE) + if(update_icons) + update_icons() + +/mob/proc/update_icons_all() + update_icons_huds(FALSE) + update_icons_body(FALSE) + update_icons_layers(FALSE) + + update_icons() + /mob/proc/update_hud() return diff --git a/code/modules/nifsoft/software/15_misc.dm b/code/modules/nifsoft/software/15_misc.dm index ad9fb9b230a..cc45524e092 100644 --- a/code/modules/nifsoft/software/15_misc.dm +++ b/code/modules/nifsoft/software/15_misc.dm @@ -149,7 +149,7 @@ to_chat(nif.human,"You set the size to [new_size]%") nif.human.visible_message("Swirling grey mist envelops [nif.human] as they change size!","Swirling streams of nanites wrap around you as you change size!") - nif.human.update_icons() + nif.human.update_icons() //Apply matrix transform asap spawn(0) deactivate() diff --git a/code/modules/organs/blood.dm b/code/modules/organs/blood.dm index e6f2800d4e2..c7ed73393c4 100644 --- a/code/modules/organs/blood.dm +++ b/code/modules/organs/blood.dm @@ -93,11 +93,11 @@ var/const/CE_STABLE_THRESHOLD = 0.5 if(blood_volume >= BLOOD_VOLUME_SAFE) if(pale) pale = 0 - update_body() + update_icons_body() else if(blood_volume >= BLOOD_VOLUME_OKAY) if(!pale) pale = 1 - update_body() + update_icons_body() var/word = pick("dizzy","woosey","faint") src << "You feel [word]" if(prob(1)) @@ -108,7 +108,7 @@ var/const/CE_STABLE_THRESHOLD = 0.5 else if(blood_volume >= BLOOD_VOLUME_BAD) if(!pale) pale = 1 - update_body() + update_icons_body() eye_blurry = max(eye_blurry,6) if(getOxyLoss() < 50 * threshold_coef) adjustOxyLoss(10 * dmg_coef) @@ -126,7 +126,7 @@ var/const/CE_STABLE_THRESHOLD = 0.5 else //Not enough blood to survive (usually) if(!pale) pale = 1 - update_body() + update_icons_body() eye_blurry = max(eye_blurry,6) Paralyse(3) adjustToxLoss(3 * dmg_coef) diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index 587bcd0686d..d269ccf4d77 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -675,7 +675,7 @@ Note that amputating the affected organ does in fact remove the infection from t if (!(status & ORGAN_DEAD)) status |= ORGAN_DEAD owner << "You can't feel your [name] anymore..." - owner.update_body(1) + owner.update_icons_body() for (var/obj/item/organ/external/child in children) child.germ_level += 110 //Burst of infection from a parent organ becoming necrotic @@ -1112,11 +1112,11 @@ Note that amputating the affected organ does in fact remove the infection from t if(src.robotic >= ORGAN_ROBOT) return src.status |= ORGAN_MUTATED - if(owner) owner.update_body() + if(owner) owner.update_icons_body() /obj/item/organ/external/proc/unmutate() src.status &= ~ORGAN_MUTATED - if(owner) owner.update_body() + if(owner) owner.update_icons_body() /obj/item/organ/external/proc/get_damage() //returns total damage return (brute_dam+burn_dam) //could use max_damage? @@ -1203,7 +1203,7 @@ Note that amputating the affected organ does in fact remove the infection from t qdel(spark_system) qdel(src) - victim.update_body() + victim.update_icons_body() /obj/item/organ/external/proc/disfigure(var/type = "brute") if (disfigured) diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 527751334eb..172d9698b17 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -169,7 +169,7 @@ if(H == user) user << "You wipe off the lipstick with [src]." H.lip_style = null - H.update_body() + H.update_icons_body() else user.visible_message("[user] begins to wipe [H]'s lipstick off with \the [src].", \ "You begin to wipe off [H]'s lipstick.") @@ -177,7 +177,7 @@ user.visible_message("[user] wipes [H]'s lipstick off with \the [src].", \ "You wipe off [H]'s lipstick.") H.lip_style = null - H.update_body() + H.update_icons_body() /obj/item/weapon/paper/proc/addtofield(var/id, var/text, var/links = 0) var/locid = 0 diff --git a/code/modules/projectiles/projectile/energy.dm b/code/modules/projectiles/projectile/energy.dm index dbc54fc4325..d3bc093cacb 100644 --- a/code/modules/projectiles/projectile/energy.dm +++ b/code/modules/projectiles/projectile/energy.dm @@ -178,7 +178,7 @@ else if (M.ear_damage >= 5) to_chat(M, "Your ears start to ring!") - M.update_icons() + M.update_icons() //Just to apply matrix transform for laying asap /obj/item/projectile/energy/plasmastun/on_hit(var/atom/target) bang(target) diff --git a/code/modules/surgery/limb_reattach.dm b/code/modules/surgery/limb_reattach.dm index c57248da0fc..df1f24eec2f 100644 --- a/code/modules/surgery/limb_reattach.dm +++ b/code/modules/surgery/limb_reattach.dm @@ -57,7 +57,7 @@ "You have attached [target]'s [E.name] to the [E.amputation_point].") user.drop_from_inventory(E) E.replaced(target) - target.update_body() + target.update_icons_body(FALSE) target.updatehealth() target.UpdateDamageIcon() @@ -99,7 +99,7 @@ if(E.children) for(var/obj/item/organ/external/C in E.children) C.status &= ~ORGAN_DESTROYED - target.update_body() + target.update_icons_body(FALSE) target.updatehealth() target.UpdateDamageIcon() @@ -149,7 +149,7 @@ if(L.sabotaged) new_limb.sabotaged = 1 - target.update_body() + target.update_icons_body(FALSE) target.updatehealth() target.UpdateDamageIcon() diff --git a/code/modules/surgery/other.dm b/code/modules/surgery/other.dm index ab18e302c34..ef9357168cf 100644 --- a/code/modules/surgery/other.dm +++ b/code/modules/surgery/other.dm @@ -110,7 +110,7 @@ var/trans = container.reagents.trans_to_mob(target, container.amount_per_transfer_from_this, CHEM_BLOOD) //technically it's contact, but the reagents are being applied to internal tissue if (trans > 0) affected.status &= ~ORGAN_DEAD - affected.owner.update_body(1) + affected.owner.update_icons_body() user.visible_message("[user] applies [trans] units of the solution to affected tissue in [target]'s [affected.name].", \ "You apply [trans] units of the solution to affected tissue in [target]'s [affected.name] with \the [tool].") diff --git a/code/modules/virus2/effect.dm b/code/modules/virus2/effect.dm index b0947e94a60..d24069ca5fa 100644 --- a/code/modules/virus2/effect.dm +++ b/code/modules/virus2/effect.dm @@ -157,7 +157,7 @@ H << "You can't feel your [E.name] anymore..." for (var/obj/item/organ/external/C in E.children) C.status |= ORGAN_DEAD - H.update_body(1) + H.update_icons_body() mob.adjustToxLoss(15*multiplier) deactivate(var/mob/living/carbon/mob,var/multiplier) @@ -167,7 +167,7 @@ E.status &= ~ORGAN_DEAD for (var/obj/item/organ/external/C in E.children) C.status &= ~ORGAN_DEAD - H.update_body(1) + H.update_icons_body() /datum/disease2/effect/immortal name = "Longevity Syndrome" diff --git a/code/modules/vore/eating/transforming_vr.dm b/code/modules/vore/eating/transforming_vr.dm index 94505902986..b6016b11274 100644 --- a/code/modules/vore/eating/transforming_vr.dm +++ b/code/modules/vore/eating/transforming_vr.dm @@ -13,7 +13,7 @@ M.g_eyes = O.g_eyes M.b_eyes = O.b_eyes M.update_eyes() - M.update_body() + M.update_icons_body() if(message) to_chat(M, "You feel lightheaded and drowsy...") to_chat(O, "You feel warm as you make subtle changes to your captive's body.") @@ -66,7 +66,7 @@ M.b_skin = O.b_skin for(var/obj/item/organ/external/Z in M.organs) Z.sync_colour_to_human(M) - M.update_body() + M.update_icons_body() if(message) to_chat(M, "Your body tingles all over...") to_chat(O, "You tingle as you make noticeable changes to your captive's body.") @@ -95,7 +95,7 @@ M.f_style = "Shaved" M.dna.SetUIState(DNA_UI_GENDER,M.gender!=MALE,1) M.sync_organ_dna() - M.update_body() + M.update_icons_body() if(message) to_chat(M, "Your body feels very strange...") to_chat(O, "You feel strange as you alter your captive's gender.") @@ -233,7 +233,7 @@ for(var/obj/item/organ/external/Z in M.organs)//Just in case. Z.sync_colour_to_human(M) M.fixblood() - M.update_body() + M.update_icons_body() M.update_tail_showing() if(message) to_chat(M, "You lose sensation of your body, feeling only the warmth of everything around you... ") diff --git a/icons/effects/effects.dmi b/icons/effects/effects.dmi index b96d107773a..5c8b7a7c12a 100644 Binary files a/icons/effects/effects.dmi and b/icons/effects/effects.dmi differ