diff --git a/src/console_cmds.cpp b/src/console_cmds.cpp --- a/src/console_cmds.cpp +++ b/src/console_cmds.cpp @@ -923,7 +923,7 @@ DEF_CONSOLE_CMD(ConNewGame) return true; } -extern void SwitchMode(int new_mode); +extern void SwitchToMode(SwitchMode new_mode); DEF_CONSOLE_CMD(ConRestart) { @@ -933,10 +933,10 @@ DEF_CONSOLE_CMD(ConRestart) return true; } - /* Don't copy the _newgame pointers to the real pointers, so call SwitchMode directly */ + /* 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()); - SwitchMode(SM_NEWGAME); + SwitchToMode(SM_NEWGAME); return true; } diff --git a/src/genworld_gui.cpp b/src/genworld_gui.cpp --- a/src/genworld_gui.cpp +++ b/src/genworld_gui.cpp @@ -39,7 +39,7 @@ enum glwp_modes { GLWP_END }; -extern void SwitchMode(int new_mode); +extern void SwitchToMode(SwitchMode new_mode); extern void MakeNewgameSettingsLive(); static inline void SetNewLandscapeType(byte landscape) diff --git a/src/gfx.cpp b/src/gfx.cpp --- a/src/gfx.cpp +++ b/src/gfx.cpp @@ -38,6 +38,7 @@ bool _screen_disable_anim = false; /// bool _exit_game; bool _networking; ///< are we in networking mode? GameMode _game_mode; +SwitchMode _switch_mode; ///< The next mainloop command. int8 _pause_game; int _pal_first_dirty; int _pal_count_dirty; diff --git a/src/network/network_gui.cpp b/src/network/network_gui.cpp --- a/src/network/network_gui.cpp +++ b/src/network/network_gui.cpp @@ -30,7 +30,7 @@ static void ShowNetworkStartServerWindow(); static void ShowNetworkLobbyWindow(NetworkGameList *ngl); -extern void SwitchMode(int new_mode); +extern void SwitchToMode(SwitchMode new_mode); static const StringID _connection_types_dropdown[] = { STR_NETWORK_LAN_INTERNET, @@ -1020,7 +1020,7 @@ struct NetworkStartServerWindow : public strecpy(_file_to_saveload.title, this->map->title, lastof(_file_to_saveload.title)); delete this; - SwitchMode(SM_START_SCENARIO); + SwitchToMode(SM_START_SCENARIO); } } break; @@ -1829,7 +1829,7 @@ struct NetworkJoinStatusWindow : Window { if (widget == 2) { //Disconnect button NetworkDisconnect(); - SwitchMode(SM_MENU); + SwitchToMode(SM_MENU); ShowNetworkGameWindow(); } } diff --git a/src/openttd.cpp b/src/openttd.cpp --- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -867,7 +867,7 @@ bool SafeSaveOrLoad(const char *filename } } -void SwitchMode(int new_mode) +void SwitchToMode(SwitchMode new_mode) { #ifdef ENABLE_NETWORK /* If we are saving something, the network stays in his current state */ @@ -1002,6 +1002,8 @@ void SwitchMode(int new_mode) /* XXX: set date */ MarkWholeScreenDirty(); break; + + default: NOT_REACHED(); } if (_switch_mode_errorstr != INVALID_STRING_ID) { @@ -1146,7 +1148,7 @@ void GameLoop() /* switch game mode? */ if (_switch_mode != SM_NONE) { - SwitchMode(_switch_mode); + SwitchToMode(_switch_mode); _switch_mode = SM_NONE; } diff --git a/src/openttd.h b/src/openttd.h --- a/src/openttd.h +++ b/src/openttd.h @@ -11,18 +11,18 @@ enum GameMode { GM_EDITOR, }; -enum SwitchModes { - SM_NONE = 0, - SM_NEWGAME = 1, - SM_EDITOR = 2, - SM_LOAD = 3, - SM_MENU = 4, - SM_SAVE = 5, - SM_GENRANDLAND = 6, - SM_LOAD_SCENARIO = 9, - SM_START_SCENARIO = 10, - SM_START_HEIGHTMAP = 11, - SM_LOAD_HEIGHTMAP = 12, +enum SwitchMode { + SM_NONE, + SM_NEWGAME, + SM_EDITOR, + SM_LOAD, + SM_MENU, + SM_SAVE, + SM_GENRANDLAND, + SM_LOAD_SCENARIO, + SM_START_SCENARIO, + SM_START_HEIGHTMAP, + SM_LOAD_HEIGHTMAP, }; /* Display Options */ @@ -36,6 +36,7 @@ enum { }; extern GameMode _game_mode; +extern SwitchMode _switch_mode; extern bool _exit_game; extern int8 _pause_game; diff --git a/src/variables.h b/src/variables.h --- a/src/variables.h +++ b/src/variables.h @@ -49,9 +49,6 @@ VARDEF bool _rightclick_emulate; /* IN/OUT parameters to commands */ VARDEF bool _generating_world; -/* Used when switching from the intro menu. */ -VARDEF byte _switch_mode; - VARDEF char _savegame_format[8]; VARDEF char *_config_file; diff --git a/src/video/dedicated_v.cpp b/src/video/dedicated_v.cpp --- a/src/video/dedicated_v.cpp +++ b/src/video/dedicated_v.cpp @@ -126,7 +126,7 @@ static void CloseWindowsConsoleThread() static void *_dedicated_video_mem; extern bool SafeSaveOrLoad(const char *filename, int mode, GameMode newgm, Subdirectory subdir); -extern void SwitchMode(int new_mode); +extern void SwitchToMode(SwitchMode new_mode); static FVideoDriver_Dedicated iFVideoDriver_Dedicated; @@ -261,7 +261,7 @@ void VideoDriver_Dedicated::MainLoop() /* If SwitchMode is SM_LOAD, it means that the user used the '-g' options */ if (_switch_mode != SM_LOAD) { StartNewGameWithoutGUI(GENERATE_NEW_SEED); - SwitchMode(_switch_mode); + SwitchToMode(_switch_mode); _switch_mode = SM_NONE; } else { _switch_mode = SM_NONE; @@ -273,7 +273,7 @@ void VideoDriver_Dedicated::MainLoop() _networking = false; } else { /* We can load this game, so go ahead */ - SwitchMode(SM_LOAD); + SwitchToMode(SM_LOAD); } }