From 8db91a327304b46266a3be3f53b07aff3841d937 Mon Sep 17 00:00:00 2001 From: d3athrow Date: Tue, 27 May 2014 08:26:16 -0500 Subject: [PATCH] Image pooling for human unconscious/oxygenloss/fire&bruteloss screen overlays. --- code/modules/mob/living/carbon/human/life.dm | 82 +++++++++++++------- 1 file changed, 52 insertions(+), 30 deletions(-) diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 2a2dd7b40bc..6a7b07eff24 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -21,6 +21,29 @@ #define COLD_GAS_DAMAGE_LEVEL_2 1.5 //Amount of damage applied when the current breath's temperature passes the 200K point #define COLD_GAS_DAMAGE_LEVEL_3 3 //Amount of damage applied when the current breath's temperature passes the 120K point +var/global/list/unconscious_overlays = list("1" = image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "passage1"),\ + "2" = image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "passage2"),\ + "3" = image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "passage3"),\ + "4" = image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "passage4"),\ + "5" = image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "passage5"),\ + "6" = image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "passage6"),\ + "7" = image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "passage7"),\ + "8" = image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "passage8"),\ + "9" = image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "passage9"),\ + "10" = image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "passage10")) +var/global/list/oxyloss_overlays = list("1" = image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "oxydamageoverlay1"),\ + "2" = image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "oxydamageoverlay2"),\ + "3" = image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "oxydamageoverlay3"),\ + "4" = image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "oxydamageoverlay4"),\ + "5" = image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "oxydamageoverlay5"),\ + "6" = image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "oxydamageoverlay6"),\ + "7" = image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "oxydamageoverlay7")) +var/global/list/brutefireloss_overlays = list("1" = image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "brutedamageoverlay1"),\ + "2" = image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "brutedamageoverlay2"),\ + "3" = image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "brutedamageoverlay3"),\ + "4" = image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "brutedamageoverlay4"),\ + "5" = image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "brutedamageoverlay5"),\ + "6" = image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "brutedamageoverlay6")) /mob/living/carbon/human var/oxygen_alert = 0 var/toxins_alert = 0 @@ -1351,70 +1374,69 @@ if(stat == UNCONSCIOUS) //Critical damage passage overlay if(health <= 0) - var/image/I + //var/image/I switch(health) if(-20 to -10) - I = image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "passage1") + damageoverlay.overlays += unconscious_overlays["1"]//image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "passage1") if(-30 to -20) - I = image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "passage2") + damageoverlay.overlays += unconscious_overlays["2"]//image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "passage2") if(-40 to -30) - I = image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "passage3") + damageoverlay.overlays += unconscious_overlays["3"]//image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "passage3") if(-50 to -40) - I = image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "passage4") + damageoverlay.overlays += unconscious_overlays["4"]//image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "passage4") if(-60 to -50) - I = image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "passage5") + damageoverlay.overlays += unconscious_overlays["5"]//image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "passage5") if(-70 to -60) - I = image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "passage6") + damageoverlay.overlays += unconscious_overlays["6"]//image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "passage6") if(-80 to -70) - I = image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "passage7") + damageoverlay.overlays += unconscious_overlays["7"]//image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "passage7") if(-90 to -80) - I = image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "passage8") + damageoverlay.overlays += unconscious_overlays["8"]//image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "passage8") if(-95 to -90) - I = image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "passage9") + damageoverlay.overlays += unconscious_overlays["9"]//image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "passage9") if(-INFINITY to -95) - I = image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "passage10") - damageoverlay.overlays += I + damageoverlay.overlays += unconscious_overlays["10"]//image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "passage10") + //damageoverlay.overlays += I else //Oxygen damage overlay if(oxyloss) - var/image/I + //var/image/I switch(oxyloss) if(10 to 20) - I = image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "oxydamageoverlay1") + damageoverlay.overlays += oxyloss_overlays["1"]//image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "oxydamageoverlay1") if(20 to 25) - I = image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "oxydamageoverlay2") + damageoverlay.overlays += oxyloss_overlays["2"]//image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "oxydamageoverlay2") if(25 to 30) - I = image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "oxydamageoverlay3") + damageoverlay.overlays += oxyloss_overlays["3"]//image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "oxydamageoverlay3") if(30 to 35) - I = image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "oxydamageoverlay4") + damageoverlay.overlays += oxyloss_overlays["4"]//image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "oxydamageoverlay4") if(35 to 40) - I = image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "oxydamageoverlay5") + damageoverlay.overlays += oxyloss_overlays["5"]//image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "oxydamageoverlay5") if(40 to 45) - I = image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "oxydamageoverlay6") + damageoverlay.overlays += oxyloss_overlays["6"]//image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "oxydamageoverlay6") if(45 to INFINITY) - I = image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "oxydamageoverlay7") - damageoverlay.overlays += I + damageoverlay.overlays += oxyloss_overlays["7"]//image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "oxydamageoverlay7") + //damageoverlay.overlays += I //Fire and Brute damage overlay (BSSR) var/hurtdamage = src.getBruteLoss() + src.getFireLoss() + damageoverlaytemp damageoverlaytemp = 0 // We do this so we can detect if someone hits us or not. if(hurtdamage) - var/image/I + //var/image/I switch(hurtdamage) if(10 to 25) - I = image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "brutedamageoverlay1") + damageoverlay.overlays += brutefireloss_overlays["1"]//image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "brutedamageoverlay1") if(25 to 40) - I = image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "brutedamageoverlay2") + damageoverlay.overlays += brutefireloss_overlays["2"]//image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "brutedamageoverlay2") if(40 to 55) - I = image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "brutedamageoverlay3") + damageoverlay.overlays += brutefireloss_overlays["3"]//image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "brutedamageoverlay3") if(55 to 70) - I = image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "brutedamageoverlay4") + damageoverlay.overlays += brutefireloss_overlays["4"]//image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "brutedamageoverlay4") if(70 to 85) - I = image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "brutedamageoverlay5") + damageoverlay.overlays += brutefireloss_overlays["5"]//image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "brutedamageoverlay5") if(85 to INFINITY) - I = image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "brutedamageoverlay6") - damageoverlay.overlays += I - + damageoverlay.overlays += brutefireloss_overlays["6"]//image("icon" = 'icons/mob/screen1_full.dmi', "icon_state" = "brutedamageoverlay6") + //damageoverlay.overlays += I if( stat == DEAD ) sight |= (SEE_TURFS|SEE_MOBS|SEE_OBJS) see_in_dark = 8