fix some weirdness with wall damage overlays

Signed-off-by: Mloc <colmohici@gmail.com>
This commit is contained in:
Mloc
2015-07-30 19:05:18 +01:00
parent 3461b7fb5c
commit 4413356a63
2 changed files with 19 additions and 11 deletions
+17 -9
View File
@@ -44,6 +44,7 @@
return
overlays.Cut()
damage_overlay = 0
if(!wall_cache["[new_state]-[material.icon_colour]"])
var/image/I = image(icon='icons/turf/wall_masks.dmi',icon_state="[new_state]")
@@ -74,7 +75,6 @@
check_relatives(1)
/turf/simulated/wall/proc/update_icon()
if(!material)
return
@@ -86,15 +86,23 @@
else
set_wall_state("[material.icon_base]fwall_open")
var/dmg_amt = material.integrity
if(reinf_material)
dmg_amt += reinf_material.integrity
var/overlay = round(damage / dmg_amt * damage_overlays.len) + 1
if(overlay > damage_overlays.len)
overlay = damage_overlays.len
if(density)
if(damage == 0)
if(damage_overlay != 0)
overlays -= damage_overlays[damage_overlay]
damage_overlay = 0
else if(density)
var/integrity = material.integrity
if(reinf_material)
integrity += reinf_material.integrity
var/overlay = round(damage / integrity * damage_overlays.len) + 1
if(overlay > damage_overlays.len)
overlay = damage_overlays.len
if(damage_overlay && overlay == damage_overlay) //No need to update.
return
if(damage_overlay) overlays -= damage_overlays[damage_overlay]
overlays += damage_overlays[overlay]
damage_overlay = overlay
return
@@ -131,4 +139,4 @@
/turf/simulated/wall/proc/can_join_with(var/turf/simulated/wall/W)
if(material && W.material && material.icon_base == W.material.icon_base)
return 1
return 0
return 0
+2 -2
View File
@@ -12,8 +12,8 @@ var/list/global/wall_cache = list()
heat_capacity = 312500 //a little over 5 cm thick , 312500 for 1 m by 2.5 m by 0.25 m plasteel wall
var/damage = 0
var/damage_overlay
var/global/damage_overlays[8]
var/damage_overlay = 0
var/global/damage_overlays[16]
var/active
var/can_open = 0
var/material/material