diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index 2b9812abade4..41006baffcb0 100644 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -8,6 +8,10 @@ SUBSYSTEM_DEF(ticker) var/current_state = GAME_STATE_STARTUP //State of current round used by process() var/force_ending = FALSE //Round was ended by admin intervention + + /// If TRUE, there is no lobby phase, the game starts immediately. + var/start_immediately = FALSE + var/bypass_checks = FALSE //Bypass mode init checks var/setup_failed = FALSE //If the setup has failed at any point var/setup_started = FALSE @@ -80,6 +84,10 @@ SUBSYSTEM_DEF(ticker) var/mob/new_player/player = i if(player.ready) // TODO: port this == PLAYER_READY_TO_PLAY) ++totalPlayersReady + + if(start_immediately) + time_left = 0 + if(time_left < 0 || delay_start) return diff --git a/code/game/world.dm b/code/game/world.dm index 958278042ea5..e55741ca71e5 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -374,6 +374,7 @@ GLOBAL_LIST_INIT(reboot_sfx, file2list("config/reboot_sfx.txt")) /world/proc/HandleTestRun() // Wait for the game ticker to initialize Master.sleep_offline_after_initializations = FALSE + SSticker.start_immediately = TRUE UNTIL(SSticker.initialized) //trigger things to run the whole process