Files
Aurora.3/code/controllers/subsystems/initialization/misc_late.dm
Lohikar 33c61f9f1e Remove some world loops (#2965)
changes:

Replaces a lot of in-world loops with more specific lists.
Recipes are now copied in SSmachinery/Recover()
Fixed bad sorting on all_areas list.
Added skeleton Destroy() to SMESes as they did not have one and are failing to GC.
Seems to shorten SSatoms init a bit, maybe from removal of in-world in MULEs?
2017-07-09 00:24:28 +03:00

56 lines
1.6 KiB
Plaintext

// This subsystem loads later in the init process. Not last, but after most major things are done.
// We sort the area list here because SSatoms needs to run first.
/datum/controller/subsystem/misc_late
name = "Late Miscellaneous Init"
init_order = SS_INIT_MISC
flags = SS_NO_FIRE | SS_NO_DISPLAY
/datum/controller/subsystem/misc_late/Initialize(timeofday)
// Generate the area list.
resort_all_areas()
var/turf/picked
// Setup the teleport locs.
for (var/thing in all_areas)
var/area/AR = thing
picked = null
if(!(istype(AR, /area/shuttle) || istype(AR, /area/syndicate_station) || istype(AR, /area/wizard_station)))
picked = pick_area_turf(AR.type, list(/proc/is_station_turf))
if (picked)
teleportlocs += AR.name
teleportlocs[AR.name] = AR
if(istype(AR, /area/turret_protected/aisat) || istype(AR, /area/derelict) || istype(AR, /area/tdome) || istype(AR, /area/shuttle/specops/centcom))
ghostteleportlocs += AR.name
ghostteleportlocs[AR.name] = AR
picked = pick_area_turf(AR.type, list(/proc/is_station_turf))
if (picked)
ghostteleportlocs += AR.name
ghostteleportlocs[AR.name] = AR
sortTim(teleportlocs, /proc/cmp_text_asc)
sortTim(ghostteleportlocs, /proc/cmp_text_asc)
setupgenetics()
shuttle_controller.setup_shuttle_docks()
if (config.fastboot)
admin_notice("<span class='notice'><b>Fastboot is enabled; some features may not be available.</b></span>", R_DEBUG)
..(timeofday, TRUE)
/proc/resort_all_areas()
all_areas = list()
for (var/area/A in world)
all_areas += A
sortTim(all_areas, /proc/cmp_name_asc)
/proc/sorted_add_area(area/A)
all_areas += A
sortTim(all_areas, /proc/cmp_name_asc)