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 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 31a3e400c7..485da80156 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 - 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) {