From 314e9424aeb10a16373ccc0f4db51ee6ca3b019e Mon Sep 17 00:00:00 2001 From: phil235 Date: Mon, 30 Mar 2015 22:11:05 +0200 Subject: [PATCH] Giving simple_animal their own version of update_canmove(). This fixes small animals' density being always set to 1 by life(). Fixes pixel y shift when lying down as an alien. Removes the no longer needed slime/update_icons.dm Fixes alien icon var being reset to its initial value during every life(). I added an alt_icon var to aliens to achieve that. Fixes alien humanoid no using the unconscious icon instead of their sleeping icon when sleeping. --- .../living/carbon/alien/humanoid/humanoid.dm | 1 + .../carbon/alien/humanoid/update_icons.dm | 20 ++++++++++--------- .../modules/mob/living/carbon/update_icons.dm | 1 - .../mob/living/simple_animal/simple_animal.dm | 13 +++++++++--- .../simple_animal/slime/update_icons.dm | 4 ---- code/modules/mob/mob.dm | 2 +- tgstation.dme | 2 +- 7 files changed, 24 insertions(+), 19 deletions(-) delete mode 100644 code/modules/mob/living/simple_animal/slime/update_icons.dm diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm index 337f05ebbff..f47fd38b6bf 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm @@ -4,6 +4,7 @@ var/obj/item/r_store = null var/obj/item/l_store = null var/caste = "" + var/alt_icon = 'icons/mob/alienleap.dmi' //used to switch between the two alien icon files. var/leap_on_click = 0 var/pounce_cooldown = 0 var/pounce_cooldown_time = 30 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 7f0418c5faa..2ccc95f56cf 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm @@ -19,18 +19,15 @@ //If we mostly took damage from fire if(fireloss > 125) icon_state = "alien[caste]_husked" - pixel_y = 0 else icon_state = "alien[caste]_dead" - pixel_y = 0 - else if(stat == UNCONSCIOUS || weakened) + else if((stat == UNCONSCIOUS && !sleeping) || weakened) icon_state = "alien[caste]_unconscious" - pixel_y = 0 else if(leap_on_click) icon_state = "alien[caste]_pounce" - else if(lying || resting) + else if(lying || resting || sleeping) icon_state = "alien[caste]_sleep" else if(m_intent == "run") icon_state = "alien[caste]_running" @@ -38,17 +35,21 @@ icon_state = "alien[caste]_s" if(leaping) - icon = 'icons/mob/alienleap.dmi' + var/old_icon = icon + icon = alt_icon + alt_icon = old_icon icon_state = "alien[caste]_leap" pixel_x = -32 pixel_y = -32 else - icon = initial(icon) + if(alt_icon != initial(alt_icon)) + var/old_icon = icon + icon = alt_icon + alt_icon = old_icon pixel_x = initial(pixel_x) pixel_y = initial(pixel_y) - /mob/living/carbon/alien/humanoid/regenerate_icons() ..() if (notransform) return @@ -63,8 +64,9 @@ /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() ..() + update_icons() + /mob/living/carbon/alien/humanoid/update_hud() diff --git a/code/modules/mob/living/carbon/update_icons.dm b/code/modules/mob/living/carbon/update_icons.dm index 77947b7b4ff..49d0e2a8296 100644 --- a/code/modules/mob/living/carbon/update_icons.dm +++ b/code/modules/mob/living/carbon/update_icons.dm @@ -7,7 +7,6 @@ var/final_pixel_y = pixel_y var/final_dir = dir var/changed = 0 - if(lying != lying_prev) changed++ ntransform.TurnTo(lying_prev,lying) diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index f81bdac5d59..6f4d4da6143 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -381,7 +381,6 @@ icon_state = icon_dead stat = DEAD density = 0 - lying = 1 if(!gibbed) visible_message("\the [src] stops moving...") ..() @@ -426,8 +425,7 @@ /mob/living/simple_animal/revive() health = maxHealth icon_state = icon_living - lying = 0 - density = 1 + density = initial(density) update_canmove() ..() @@ -478,3 +476,12 @@ return else ..() + +/mob/living/simple_animal/update_canmove() + if(paralysis || stunned || weakened || stat || resting || buckled) + drop_r_hand() + drop_l_hand() + canmove = 0 + else + canmove = 1 + return canmove \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/slime/update_icons.dm b/code/modules/mob/living/simple_animal/slime/update_icons.dm deleted file mode 100644 index 14525b1e8a0..00000000000 --- a/code/modules/mob/living/simple_animal/slime/update_icons.dm +++ /dev/null @@ -1,4 +0,0 @@ -//no special icon processing - -/mob/living/simple_animal/slime/update_transform() //They're slimes, they don't lie down. - return \ No newline at end of file diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 8762927332f..3a4af5d847c 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -771,7 +771,7 @@ var/list/slot_equipment_priority = list( \ //Updates canmove, lying and icons. Could perhaps do with a rename but I can't think of anything to describe it. -//Robots and brains have their own version so don't worry about them +//Robots, animals and brains have their own version so don't worry about them /mob/proc/update_canmove() var/ko = weakened || paralysis || stat || (status_flags & FAKEDEATH) var/buckle_lying = !(buckled && !buckled.buckle_lying) diff --git a/tgstation.dme b/tgstation.dme index ada2436efc7..6cba5c0c520 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1091,6 +1091,7 @@ #include "code\modules\mob\living\carbon\alien\larva\inventory.dm" #include "code\modules\mob\living\carbon\alien\larva\larva.dm" #include "code\modules\mob\living\carbon\alien\larva\life.dm" +#include "code\modules\mob\living\carbon\alien\larva\login.dm" #include "code\modules\mob\living\carbon\alien\larva\powers.dm" #include "code\modules\mob\living\carbon\alien\larva\update_icons.dm" #include "code\modules\mob\living\carbon\alien\special\alien_embryo.dm" @@ -1220,7 +1221,6 @@ #include "code\modules\mob\living\simple_animal\slime\say.dm" #include "code\modules\mob\living\simple_animal\slime\slime.dm" #include "code\modules\mob\living\simple_animal\slime\subtypes.dm" -#include "code\modules\mob\living\simple_animal\slime\update_icons.dm" #include "code\modules\mob\new_player\login.dm" #include "code\modules\mob\new_player\logout.dm" #include "code\modules\mob\new_player\new_player.dm"