Suspending different subsystems during explosion (#7760)

This commit is contained in:
Mykhailo Bykhovtsev
2019-12-24 18:03:18 +01:00
committed by Werner
parent 1e5e57a79d
commit 42588282f8
6 changed files with 68 additions and 1 deletions
+1 -1
View File
@@ -14,7 +14,7 @@
// Called when SSexplosives begins processing explosions.
/datum/controller/proc/ExplosionStart()
// Called when SSexplosives finishes processing all queued explosions.
/datum/controller/proc/ExplosionEnd()
+6
View File
@@ -438,3 +438,9 @@ Total Unsimulated Turfs: [world.maxx*world.maxy*world.maxz - simulated_turf_coun
edges -= E
if(!E.sleeping)
active_edges -= E
/datum/controller/subsystem/air/ExplosionStart()
suspend()
/datum/controller/subsystem/air/ExplosionEnd()
wake()
+7
View File
@@ -221,4 +221,11 @@
if (remove_from_global)
SSmachinery.all_machines -= M
/datum/controller/subsystem/machinery/ExplosionStart()
suspend()
/datum/controller/subsystem/machinery/ExplosionEnd()
wake()
#undef MACHINERY_GO_TO_NEXT
+6
View File
@@ -64,3 +64,9 @@
/mob/proc/on_think_enabled()
return
/datum/controller/subsystem/mob_ai/ExplosionStart()
suspend()
/datum/controller/subsystem/mob_ai/ExplosionEnd()
wake()
@@ -36,3 +36,9 @@ var/datum/controller/subsystem/processing/SSprocessing
// Helper so PROCESS_KILL works.
/datum/controller/subsystem/processing/proc/stop_processing(datum/D)
STOP_PROCESSING(src, D)
/datum/controller/subsystem/processing/ExplosionStart()
suspend()
/datum/controller/subsystem/processing/ExplosionEnd()
wake()