mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2025-12-29 03:21:30 +00:00
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.
55 lines
1.6 KiB
Plaintext
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)
|