summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatric Stout <truebrain@openttd.org>2021-01-08 16:23:07 +0100
committerPatric Stout <github@truebrain.nl>2021-01-11 20:11:08 +0100
commit760b0cdc114864e2987a1e9c2b8369cea603a04e (patch)
tree52766049cb804f51bb093e777237b58d231f13a4
parentff89f5f4c6deff65fab5f08f32e6d2bb07c7a632 (diff)
downloadopenttd-760b0cdc114864e2987a1e9c2b8369cea603a04e.tar.xz
Change: change console command "restart" and add "reload"
The current "restart" command is now called "reload", as that is what it does. The old "restart" command is now called "restart", as that is what it did. As this has not been in any official release yet, this shouldn't harm any kitten.
-rw-r--r--src/console_cmds.cpp18
-rw-r--r--src/openttd.cpp5
-rw-r--r--src/openttd.h1
3 files changed, 22 insertions, 2 deletions
diff --git a/src/console_cmds.cpp b/src/console_cmds.cpp
index 356cfc7ab..e1cabd88f 100644
--- a/src/console_cmds.cpp
+++ b/src/console_cmds.cpp
@@ -1073,6 +1073,23 @@ DEF_CONSOLE_CMD(ConRestart)
return true;
}
+DEF_CONSOLE_CMD(ConReload)
+{
+ if (argc == 0) {
+ IConsoleHelp("Reload game. Usage: 'reload'");
+ IConsoleHelp("Reloads a game.");
+ IConsoleHelp(" * if you started from a savegame / scenario / heightmap, that exact same savegame / scenario / heightmap will be loaded.");
+ IConsoleHelp(" * if you started from a new game, this acts the same as 'restart'.");
+ return true;
+ }
+
+ /* Don't copy the _newgame pointers to the real pointers, so call SwitchToMode directly */
+ _settings_game.game_creation.map_x = MapLogX();
+ _settings_game.game_creation.map_y = FindFirstBit(MapSizeY());
+ _switch_mode = SM_RELOADGAME;
+ return true;
+}
+
/**
* Print a text buffer line by line to the console. Lines are separated by '\n'.
* @param buf The buffer to print.
@@ -2113,6 +2130,7 @@ void IConsoleStdLibRegister()
IConsoleCmdRegister("list_aliases", ConListAliases);
IConsoleCmdRegister("newgame", ConNewGame);
IConsoleCmdRegister("restart", ConRestart);
+ IConsoleCmdRegister("reload", ConReload);
IConsoleCmdRegister("getseed", ConGetSeed);
IConsoleCmdRegister("getdate", ConGetDate);
IConsoleCmdRegister("getsysdate", ConGetSysDate);
diff --git a/src/openttd.cpp b/src/openttd.cpp
index 805e591b9..9d28a3fe5 100644
--- a/src/openttd.cpp
+++ b/src/openttd.cpp
@@ -1046,9 +1046,9 @@ void SwitchToMode(SwitchMode new_mode)
MakeNewEditorWorld();
break;
- case SM_RESTARTGAME: // Restart --> Current settings preserved
+ case SM_RELOADGAME: // Reload with what-ever started the game
if (_file_to_saveload.abstract_ftype == FT_SAVEGAME || _file_to_saveload.abstract_ftype == FT_SCENARIO) {
- /* Restart current savegame/scenario */
+ /* Reload current savegame/scenario */
_switch_mode = _game_mode == GM_EDITOR ? SM_LOAD_SCENARIO : SM_LOAD_GAME;
SwitchToMode(_switch_mode);
break;
@@ -1062,6 +1062,7 @@ void SwitchToMode(SwitchMode new_mode)
MakeNewGame(false, new_mode == SM_NEWGAME);
break;
+ case SM_RESTARTGAME: // Restart --> 'Random game' with current settings
case SM_NEWGAME: // New Game --> 'Random game'
if (_network_server) {
seprintf(_network_game_info.map_name, lastof(_network_game_info.map_name), "Random Map");
diff --git a/src/openttd.h b/src/openttd.h
index 6568881c4..62651fe7f 100644
--- a/src/openttd.h
+++ b/src/openttd.h
@@ -25,6 +25,7 @@ enum SwitchMode {
SM_NONE,
SM_NEWGAME, ///< New Game --> 'Random game'.
SM_RESTARTGAME, ///< Restart --> 'Random game' with current settings.
+ SM_RELOADGAME, ///< Reload the savegame / scenario / heightmap you started the game with.
SM_EDITOR, ///< Switch to scenario editor.
SM_LOAD_GAME, ///< Load game, Play Scenario.
SM_MENU, ///< Switch to game intro menu.