From af59bf3c2bf9f3f423cc2930779aa8ff8678e1ef Mon Sep 17 00:00:00 2001 From: Broxzier Date: Sun, 18 Sep 2016 22:52:27 +0200 Subject: [PATCH] Add entrance type detail and raise/lower ability --- src/localisation/string_ids.h | 1 + src/windows/tile_inspector.c | 44 +++++++++++++++++++++++++++-------- 2 files changed, 35 insertions(+), 10 deletions(-) diff --git a/src/localisation/string_ids.h b/src/localisation/string_ids.h index 76e34eb5c0..927ef3e096 100644 --- a/src/localisation/string_ids.h +++ b/src/localisation/string_ids.h @@ -3613,6 +3613,7 @@ enum { STR_TILE_INSPECTOR_COLLISSION = 5962, STR_TILE_INSPECTOR_SURFACE_CORNERS = 5963, STR_TILE_INSPECTOR_SURFACE_DIAGONAL = 5964, + STR_TILE_INSPECTOR_ENTRANCE_TYPE = 5965, // Have to include resource strings (from scenarios and objects) for the time being now that language is partially working STR_COUNT = 32768 diff --git a/src/windows/tile_inspector.c b/src/windows/tile_inspector.c index 067685e9f3..a13c75ada0 100644 --- a/src/windows/tile_inspector.c +++ b/src/windows/tile_inspector.c @@ -146,6 +146,9 @@ enum WINDOW_TILE_INSPECTOR_WIDGET_IDX { WIDX_SCENERY_CHECK_COLLISION_W, // Entrance + WIDX_ENTRANCE_SPINNER_HEIGHT = PAGE_WIDGETS, + WIDX_ENTRANCE_SPINNER_HEIGHT_INCREASE, + WIDX_ENTRANCE_SPINNER_HEIGHT_DECREASE, // Fence WIDX_FENCE_SPINNER_HEIGHT = PAGE_WIDGETS, @@ -308,11 +311,14 @@ static rct_widget windowTileInspectorWidgetsScenery[] = { }; #define ENT_GBPB PADDING_BOTTOM // Entrance group box properties bottom -#define ENT_GBPT (ENT_GBPB + 16 + 0 * 21) // Entrance group box properties top +#define ENT_GBPT (ENT_GBPB + 16 + 1 * 21) // Entrance group box properties top #define ENT_GBDB (ENT_GBPT + GROUPBOX_PADDING) // Entrance group box info bottom -#define ENT_GBDT (ENT_GBDB + 20 + 0 * 11) // Entrance group box info top +#define ENT_GBDT (ENT_GBDB + 20 + 1 * 11) // Entrance group box info top static rct_widget windowTileInspectorWidgetsEntrance[] = { MAIN_TILE_INSPECTOR_WIDGETS, + { WWT_SPINNER, 1, GBS(WH - ENT_GBPT, 1, 0), STR_NONE, STR_NONE }, // WIDX_ENTRANCE_SPINNER_HEIGHT + { WWT_DROPDOWN_BUTTON, 1, GBSI(WH - ENT_GBPT, 1, 0), STR_NUMERIC_UP, STR_NONE }, // WIDX_ENTRANCE_SPINNER_HEIGHT_INCREASE + { WWT_DROPDOWN_BUTTON, 1, GBSD(WH - ENT_GBPT, 1, 0), STR_NUMERIC_DOWN, STR_NONE }, // WIDX_ENTRANCE_SPINNER_HEIGHT_DECREASE { WIDGETS_END }, }; @@ -453,7 +459,7 @@ static uint64 windowTileInspectorEnabledWidgets[] = { (1ULL << WIDX_CLOSE) | (1ULL << WIDX_BUTTON_CORRUPT) | (1ULL << WIDX_BUTTON_REMOVE) | (1ULL << WIDX_BUTTON_ROTATE) | (1ULL << WIDX_PATH_SPINNER_HEIGHT_INCREASE) | (1ULL << WIDX_PATH_SPINNER_HEIGHT_DECREASE) | (1ULL << WIDX_PATH_CHECK_EDGE_N) | (1ULL << WIDX_PATH_CHECK_EDGE_NE) | (1ULL << WIDX_PATH_CHECK_EDGE_E) | (1ULL << WIDX_PATH_CHECK_EDGE_SE) | (1ULL << WIDX_PATH_CHECK_EDGE_S) | (1ULL << WIDX_PATH_CHECK_EDGE_SW) | (1ULL << WIDX_PATH_CHECK_EDGE_W) | (1ULL << WIDX_PATH_CHECK_EDGE_NW), (1ULL << WIDX_CLOSE) | (1ULL << WIDX_BUTTON_CORRUPT) | (1ULL << WIDX_BUTTON_REMOVE) | (1ULL << WIDX_BUTTON_ROTATE) | (1ULL << WIDX_TRACK_CHECK_APPLY_TO_ALL) | (1ULL << WIDX_TRACK_SPINNER_HEIGHT_INCREASE) | (1ULL << WIDX_TRACK_SPINNER_HEIGHT_DECREASE) | (1ULL << WIDX_TRACK_CHECK_CHAIN_LIFT), (1ULL << WIDX_CLOSE) | (1ULL << WIDX_BUTTON_CORRUPT) | (1ULL << WIDX_BUTTON_REMOVE) | (1ULL << WIDX_BUTTON_ROTATE) | (1ULL << WIDX_SCENERY_SPINNER_HEIGHT_INCREASE) | (1ULL << WIDX_SCENERY_SPINNER_HEIGHT_DECREASE) | (1ULL << WIDX_SCENERY_CHECK_QUARTER_N) | (1ULL << WIDX_SCENERY_CHECK_QUARTER_E) | (1ULL << WIDX_SCENERY_CHECK_QUARTER_S) | (1ULL << WIDX_SCENERY_CHECK_QUARTER_W) | (1ULL << WIDX_SCENERY_CHECK_COLLISION_N) | (1ULL << WIDX_SCENERY_CHECK_COLLISION_E) | (1ULL << WIDX_SCENERY_CHECK_COLLISION_S) | (1ULL << WIDX_SCENERY_CHECK_COLLISION_W), - (1ULL << WIDX_CLOSE) | (1ULL << WIDX_BUTTON_CORRUPT) | (1ULL << WIDX_BUTTON_REMOVE) | (1ULL << WIDX_BUTTON_ROTATE), + (1ULL << WIDX_CLOSE) | (1ULL << WIDX_BUTTON_CORRUPT) | (1ULL << WIDX_BUTTON_REMOVE) | (1ULL << WIDX_BUTTON_ROTATE) | (1ULL << WIDX_ENTRANCE_SPINNER_HEIGHT_INCREASE) | (1ULL << WIDX_ENTRANCE_SPINNER_HEIGHT_DECREASE), (1ULL << WIDX_CLOSE) | (1ULL << WIDX_BUTTON_CORRUPT) | (1ULL << WIDX_BUTTON_REMOVE) | (1ULL << WIDX_BUTTON_ROTATE) | (1ULL << WIDX_FENCE_SPINNER_HEIGHT_INCREASE) | (1ULL << WIDX_FENCE_SPINNER_HEIGHT_DECREASE), (1ULL << WIDX_CLOSE) | (1ULL << WIDX_BUTTON_CORRUPT) | (1ULL << WIDX_BUTTON_REMOVE), (1ULL << WIDX_CLOSE) | (1ULL << WIDX_BUTTON_CORRUPT) | (1ULL << WIDX_BUTTON_REMOVE) | (1ULL << WIDX_BUTTON_ROTATE), @@ -1110,6 +1116,20 @@ static void window_tile_inspector_mouseup(rct_window *w, int widgetIndex) { break; case PAGE_ENTRANCE: + switch (widgetIndex) { + case WIDX_ENTRANCE_SPINNER_HEIGHT_INCREASE: + mapElement->base_height++; + mapElement->clearance_height++; + map_invalidate_tile_full(windowTileInspectorTileX << 5, windowTileInspectorTileY << 5); + widget_invalidate(w, WIDX_FENCE_SPINNER_HEIGHT); + break; + case WIDX_ENTRANCE_SPINNER_HEIGHT_DECREASE: + mapElement->base_height--; + mapElement->clearance_height--; + map_invalidate_tile_full(windowTileInspectorTileX << 5, windowTileInspectorTileY << 5); + widget_invalidate(w, WIDX_FENCE_SPINNER_HEIGHT); + break; + } // switch widget index break; case PAGE_FENCE: @@ -1417,7 +1437,12 @@ static void window_tile_inspector_invalidate(rct_window *w) { break; } case PAGE_ENTRANCE: - + w->widgets[WIDX_ENTRANCE_SPINNER_HEIGHT].top = GBBT(propertiesAnchor, 0) + 3; + w->widgets[WIDX_ENTRANCE_SPINNER_HEIGHT].bottom = GBBB(propertiesAnchor, 0) - 3; + w->widgets[WIDX_ENTRANCE_SPINNER_HEIGHT_INCREASE].top = GBBT(propertiesAnchor, 0) + 4; + w->widgets[WIDX_ENTRANCE_SPINNER_HEIGHT_INCREASE].bottom = GBBT(propertiesAnchor, 0) + 8; + w->widgets[WIDX_ENTRANCE_SPINNER_HEIGHT_DECREASE].top = GBBB(propertiesAnchor, 0) - 8; + w->widgets[WIDX_ENTRANCE_SPINNER_HEIGHT_DECREASE].bottom = GBBB(propertiesAnchor, 0) - 4; break; case PAGE_FENCE: w->widgets[WIDX_FENCE_SPINNER_HEIGHT].top = GBBT(propertiesAnchor, 0) + 3; @@ -1630,6 +1655,11 @@ static void window_tile_inspector_paint(rct_window *w, rct_drawpixelinfo *dpi) { break; } + case PAGE_ENTRANCE: { + rct_string_id entranceType = entranceTypeStringIds[mapElement->properties.entrance.type]; + gfx_draw_string_left(dpi, STR_TILE_INSPECTOR_ENTRANCE_TYPE, &entranceType, 12, x, y); + } + case PAGE_FENCE: { // Properties // Raise / lower label @@ -1692,12 +1722,6 @@ static void window_tile_inspector_scrollpaint(rct_window *w, rct_drawpixelinfo * typeName = buffer; break; case MAP_ELEMENT_TYPE_ENTRANCE: - //snprintf( - // buffer, sizeof(buffer), - // "Entrance (%s)", - // language_get_string(EntranceTypes[mapElement->properties.entrance.type]) - //); - //type_name = buffer; typeName = "Entrance"; break; case MAP_ELEMENT_TYPE_FENCE: