diff --git a/code/controllers/subsystem/SSjobs.dm b/code/controllers/subsystem/SSjobs.dm index 41743b68c31..e1f284ba2ea 100644 --- a/code/controllers/subsystem/SSjobs.dm +++ b/code/controllers/subsystem/SSjobs.dm @@ -274,7 +274,8 @@ SUBSYSTEM_DEF(jobs) var/watch = start_watch() //Setup new player list and get the jobs list Debug("Running DO") - SetupOccupations() + if(!length(occupations)) + SetupOccupations() //Holder for Triumvirate is stored in the ticker, this just processes it if(SSticker) diff --git a/code/controllers/subsystem/SSticker.dm b/code/controllers/subsystem/SSticker.dm index 6cd840b0828..8e1d9c851f3 100644 --- a/code/controllers/subsystem/SSticker.dm +++ b/code/controllers/subsystem/SSticker.dm @@ -226,7 +226,7 @@ SUBSYSTEM_DEF(ticker) mode.pre_pre_setup() var/can_continue = FALSE can_continue = mode.pre_setup() //Setup special modes. This also does the antag fishing checks. - SSjobs.DivideOccupations() //Distribute jobs + if(!can_continue) QDEL_NULL(mode) to_chat(world, "Error setting up [GLOB.master_mode]. Reverting to pre-game lobby.") @@ -236,6 +236,18 @@ SUBSYSTEM_DEF(ticker) Master.SetRunLevel(RUNLEVEL_LOBBY) return FALSE + // Enable highpop slots just before we distribute jobs. + var/playercount = length(GLOB.clients) + var/highpop_trigger = 80 + + if(playercount >= highpop_trigger) + log_debug("Playercount: [playercount] versus trigger: [highpop_trigger] - loading highpop job config") + SSjobs.LoadJobs(TRUE) + else + log_debug("Playercount: [playercount] versus trigger: [highpop_trigger] - keeping standard job config") + + SSjobs.DivideOccupations() //Distribute jobs + if(hide_mode) var/list/modes = new for(var/datum/game_mode/M in runnable_modes) @@ -317,16 +329,6 @@ SUBSYSTEM_DEF(ticker) if(N.client) N.new_player_panel_proc() - // Now that every other piece of the round has initialized, lets setup player job scaling - var/playercount = length(GLOB.clients) - var/highpop_trigger = 80 - - if(playercount >= highpop_trigger) - log_debug("Playercount: [playercount] versus trigger: [highpop_trigger] - loading highpop job config") - SSjobs.LoadJobs(TRUE) - else - log_debug("Playercount: [playercount] versus trigger: [highpop_trigger] - keeping standard job config") - SSnightshift.check_nightshift(TRUE) #ifdef UNIT_TESTS