mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-02-01 11:15:13 +01:00
Added column headers instead of labels, and added columns for the flags.
This commit is contained in:
@@ -3946,7 +3946,15 @@ STR_5604 :Guest has bought item
|
||||
STR_5605 :Guest has used facility
|
||||
STR_5606 :Guest has died
|
||||
STR_5607 :Remove
|
||||
STR_5608 :{SMALLFONT}{BLACK}Remove the currently selected map element. This will forcefully remove it, so no cash will be used/gained. Use with caution.
|
||||
STR_5608 :BH
|
||||
STR_5609 :CH
|
||||
STR_5610 :{SMALLFONT}{BLACK}Remove the currently selected map element. This will forcefully remove it, so no cash will be used/gained. Use with caution.
|
||||
STR_5611 :G
|
||||
STR_5612 :{SMALLFONT}{BLACK}Ghost flag
|
||||
STR_5613 :B
|
||||
STR_5614 :{SMALLFONT}{BLACK}Broken flag
|
||||
STR_5615 :L
|
||||
STR_5616 :{SMALLFONT}{BLACK}Last element for tile flag
|
||||
|
||||
#####################
|
||||
# Rides/attractions #
|
||||
|
||||
@@ -2004,9 +2004,17 @@ enum {
|
||||
STR_TILE_INSPECTOR_ENTRANCE_START = 5335,
|
||||
STR_TILE_INSPECTOR_ELEMENT_TYPE = 5338,
|
||||
STR_TILE_INSPECTOR_BASE_HEIGHT = 5339,
|
||||
STR_TILE_INSPECTOR_BASE_HEIGHT_SHORT = 5608,
|
||||
STR_TILE_INSPECTOR_CLEARANGE_HEIGHT = 5340,
|
||||
STR_TILE_INSPECTOR_CLEARANGE_HEIGHT_SHORT = 5609,
|
||||
STR_TILE_INSPECTOR_FLAGS = 5341,
|
||||
STR_TILE_INSPECTOR_CHOOSE_MSG = 5342,
|
||||
STR_TILE_INSPECTOR_FLAG_GHOST_SHORT = 5611,
|
||||
STR_TILE_INSPECTOR_FLAG_GHOST = 5612,
|
||||
STR_TILE_INSPECTOR_FLAG_BROKEN_SHORT = 5613,
|
||||
STR_TILE_INSPECTOR_FLAG_BROKEN = 5614,
|
||||
STR_TILE_INSPECTOR_FLAG_LAST_SHORT = 5615,
|
||||
STR_TILE_INSPECTOR_FLAG_LAST = 5616,
|
||||
|
||||
STR_AUTO_STAFF_PLACEMENT = 5343,
|
||||
|
||||
|
||||
@@ -36,6 +36,7 @@ enum WINDOW_TILE_INSPECTOR_WIDGET_IDX {
|
||||
WIDX_REMOVE,
|
||||
WIDX_MOVE_DOWN,
|
||||
WIDX_MOVE_UP,
|
||||
WIDX_COLUMN_LAST = 13,
|
||||
};
|
||||
|
||||
#define WW 500
|
||||
@@ -54,13 +55,21 @@ enum WINDOW_TILE_INSPECTOR_WIDGET_IDX {
|
||||
#define SCROLL_BOTTOM_OFFSET 15
|
||||
#define LIST_ITEM_HEIGHT 11
|
||||
|
||||
// Column offsets
|
||||
#define COL_X_TYPE (BW + 3) // Type
|
||||
#define COL_X_BH (COL_X_TYPE + 200) // Base height
|
||||
#define COL_X_CH (COL_X_BH + 25) // Clearance height
|
||||
#define COL_X_GF (COL_X_CH + 25) // Ghost flag
|
||||
#define COL_X_BF (COL_X_GF + 15) // Broken flag
|
||||
#define COL_X_LF (COL_X_BF + 15) // Last for tile flag
|
||||
|
||||
rct_widget window_tile_inspector_widgets[] = {
|
||||
{ WWT_FRAME, 0, 0, WW - 1, 0, WH - 1, 0x0FFFFFFFF, STR_NONE }, // panel / background
|
||||
{ WWT_CAPTION, 0, 1, WW - 2, 1, 14, STR_TILE_INSPECTOR_TITLE, STR_WINDOW_TITLE_TIP }, // title bar
|
||||
{ WWT_CLOSEBOX, 0, WW - 13, WW - 3, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // close x button
|
||||
|
||||
// Map element list
|
||||
{ WWT_SCROLL, 1, BW + 3, WW - 3, 30 + BS, WH - SCROLL_BOTTOM_OFFSET, 2, STR_NONE }, // scroll area
|
||||
{ WWT_SCROLL, 1, BW + 3, WW - 3, 29, WH - SCROLL_BOTTOM_OFFSET, 2, STR_NONE }, // scroll area
|
||||
|
||||
// Buttons
|
||||
{ WWT_CLOSEBOX, 1, BX, BW, BY, BH, STR_INSERT_CORRUPT, STR_INSERT_CORRUPT_TIP }, // Insert corrupt button
|
||||
@@ -68,6 +77,14 @@ rct_widget window_tile_inspector_widgets[] = {
|
||||
{ WWT_CLOSEBOX, 1, BX, BX + BW / 2 - 1, BY + BS * 3, BH + BS * 3, 5375, 5390 }, // Move down
|
||||
{ WWT_CLOSEBOX, 1, BX + BW / 2, BW, BY + BS * 3, BH + BS * 3, 5376, 5391 }, // Move up
|
||||
|
||||
// Column headers
|
||||
{ WWT_13, 1, COL_X_TYPE, COL_X_BH - 1, 16, 16 + 13, STR_TILE_INSPECTOR_ELEMENT_TYPE, STR_NONE },
|
||||
{ WWT_13, 1, COL_X_BH, COL_X_CH - 1, 16, 16 + 13, STR_TILE_INSPECTOR_BASE_HEIGHT_SHORT, STR_TILE_INSPECTOR_BASE_HEIGHT },
|
||||
{ WWT_13, 1, COL_X_CH, COL_X_GF - 1, 16, 16 + 13, STR_TILE_INSPECTOR_CLEARANGE_HEIGHT_SHORT, STR_TILE_INSPECTOR_CLEARANGE_HEIGHT },
|
||||
{ WWT_13, 1, COL_X_GF, COL_X_BF - 1, 16, 16 + 13, STR_TILE_INSPECTOR_FLAG_GHOST_SHORT, STR_TILE_INSPECTOR_FLAG_GHOST },
|
||||
{ WWT_13, 1, COL_X_BF, COL_X_LF - 1, 16, 16 + 13, STR_TILE_INSPECTOR_FLAG_BROKEN_SHORT, STR_TILE_INSPECTOR_FLAG_BROKEN },
|
||||
{ WWT_13, 1, COL_X_LF, WW - 2, 16, 16 + 13, STR_TILE_INSPECTOR_FLAG_LAST_SHORT, STR_TILE_INSPECTOR_FLAG_LAST },
|
||||
|
||||
{ WIDGETS_END },
|
||||
};
|
||||
|
||||
@@ -416,6 +433,7 @@ static void window_tile_inspector_invalidate(rct_window *w)
|
||||
window_tile_inspector_widgets[WIDX_TITLE].right = w->width - 2;
|
||||
window_tile_inspector_widgets[WIDX_LIST].right = w->width - 3;
|
||||
window_tile_inspector_widgets[WIDX_LIST].bottom = w->height - SCROLL_BOTTOM_OFFSET;
|
||||
window_tile_inspector_widgets[WIDX_COLUMN_LAST].right = w->width - 2;
|
||||
}
|
||||
|
||||
static void window_tile_inspector_paint(rct_window *w, rct_drawpixelinfo *dpi)
|
||||
@@ -426,15 +444,11 @@ static void window_tile_inspector_paint(rct_window *w, rct_drawpixelinfo *dpi)
|
||||
window_draw_widgets(w, dpi);
|
||||
|
||||
x = w->x + 20;
|
||||
y = w->y + 25;
|
||||
y = w->y + 15;
|
||||
|
||||
if (window_tile_inspector_tile_x == -1) {
|
||||
|
||||
// No tile selected
|
||||
if (window_tile_inspector_tile_x == -1) { // No tile selected
|
||||
gfx_draw_string_left(dpi, STR_TILE_INSPECTOR_CHOOSE_MSG, NULL, 12, x, y);
|
||||
|
||||
} else {
|
||||
|
||||
sprintf(
|
||||
buffer,
|
||||
"X: %d, Y: %d",
|
||||
@@ -443,16 +457,7 @@ static void window_tile_inspector_paint(rct_window *w, rct_drawpixelinfo *dpi)
|
||||
);
|
||||
|
||||
gfx_draw_string(dpi, buffer, 12, x, y);
|
||||
|
||||
}
|
||||
|
||||
// Draw header labels
|
||||
x = w->x + 155;
|
||||
draw_string_left_underline(dpi, STR_TILE_INSPECTOR_ELEMENT_TYPE, NULL, 12, x, y);
|
||||
draw_string_left_underline(dpi, STR_TILE_INSPECTOR_BASE_HEIGHT, NULL, 12, x + 200, y);
|
||||
draw_string_left_underline(dpi, STR_TILE_INSPECTOR_CLEARANGE_HEIGHT, NULL, 12, x + 280, y);
|
||||
draw_string_left_underline(dpi, STR_TILE_INSPECTOR_FLAGS, NULL, 12, x + 390, y);
|
||||
|
||||
}
|
||||
|
||||
static void window_tile_inspector_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex)
|
||||
@@ -474,12 +479,13 @@ static void window_tile_inspector_scrollpaint(rct_window *w, rct_drawpixelinfo *
|
||||
int clearance_height = element->clearance_height;
|
||||
|
||||
// Fill colour for current list element
|
||||
const int list_width = w->widgets[WIDX_LIST].right - w->widgets[WIDX_LIST].left;
|
||||
if (i == w->selected_list_item) // Currently selected element
|
||||
gfx_fill_rect(dpi, x, y, x + MAX_WW - 20, y + LIST_ITEM_HEIGHT - 1, ColourMapA[w->colours[1]].darker | 0x1000000);
|
||||
gfx_fill_rect(dpi, 0, y, list_width, y + LIST_ITEM_HEIGHT - 1, ColourMapA[w->colours[1]].darker | 0x1000000);
|
||||
else if (i == window_tile_inspector_highlighted_index) // Hovering
|
||||
gfx_fill_rect(dpi, x, y, x + MAX_WW - 20, y + LIST_ITEM_HEIGHT - 1, ColourMapA[w->colours[1]].mid_dark | 0x1000000);
|
||||
gfx_fill_rect(dpi, 0, y, list_width, y + LIST_ITEM_HEIGHT - 1, ColourMapA[w->colours[1]].mid_dark | 0x1000000);
|
||||
else if ((i & 1) != 0) // odd / even check
|
||||
gfx_fill_rect(dpi, x, y, x + MAX_WW - 20, y + LIST_ITEM_HEIGHT - 1, ColourMapA[w->colours[1]].lighter | 0x1000000);
|
||||
gfx_fill_rect(dpi, 0, y, list_width, y + LIST_ITEM_HEIGHT - 1, ColourMapA[w->colours[1]].lighter | 0x1000000);
|
||||
|
||||
switch (type) {
|
||||
case MAP_ELEMENT_TYPE_SURFACE:
|
||||
@@ -560,15 +566,19 @@ static void window_tile_inspector_scrollpaint(rct_window *w, rct_drawpixelinfo *
|
||||
type_name = buffer;
|
||||
}
|
||||
|
||||
gfx_draw_string(dpi, type_name, 12, x, y);
|
||||
gfx_draw_string_left(dpi, 5182, &base_height, 12, x + 200, y);
|
||||
gfx_draw_string_left(dpi, 5182, &clearance_height, 12, x + 280, y);
|
||||
|
||||
// TODO: Add small columns for ghost, broken, last element for tile (G, B, L)
|
||||
// Undo relative scroll offset, but keep the 3 pixel padding
|
||||
x = -w->widgets[WIDX_LIST].left + 3;
|
||||
const int ghost = element->flags & MAP_ELEMENT_FLAG_GHOST ? 1 : 0;
|
||||
const int broken = element->flags & MAP_ELEMENT_FLAG_BROKEN ? 1 : 0;
|
||||
const int last = element->flags & MAP_ELEMENT_FLAG_LAST_TILE ? 1 : 0;
|
||||
gfx_draw_string(dpi, type_name, 12, x + COL_X_TYPE, y);
|
||||
gfx_draw_string_left(dpi, 5182, &base_height, 12, x + COL_X_BH, y);
|
||||
gfx_draw_string_left(dpi, 5182, &clearance_height, 12, x + COL_X_CH, y);
|
||||
gfx_draw_string_left(dpi, 5182, &ghost, 12, x + COL_X_GF, y);
|
||||
gfx_draw_string_left(dpi, 5182, &broken, 12, x + COL_X_BF, y);
|
||||
gfx_draw_string_left(dpi, 5182, &last, 12, x + COL_X_LF, y);
|
||||
|
||||
y -= LIST_ITEM_HEIGHT;
|
||||
i++;
|
||||
|
||||
} while (!map_element_is_last_for_tile(element++));
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user