1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-15 11:03:00 +01:00

Entrance details

@todo: For park entrances, the left and right tile do not show the entrance ID. Will solve this later.
This commit is contained in:
Broxzier
2016-09-18 23:59:23 +02:00
parent af59bf3c2b
commit f5423f7586
3 changed files with 54 additions and 2 deletions

View File

@@ -4273,7 +4273,14 @@ STR_5961 :{WINDOW_COLOUR_2}Entry index: {BLACK}{COMMA16}
STR_5962 :{WINDOW_COLOUR_2}Collission detection:
STR_5963 :{WINDOW_COLOUR_2}Raised Corners:
STR_5964 :{WINDOW_COLOUR_2}Diagonal
STR_5965 :{WINDOW_COLOUR_2}Entrance type: {STRINGID}
STR_5965 :{WINDOW_COLOUR_2}Entrance type: {BLACK}{STRINGID}
STR_5966 :{WINDOW_COLOUR_2}Park entrance part: {BLACK}{STRINGID}
STR_5967 :Middle
STR_5968 :Left
STR_5969 :Right
STR_5970 :{WINDOW_COLOUR_2}Entrance ID: {BLACK}{COMMA16}
STR_5971 :{WINDOW_COLOUR_2}Exit ID: {BLACK}{COMMA16}
STR_5972 :{WINDOW_COLOUR_2}Ride ID: {BLACK}{COMMA16}
#############
# Scenarios #

View File

@@ -3614,6 +3614,13 @@ enum {
STR_TILE_INSPECTOR_SURFACE_CORNERS = 5963,
STR_TILE_INSPECTOR_SURFACE_DIAGONAL = 5964,
STR_TILE_INSPECTOR_ENTRANCE_TYPE = 5965,
STR_TILE_INSPECTOR_ENTRANCE_PART = 5966,
STR_TILE_INSPECTOR_ENTRANCE_MIDDLE = 5967,
STR_TILE_INSPECTOR_ENTRANCE_LEFT = 5968,
STR_TILE_INSPECTOR_ENTRANCE_RIGHT = 5969,
STR_TILE_INSPECTOR_ENTRANCE_ENTRANCE_ID = 5970,
STR_TILE_INSPECTOR_ENTRANCE_EXIT_ID = 5971,
STR_TILE_INSPECTOR_ENTRANCE_RIDE_ID = 5972,
// Have to include resource strings (from scenarios and objects) for the time being now that language is partially working
STR_COUNT = 32768

View File

@@ -59,6 +59,12 @@ static const rct_string_id entranceTypeStringIds[] = {
STR_TILE_INSPECTOR_ENTRANCE_TYPE_PARK_ENTRANC,
};
static const rct_string_id parkEntrancePartStringIds[] = {
STR_TILE_INSPECTOR_ENTRANCE_MIDDLE,
STR_TILE_INSPECTOR_ENTRANCE_LEFT,
STR_TILE_INSPECTOR_ENTRANCE_RIGHT
};
enum WINDOW_TILE_INSPECTOR_PAGES {
PAGE_DEFAULT,
PAGE_SURFACE,
@@ -313,7 +319,7 @@ static rct_widget windowTileInspectorWidgetsScenery[] = {
#define ENT_GBPB PADDING_BOTTOM // Entrance group box properties bottom
#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 + 1 * 11) // Entrance group box info top
#define ENT_GBDT (ENT_GBDB + 20 + 3 * 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
@@ -1656,8 +1662,40 @@ static void window_tile_inspector_paint(rct_window *w, rct_drawpixelinfo *dpi) {
}
case PAGE_ENTRANCE: {
// Entrance type
rct_string_id entranceType = entranceTypeStringIds[mapElement->properties.entrance.type];
gfx_draw_string_left(dpi, STR_TILE_INSPECTOR_ENTRANCE_TYPE, &entranceType, 12, x, y);
if (mapElement->properties.entrance.type == ENTRANCE_TYPE_PARK_ENTRANCE) {
// Park entrance ID
int middleX = windowTileInspectorTileX << 5;
int middleY = windowTileInspectorTileY << 5;
// TODO: Make this work with Left/Right park entrance parts
sint16 parkEntranceIndex = park_get_entrance_index(middleX, middleY, mapElement->base_height * 8);
gfx_draw_string_left(dpi, STR_TILE_INSPECTOR_ENTRANCE_ENTRANCE_ID, &parkEntranceIndex, 12, x, y + 11);
}
else {
sint16 rideEntranceIndex = (mapElement->properties.entrance.index & 0x30) >> 4;
if (mapElement->properties.entrance.type == ENTRANCE_TYPE_RIDE_ENTRANCE) {
// Ride entrance ID
gfx_draw_string_left(dpi, STR_TILE_INSPECTOR_ENTRANCE_ENTRANCE_ID, &rideEntranceIndex, 12, x, y + 11);
}
else {
// Ride exit ID
gfx_draw_string_left(dpi, STR_TILE_INSPECTOR_ENTRANCE_EXIT_ID, &rideEntranceIndex, 12, x, y + 11);
}
}
if (mapElement->properties.entrance.type == ENTRANCE_TYPE_PARK_ENTRANCE) {
// Entrance part
rct_string_id entrancePart = parkEntrancePartStringIds[mapElement->properties.entrance.index & 0x0F];
gfx_draw_string_left(dpi, STR_TILE_INSPECTOR_ENTRANCE_PART, &entrancePart, 12, x, y + 22);
}
else {
// Ride ID
sint16 rideId = mapElement->properties.entrance.ride_index;
gfx_draw_string_left(dpi, STR_TILE_INSPECTOR_ENTRANCE_RIDE_ID, &rideId, 12, x, y + 22);
}
}
case PAGE_FENCE: {