Refactors atom/Initialize. Fixes ruins being initialized twice (#22778)

* Refactors atom/Initialize

Captialized for compiling correctness and to be more inline with Destroy

Will now be called from atom/New if the world initialization loop in SSobj has already run. Should always call the base.

Now comes with the `roundstart` parameter indicating whether or not it was called by SSobj or atom/New

Other fixes/tweaks:
- Renamed a proc called Initialize in abduction consoles to Setup
- Removed /obj/item/device/radio/headset/headset_sec/department: Broken and referenced literally nowhere in the code
- Removed a spawn from the Initialize of turbine_computer which made literally zero sense
- Generalized the proc which fixes RND servers with no id set

Reasoning: It's better to check roundstart per function than to have to duplicate code in New and Initialize. Think of it as a safer New for atoms. If we move enough stuff to it, initial map load performance will increase due to less New calls

* Fixed a thing

* Actually, fuck the police

* >Expecting a merge without errors

* >Not calling ..() in New

* Sanic

* Fix the headset bug

* Makes sure the map loaders dew it right

* Fixes ruins being initialized twice

* Rename roundstart -> mapload

* Revert "Rename roundstart -> mapload"

This reverts commit 667c327fd2ccfa3ce4f4db52eac03f9e8b0f6812.

* Remove unrelated change

* A more direct solution to map loads

* And now we shouldnt need this warning

* Add the new var to SSobj recovery

* Revert "Revert "Rename roundstart -> mapload""

This reverts commit dee07dbd5e4696554ac43aae5b91cce743b9b9e0.

* Line endings
This commit is contained in:
Cyberboss
2017-01-23 03:37:45 -05:00
committed by AnturK
parent 345fb5e111
commit 5959ac32cc
67 changed files with 378 additions and 384 deletions
@@ -11,6 +11,8 @@ var/datum/subsystem/objects/SSobj
init_order = 12
priority = 40
var/initialized = FALSE
var/old_initialized
var/list/atom_spawners = list()
var/list/processing = list()
var/list/currentrun = list()
@@ -24,10 +26,18 @@ var/datum/subsystem/objects/SSobj
setupGenetics() //to set the mutations' place in structural enzymes, so monkey.initialize() knows where to put the monkey mutation.
for(var/thing in world)
var/atom/A = thing
A.initialize()
A.Initialize(TRUE)
CHECK_TICK
initialized = TRUE
. = ..()
/datum/subsystem/objects/proc/map_loader_begin()
old_initialized = initialized
initialized = FALSE
/datum/subsystem/objects/proc/map_loader_stop()
initialized = old_initialized
/datum/subsystem/objects/proc/trigger_atom_spawners(zlevel, ignore_z=FALSE)
for(var/V in atom_spawners)
var/atom/A = V
@@ -58,11 +68,14 @@ var/datum/subsystem/objects/SSobj
/datum/subsystem/objects/proc/setup_template_objects(list/objects)
trigger_atom_spawners(0, ignore_z=TRUE)
for(var/A in objects)
var/atom/B = A
B.initialize()
if(initialized)
for(var/A in objects)
var/atom/B = A
B.Initialize(TRUE)
/datum/subsystem/objects/Recover()
initialized = SSobj.initialized
old_initialized = SSobj.old_initialized
if (istype(SSobj.atom_spawners))
atom_spawners = SSobj.atom_spawners
if (istype(SSobj.processing))