From 16527e749af905289a1ae84377bb4ee7ac2223b5 Mon Sep 17 00:00:00 2001 From: IntelOrca Date: Thu, 31 Mar 2016 20:28:00 +0100 Subject: [PATCH] remove network type from loadsave Fixes a crash that happened when loading a saved game from the start server window. --- src/interface/window.h | 2 -- src/windows/loadsave.c | 7 +++---- src/windows/server_start.c | 10 +++++++++- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/interface/window.h b/src/interface/window.h index 8156787fa1..a101157dc9 100644 --- a/src/interface/window.h +++ b/src/interface/window.h @@ -487,8 +487,6 @@ enum { LOADSAVETYPE_LANDSCAPE = 1 << 1, LOADSAVETYPE_SCENARIO = 2 << 1, LOADSAVETYPE_TRACK = 3 << 1, - - LOADSAVETYPE_NETWORK = 1 << 4, }; enum { diff --git a/src/windows/loadsave.c b/src/windows/loadsave.c index 100b013535..7f802dec40 100644 --- a/src/windows/loadsave.c +++ b/src/windows/loadsave.c @@ -189,6 +189,9 @@ rct_window *window_loadsave_open(int type, char *defaultName) case (LOADSAVETYPE_LOAD | LOADSAVETYPE_TRACK) : w->widgets[WIDX_TITLE].image = STR_FILE_DIALOG_TITLE_INSTALL_NEW_TRACK_DESIGN; break; + default: + log_error("Unsupported load / save type: %d", type & 0x0F); + return NULL; } w->no_list_items = 0; @@ -727,10 +730,6 @@ static void window_loadsave_select(rct_window *w, const char *path) } window_loadsave_invoke_callback(MODAL_RESULT_OK); } else if (game_load_save(path)) { - if (_loadsaveType & LOADSAVETYPE_NETWORK) { - network_begin_server(gConfigNetwork.default_port); - } - safe_strcpy(gScenarioSavePath, path, MAX_PATH); gFirstTimeSave = 0; diff --git a/src/windows/server_start.c b/src/windows/server_start.c index 63eee8ea44..2c78733f8a 100644 --- a/src/windows/server_start.c +++ b/src/windows/server_start.c @@ -160,6 +160,13 @@ static void window_server_start_scenarioselect_callback(const utf8 *path) } } +static void window_server_start_loadsave_callback(int result) +{ + if (result == MODAL_RESULT_OK) { + network_begin_server(gConfigNetwork.default_port); + } +} + static void window_server_start_mouseup(rct_window *w, int widgetIndex) { switch (widgetIndex) { @@ -199,7 +206,8 @@ static void window_server_start_mouseup(rct_window *w, int widgetIndex) break; case WIDX_LOAD_SERVER: network_set_password(_password); - window_loadsave_open(LOADSAVETYPE_LOAD | LOADSAVETYPE_GAME | LOADSAVETYPE_NETWORK, NULL); + window_loadsave_open(LOADSAVETYPE_LOAD | LOADSAVETYPE_GAME, NULL); + gLoadSaveCallback = window_server_start_loadsave_callback; break; } }