From e335b2ce438fbbe463759feabe03b2e46bb01365 Mon Sep 17 00:00:00 2001 From: Cyberboss Date: Tue, 7 Feb 2017 09:35:20 -0500 Subject: [PATCH] Fixes atoms being initialized twice with templates (#23746) --- code/controllers/subsystem/processing/objects.dm | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/code/controllers/subsystem/processing/objects.dm b/code/controllers/subsystem/processing/objects.dm index d29819b294a..01957e766f4 100644 --- a/code/controllers/subsystem/processing/objects.dm +++ b/code/controllers/subsystem/processing/objects.dm @@ -29,10 +29,14 @@ var/datum/subsystem/objects/SSobj return initialized = INITIALIZATION_INNEW_MAPLOAD if(objects) - for(var/thing in objects) - var/atom/A = thing - A.Initialize(TRUE) - CHECK_TICK + for(var/I in objects) + var/atom/A = I + if(!A.initialized) //this check is to make sure we don't call it twice on an object that was created in a previous Initialize call + var/start_tick = world.time + A.Initialize(TRUE) + if(start_tick != world.time) + WARNING("[A]: [A.type] slept during it's Initialize!") + CHECK_TICK else for(var/atom/A in world) if(!A.initialized) //this check is to make sure we don't call it twice on an object that was created in a previous Initialize call