From 6a13de29c89dea14ec0ea6110183a59f8e602c8e Mon Sep 17 00:00:00 2001 From: zsilencer Date: Mon, 11 Jan 2016 11:53:37 -0700 Subject: [PATCH 1/3] Fix #2591: Close client after loading save --- src/game.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/game.c b/src/game.c index a2042de5c0..b9a750f995 100644 --- a/src/game.c +++ b/src/game.c @@ -885,6 +885,9 @@ bool game_load_save(const utf8 *path) if (network_get_mode() == NETWORK_MODE_SERVER) { network_send_map(); } + if (network_get_mode() == NETWORK_MODE_CLIENT) { + network_close(); + } return true; } else { // If loading the SV6 failed, the current park state will be corrupted From 7b280adf8d8449faac119a181bf21c297af45dd8 Mon Sep 17 00:00:00 2001 From: zsilencer Date: Tue, 19 Jan 2016 12:46:55 -0700 Subject: [PATCH 2/3] Fix #2760: Server join click --- src/windows/server_list.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/windows/server_list.c b/src/windows/server_list.c index 31a3e400c7..dcf91d7811 100644 --- a/src/windows/server_list.c +++ b/src/windows/server_list.c @@ -211,6 +211,13 @@ static void window_server_list_mouseup(rct_window *w, int widgetIndex) case WIDX_PLAYER_NAME_INPUT: window_start_textbox(w, widgetIndex, 1170, (uint32)_playerName, 63); break; + case WIDX_LIST:{ + int serverIndex = w->selected_list_item; + if (serverIndex >= 0 && serverIndex < _numSavedServers) { + char *serverAddress = _savedServers[serverIndex].address; + join_server(serverAddress); + } + }break; case WIDX_FETCH_SERVERS: fetch_servers(); break; @@ -270,8 +277,8 @@ static void window_server_list_scroll_mousedown(rct_window *w, int scrollIndex, char *serverAddress = _savedServers[serverIndex].address; rct_widget *listWidget = &w->widgets[WIDX_LIST]; - int ddx = w->x + listWidget->left + x; - int ddy = w->y + listWidget->top + y; + int ddx = w->x + listWidget->left + x + 2; + int ddy = w->y + listWidget->top + y + 2; gDropdownItemsFormat[0] = STR_JOIN_GAME; if (_savedServers[serverIndex].favorite) { From 30d57916c201984b489e373f1c44dfc92dd56367 Mon Sep 17 00:00:00 2001 From: zsilencer Date: Tue, 19 Jan 2016 13:11:16 -0700 Subject: [PATCH 3/3] fix dropdown menu position in scrolled list --- src/windows/player_list.c | 4 ++-- src/windows/server_list.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/windows/player_list.c b/src/windows/player_list.c index 2f2177fc8c..34279c8631 100644 --- a/src/windows/player_list.c +++ b/src/windows/player_list.c @@ -218,8 +218,8 @@ static void window_player_list_scrollmousedown(rct_window *w, int scrollIndex, i window_invalidate(w); rct_widget *listWidget = &w->widgets[WIDX_LIST]; - int ddx = w->x + listWidget->left + x; - int ddy = w->y + listWidget->top + y; + int ddx = w->x + listWidget->left + x - w->scrolls[0].h_left; + int ddy = w->y + listWidget->top + y - w->scrolls[0].v_top; if (index == 0) { return; diff --git a/src/windows/server_list.c b/src/windows/server_list.c index dcf91d7811..485da80156 100644 --- a/src/windows/server_list.c +++ b/src/windows/server_list.c @@ -277,8 +277,8 @@ static void window_server_list_scroll_mousedown(rct_window *w, int scrollIndex, char *serverAddress = _savedServers[serverIndex].address; rct_widget *listWidget = &w->widgets[WIDX_LIST]; - int ddx = w->x + listWidget->left + x + 2; - int ddy = w->y + listWidget->top + y + 2; + int ddx = w->x + listWidget->left + x + 2 - w->scrolls[0].h_left; + int ddy = w->y + listWidget->top + y + 2 - w->scrolls[0].v_top; gDropdownItemsFormat[0] = STR_JOIN_GAME; if (_savedServers[serverIndex].favorite) {