Files
Aurora.3/code/controllers/subsystems/initialization/misc_late.dm
Lohikar ce54f5a76c Significantly speed up testing server boot (#2846)
Dramatically speeds up boot with testing (MC_TICKLIMIT_INIT > 100) configs; stoplag() would penalize procs that go over 100% tick-usage by delaying them further. This is not required during server boot & the lobby, and resulted in significantly longer boot times.

This PR ports a fix from /tg/ that forces stoplag() only sleep 1 tick if it sleeps during server boot, as well as adjusting the example config to be more suited for testing.
2017-06-29 00:20:14 +03:00

55 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()
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_text_asc)
/proc/sorted_add_area(area/A)
all_areas += A
sortTim(all_areas, /proc/cmp_text_asc)