diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm index b781ee6fd37..3b742fdad54 100644 --- a/code/game/turfs/simulated/floor.dm +++ b/code/game/turfs/simulated/floor.dm @@ -25,6 +25,7 @@ var/list/icons_to_ignore_at_floor_init = list("damaged1","damaged2","damaged3"," var/lava = 0 var/broken = 0 var/burnt = 0 + var/current_overlay = null var/floor_tile = null //tile that this floor drops var/obj/item/stack/tile/builtin_tile = null //needed for performance reasons when the singularity rips off floor tiles var/list/broken_states = list("damaged1", "damaged2", "damaged3", "damaged4", "damaged5") @@ -89,6 +90,9 @@ var/list/icons_to_ignore_at_floor_init = list("damaged1","damaged2","damaged3"," /turf/simulated/floor/proc/update_icon() if(air) update_visuals() + overlays.Cut(current_overlay) + if (current_overlay) + overlays.Add(current_overlay) return 1 /turf/simulated/floor/proc/gets_drilled() @@ -101,17 +105,19 @@ var/list/icons_to_ignore_at_floor_init = list("damaged1","damaged2","damaged3"," /turf/simulated/floor/proc/break_tile() if(broken) return - icon_state = pick(broken_states) + current_overlay = pick(broken_states) broken = 1 + update_icon() /turf/simulated/floor/burn_tile() if(broken || burnt) return if(burnt_states.len) - icon_state = pick(burnt_states) + current_overlay = pick(burnt_states) else - icon_state = pick(broken_states) + current_overlay = pick(broken_states) burnt = 1 + update_icon() /turf/simulated/floor/proc/make_plating() return ChangeTurf(/turf/simulated/floor/plating) @@ -187,6 +193,7 @@ var/list/icons_to_ignore_at_floor_init = list("damaged1","damaged2","damaged3"," if(broken || burnt) broken = 0 burnt = 0 + current_overlay = null if(user && !silent) to_chat(user, "You remove the broken plating.") else diff --git a/code/game/turfs/simulated/floor/plating.dm b/code/game/turfs/simulated/floor/plating.dm index 8fdb305c421..9a6e6342d99 100644 --- a/code/game/turfs/simulated/floor/plating.dm +++ b/code/game/turfs/simulated/floor/plating.dm @@ -3,8 +3,8 @@ icon_state = "plating" intact = 0 floor_tile = null - broken_states = list("platingdmg1", "platingdmg2", "platingdmg3") - burnt_states = list("panelscorched") + broken_states = list("damaged1", "damaged2", "damaged4", "damaged5") + burnt_states = list("floorscorched1", "floorscorched2") footstep_sounds = list( "human" = list('sound/effects/footstep/plating_human.ogg'), @@ -60,9 +60,10 @@ if(welder.remove_fuel(0,user)) to_chat(user, "You fix some dents on the broken plating.") playsound(src, welder.usesound, 80, 1) - icon_state = icon_plating + current_overlay = null burnt = 0 broken = 0 + update_icon() return 1 /turf/simulated/floor/plating/airless diff --git a/icons/turf/floors.dmi b/icons/turf/floors.dmi index 151b7444519..c8d1b0fa7c4 100644 Binary files a/icons/turf/floors.dmi and b/icons/turf/floors.dmi differ