From 8006bbb9d53c5131e3f1d895d96f2a6de34b2c01 Mon Sep 17 00:00:00 2001 From: wolfreak99 Date: Mon, 5 Jun 2017 07:23:09 -0400 Subject: [PATCH 1/2] Select previous element after removing in tile inspector --- src/openrct2/windows/tile_inspector.c | 46 ++++++++++++++++----------- 1 file changed, 27 insertions(+), 19 deletions(-) diff --git a/src/openrct2/windows/tile_inspector.c b/src/openrct2/windows/tile_inspector.c index 768e53a025..b771feaf05 100644 --- a/src/openrct2/windows/tile_inspector.c +++ b/src/openrct2/windows/tile_inspector.c @@ -574,6 +574,28 @@ static rct_map_element* window_tile_inspector_get_selected_element(rct_window *w return map_get_first_element_at(windowTileInspectorTileX, windowTileInspectorTileY) + w->selected_list_item; } +static void window_tile_inspector_select_element_from_list(rct_window *w, sint32 index) +{ + sint32 page; + if (index < 0 || index >= windowTileInspectorElementCount) { + w->selected_list_item = -1; + page = 0; + } + else { + w->selected_list_item = index; + + // Get type of selected map element to select the correct page + rct_map_element *const mapElement = window_tile_inspector_get_selected_element(w); + page = (min(map_element_get_type(mapElement), MAP_ELEMENT_TYPE_CORRUPT) >> 2) + 1; + } + + window_tile_inspector_set_page(w, page); + + // Enable/disable buttons + window_tile_inspector_auto_set_buttons(w); + window_invalidate(w); +} + static void window_tile_inspector_load_tile(rct_window* w) { rct_map_element *element = map_get_first_element_at(windowTileInspectorTileX, windowTileInspectorTileY); @@ -910,9 +932,12 @@ static void window_tile_inspector_mouseup(rct_window *w, rct_widgetindex widgetI case WIDX_BUTTON_CORRUPT: window_tile_inspector_insert_corrupt_element(w->selected_list_item); break; - case WIDX_BUTTON_REMOVE: + case WIDX_BUTTON_REMOVE: { + sint32 nextItemToSelect = w->selected_list_item - 1; window_tile_inspector_remove_element(w->selected_list_item); + window_tile_inspector_select_element_from_list(w, nextItemToSelect); break; + } case WIDX_BUTTON_ROTATE: window_tile_inspector_rotate_element(w->selected_list_item); break; @@ -1344,24 +1369,7 @@ static void window_tile_inspector_scrollmousedown(rct_window *w, sint32 scrollIn { // Because the list items are displayed in reverse order, subtract the calculated index from the amount of elements const sint16 index = windowTileInspectorElementCount - (y - 1) / LIST_ITEM_HEIGHT - 1; - sint32 page; - if (index < 0 || index >= windowTileInspectorElementCount) { - w->selected_list_item = -1; - page = 0; - } - else { - w->selected_list_item = index; - - // Get type of selected map element to select the correct page - rct_map_element *const mapElement = window_tile_inspector_get_selected_element(w); - page = (min(map_element_get_type(mapElement), MAP_ELEMENT_TYPE_CORRUPT) >> 2) + 1; - } - - window_tile_inspector_set_page(w, page); - - // Enable/disable buttons - window_tile_inspector_auto_set_buttons(w); - window_invalidate(w); + window_tile_inspector_select_element_from_list(w, index); } static void window_tile_inspector_scrollmouseover(rct_window *w, sint32 scrollIndex, sint32 x, sint32 y) From c82792e9b38eb0071ff5e99786909e4a549be797 Mon Sep 17 00:00:00 2001 From: Gymnasiast Date: Mon, 5 Jun 2017 23:00:17 +0200 Subject: [PATCH 2/2] Update network version --- src/openrct2/network/network.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/openrct2/network/network.h b/src/openrct2/network/network.h index ec5d657004..bb33322ff0 100644 --- a/src/openrct2/network/network.h +++ b/src/openrct2/network/network.h @@ -56,7 +56,7 @@ extern "C" { // This define specifies which version of network stream current build uses. // It is used for making sure only compatible builds get connected, even within // single OpenRCT2 version. -#define NETWORK_STREAM_VERSION "6" +#define NETWORK_STREAM_VERSION "7" #define NETWORK_STREAM_ID OPENRCT2_VERSION "-" NETWORK_STREAM_VERSION #ifdef __cplusplus