From c0de47d3d71204219b3f640a78f9e78d80170cf8 Mon Sep 17 00:00:00 2001 From: Kyle Spier-Swenson Date: Fri, 1 Jan 2016 15:29:58 -0800 Subject: [PATCH 1/3] Fixes lava turfs processing forever as well as some burn logic --- code/game/turfs/simulated/floor/plating.dm | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/code/game/turfs/simulated/floor/plating.dm b/code/game/turfs/simulated/floor/plating.dm index 4aa16f11ec1..2eb2b77aa36 100644 --- a/code/game/turfs/simulated/floor/plating.dm +++ b/code/game/turfs/simulated/floor/plating.dm @@ -193,30 +193,32 @@ SSobj.processing |= src /turf/simulated/floor/plating/lava/process() - if(!contents) + if(!burn_stuff()) processing = 0 SSobj.processing.Remove(src) - return - burn_stuff() + /turf/simulated/floor/plating/lava/proc/burn_stuff() + . = 0 for(var/atom/movable/AM in contents) - if(!istype(AM)) - return if(istype(AM, /obj)) var/obj/O = AM if(istype(O, /obj/effect/decal/cleanable/ash)) //So we don't get stuck burning the same ash pile forever qdel(O) - return + continue + . = 1 if(O.burn_state == FIRE_PROOF) O.burn_state = FLAMMABLE //Even fireproof things burn up in lava O.fire_act() + else if (istype(AM, /mob/living)) + . = 1 var/mob/living/L = AM L.adjustFireLoss(20) if(L) //mobs turning into object corpses could get deleted here. L.adjust_fire_stacks(20) L.IgniteMob() + /turf/simulated/floor/plating/lava/attackby(obj/item/C, mob/user, params) //Lava isn't a good foundation to build on return @@ -241,4 +243,4 @@ /turf/simulated/floor/plating/lava/smooth/airless oxygen = 0 nitrogen = 0 - temperature = TCMB \ No newline at end of file + temperature = TCMB From 1451db4cc48f14b8b8eded1be82aa055093d282d Mon Sep 17 00:00:00 2001 From: Kyle Spier-Swenson Date: Sun, 3 Jan 2016 23:22:33 -0800 Subject: [PATCH 2/3] does the remie --- code/game/turfs/simulated/floor/plating.dm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/code/game/turfs/simulated/floor/plating.dm b/code/game/turfs/simulated/floor/plating.dm index 2eb2b77aa36..fcda4cfdfcd 100644 --- a/code/game/turfs/simulated/floor/plating.dm +++ b/code/game/turfs/simulated/floor/plating.dm @@ -200,9 +200,9 @@ /turf/simulated/floor/plating/lava/proc/burn_stuff() . = 0 - for(var/atom/movable/AM in contents) - if(istype(AM, /obj)) - var/obj/O = AM + for(var/thing in contents) + if(istype(thing, /obj)) + var/obj/O = thing if(istype(O, /obj/effect/decal/cleanable/ash)) //So we don't get stuck burning the same ash pile forever qdel(O) continue @@ -211,9 +211,9 @@ O.burn_state = FLAMMABLE //Even fireproof things burn up in lava O.fire_act() - else if (istype(AM, /mob/living)) + else if (istype(thing, /mob/living)) . = 1 - var/mob/living/L = AM + var/mob/living/L = thing L.adjustFireLoss(20) if(L) //mobs turning into object corpses could get deleted here. L.adjust_fire_stacks(20) From f6d13b93a41063ff006a8298b518e35bb6362b4a Mon Sep 17 00:00:00 2001 From: Kyle Spier-Swenson Date: Sun, 3 Jan 2016 23:31:33 -0800 Subject: [PATCH 3/3] blame RR [23:27:53] \<%Remie\> you know how it makes inflammable things burn [23:28:02] \<%Remie\> (and that's buggy as fug but w/e) [23:28:10] \<%Remie\> what about resetting it after the fire_act() call? [23:28:21] \<%Remie\> that way inflammable things become inflammable again if they escape the lava --- code/game/turfs/simulated/floor/plating.dm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/code/game/turfs/simulated/floor/plating.dm b/code/game/turfs/simulated/floor/plating.dm index fcda4cfdfcd..258e6d74596 100644 --- a/code/game/turfs/simulated/floor/plating.dm +++ b/code/game/turfs/simulated/floor/plating.dm @@ -209,7 +209,12 @@ . = 1 if(O.burn_state == FIRE_PROOF) O.burn_state = FLAMMABLE //Even fireproof things burn up in lava - O.fire_act() + O.fire_act() + if (O) + O.burn_state = FIRE_PROOF + else + O.fire_act() + else if (istype(thing, /mob/living)) . = 1