diff --git a/data/language/en-GB.txt b/data/language/en-GB.txt index f4a22217b8..3dd775468e 100644 --- a/data/language/en-GB.txt +++ b/data/language/en-GB.txt @@ -4249,7 +4249,7 @@ STR_5937 :Not owned and not for sale STR_5938 :{WINDOW_COLOUR_2}Water level: {BLACK}{COMMA16} STR_5939 :Remove park fences STR_5940 :Restore park fences -STR_5941 :{WINDOW_COLOUR_2}Raise / lower: +STR_5941 :{WINDOW_COLOUR_2}Base height: STR_5942 :{WINDOW_COLOUR_2}Path name: {BLACK}{STRINGID} STR_5943 :{WINDOW_COLOUR_2}Additions: {BLACK}{STRINGID} STR_5944 :{WINDOW_COLOUR_2}Additions: {BLACK}None diff --git a/src/localisation/string_ids.h b/src/localisation/string_ids.h index b11f141e23..7788278056 100644 --- a/src/localisation/string_ids.h +++ b/src/localisation/string_ids.h @@ -3589,7 +3589,7 @@ enum { STR_TILE_INSPECTOR_SURFACE_WATER_LEVEL = 5938, STR_TILE_INSPECTOR_SURFACE_REMOVE_FENCES = 5939, STR_TILE_INSPECTOR_SURFACE_RESTORE_FENCES = 5940, - STR_TILE_INSPECTOR_RAISE_LOWER = 5931, + STR_TILE_INSPECTOR_BASE_HEIGHT_FULL = 5941, STR_TILE_INSPECTOR_PATH_NAME = 5942, STR_TILE_INSPECTOR_PATH_ADDITIONS = 5943, STR_TILE_INSPECTOR_PATH_ADDITIONS_NONE = 5944, diff --git a/src/windows/tile_inspector.c b/src/windows/tile_inspector.c index 9678856b8b..ecb98876da 100644 --- a/src/windows/tile_inspector.c +++ b/src/windows/tile_inspector.c @@ -187,6 +187,7 @@ enum WINDOW_TILE_INSPECTOR_WIDGET_IDX { WIDX_CORRUPT_BUTTON_CLAMP, }; +// Window sizes #define WW 400 #define WH 280 #define MIN_WW WW @@ -194,16 +195,13 @@ enum WINDOW_TILE_INSPECTOR_WIDGET_IDX { #define MIN_WH 240 #define MAX_WH 800 +// Button space for top buttons #define BW (WW - 5) // Button's right side #define BX (BW - 23) // Button's left side #define BY 17 // Button's Top #define BH (BY + 23) // Button's Bottom #define BS 24 -#define PADDING_BOTTOM 15 -#define GROUPBOX_PADDING 6 -#define LIST_ITEM_HEIGHT 11 - // Column offsets for the table headers #define COL_X_TYPE 3 // Type #define COL_X_BH (COL_X_TYPE + 300) // Base height @@ -212,6 +210,32 @@ enum WINDOW_TILE_INSPECTOR_WIDGET_IDX { #define COL_X_BF (COL_X_GF + 12) // Broken flag #define COL_X_LF (COL_X_BF + 12) // Last for tile flag +#define PADDING_BOTTOM 15 +#define GROUPBOX_PADDING 6 +#define HORIZONTAL_GROUPBOX_PADDING 5 +#define VERTICAL_GROUPBOX_PADDING 4 +#define LIST_ITEM_HEIGHT 11 +#define BUTTONW 130 +#define BUTTONH 17 + +// Calculates the .left, .right, .top and .bottom for buttons in a group box. +// Buttons are used as reference points for all other widgets in the group boxes. +#define GBBL(col) (12 + col * (BUTTONW + HORIZONTAL_GROUPBOX_PADDING)) +#define GBBR(col) (GBBL(col) + BUTTONW) +#define GBBT(GROUPTOP, row) ((GROUPTOP) + 14 + row * (BUTTONH + VERTICAL_GROUPBOX_PADDING)) +#define GBBB(GROUPTOP, row) (GBBT((GROUPTOP), row) + BUTTONH) +#define GBB(GROUPTOP, col, row) GBBL(col), GBBR(col), GBBT((GROUPTOP), row), GBBB((GROUPTOP), row) +#define GBBF(GROUPTOP, col, row)GBBL(col), WW - 10, GBBT((GROUPTOP), row), GBBB((GROUPTOP), row) // Full width + +// Spinners and dropdowns use the buttons as a reference +#define GBS(GBT, col, row) GBBL(col), GBBR(col), GBBT(GBT, row) + 3, GBBB(GBT, row) - 3 // Group box spinner / dropdown field +#define GBSI(GBT, col, row) GBBR(col) - 11, GBBR(col) - 1, GBBT(GBT, row) + 4, GBBT(GBT, row) + 8 // Group box spinner increase +#define GBSD(GBT, col, row) GBBR(col) - 11, GBBR(col) - 1, GBBB(GBT, row) - 8, GBBB(GBT, row) - 4 // Group box spinner decrease +#define GBDB(GBT, col, row) GBBR(col) - 11, GBBR(col) - 1, GBBT(GBT, row) + 4, GBBB(GBT, row) - 4 // Group box dropdown button + +// Checkbox - given topleft corner +#define CHK(x, y) x, x + 13, y + 2, y + 15 + #define MAIN_TILE_INSPECTOR_WIDGETS \ { WWT_FRAME, 0, 0, WW - 1, 0, WH - 1, 0xFFFFFFFF, STR_NONE }, /* panel / background */ \ { WWT_CAPTION, 0, 1, WW - 2, 1, 14, STR_TILE_INSPECTOR_TITLE, STR_WINDOW_TITLE_TIP }, /* title bar */ \ @@ -245,23 +269,6 @@ static rct_widget windowTileInspectorWidgets[] = { { WIDGETS_END }, }; -// Calculates the .left, .right, .top and .bottom for buttons in a group box -#define GBBL(col) (12 + col * 115) -#define GBBR(col) (GBBL(col) + 110) -#define GBBT(GROUPTOP, row) ((GROUPTOP) + 14 + row * 21) -#define GBBB(GROUPTOP, row) (GBBT((GROUPTOP), row) + 17) -#define GBB(GROUPTOP, col, row) GBBL(col), GBBR(col), GBBT((GROUPTOP), row), GBBB((GROUPTOP), row) -#define GBBF(GROUPTOP, col, row)GBBL(col), WW - 10, GBBT((GROUPTOP), row), GBBB((GROUPTOP), row) // Full width - -// Spinners and dropdowns use the buttons as a reference -#define GBS(GBT, col, row) GBBL(col), GBBR(col), GBBT(GBT, row) + 3, GBBB(GBT, row) - 3 // Group box spinner / dropdown field -#define GBSI(GBT, col, row) GBBR(col) - 11, GBBR(col) - 1, GBBT(GBT, row) + 4, GBBT(GBT, row) + 8 // Group box spinner increase -#define GBSD(GBT, col, row) GBBR(col) - 11, GBBR(col) - 1, GBBB(GBT, row) - 8, GBBB(GBT, row) - 4 // Group box spinner decrease -#define GBDB(GBT, col, row) GBBR(col) - 11, GBBR(col) - 1, GBBT(GBT, row) + 4, GBBB(GBT, row) - 4 // Group box dropdown button - -// Checkbox - given topleft corner -#define CHK(x, y) x, x + 13, y + 2, y + 15 - // Group boxes .top and .bottom for a given window height offsets from the bottom #define SUR_GBPB PADDING_BOTTOM // Surface group box properties bottom #define SUR_GBPT (SUR_GBPB + 16 + 4 * 21) // Surface group box properties top @@ -1714,7 +1721,7 @@ static void window_tile_inspector_paint(rct_window *w, rct_drawpixelinfo *dpi) { // Raise / lower label x = w->x + w->widgets[WIDX_GROUPBOX_DETAILS].left + 7; y = w->y + w->widgets[WIDX_SURFACE_SPINNER_HEIGHT].top; - gfx_draw_string_left(dpi, STR_TILE_INSPECTOR_RAISE_LOWER, NULL, 12, x, y); + gfx_draw_string_left(dpi, STR_TILE_INSPECTOR_BASE_HEIGHT_FULL, NULL, 12, x, y); // Current base height x = w->x + w->widgets[WIDX_SURFACE_SPINNER_HEIGHT].left + 3; @@ -1747,7 +1754,7 @@ static void window_tile_inspector_paint(rct_window *w, rct_drawpixelinfo *dpi) { // Raise / lower label x = w->x + w->widgets[WIDX_GROUPBOX_DETAILS].left + 7; y = w->y + w->widgets[WIDX_PATH_SPINNER_HEIGHT].top; - gfx_draw_string_left(dpi, STR_TILE_INSPECTOR_RAISE_LOWER, NULL, 12, x, y); + gfx_draw_string_left(dpi, STR_TILE_INSPECTOR_BASE_HEIGHT_FULL, NULL, 12, x, y); // Current base height x = w->x + w->widgets[WIDX_PATH_SPINNER_HEIGHT].left + 3; @@ -1781,7 +1788,7 @@ static void window_tile_inspector_paint(rct_window *w, rct_drawpixelinfo *dpi) { // Properties // Raise / lower label y = w->y + w->widgets[WIDX_TRACK_SPINNER_HEIGHT].top; - gfx_draw_string_left(dpi, STR_TILE_INSPECTOR_RAISE_LOWER, NULL, 12, x, y); + gfx_draw_string_left(dpi, STR_TILE_INSPECTOR_BASE_HEIGHT_FULL, NULL, 12, x, y); // Current base height x = w->x + w->widgets[WIDX_TRACK_SPINNER_HEIGHT].left + 3; @@ -1815,7 +1822,7 @@ static void window_tile_inspector_paint(rct_window *w, rct_drawpixelinfo *dpi) { // Properties // Raise / Lower y = w->y + w->widgets[WIDX_SCENERY_SPINNER_HEIGHT].top; - gfx_draw_string_left(dpi, STR_TILE_INSPECTOR_RAISE_LOWER, NULL, 12, x, y); + gfx_draw_string_left(dpi, STR_TILE_INSPECTOR_BASE_HEIGHT_FULL, NULL, 12, x, y); // Current base height x = w->x + w->widgets[WIDX_SCENERY_SPINNER_HEIGHT].left + 3; @@ -1874,7 +1881,7 @@ static void window_tile_inspector_paint(rct_window *w, rct_drawpixelinfo *dpi) { // Properties // Raise / lower label y = w->y + w->widgets[WIDX_FENCE_SPINNER_HEIGHT].top; - gfx_draw_string_left(dpi, STR_TILE_INSPECTOR_RAISE_LOWER, NULL, 12, x, y); + gfx_draw_string_left(dpi, STR_TILE_INSPECTOR_BASE_HEIGHT_FULL, NULL, 12, x, y); // Current base height x = w->x + w->widgets[WIDX_FENCE_SPINNER_HEIGHT].left + 3; @@ -1893,7 +1900,7 @@ static void window_tile_inspector_paint(rct_window *w, rct_drawpixelinfo *dpi) { // Properties // Raise / lower label y = w->y + w->widgets[WIDX_LARGE_SCENERY_SPINNER_HEIGHT].top; - gfx_draw_string_left(dpi, STR_TILE_INSPECTOR_RAISE_LOWER, NULL, 12, x, y); + gfx_draw_string_left(dpi, STR_TILE_INSPECTOR_BASE_HEIGHT_FULL, NULL, 12, x, y); // Current base height x = w->x + w->widgets[WIDX_LARGE_SCENERY_SPINNER_HEIGHT].left + 3; @@ -1907,7 +1914,7 @@ static void window_tile_inspector_paint(rct_window *w, rct_drawpixelinfo *dpi) { // Properties // Raise / lower label y = w->y + w->widgets[WIDX_BANNER_SPINNER_HEIGHT].top; - gfx_draw_string_left(dpi, STR_TILE_INSPECTOR_RAISE_LOWER, NULL, 12, x, y); + gfx_draw_string_left(dpi, STR_TILE_INSPECTOR_BASE_HEIGHT_FULL, NULL, 12, x, y); // Current base height x = w->x + w->widgets[WIDX_BANNER_SPINNER_HEIGHT].left + 3; @@ -1921,7 +1928,7 @@ static void window_tile_inspector_paint(rct_window *w, rct_drawpixelinfo *dpi) { // Properties // Raise / lower label y = w->y + w->widgets[WIDX_CORRUPT_SPINNER_HEIGHT].top; - gfx_draw_string_left(dpi, STR_TILE_INSPECTOR_RAISE_LOWER, NULL, 12, x, y); + gfx_draw_string_left(dpi, STR_TILE_INSPECTOR_BASE_HEIGHT_FULL, NULL, 12, x, y); // Current base height x = w->x + w->widgets[WIDX_CORRUPT_SPINNER_HEIGHT].left + 3;