diff --git a/console_cmds.c b/console_cmds.c --- a/console_cmds.c +++ b/console_cmds.c @@ -379,6 +379,28 @@ DEF_CONSOLE_CMD(ConBanList) return NULL; } +DEF_CONSOLE_CMD(ConPauseGame) +{ + if (_pause == 0) { + DoCommandP(0, 1, 0, NULL, CMD_PAUSE); + IConsolePrint(_iconsole_color_default, "Game paused."); + } else + IConsolePrint(_iconsole_color_default, "Game is already paused."); + + return NULL; +} + +DEF_CONSOLE_CMD(ConUnPauseGame) +{ + if (_pause != 0) { + DoCommandP(0, 0, 0, NULL, CMD_PAUSE); + IConsolePrint(_iconsole_color_default, "Game unpaused."); + } else + IConsolePrint(_iconsole_color_default, "Game is already unpaused."); + + return NULL; +} + DEF_CONSOLE_CMD(ConRcon) { if (argc < 3) { @@ -1264,6 +1286,10 @@ void IConsoleStdLibRegister(void) IConsoleCmdHook("unban", ICONSOLE_HOOK_ACCESS, ConCmdHookNoNetClient); IConsoleCmdRegister("banlist", ConBanList); IConsoleCmdHook("banlist", ICONSOLE_HOOK_ACCESS, ConCmdHookNoNetClient); + IConsoleCmdRegister("pause", ConPauseGame); + IConsoleCmdHook("pause", ICONSOLE_HOOK_ACCESS, ConCmdHookNoNetClient); + IConsoleCmdRegister("unpause", ConUnPauseGame); + IConsoleCmdHook("unpause", ICONSOLE_HOOK_ACCESS, ConCmdHookNoNetClient); IConsoleAliasRegister("clean_company", "reset_company %A"); diff --git a/main_gui.c b/main_gui.c --- a/main_gui.c +++ b/main_gui.c @@ -159,7 +159,7 @@ static void ToolbarPauseClick(Window *w) { if (_networking && !_network_server) { return;} // only server can pause the game - if (DoCommandP(0, _pause?0:1, 0, NULL, CMD_PAUSE)) + if (DoCommandP(0, _pause ? 0 : 1, 0, NULL, CMD_PAUSE)) SndPlayFx(SND_15_BEEP); } diff --git a/misc_cmd.c b/misc_cmd.c --- a/misc_cmd.c +++ b/misc_cmd.c @@ -175,8 +175,8 @@ int32 CmdChangePresidentName(int x, int int32 CmdPause(int x, int y, uint32 flags, uint32 p1, uint32 p2) { if (flags & DC_EXEC) { - _pause += p1?1:-1; - if(_pause==(byte)-1) _pause = 0; + _pause += (p1 == 1) ? 1 : -1; + if (_pause == (byte)-1) _pause = 0; InvalidateWindow(WC_STATUS_BAR, 0); InvalidateWindow(WC_MAIN_TOOLBAR, 0); }