From f0cdd4095914042d3db38ee6e61c220b67dd8c77 Mon Sep 17 00:00:00 2001 From: Jack Edge Date: Wed, 4 Jan 2017 13:40:46 +0000 Subject: [PATCH] The Start Now sets the round to start immediately Previously, if you pressed Start Now while the server was still initialising, it would complain, and you'd have to wait until the lobby was ready. Now pressing it will have the server start as soon as able. Uses: debugging qol. --- code/controllers/subsystem/ticker.dm | 5 +++++ code/modules/admin/admin.dm | 14 ++++++++------ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index a5dd55503ab..18863ecf804 100644 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -11,6 +11,8 @@ var/datum/subsystem/ticker/ticker var/current_state = GAME_STATE_STARTUP //state of current round (used by process()) Use the defines GAME_STATE_* ! var/force_ending = 0 //Round was ended by admin intervention + // If true, there is no lobby phase, the game starts immediately. + var/start_immediately = FALSE var/hide_mode = 0 var/datum/game_mode/mode = null @@ -82,6 +84,9 @@ var/datum/subsystem/ticker/ticker if(player.ready) ++totalPlayersReady + if(start_immediately) + timeLeft = 0 + //countdown if(timeLeft < 0) return diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 8711288b545..8e965377872 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -513,15 +513,17 @@ var/global/BSACooldown = 0 set category = "Server" set desc="Start the round RIGHT NOW" set name="Start Now" - if(ticker.current_state == GAME_STATE_PREGAME) - ticker.can_fire = 1 - ticker.timeLeft = 0 + if(ticker.current_state == GAME_STATE_PREGAME || ticker.current_state == GAME_STATE_STARTUP) + ticker.start_immediately = TRUE log_admin("[usr.key] has started the game.") - message_admins("[usr.key] has started the game.") + var/msg = "" + if(ticker.current_state == GAME_STATE_STARTUP) + msg = " (The server is still setting up, but the round will be \ + started as soon as possible.)" + message_admins("\ + [usr.key] has started the game.[msg]") feedback_add_details("admin_verb","SN") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! return 1 - else if (ticker.current_state == GAME_STATE_STARTUP) - usr << "Error: Start Now: Game is in startup, please wait until it has finished." else usr << "Error: Start Now: Game has already started."