Refactor Alien icons to get rid of nasty laying layer.

This commit is contained in:
Tigercat2000
2015-05-27 16:39:35 -07:00
parent 0691822f9c
commit 581521daae
8 changed files with 37 additions and 45 deletions
@@ -26,18 +26,17 @@
large = 1
/mob/living/carbon/alien/humanoid/sentinel/large/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 to be here
overlays.Cut()
if(lying)
if(resting) icon_state = "prat_sleep"
else icon_state = "prat_l"
for(var/image/I in overlays_lying)
overlays += I
if(stat == DEAD)
icon_state = "prat_dead"
else if(stat == UNCONSCIOUS || lying || resting)
icon_state = "prat_sleep"
else
icon_state = "prat_s"
for(var/image/I in overlays_standing)
overlays += I
for(var/image/I in overlays_standing)
overlays += I
/mob/living/carbon/alien/humanoid/sentinel/New()
var/datum/reagents/R = new/datum/reagents(100)
@@ -20,18 +20,19 @@
pixel_x = -32
/mob/living/carbon/alien/humanoid/empress/large/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 to be here
overlays.Cut()
if(lying)
if(resting) icon_state = "empress_sleep"
else icon_state = "empress_l"
for(var/image/I in overlays_lying)
overlays += I
if(stat == DEAD)
icon_state = "empress_dead"
else if(stat == UNCONSCIOUS || lying || resting)
icon_state = "empress_sleep"
else
icon_state = "empress_s"
for(var/image/I in overlays_standing)
overlays += I
for(var/image/I in overlays_standing)
overlays += I
/mob/living/carbon/alien/humanoid/empress/New()
var/datum/reagents/R = new/datum/reagents(100)
@@ -78,18 +78,18 @@
large = 1
/mob/living/carbon/alien/humanoid/queen/large/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 to be here
overlays.Cut()
if(lying)
if(resting) icon_state = "queen_sleep"
else icon_state = "queen_l"
for(var/image/I in overlays_lying)
overlays += I
if(stat == DEAD)
icon_state = "queen_dead"
else if(stat == UNCONSCIOUS || lying || resting)
icon_state = "queen_sleep"
else
icon_state = "queen_s"
for(var/image/I in overlays_standing)
overlays += I
for(var/image/I in overlays_standing)
overlays += I
/*
@@ -9,7 +9,6 @@
/////////////////////////////////
/mob/living/carbon/alien/humanoid
var/list/overlays_lying[X_TOTAL_LAYERS]
var/list/overlays_standing[X_TOTAL_LAYERS]
/mob/living/carbon/alien/humanoid/update_icons()
@@ -63,7 +62,13 @@
update_hud()
update_icons()
update_fire()
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)
lying = 90 //Anything else looks retarded
..()
update_icons()
/mob/living/carbon/alien/humanoid/update_hud()
@@ -74,32 +79,24 @@
client.screen |= contents
/mob/living/carbon/alien/humanoid/update_fire()
overlays -= overlays_lying[X_FIRE_LAYER]
overlays -= overlays_standing[X_FIRE_LAYER]
if(on_fire)
overlays_lying[X_FIRE_LAYER] = image("icon"='icons/mob/OnFire.dmi', "icon_state"="Lying", "layer"= -X_FIRE_LAYER)
overlays_standing[X_FIRE_LAYER] = image("icon"='icons/mob/OnFire.dmi', "icon_state"="Standing", "layer"= -X_FIRE_LAYER)
if(src.lying)
overlays += overlays_lying[X_FIRE_LAYER]
else
overlays += overlays_standing[X_FIRE_LAYER]
overlays += overlays_standing[X_FIRE_LAYER]
return
else
overlays_lying[X_FIRE_LAYER] = null
overlays_standing[X_FIRE_LAYER] = null
/mob/living/carbon/alien/humanoid/update_inv_wear_suit(var/update_icons=1)
if(wear_suit)
var/t_state = wear_suit.item_state
if(!t_state) t_state = wear_suit.icon_state
var/image/lying = image("icon" = 'icons/mob/mob.dmi', "icon_state" = "[t_state]2")
var/image/standing = image("icon" = 'icons/mob/mob.dmi', "icon_state" = "[t_state]")
if(wear_suit.blood_DNA)
var/t_suit = "suit"
if( istype(wear_suit, /obj/item/clothing/suit/armor) )
t_suit = "armor"
lying.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "[t_suit]blood2")
standing.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "[t_suit]blood")
//TODO
@@ -109,10 +106,8 @@
drop_r_hand()
drop_l_hand()
overlays_lying[X_SUIT_LAYER] = lying
overlays_standing[X_SUIT_LAYER] = standing
else
overlays_lying[X_SUIT_LAYER] = null
overlays_standing[X_SUIT_LAYER] = null
if(update_icons) update_icons()
@@ -121,16 +116,12 @@
if (head)
var/t_state = head.item_state
if(!t_state) t_state = head.icon_state
var/image/lying = image("icon" = 'icons/mob/mob.dmi', "icon_state" = "[t_state]2")
var/image/standing = image("icon" = 'icons/mob/mob.dmi', "icon_state" = "[t_state]")
if(head.blood_DNA)
lying.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "helmetblood2")
standing.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "helmetblood")
head.screen_loc = ui_alien_head
overlays_lying[X_HEAD_LAYER] = lying
overlays_standing[X_HEAD_LAYER] = standing
else
overlays_lying[X_HEAD_LAYER] = null
overlays_standing[X_HEAD_LAYER] = null
if(update_icons) update_icons()
@@ -164,12 +155,10 @@
//Call when target overlay should be added/removed
/mob/living/carbon/alien/humanoid/update_targeted(var/update_icons=1)
if (targeted_by && target_locked)
overlays_lying[TARGETED_LAYER] = target_locked
overlays_standing[TARGETED_LAYER] = target_locked
else if (!targeted_by && target_locked)
del(target_locked)
if (!targeted_by)
overlays_lying[TARGETED_LAYER] = null
overlays_standing[TARGETED_LAYER] = null
if(update_icons) update_icons()
@@ -12,11 +12,14 @@
if(stat == DEAD)
icon_state = "larva[state]_dead"
else if (handcuffed || legcuffed)
else if (handcuffed || legcuffed) //This should be an overlay. Who made this an icon_state?
icon_state = "larva[state]_cuff"
else if(stat == UNCONSCIOUS || lying || resting)
icon_state = "larva[state]_sleep"
else if (stunned)
icon_state = "larva[state]_stun"
else if(lying || resting)
icon_state = "larva[state]_sleep"
else
icon_state = "larva[state]"
/mob/living/carbon/alien/larva/update_transform() //All this is handled in update_icons()
return update_icons()