From 5204fb0ce9ab524eea2681f4791274d4f73fbb83 Mon Sep 17 00:00:00 2001 From: Marijn van der Werf Date: Thu, 14 Jul 2016 14:07:49 +0200 Subject: [PATCH] Clean up string and sprite ID's (#3977) --- src/audio/audio.c | 5 +- src/config.c | 12 +- src/drawing/drawing.h | 20 +- src/drawing/string.c | 22 +- src/editor.c | 2 +- src/game.c | 4 +- src/game.h | 2 +- src/input.c | 40 +- src/interface/Theme.cpp | 115 +- src/interface/graph.c | 8 +- src/interface/keyboard_shortcut.c | 2 +- src/interface/screenshot.c | 6 +- src/interface/viewport_interaction.c | 72 +- src/interface/widget.c | 36 +- src/interface/widget.h | 10 +- src/interface/window.c | 8 +- src/interface/window.h | 9 +- src/localisation/localisation.c | 341 +++- src/localisation/localisation.h | 11 + src/localisation/string_ids.h | 1999 ++++++++++++++++-------- src/management/award.c | 22 +- src/management/marketing.c | 2 +- src/management/research.c | 2 +- src/network/network.cpp | 3 +- src/object/StexObject.cpp | 2 +- src/object/WaterObject.cpp | 2 +- src/paint/map_element/entrance.c | 4 +- src/paint/sprite/misc.c | 5 +- src/peep/peep.c | 33 +- src/peep/peep.h | 2 +- src/peep/staff.c | 9 +- src/rct1/S4Importer.cpp | 2 +- src/ride/ride.c | 38 +- src/ride/ride.h | 2 +- src/ride/ride_data.c | 307 ++-- src/ride/ride_data.h | 37 +- src/ride/track.c | 1 + src/ride/track_design_save.c | 4 +- src/ride/vehicle.c | 14 +- src/sprites.h | 239 ++- src/title.c | 2 +- src/windows/about.c | 2 +- src/windows/banner.c | 44 +- src/windows/changelog.c | 10 +- src/windows/cheats.c | 40 +- src/windows/clear_scenery.c | 22 +- src/windows/custom_currency.c | 12 +- src/windows/dropdown.c | 4 +- src/windows/dropdown.h | 2 +- src/windows/editor_bottom_toolbar.c | 23 +- src/windows/editor_inventions_list.c | 22 +- src/windows/editor_object_selection.c | 101 +- src/windows/editor_objective_options.c | 75 +- src/windows/editor_scenario_options.c | 20 +- src/windows/finances.c | 135 +- src/windows/footpath.c | 46 +- src/windows/game_bottom_toolbar.c | 24 +- src/windows/guest.c | 230 +-- src/windows/guest_list.c | 80 +- src/windows/install_track.c | 18 +- src/windows/land.c | 18 +- src/windows/land_rights.c | 21 +- src/windows/loadsave.c | 70 +- src/windows/map.c | 57 +- src/windows/map_tooltip.c | 4 +- src/windows/mapgen.c | 172 +- src/windows/maze_construction.c | 19 +- src/windows/multiplayer.c | 30 +- src/windows/music_credits.c | 7 +- src/windows/network_status.c | 2 +- src/windows/new_campaign.c | 16 +- src/windows/new_ride.c | 59 +- src/windows/news.c | 18 +- src/windows/news_options.c | 12 +- src/windows/options.c | 153 +- src/windows/park.c | 89 +- src/windows/player.c | 26 +- src/windows/publisher_credits.c | 60 +- src/windows/research.c | 66 +- src/windows/ride.c | 673 +++++--- src/windows/ride_construction.c | 168 +- src/windows/ride_list.c | 45 +- src/windows/save_prompt.c | 16 +- src/windows/scenery.c | 73 +- src/windows/server_list.c | 6 +- src/windows/server_start.c | 16 +- src/windows/shortcut_key_change.c | 8 +- src/windows/shortcut_keys.c | 15 +- src/windows/sign.c | 25 +- src/windows/staff.c | 138 +- src/windows/staff_list.c | 57 +- src/windows/text_input.c | 6 +- src/windows/themes.c | 90 +- src/windows/tile_inspector.c | 53 +- src/windows/title_command_editor.c | 52 +- src/windows/title_editor.c | 121 +- src/windows/title_logo.c | 1 + src/windows/title_scenarioselect.c | 60 +- src/windows/tooltip.c | 2 +- src/windows/top_toolbar.c | 78 +- src/windows/track_list.c | 12 +- src/windows/track_manage.c | 1 + src/windows/track_place.c | 5 +- src/windows/viewport.c | 4 +- src/windows/water.c | 8 +- src/world/banner.c | 2 +- src/world/map.c | 18 +- src/world/park.c | 2 +- src/world/sprite.h | 2 +- 109 files changed, 4371 insertions(+), 2651 deletions(-) diff --git a/src/audio/audio.c b/src/audio/audio.c index 19e3a84354..50e4610528 100644 --- a/src/audio/audio.c +++ b/src/audio/audio.c @@ -27,6 +27,7 @@ #include "mixer.h" #include "../openrct2.h" #include "../util/util.h" +#include "../localisation/string_ids.h" typedef struct rct_audio_params { bool in_range; @@ -146,14 +147,14 @@ void audio_populate_devices() for (int i = 0; i < gAudioDeviceCount; i++) { const char *utf8Name = SDL_GetAudioDeviceName(i, SDL_FALSE); if (utf8Name == NULL) - utf8Name = language_get_string(5511); + utf8Name = language_get_string(STR_OPTIONS_SOUND_VALUE_UNKNOWN); safe_strcpy(systemAudioDevices[i].name, utf8Name, AUDIO_DEVICE_NAME_SIZE); } #ifndef __LINUX__ gAudioDeviceCount++; gAudioDevices = malloc(gAudioDeviceCount * sizeof(audio_device)); - safe_strcpy(gAudioDevices[0].name, language_get_string(5510), AUDIO_DEVICE_NAME_SIZE); + safe_strcpy(gAudioDevices[0].name, language_get_string(STR_OPTIONS_SOUND_VALUE_DEFAULT), AUDIO_DEVICE_NAME_SIZE); memcpy(&gAudioDevices[1], systemAudioDevices, (gAudioDeviceCount - 1) * sizeof(audio_device)); #else gAudioDevices = malloc(gAudioDeviceCount * sizeof(audio_device)); diff --git a/src/config.c b/src/config.c index 7d7dd815c3..c57d31c88b 100644 --- a/src/config.c +++ b/src/config.c @@ -431,7 +431,7 @@ void config_set_defaults() if (username) { destValue->value_string = _strdup(username); } else { - destValue->value_string = _strdup(language_get_string(STR_PLAYER_DEFAULT_NAME)); + destValue->value_string = _strdup(language_get_string(STR_RIDE_COMPONENT_PLAYER_CAPITALISED)); } } else { @@ -1150,23 +1150,23 @@ void title_sequences_set_default() // RCT1 title sequence sprintf(path, "%s%c%s%c%s%c", dataPath, sep, "title", sep, "rct1", sep); - title_sequence_open(path, language_get_string(5305)); + title_sequence_open(path, language_get_string(STR_TITLE_SEQUENCE_RCT1)); // RCT1 (AA) title sequence sprintf(path, "%s%c%s%c%s%c", dataPath, sep, "title", sep, "rct1aa", sep); - title_sequence_open(path, language_get_string(5306)); + title_sequence_open(path, language_get_string(STR_TITLE_SEQUENCE_RCT1_AA)); // RCT1 (AA + LL) title sequence sprintf(path, "%s%c%s%c%s%c", dataPath, sep, "title", sep, "rct1aall", sep); - title_sequence_open(path, language_get_string(5307)); + title_sequence_open(path, language_get_string(STR_TITLE_SEQUENCE_RCT1_AA_LL)); // RCT2 title sequence sprintf(path, "%s%c%s%c%s%c", dataPath, sep, "title", sep, "rct2", sep); - title_sequence_open(path, language_get_string(5308)); + title_sequence_open(path, language_get_string(STR_TITLE_SEQUENCE_RCT2)); // OpenRCT2 title sequence sprintf(path, "%s%c%s%c%s%c", dataPath, sep, "title", sep, "openrct2", sep); - title_sequence_open(path, language_get_string(5309)); + title_sequence_open(path, language_get_string(STR_TITLE_SEQUENCE_OPENRCT2)); } void title_sequences_load_presets() diff --git a/src/drawing/drawing.h b/src/drawing/drawing.h index ab020b5d28..e4b7b33637 100644 --- a/src/drawing/drawing.h +++ b/src/drawing/drawing.h @@ -198,18 +198,18 @@ int gfx_wrap_string(char* buffer, int width, int* num_lines, int* font_height); int gfx_get_string_width(char *buffer); int gfx_get_string_width_new_lined(char* buffer); void gfx_draw_string(rct_drawpixelinfo *dpi, char *buffer, int colour, int x, int y); -void gfx_draw_string_left(rct_drawpixelinfo *dpi, int format, void *args, int colour, int x, int y); -void gfx_draw_string_left_clipped(rct_drawpixelinfo *dpi, int format, void *args, int colour, int x, int y, int width); -int gfx_draw_string_left_wrapped(rct_drawpixelinfo *dpi, void *args, int x, int y, int width, int format, int colour); -void draw_string_left_underline(rct_drawpixelinfo *dpi, int format, void *args, int colour, int x, int y); +void gfx_draw_string_left(rct_drawpixelinfo *dpi, rct_string_id format, void *args, int colour, int x, int y); +void gfx_draw_string_left_clipped(rct_drawpixelinfo *dpi, rct_string_id format, void *args, int colour, int x, int y, int width); +int gfx_draw_string_left_wrapped(rct_drawpixelinfo *dpi, void *args, int x, int y, int width, rct_string_id format, int colour); +void draw_string_left_underline(rct_drawpixelinfo *dpi, rct_string_id format, void *args, int colour, int x, int y); void gfx_draw_string_left_centred(rct_drawpixelinfo *dpi, rct_string_id format, void *args, int colour, int x, int y); -void gfx_draw_string_centred(rct_drawpixelinfo *dpi, int format, int x, int y, int colour, void *args); -void gfx_draw_string_centred_clipped(rct_drawpixelinfo *dpi, int format, void *args, int colour, int x, int y, int width); -void draw_string_centred_underline(rct_drawpixelinfo *dpi, int format, void *args, int colour, int x, int y); -int gfx_draw_string_centred_wrapped(rct_drawpixelinfo *dpi, void *args, int x, int y, int width, int format, int colour); +void gfx_draw_string_centred(rct_drawpixelinfo *dpi, rct_string_id format, int x, int y, int colour, void *args); +void gfx_draw_string_centred_clipped(rct_drawpixelinfo *dpi, rct_string_id format, void *args, int colour, int x, int y, int width); +void draw_string_centred_underline(rct_drawpixelinfo *dpi, rct_string_id format, void *args, int colour, int x, int y); +int gfx_draw_string_centred_wrapped(rct_drawpixelinfo *dpi, void *args, int x, int y, int width, rct_string_id format, int colour); void draw_string_centred_raw(rct_drawpixelinfo *dpi, int x, int y, int numLines, char *text); -void gfx_draw_string_right(rct_drawpixelinfo *dpi, int format, void *args, int colour, int x, int y); -void draw_string_right_underline(rct_drawpixelinfo *dpi, int format, void *args, int colour, int x, int y); +void gfx_draw_string_right(rct_drawpixelinfo *dpi, rct_string_id format, void *args, int colour, int x, int y); +void draw_string_right_underline(rct_drawpixelinfo *dpi, rct_string_id format, void *args, int colour, int x, int y); int string_get_height_raw(char *buffer); void gfx_draw_string_centred_wrapped_partial(rct_drawpixelinfo *dpi, int x, int y, int width, int colour, rct_string_id format, void *args, int ticks); void gfx_draw_string_with_y_offsets(rct_drawpixelinfo *dpi, const utf8 *text, int colour, int x, int y, const sint8 *yOffsets, bool forceSpriteFont); diff --git a/src/drawing/string.c b/src/drawing/string.c index 9b12ece3ce..258a42ef87 100644 --- a/src/drawing/string.c +++ b/src/drawing/string.c @@ -243,7 +243,7 @@ int gfx_wrap_string(utf8 *text, int width, int *outNumLines, int *outFontHeight) * y (dx) * width (bp) */ -void gfx_draw_string_left_clipped(rct_drawpixelinfo* dpi, int format, void* args, int colour, int x, int y, int width) +void gfx_draw_string_left_clipped(rct_drawpixelinfo* dpi, rct_string_id format, void* args, int colour, int x, int y, int width) { char* buffer = RCT2_ADDRESS(RCT2_ADDRESS_COMMON_STRING_FORMAT_BUFFER, char); format_string(buffer, format, args); @@ -268,7 +268,7 @@ void gfx_draw_string_left_clipped(rct_drawpixelinfo* dpi, int format, void* args * y (dx) * width (bp) */ -void gfx_draw_string_centred_clipped(rct_drawpixelinfo *dpi, int format, void *args, int colour, int x, int y, int width) +void gfx_draw_string_centred_clipped(rct_drawpixelinfo *dpi, rct_string_id format, void *args, int colour, int x, int y, int width) { char* buffer = RCT2_ADDRESS(RCT2_ADDRESS_COMMON_STRING_FORMAT_BUFFER, char); format_string(buffer, format, args); @@ -297,7 +297,7 @@ void gfx_draw_string_centred_clipped(rct_drawpixelinfo *dpi, int format, void *a * x (cx) * y (dx) */ -void gfx_draw_string_right(rct_drawpixelinfo* dpi, int format, void* args, int colour, int x, int y) +void gfx_draw_string_right(rct_drawpixelinfo* dpi, rct_string_id format, void* args, int colour, int x, int y) { char* buffer = RCT2_ADDRESS(RCT2_ADDRESS_COMMON_STRING_FORMAT_BUFFER, char); format_string(buffer, format, args); @@ -320,7 +320,7 @@ void gfx_draw_string_right(rct_drawpixelinfo* dpi, int format, void* args, int c * colour (al) * args (esi) */ -void gfx_draw_string_centred(rct_drawpixelinfo *dpi, int format, int x, int y, int colour, void *args) +void gfx_draw_string_centred(rct_drawpixelinfo *dpi, rct_string_id format, int x, int y, int colour, void *args) { gfx_draw_string_centred_wrapped(dpi, args, x, y, INT32_MAX, format, colour); } @@ -336,7 +336,7 @@ void gfx_draw_string_centred(rct_drawpixelinfo *dpi, int format, int x, int y, i * colour (al) * format (ebx) */ -int gfx_draw_string_centred_wrapped(rct_drawpixelinfo *dpi, void *args, int x, int y, int width, int format, int colour) +int gfx_draw_string_centred_wrapped(rct_drawpixelinfo *dpi, void *args, int x, int y, int width, rct_string_id format, int colour) { int font_height, line_height, line_width, line_y, num_lines; char* buffer = RCT2_ADDRESS(0x009C383D, char); @@ -387,7 +387,7 @@ int gfx_draw_string_centred_wrapped(rct_drawpixelinfo *dpi, void *args, int x, i * format (bx) * colour (al) */ -int gfx_draw_string_left_wrapped(rct_drawpixelinfo *dpi, void *args, int x, int y, int width, int format, int colour) +int gfx_draw_string_left_wrapped(rct_drawpixelinfo *dpi, void *args, int x, int y, int width, rct_string_id format, int colour) { // font height might actually be something else int fontSpriteBase, lineHeight, lineY, numLines; @@ -423,7 +423,7 @@ int gfx_draw_string_left_wrapped(rct_drawpixelinfo *dpi, void *args, int x, int * x (cx) * y (dx) */ -void gfx_draw_string_left(rct_drawpixelinfo *dpi, int format, void *args, int colour, int x, int y) +void gfx_draw_string_left(rct_drawpixelinfo *dpi, rct_string_id format, void *args, int colour, int x, int y) { char* buffer = RCT2_ADDRESS(RCT2_ADDRESS_COMMON_STRING_FORMAT_BUFFER, char); format_string(buffer, format, args); @@ -450,7 +450,7 @@ void colour_char(uint8 colour, uint16* current_font_flags, uint8* palette_pointe int eax; - rct_g1_element g1_element = g1Elements[0x1332]; + rct_g1_element g1_element = g1Elements[SPR_TEXT_PALETTE]; eax = ((uint32*)g1_element.offset)[colour & 0xFF]; if (!(*current_font_flags & 2)) { @@ -498,7 +498,7 @@ void gfx_draw_string(rct_drawpixelinfo *dpi, char *buffer, int colour, int x, in ttf_draw_string(dpi, buffer, colour, x, y); } -void draw_string_left_underline(rct_drawpixelinfo *dpi, int format, void *args, int colour, int x, int y) +void draw_string_left_underline(rct_drawpixelinfo *dpi, rct_string_id format, void *args, int colour, int x, int y) { char buffer[128]; int width; @@ -512,7 +512,7 @@ void draw_string_left_underline(rct_drawpixelinfo *dpi, int format, void *args, gfx_fill_rect(dpi, x + 1, y + 12, x + width + 1, y + 12, text_palette[2]); } -void draw_string_right_underline(rct_drawpixelinfo *dpi, int format, void *args, int colour, int x, int y) +void draw_string_right_underline(rct_drawpixelinfo *dpi, rct_string_id format, void *args, int colour, int x, int y) { char buffer[128]; int width; @@ -527,7 +527,7 @@ void draw_string_right_underline(rct_drawpixelinfo *dpi, int format, void *args, gfx_fill_rect(dpi, x + 1, y + 12, x + width + 1, y + 12, text_palette[2]); } -void draw_string_centred_underline(rct_drawpixelinfo *dpi, int format, void *args, int colour, int x, int y) +void draw_string_centred_underline(rct_drawpixelinfo *dpi, rct_string_id format, void *args, int colour, int x, int y) { char buffer[128]; int width; diff --git a/src/editor.c b/src/editor.c index e1f6ad78cf..a63446e4e6 100644 --- a/src/editor.c +++ b/src/editor.c @@ -90,7 +90,7 @@ void editor_load() gfx_invalidate_screen(); gScreenAge = 0; - safe_strcpy(gScenarioName, language_get_string(2749), 64); + safe_strcpy(gScenarioName, language_get_string(STR_MY_NEW_SCENARIO), 64); } /** diff --git a/src/game.c b/src/game.c index 9cdff4b448..9be6914d22 100644 --- a/src/game.c +++ b/src/game.c @@ -85,7 +85,7 @@ int game_command_playerid = -1; rct_string_id gGameCommandErrorTitle; rct_string_id gGameCommandErrorText; uint8 gErrorType; -uint16 gErrorStringId; +rct_string_id gErrorStringId; int game_command_callback_get_index(GAME_COMMAND_CALLBACK_POINTER* callback) { @@ -457,7 +457,7 @@ int game_do_command_p(int command, int *eax, int *ebx, int *ecx, int *edx, int * } flags = *ebx; - gGameCommandErrorText = 0xFFFF; + gGameCommandErrorText = STR_NONE; if (gGameCommandNestLevel == 0) { gGameCommandIsNetworked = (flags & GAME_COMMAND_FLAG_NETWORKED) != 0; diff --git a/src/game.h b/src/game.h index 23ca1b3981..3e88027825 100644 --- a/src/game.h +++ b/src/game.h @@ -127,7 +127,7 @@ extern int game_command_playerid; extern rct_string_id gGameCommandErrorTitle; extern rct_string_id gGameCommandErrorText; extern uint8 gErrorType; -extern uint16 gErrorStringId; +extern rct_string_id gErrorStringId; extern GAME_COMMAND_POINTER* new_game_command_table[68]; diff --git a/src/input.c b/src/input.c index 66015f2d9c..a9c9df6451 100644 --- a/src/input.c +++ b/src/input.c @@ -1065,7 +1065,7 @@ void process_mouse_over(int x, int y) int ebx, esi, edi, ebp; cursorId = CURSOR_ARROW; - set_map_tooltip_format_arg(0, sint16, -1); + set_map_tooltip_format_arg(0, rct_string_id, STR_NONE); window = window_find_from_point(x, y); if (window != NULL) { @@ -1327,7 +1327,43 @@ void input_state_widget_pressed(int x, int y, int state, int widgetIndex, rct_wi if (gDropdownIsColour && gDropdownLastColourHover != dropdown_index) { gDropdownLastColourHover = dropdown_index; window_tooltip_close(); - window_tooltip_show(STR_COLOUR_NAMES_START + dropdown_index, x, y); + + static const rct_string_id colourTooltips[] = { + STR_COLOUR_BLACK_TIP, + STR_COLOUR_GREY_TIP, + STR_COLOUR_WHITE_TIP, + STR_COLOUR_DARK_PURPLE_TIP, + STR_COLOUR_LIGHT_PURPLE_TIP, + STR_COLOUR_BRIGHT_PURPLE_TIP, + STR_COLOUR_DARK_BLUE_TIP, + STR_COLOUR_LIGHT_BLUE_TIP, + STR_COLOUR_ICY_BLUE_TIP, + STR_COLOUR_TEAL_TIP, + STR_COLOUR_AQUAMARINE_TIP, + STR_COLOUR_SATURATED_GREEN_TIP, + STR_COLOUR_DARK_GREEN_TIP, + STR_COLOUR_MOSS_GREEN_TIP, + STR_COLOUR_BRIGHT_GREEN_TIP, + STR_COLOUR_OLIVE_GREEN_TIP, + STR_COLOUR_DARK_OLIVE_GREEN_TIP, + STR_COLOUR_BRIGHT_YELLOW_TIP, + STR_COLOUR_YELLOW_TIP, + STR_COLOUR_DARK_YELLOW_TIP, + STR_COLOUR_LIGHT_ORANGE_TIP, + STR_COLOUR_DARK_ORANGE_TIP, + STR_COLOUR_LIGHT_BROWN_TIP, + STR_COLOUR_SATURATED_BROWN_TIP, + STR_COLOUR_DARK_BROWN_TIP, + STR_COLOUR_SALMON_PINK_TIP, + STR_COLOUR_BORDEAUX_RED_TIP, + STR_COLOUR_SATURATED_RED_TIP, + STR_COLOUR_BRIGHT_RED_TIP, + STR_COLOUR_DARK_PINK_TIP, + STR_COLOUR_BRIGHT_PINK_TIP, + STR_COLOUR_LIGHT_PINK_TIP, + }; + + window_tooltip_show(colourTooltips[dropdown_index], x, y); } if (dropdown_index < 64 && gDropdownItemsDisabled & (1ULL << dropdown_index)) { diff --git a/src/interface/Theme.cpp b/src/interface/Theme.cpp index d26191fb0c..965061ba10 100644 --- a/src/interface/Theme.cpp +++ b/src/interface/Theme.cpp @@ -31,6 +31,7 @@ extern "C" #include "../core/Path.hpp" #include "../core/String.hpp" #include "../core/Util.hpp" +#include "../localisation/string_ids.h" struct WindowThemeDesc; @@ -115,63 +116,63 @@ struct WindowThemeDesc WindowThemeDesc WindowThemeDescriptors[] = { // WindowClass, WindowClassSZ WindowName NumColours, DefaultTheme - { THEME_WC(WC_TOP_TOOLBAR), 5245, COLOURS_4(COLOUR_LIGHT_BLUE, COLOUR_DARK_GREEN, COLOUR_DARK_BROWN, COLOUR_GREY ) }, - { THEME_WC(WC_BOTTOM_TOOLBAR), 5246, COLOURS_4(TRANSLUCENT(COLOUR_DARK_GREEN), TRANSLUCENT(COLOUR_DARK_GREEN), COLOUR_BLACK, COLOUR_BRIGHT_GREEN ) }, - { THEME_WC(WC_RIDE), 5203, COLOURS_3(COLOUR_GREY, COLOUR_BORDEAUX_RED, COLOUR_GREY ) }, - { THEME_WC(WC_RIDE_CONSTRUCTION), 5199, COLOURS_3(COLOUR_DARK_BROWN, COLOUR_DARK_BROWN, COLOUR_DARK_BROWN ) }, - { THEME_WC(WC_RIDE_LIST), 5204, COLOURS_3(COLOUR_GREY, COLOUR_BORDEAUX_RED, COLOUR_BORDEAUX_RED ) }, - { THEME_WC(WC_SAVE_PROMPT), 5223, COLOURS_1(TRANSLUCENT(COLOUR_BORDEAUX_RED) ) }, - { THEME_WC(WC_CONSTRUCT_RIDE), 5201, COLOURS_3(COLOUR_DARK_BROWN, COLOUR_BORDEAUX_RED, COLOUR_BORDEAUX_RED ) }, - { THEME_WC(WC_DEMOLISH_RIDE_PROMPT), 5224, COLOURS_1(TRANSLUCENT(COLOUR_BORDEAUX_RED) ) }, - { THEME_WC(WC_SCENERY), 5197, COLOURS_3(COLOUR_DARK_BROWN, COLOUR_DARK_GREEN, COLOUR_DARK_GREEN ) }, - { THEME_WC(WC_OPTIONS), 5219, COLOURS_3(COLOUR_LIGHT_BLUE, COLOUR_LIGHT_BLUE, COLOUR_LIGHT_BLUE ) }, - { THEME_WC(WC_FOOTPATH), 5198, COLOURS_3(COLOUR_DARK_BROWN, COLOUR_DARK_BROWN, COLOUR_DARK_BROWN ) }, - { THEME_WC(WC_LAND), 5193, COLOURS_3(COLOUR_DARK_BROWN, COLOUR_DARK_BROWN, COLOUR_DARK_BROWN ) }, - { THEME_WC(WC_WATER), 5194, COLOURS_3(COLOUR_DARK_BROWN, COLOUR_DARK_BROWN, COLOUR_DARK_BROWN ) }, - { THEME_WC(WC_PEEP), 5205, COLOURS_3(COLOUR_GREY, COLOUR_OLIVE_GREEN, COLOUR_OLIVE_GREEN ) }, - { THEME_WC(WC_GUEST_LIST), 5206, COLOURS_3(COLOUR_GREY, COLOUR_OLIVE_GREEN, COLOUR_OLIVE_GREEN ) }, - { THEME_WC(WC_STAFF_LIST), 5208, COLOURS_3(COLOUR_GREY, COLOUR_LIGHT_PURPLE, COLOUR_LIGHT_PURPLE ) }, - { THEME_WC(WC_FIRE_PROMPT), 5225, COLOURS_1(TRANSLUCENT(COLOUR_BORDEAUX_RED) ) }, - { THEME_WC(WC_PARK_INFORMATION), 5253, COLOURS_3(COLOUR_GREY, COLOUR_DARK_YELLOW, COLOUR_DARK_YELLOW ) }, - { THEME_WC(WC_FINANCES), 5187, COLOURS_3(COLOUR_GREY, COLOUR_DARK_YELLOW, COLOUR_DARK_YELLOW ) }, - { THEME_WC(WC_TITLE_MENU), 5249, COLOURS_3(TRANSLUCENT(COLOUR_DARK_GREEN), TRANSLUCENT(COLOUR_DARK_GREEN), TRANSLUCENT(COLOUR_DARK_GREEN) ) }, - { THEME_WC(WC_TITLE_EXIT), 5250, COLOURS_3(TRANSLUCENT(COLOUR_DARK_GREEN), TRANSLUCENT(COLOUR_DARK_GREEN), TRANSLUCENT(COLOUR_DARK_GREEN) ) }, - { THEME_WC(WC_RECENT_NEWS), 5192, COLOURS_3(COLOUR_GREY, COLOUR_GREY, COLOUR_BLACK ) }, - { THEME_WC(WC_SCENARIO_SELECT), 5252, COLOURS_3(COLOUR_GREY, COLOUR_BORDEAUX_RED, COLOUR_BORDEAUX_RED ) }, - { THEME_WC(WC_TRACK_DESIGN_LIST), 5202, COLOURS_3(COLOUR_BORDEAUX_RED, COLOUR_BORDEAUX_RED, COLOUR_BORDEAUX_RED ) }, - { THEME_WC(WC_TRACK_DESIGN_PLACE), 5200, COLOURS_3(COLOUR_DARK_BROWN, COLOUR_DARK_BROWN, COLOUR_DARK_BROWN ) }, - { THEME_WC(WC_NEW_CAMPAIGN), 5188, COLOURS_3(COLOUR_DARK_YELLOW, COLOUR_DARK_YELLOW, COLOUR_DARK_YELLOW ) }, - { THEME_WC(WC_KEYBOARD_SHORTCUT_LIST), 5220, COLOURS_3(COLOUR_LIGHT_BLUE, COLOUR_LIGHT_BLUE, COLOUR_LIGHT_BLUE ) }, - { THEME_WC(WC_CHANGE_KEYBOARD_SHORTCUT), 5221, COLOURS_3(COLOUR_LIGHT_BLUE, COLOUR_LIGHT_BLUE, COLOUR_LIGHT_BLUE ) }, - { THEME_WC(WC_MAP), 5190, COLOURS_2(COLOUR_DARK_GREEN, COLOUR_DARK_BROWN ) }, - { THEME_WC(WC_BANNER), 5209, COLOURS_3(COLOUR_DARK_BROWN, COLOUR_DARK_BROWN, COLOUR_DARK_BROWN ) }, - { THEME_WC(WC_EDITOR_OBJECT_SELECTION), 5210, COLOURS_3(COLOUR_LIGHT_PURPLE, COLOUR_GREY, COLOUR_GREY ) }, - { THEME_WC(WC_EDITOR_INVENTION_LIST), 5211, COLOURS_3(COLOUR_LIGHT_PURPLE, COLOUR_GREY, COLOUR_GREY ) }, - { THEME_WC(WC_EDITOR_SCENARIO_OPTIONS), 5212, COLOURS_3(COLOUR_LIGHT_PURPLE, COLOUR_GREY, COLOUR_GREY ) }, - { THEME_WC(WC_EDTIOR_OBJECTIVE_OPTIONS), 5213, COLOURS_3(COLOUR_LIGHT_PURPLE, COLOUR_GREY, COLOUR_GREY ) }, - { THEME_WC(WC_MANAGE_TRACK_DESIGN), 5215, COLOURS_3(COLOUR_GREY, COLOUR_GREY, COLOUR_GREY ) }, - { THEME_WC(WC_TRACK_DELETE_PROMPT), 5226, COLOURS_3(COLOUR_BORDEAUX_RED, COLOUR_BORDEAUX_RED, COLOUR_BORDEAUX_RED ) }, - { THEME_WC(WC_INSTALL_TRACK), 5216, COLOURS_3(COLOUR_BORDEAUX_RED, COLOUR_BORDEAUX_RED, COLOUR_BORDEAUX_RED ) }, - { THEME_WC(WC_CLEAR_SCENERY), 5195, COLOURS_3(COLOUR_DARK_BROWN, COLOUR_DARK_BROWN, COLOUR_DARK_BROWN ) }, - { THEME_WC(WC_CHEATS), 5217, COLOURS_3(COLOUR_GREY, COLOUR_DARK_YELLOW, COLOUR_DARK_YELLOW ) }, - { THEME_WC(WC_RESEARCH), 5189, COLOURS_3(COLOUR_GREY, COLOUR_DARK_YELLOW, COLOUR_DARK_YELLOW ) }, - { THEME_WC(WC_VIEWPORT), 5191, COLOURS_3(COLOUR_DARK_BROWN, COLOUR_DARK_BROWN, COLOUR_DARK_BROWN ) }, - { THEME_WC(WC_MAPGEN), 5214, COLOURS_3(COLOUR_DARK_GREEN, COLOUR_DARK_BROWN, COLOUR_DARK_BROWN ) }, - { THEME_WC(WC_LOADSAVE), 5222, COLOURS_3(COLOUR_LIGHT_BLUE, COLOUR_LIGHT_BLUE, COLOUR_LIGHT_BLUE ) }, - { THEME_WC(WC_LOADSAVE_OVERWRITE_PROMPT), 5227, COLOURS_1(TRANSLUCENT(COLOUR_BORDEAUX_RED) ) }, - { THEME_WC(WC_TITLE_OPTIONS), 5251, COLOURS_3(TRANSLUCENT(COLOUR_DARK_GREEN), TRANSLUCENT(COLOUR_DARK_GREEN), TRANSLUCENT(COLOUR_DARK_GREEN) ) }, - { THEME_WC(WC_LAND_RIGHTS), 5196, COLOURS_3(COLOUR_DARK_YELLOW, COLOUR_DARK_YELLOW, COLOUR_DARK_YELLOW ) }, - { THEME_WC(WC_THEMES), 5218, COLOURS_3(COLOUR_GREY, COLOUR_DARK_GREEN, COLOUR_DARK_GREEN ) }, - { THEME_WC(WC_STAFF), 5207, COLOURS_3(COLOUR_GREY, COLOUR_LIGHT_PURPLE, COLOUR_LIGHT_PURPLE ) }, - { THEME_WC(WC_EDITOR_TRACK_BOTTOM_TOOLBAR), 5247, COLOURS_3(TRANSLUCENT(COLOUR_LIGHT_BLUE), TRANSLUCENT(COLOUR_LIGHT_BLUE), TRANSLUCENT(COLOUR_LIGHT_BLUE) ) }, - { THEME_WC(WC_EDITOR_SCENARIO_BOTTOM_TOOLBAR), 5248, COLOURS_3(TRANSLUCENT(COLOUR_LIGHT_BROWN), TRANSLUCENT(COLOUR_LIGHT_BROWN), TRANSLUCENT(COLOUR_MOSS_GREEN) ) }, - { THEME_WC(WC_TITLE_EDITOR), 5433, COLOURS_3(COLOUR_GREY, COLOUR_OLIVE_GREEN, COLOUR_OLIVE_GREEN ) }, - { THEME_WC(WC_TILE_INSPECTOR), 5314, COLOURS_2(COLOUR_LIGHT_BLUE, COLOUR_LIGHT_BLUE ) }, - { THEME_WC(WC_CHANGELOG), 5344, COLOURS_2(COLOUR_LIGHT_BLUE, COLOUR_LIGHT_BLUE ) }, - { THEME_WC(WC_MULTIPLAYER), 5502, COLOURS_3(COLOUR_LIGHT_BLUE, COLOUR_LIGHT_BLUE, COLOUR_LIGHT_BLUE ) }, - { THEME_WC(WC_PLAYER), 5736, COLOURS_3(COLOUR_LIGHT_BLUE, COLOUR_LIGHT_BLUE, COLOUR_LIGHT_BLUE ) }, - { THEME_WC(WC_NETWORK_STATUS), 5735, COLOURS_1(COLOUR_LIGHT_BLUE ) }, - { THEME_WC(WC_SERVER_LIST), 5498, COLOURS_2(COLOUR_LIGHT_BLUE, COLOUR_LIGHT_BLUE ) }, + { THEME_WC(WC_TOP_TOOLBAR), STR_THEMES_WINDOW_TOP_TOOLBAR, COLOURS_4(COLOUR_LIGHT_BLUE, COLOUR_DARK_GREEN, COLOUR_DARK_BROWN, COLOUR_GREY ) }, + { THEME_WC(WC_BOTTOM_TOOLBAR), STR_THEMES_WINDOW_BOTTOM_TOOLBAR, COLOURS_4(TRANSLUCENT(COLOUR_DARK_GREEN), TRANSLUCENT(COLOUR_DARK_GREEN), COLOUR_BLACK, COLOUR_BRIGHT_GREEN ) }, + { THEME_WC(WC_RIDE), STR_THEMES_WINDOW_RIDE, COLOURS_3(COLOUR_GREY, COLOUR_BORDEAUX_RED, COLOUR_GREY ) }, + { THEME_WC(WC_RIDE_CONSTRUCTION), STR_THEMES_WINDOW_RIDE_CONSTRUCTION, COLOURS_3(COLOUR_DARK_BROWN, COLOUR_DARK_BROWN, COLOUR_DARK_BROWN ) }, + { THEME_WC(WC_RIDE_LIST), STR_THEMES_WINDOW_RIDE_LIST, COLOURS_3(COLOUR_GREY, COLOUR_BORDEAUX_RED, COLOUR_BORDEAUX_RED ) }, + { THEME_WC(WC_SAVE_PROMPT), STR_THEMES_WINDOW_SAVE_PROMPT, COLOURS_1(TRANSLUCENT(COLOUR_BORDEAUX_RED) ) }, + { THEME_WC(WC_CONSTRUCT_RIDE), STR_THEMES_WINDOW_CONSTRUCT_RIDE, COLOURS_3(COLOUR_DARK_BROWN, COLOUR_BORDEAUX_RED, COLOUR_BORDEAUX_RED ) }, + { THEME_WC(WC_DEMOLISH_RIDE_PROMPT), STR_THEMES_WINDOW_DEMOLISH_RIDE_PROMPT, COLOURS_1(TRANSLUCENT(COLOUR_BORDEAUX_RED) ) }, + { THEME_WC(WC_SCENERY), STR_THEMES_WINDOW_SCENERY, COLOURS_3(COLOUR_DARK_BROWN, COLOUR_DARK_GREEN, COLOUR_DARK_GREEN ) }, + { THEME_WC(WC_OPTIONS), STR_THEMES_WINDOW_OPTIONS, COLOURS_3(COLOUR_LIGHT_BLUE, COLOUR_LIGHT_BLUE, COLOUR_LIGHT_BLUE ) }, + { THEME_WC(WC_FOOTPATH), STR_THEMES_WINDOW_FOOTPATH, COLOURS_3(COLOUR_DARK_BROWN, COLOUR_DARK_BROWN, COLOUR_DARK_BROWN ) }, + { THEME_WC(WC_LAND), STR_THEMES_WINDOW_LAND, COLOURS_3(COLOUR_DARK_BROWN, COLOUR_DARK_BROWN, COLOUR_DARK_BROWN ) }, + { THEME_WC(WC_WATER), STR_THEMES_WINDOW_WATER, COLOURS_3(COLOUR_DARK_BROWN, COLOUR_DARK_BROWN, COLOUR_DARK_BROWN ) }, + { THEME_WC(WC_PEEP), STR_THEMES_WINDOW_PEEP, COLOURS_3(COLOUR_GREY, COLOUR_OLIVE_GREEN, COLOUR_OLIVE_GREEN ) }, + { THEME_WC(WC_GUEST_LIST), STR_THEMES_WINDOW_GUEST_LIST, COLOURS_3(COLOUR_GREY, COLOUR_OLIVE_GREEN, COLOUR_OLIVE_GREEN ) }, + { THEME_WC(WC_STAFF_LIST), STR_THEMES_WINDOW_STAFF_LIST, COLOURS_3(COLOUR_GREY, COLOUR_LIGHT_PURPLE, COLOUR_LIGHT_PURPLE ) }, + { THEME_WC(WC_FIRE_PROMPT), STR_THEMES_WINDOW_FIRE_PROMPT, COLOURS_1(TRANSLUCENT(COLOUR_BORDEAUX_RED) ) }, + { THEME_WC(WC_PARK_INFORMATION), STR_THEMES_WINDOW_PARK_INFORMATION, COLOURS_3(COLOUR_GREY, COLOUR_DARK_YELLOW, COLOUR_DARK_YELLOW ) }, + { THEME_WC(WC_FINANCES), STR_THEMES_WINDOW_FINANCES, COLOURS_3(COLOUR_GREY, COLOUR_DARK_YELLOW, COLOUR_DARK_YELLOW ) }, + { THEME_WC(WC_TITLE_MENU), STR_THEMES_WINDOW_TITLE_MENU_BUTTONS, COLOURS_3(TRANSLUCENT(COLOUR_DARK_GREEN), TRANSLUCENT(COLOUR_DARK_GREEN), TRANSLUCENT(COLOUR_DARK_GREEN) ) }, + { THEME_WC(WC_TITLE_EXIT), STR_THEMES_WINDOW_TITLE_MENU_EXIT, COLOURS_3(TRANSLUCENT(COLOUR_DARK_GREEN), TRANSLUCENT(COLOUR_DARK_GREEN), TRANSLUCENT(COLOUR_DARK_GREEN) ) }, + { THEME_WC(WC_RECENT_NEWS), STR_THEMES_WINDOW_RECENT_NEWS, COLOURS_3(COLOUR_GREY, COLOUR_GREY, COLOUR_BLACK ) }, + { THEME_WC(WC_SCENARIO_SELECT), STR_THEMES_WINDOW_TITLE_MENU_SCENARIO_SELECTION, COLOURS_3(COLOUR_GREY, COLOUR_BORDEAUX_RED, COLOUR_BORDEAUX_RED ) }, + { THEME_WC(WC_TRACK_DESIGN_LIST), STR_THEMES_WINDOW_TRACK_DESIGN_LIST, COLOURS_3(COLOUR_BORDEAUX_RED, COLOUR_BORDEAUX_RED, COLOUR_BORDEAUX_RED ) }, + { THEME_WC(WC_TRACK_DESIGN_PLACE), STR_THEMES_WINDOW_TRACK_DESIGN_PLACE, COLOURS_3(COLOUR_DARK_BROWN, COLOUR_DARK_BROWN, COLOUR_DARK_BROWN ) }, + { THEME_WC(WC_NEW_CAMPAIGN), STR_THEMES_WINDOW_NEW_CAMPAIGN, COLOURS_3(COLOUR_DARK_YELLOW, COLOUR_DARK_YELLOW, COLOUR_DARK_YELLOW ) }, + { THEME_WC(WC_KEYBOARD_SHORTCUT_LIST), STR_THEMES_WINDOW_KEYBOARD_SHORTCUT_LIST, COLOURS_3(COLOUR_LIGHT_BLUE, COLOUR_LIGHT_BLUE, COLOUR_LIGHT_BLUE ) }, + { THEME_WC(WC_CHANGE_KEYBOARD_SHORTCUT), STR_THEMES_WINDOW_CHANGE_KEYBOARD_SHORTCUT, COLOURS_3(COLOUR_LIGHT_BLUE, COLOUR_LIGHT_BLUE, COLOUR_LIGHT_BLUE ) }, + { THEME_WC(WC_MAP), STR_THEMES_WINDOW_MAP, COLOURS_2(COLOUR_DARK_GREEN, COLOUR_DARK_BROWN ) }, + { THEME_WC(WC_BANNER), STR_THEMES_WINDOW_BANNER, COLOURS_3(COLOUR_DARK_BROWN, COLOUR_DARK_BROWN, COLOUR_DARK_BROWN ) }, + { THEME_WC(WC_EDITOR_OBJECT_SELECTION), STR_THEMES_WINDOW_EDITOR_OBJECT_SELECTION, COLOURS_3(COLOUR_LIGHT_PURPLE, COLOUR_GREY, COLOUR_GREY ) }, + { THEME_WC(WC_EDITOR_INVENTION_LIST), STR_THEMES_WINDOW_EDITOR_INVENTION_LIST, COLOURS_3(COLOUR_LIGHT_PURPLE, COLOUR_GREY, COLOUR_GREY ) }, + { THEME_WC(WC_EDITOR_SCENARIO_OPTIONS), STR_THEMES_WINDOW_EDITOR_SCENARIO_OPTIONS, COLOURS_3(COLOUR_LIGHT_PURPLE, COLOUR_GREY, COLOUR_GREY ) }, + { THEME_WC(WC_EDTIOR_OBJECTIVE_OPTIONS), STR_THEMES_WINDOW_EDTIOR_OBJECTIVE_OPTIONS, COLOURS_3(COLOUR_LIGHT_PURPLE, COLOUR_GREY, COLOUR_GREY ) }, + { THEME_WC(WC_MANAGE_TRACK_DESIGN), STR_THEMES_WINDOW_MANAGE_TRACK_DESIGN, COLOURS_3(COLOUR_GREY, COLOUR_GREY, COLOUR_GREY ) }, + { THEME_WC(WC_TRACK_DELETE_PROMPT), STR_THEMES_WINDOW_TRACK_DELETE_PROMPT, COLOURS_3(COLOUR_BORDEAUX_RED, COLOUR_BORDEAUX_RED, COLOUR_BORDEAUX_RED ) }, + { THEME_WC(WC_INSTALL_TRACK), STR_THEMES_WINDOW_INSTALL_TRACK, COLOURS_3(COLOUR_BORDEAUX_RED, COLOUR_BORDEAUX_RED, COLOUR_BORDEAUX_RED ) }, + { THEME_WC(WC_CLEAR_SCENERY), STR_THEMES_WINDOW_CLEAR_SCENERY, COLOURS_3(COLOUR_DARK_BROWN, COLOUR_DARK_BROWN, COLOUR_DARK_BROWN ) }, + { THEME_WC(WC_CHEATS), STR_CHEAT_TITLE, COLOURS_3(COLOUR_GREY, COLOUR_DARK_YELLOW, COLOUR_DARK_YELLOW ) }, + { THEME_WC(WC_RESEARCH), STR_THEMES_WINDOW_RESEARCH, COLOURS_3(COLOUR_GREY, COLOUR_DARK_YELLOW, COLOUR_DARK_YELLOW ) }, + { THEME_WC(WC_VIEWPORT), STR_THEMES_WINDOW_VIEWPORT, COLOURS_3(COLOUR_DARK_BROWN, COLOUR_DARK_BROWN, COLOUR_DARK_BROWN ) }, + { THEME_WC(WC_MAPGEN), STR_THEMES_WINDOW_MAPGEN, COLOURS_3(COLOUR_DARK_GREEN, COLOUR_DARK_BROWN, COLOUR_DARK_BROWN ) }, + { THEME_WC(WC_LOADSAVE), STR_THEMES_WINDOW_LOADSAVE, COLOURS_3(COLOUR_LIGHT_BLUE, COLOUR_LIGHT_BLUE, COLOUR_LIGHT_BLUE ) }, + { THEME_WC(WC_LOADSAVE_OVERWRITE_PROMPT), STR_THEMES_WINDOW_LOADSAVE_OVERWRITE_PROMPT, COLOURS_1(TRANSLUCENT(COLOUR_BORDEAUX_RED) ) }, + { THEME_WC(WC_TITLE_OPTIONS), STR_THEMES_WINDOW_TITLE_MENU_OPTIONS, COLOURS_3(TRANSLUCENT(COLOUR_DARK_GREEN), TRANSLUCENT(COLOUR_DARK_GREEN), TRANSLUCENT(COLOUR_DARK_GREEN) ) }, + { THEME_WC(WC_LAND_RIGHTS), STR_THEMES_WINDOW_LAND_RIGHTS, COLOURS_3(COLOUR_DARK_YELLOW, COLOUR_DARK_YELLOW, COLOUR_DARK_YELLOW ) }, + { THEME_WC(WC_THEMES), STR_THEMES_WINDOW_THEMES, COLOURS_3(COLOUR_GREY, COLOUR_DARK_GREEN, COLOUR_DARK_GREEN ) }, + { THEME_WC(WC_STAFF), STR_THEMES_WINDOW_STAFF, COLOURS_3(COLOUR_GREY, COLOUR_LIGHT_PURPLE, COLOUR_LIGHT_PURPLE ) }, + { THEME_WC(WC_EDITOR_TRACK_BOTTOM_TOOLBAR), STR_THEMES_WINDOW_BOTTOM_TOOLBAR_TRACK_EDITOR, COLOURS_3(TRANSLUCENT(COLOUR_LIGHT_BLUE), TRANSLUCENT(COLOUR_LIGHT_BLUE), TRANSLUCENT(COLOUR_LIGHT_BLUE) ) }, + { THEME_WC(WC_EDITOR_SCENARIO_BOTTOM_TOOLBAR), STR_THEMES_WINDOW_BOTTOM_TOOLBAR_SCENARIO_EDITOR, COLOURS_3(TRANSLUCENT(COLOUR_LIGHT_BROWN), TRANSLUCENT(COLOUR_LIGHT_BROWN), TRANSLUCENT(COLOUR_MOSS_GREEN) ) }, + { THEME_WC(WC_TITLE_EDITOR), STR_TITLE_EDITOR_TITLE, COLOURS_3(COLOUR_GREY, COLOUR_OLIVE_GREEN, COLOUR_OLIVE_GREEN ) }, + { THEME_WC(WC_TILE_INSPECTOR), STR_TILE_INSPECTOR_TITLE, COLOURS_2(COLOUR_LIGHT_BLUE, COLOUR_LIGHT_BLUE ) }, + { THEME_WC(WC_CHANGELOG), STR_CHANGELOG_TITLE, COLOURS_2(COLOUR_LIGHT_BLUE, COLOUR_LIGHT_BLUE ) }, + { THEME_WC(WC_MULTIPLAYER), STR_MULTIPLAYER, COLOURS_3(COLOUR_LIGHT_BLUE, COLOUR_LIGHT_BLUE, COLOUR_LIGHT_BLUE ) }, + { THEME_WC(WC_PLAYER), STR_THEMES_WINDOW_PLAYER, COLOURS_3(COLOUR_LIGHT_BLUE, COLOUR_LIGHT_BLUE, COLOUR_LIGHT_BLUE ) }, + { THEME_WC(WC_NETWORK_STATUS), STR_THEMES_WINDOW_NETWORK_STATUS, COLOURS_1(COLOUR_LIGHT_BLUE ) }, + { THEME_WC(WC_SERVER_LIST), STR_SERVER_LIST, COLOURS_2(COLOUR_LIGHT_BLUE, COLOUR_LIGHT_BLUE ) }, }; #pragma endregion diff --git a/src/interface/graph.c b/src/interface/graph.c index e3c49bfe5d..3adc0bc1fd 100644 --- a/src/interface/graph.c +++ b/src/interface/graph.c @@ -31,8 +31,8 @@ static void graph_draw_months_uint8(rct_drawpixelinfo *dpi, uint8 *history, int for (i = count - 1; i >= 0; i--) { if (history[i] != 0 && history[i] != 255 && yearOver32 % 4 == 0) { // Draw month text - set_format_arg(0, uint32, ((yearOver32 / 4) + 8) % 8 + STR_MONTH_SHORT_MAR); - gfx_draw_string_centred(dpi, 2222, x, y - 10, 0, gCommonFormatArgs); + set_format_arg(0, uint32, DateGameMonthNames[((yearOver32 / 4) + 8) % 8]); + gfx_draw_string_centred(dpi, STR_GRAPH_LABEL, x, y - 10, 0, gCommonFormatArgs); // Draw month mark gfx_fill_rect(dpi, x, y, x, y + 3, 10); @@ -107,8 +107,8 @@ static void graph_draw_months_money32(rct_drawpixelinfo *dpi, money32 *history, for (i = count - 1; i >= 0; i--) { if (history[i] != 0x80000000 && yearOver32 % 4 == 0) { // Draw month text - sint32 monthFormat = ((yearOver32 / 4) + 8) % 8 + STR_MONTH_SHORT_MAR; - gfx_draw_string_centred(dpi, 2222, x, y - 10, 0, &monthFormat); + sint32 monthFormat = DateGameMonthNames[((yearOver32 / 4) + 8) % 8]; + gfx_draw_string_centred(dpi, STR_GRAPH_LABEL, x, y - 10, 0, &monthFormat); // Draw month mark gfx_fill_rect(dpi, x, y, x, y + 3, 10); diff --git a/src/interface/keyboard_shortcut.c b/src/interface/keyboard_shortcut.c index 2336258c47..7cd2e7b0af 100644 --- a/src/interface/keyboard_shortcut.c +++ b/src/interface/keyboard_shortcut.c @@ -218,7 +218,7 @@ static void shortcut_rotate_construction_object() w = window_find_by_class(WC_RIDE_CONSTRUCTION); if (w != NULL && !widget_is_disabled(w, 32) && w->widgets[32].type != WWT_EMPTY) { // Check if building a maze... - if (w->widgets[32].tooltip != 1761) { + if (w->widgets[32].tooltip != STR_RIDE_CONSTRUCTION_BUILD_MAZE_IN_THIS_DIRECTION_TIP) { window_event_mouse_up_call(w, 32); return; } diff --git a/src/interface/screenshot.c b/src/interface/screenshot.c index 5cd984aae0..e0f9ccc85b 100644 --- a/src/interface/screenshot.c +++ b/src/interface/screenshot.c @@ -49,7 +49,7 @@ void screenshot_check() // TODO use a more obvious sound like a camera shutter audio_play_sound(SOUND_CLICK_1, 0, gScreenWidth / 2); } else { - window_error_open(STR_SCREENSHOT_FAILED, -1); + window_error_open(STR_SCREENSHOT_FAILED, STR_NONE); } RCT2_GLOBAL(0x009A8C29, uint8) &= ~1; @@ -221,8 +221,8 @@ void screenshot_giant() // Show user that screenshot saved successfully rct_string_id stringId = STR_PLACEHOLDER; strcpy((char*)language_get_string(stringId), path_get_filename(path)); - set_format_arg(0, uint16, stringId); - window_error_open(STR_SCREENSHOT_SAVED_AS, -1); + set_format_arg(0, rct_string_id, stringId); + window_error_open(STR_SCREENSHOT_SAVED_AS, STR_NONE); } int cmdline_for_screenshot(const char **argv, int argc) diff --git a/src/interface/viewport_interaction.c b/src/interface/viewport_interaction.c index 50fce75000..6e8cd22b3e 100644 --- a/src/interface/viewport_interaction.c +++ b/src/interface/viewport_interaction.c @@ -82,7 +82,7 @@ int viewport_interaction_get_item_left(int x, int y, viewport_interaction_info * ride_set_map_tooltip(mapElement); break; case VIEWPORT_INTERACTION_ITEM_PARK: - set_map_tooltip_format_arg(0, uint16, gParkName); + set_map_tooltip_format_arg(0, rct_string_id, gParkName); set_map_tooltip_format_arg(2, uint32, gParkNameArgs); break; default: @@ -193,8 +193,8 @@ int viewport_interaction_get_item_right(int x, int y, viewport_interaction_info mapElement += 6; ride = get_ride(mapElement->type); if (ride->status == RIDE_STATUS_CLOSED) { - set_map_tooltip_format_arg(0, uint16, 1163); - set_map_tooltip_format_arg(2, uint16, ride->name); + set_map_tooltip_format_arg(0, rct_string_id, STR_MAP_TOOLTIP_STRINGID_CLICK_TO_MODIFY); + set_map_tooltip_format_arg(2, rct_string_id, ride->name); set_map_tooltip_format_arg(4, uint32, ride->name_arguments); } return info->type; @@ -209,45 +209,45 @@ int viewport_interaction_get_item_right(int x, int y, viewport_interaction_info if (ride->status != RIDE_STATUS_CLOSED) return info->type; - set_map_tooltip_format_arg(0, uint16, 1163); + set_map_tooltip_format_arg(0, rct_string_id, STR_MAP_TOOLTIP_STRINGID_CLICK_TO_MODIFY); if (map_element_get_type(mapElement) == MAP_ELEMENT_TYPE_ENTRANCE) { rct_string_id stringId; if (mapElement->properties.track.type == ENTRANCE_TYPE_RIDE_ENTRANCE) { if (ride->num_stations > 1) { - stringId = 1336; + stringId = STR_RIDE_STATION_X_ENTRANCE; } else { - stringId = 1335; + stringId = STR_RIDE_ENTRANCE; } } else { if (ride->num_stations > 1) { - stringId = 1338; + stringId = STR_RIDE_STATION_X_EXIT; } else { - stringId = 1337; + stringId = STR_RIDE_EXIT; } } - set_map_tooltip_format_arg(2, uint16, stringId); + set_map_tooltip_format_arg(2, rct_string_id, stringId); } else if (track_element_is_station(mapElement)) { rct_string_id stringId; if (ride->num_stations > 1) { - stringId = 1334; + stringId = STR_RIDE_STATION_X; } else { - stringId = 1333; + stringId = STR_RIDE_STATION; } - set_map_tooltip_format_arg(2, uint16, stringId); + set_map_tooltip_format_arg(2, rct_string_id, stringId); } else { if (!gCheatsSandboxMode && !map_is_location_owned(info->x, info->y, mapElement->base_height << 4)) { return info->type = VIEWPORT_INTERACTION_ITEM_NONE; } - set_map_tooltip_format_arg(2, uint16, ride->name); + set_map_tooltip_format_arg(2, rct_string_id, ride->name); set_map_tooltip_format_arg(4, uint32, ride->name_arguments); return info->type; } - set_map_tooltip_format_arg(4, uint16, ride->name); + set_map_tooltip_format_arg(4, rct_string_id, ride->name); set_map_tooltip_format_arg(6, uint32, ride->name_arguments); - set_map_tooltip_format_arg(10, uint16, RideNameConvention[ride->type].station_name + 2); + set_map_tooltip_format_arg(10, rct_string_id, RideComponentNames[RideNameConvention[ride->type].station].capitalised); stationIndex = map_get_station(mapElement); for (i = stationIndex; i >= 0; i--) @@ -260,8 +260,8 @@ int viewport_interaction_get_item_right(int x, int y, viewport_interaction_info case VIEWPORT_INTERACTION_ITEM_WALL: sceneryEntry = get_wall_entry(mapElement->properties.scenery.type); if (sceneryEntry->wall.var_0D != 255) { - set_map_tooltip_format_arg(0, uint16, 1163); - set_map_tooltip_format_arg(2, uint16, sceneryEntry->name); + set_map_tooltip_format_arg(0, rct_string_id, STR_MAP_TOOLTIP_STRINGID_CLICK_TO_MODIFY); + set_map_tooltip_format_arg(2, rct_string_id, sceneryEntry->name); return info->type; } break; @@ -269,8 +269,8 @@ int viewport_interaction_get_item_right(int x, int y, viewport_interaction_info case VIEWPORT_INTERACTION_ITEM_LARGE_SCENERY: sceneryEntry = get_large_scenery_entry(mapElement->properties.scenerymultiple.type & 0x3FF); if (sceneryEntry->large_scenery.var_11 != 255) { - set_map_tooltip_format_arg(0, uint16, 1163); - set_map_tooltip_format_arg(2, uint16, sceneryEntry->name); + set_map_tooltip_format_arg(0, rct_string_id, STR_MAP_TOOLTIP_STRINGID_CLICK_TO_MODIFY); + set_map_tooltip_format_arg(2, rct_string_id, sceneryEntry->name); return info->type; } break; @@ -279,8 +279,8 @@ int viewport_interaction_get_item_right(int x, int y, viewport_interaction_info banner = &gBanners[mapElement->properties.banner.index]; sceneryEntry = get_banner_entry(banner->type); - set_map_tooltip_format_arg(0, uint16, 1163); - set_map_tooltip_format_arg(2, uint16, sceneryEntry->name); + set_map_tooltip_format_arg(0, rct_string_id, STR_MAP_TOOLTIP_STRINGID_CLICK_TO_MODIFY); + set_map_tooltip_format_arg(2, rct_string_id, sceneryEntry->name); return info->type; } @@ -293,25 +293,25 @@ int viewport_interaction_get_item_right(int x, int y, viewport_interaction_info switch (info->type) { case VIEWPORT_INTERACTION_ITEM_SCENERY: sceneryEntry = get_small_scenery_entry(mapElement->properties.scenery.type); - set_map_tooltip_format_arg(0, uint16, 1164); - set_map_tooltip_format_arg(2, uint16, sceneryEntry->name); + set_map_tooltip_format_arg(0, rct_string_id, STR_MAP_TOOLTIP_STRINGID_CLICK_TO_REMOVE); + set_map_tooltip_format_arg(2, rct_string_id, sceneryEntry->name); return info->type; case VIEWPORT_INTERACTION_ITEM_FOOTPATH: - set_map_tooltip_format_arg(0, uint16, 1164); - set_map_tooltip_format_arg(2, uint16, 1425); + set_map_tooltip_format_arg(0, rct_string_id, STR_MAP_TOOLTIP_STRINGID_CLICK_TO_REMOVE); + set_map_tooltip_format_arg(2, rct_string_id, STR_FOOTPATH_MAP_TIP); if (mapElement->type & 1) - set_map_tooltip_format_arg(2, uint16, 1426); + set_map_tooltip_format_arg(2, rct_string_id, STR_QUEUE_LINE_MAP_TIP); return info->type; case VIEWPORT_INTERACTION_ITEM_FOOTPATH_ITEM: sceneryEntry = get_footpath_item_entry(footpath_element_get_path_scenery_index(mapElement)); - set_map_tooltip_format_arg(0, uint16, 1164); + set_map_tooltip_format_arg(0, rct_string_id, STR_MAP_TOOLTIP_STRINGID_CLICK_TO_REMOVE); if (mapElement->flags & 0x20) { - set_map_tooltip_format_arg(2, uint16, STR_BROKEN); - set_map_tooltip_format_arg(4, uint16, sceneryEntry->name); + set_map_tooltip_format_arg(2, rct_string_id, STR_BROKEN); + set_map_tooltip_format_arg(4, rct_string_id, sceneryEntry->name); } else { - set_map_tooltip_format_arg(2, uint16, sceneryEntry->name); + set_map_tooltip_format_arg(2, rct_string_id, sceneryEntry->name); } return info->type; @@ -322,20 +322,20 @@ int viewport_interaction_get_item_right(int x, int y, viewport_interaction_info if (map_element_get_type(mapElement) != MAP_ELEMENT_TYPE_ENTRANCE) break; - set_map_tooltip_format_arg(0, uint16, 1164); - set_map_tooltip_format_arg(2, uint16, STR_OBJECT_SELECTION_PARK_ENTRANCE); + set_map_tooltip_format_arg(0, rct_string_id, STR_MAP_TOOLTIP_STRINGID_CLICK_TO_REMOVE); + set_map_tooltip_format_arg(2, rct_string_id, STR_OBJECT_SELECTION_PARK_ENTRANCE); return info->type; case VIEWPORT_INTERACTION_ITEM_WALL: sceneryEntry = get_wall_entry(mapElement->properties.scenery.type); - set_map_tooltip_format_arg(0, uint16, 1164); - set_map_tooltip_format_arg(2, uint16, sceneryEntry->name); + set_map_tooltip_format_arg(0, rct_string_id, STR_MAP_TOOLTIP_STRINGID_CLICK_TO_REMOVE); + set_map_tooltip_format_arg(2, rct_string_id, sceneryEntry->name); return info->type; case VIEWPORT_INTERACTION_ITEM_LARGE_SCENERY: sceneryEntry = get_large_scenery_entry(mapElement->properties.scenery.type & 0x3FF); - set_map_tooltip_format_arg(0, uint16, 1164); - set_map_tooltip_format_arg(2, uint16, sceneryEntry->name); + set_map_tooltip_format_arg(0, rct_string_id, STR_MAP_TOOLTIP_STRINGID_CLICK_TO_REMOVE); + set_map_tooltip_format_arg(2, rct_string_id, sceneryEntry->name); return info->type; } diff --git a/src/interface/widget.c b/src/interface/widget.c index f3f12afbfe..7fcadc999d 100644 --- a/src/interface/widget.c +++ b/src/interface/widget.c @@ -295,11 +295,11 @@ static void widget_tab_draw(rct_drawpixelinfo *dpi, rct_window *w, int widgetInd int l = w->x + widget->left; int t = w->y + widget->top; - // Get the colour and image + // Get the colour and disabled image uint8 colour = w->colours[widget->colour] & 0x7F; uint32 image = widget->image + 2; - // Draw coloured image + // Draw disabled image gfx_draw_sprite(dpi, image | (colour << 19), l, t, 0); } @@ -386,11 +386,12 @@ static void widget_text_unknown(rct_drawpixelinfo *dpi, rct_window *w, int widge int l = w->x + widget->left; int t = w->y + widget->top; - int stringId = widget->image; - if (stringId == -1) + rct_string_id stringId = widget->text; + if (stringId == STR_NONE) return; if (widget->type == WWT_11 && (widget_is_pressed(w, widgetIndex) || widget_is_active_tool(w, widgetIndex))) + // TODO: remove string addition stringId++; if (widget->type == WWT_13) { @@ -438,12 +439,13 @@ static void widget_text(rct_drawpixelinfo *dpi, rct_window *w, int widgetIndex) int t = w->y + widget->top; int r = w->x + widget->right; - if (widget->image == (uint32)-2 || widget->image == (uint32)-1) + // TODO: -2 seems odd + if (widget->text == (rct_string_id)0xFFFFFFFE || widget->text == STR_NONE) return; if (widget_is_disabled(w, widgetIndex)) colour |= 0x40; - gfx_draw_string_left_clipped(dpi, widget->image, gCommonFormatArgs, colour, l + 1, t, r - l); + gfx_draw_string_left_clipped(dpi, widget->text, gCommonFormatArgs, colour, l + 1, t, r - l); } /** @@ -514,11 +516,11 @@ static void widget_groupbox_draw(rct_drawpixelinfo *dpi, rct_window *w, int widg int textRight = l; // Text - if (widget->image != (uint32)-1) { + if (widget->text != STR_NONE) { uint8 colour = w->colours[widget->colour] & 0x7F; if (widget_is_disabled(w, widgetIndex)) colour |= 0x40; - gfx_draw_string_left(dpi, widget->image, gCommonFormatArgs, colour, l, t); + gfx_draw_string_left(dpi, widget->text, gCommonFormatArgs, colour, l, t); textRight = l + gfx_get_string_width((char*)RCT2_ADDRESS_COMMON_STRING_FORMAT_BUFFER) + 1; } @@ -605,7 +607,7 @@ static void widget_caption_draw(rct_drawpixelinfo *dpi, rct_window *w, int widge } // Draw text - if (widget->image == (uint32)-1) + if (widget->text == STR_NONE) return; l = widget->left + w->x + 2; @@ -617,7 +619,7 @@ static void widget_caption_draw(rct_drawpixelinfo *dpi, rct_window *w, int widge width -= 10; } l += width / 2; - gfx_draw_string_centred_clipped(dpi, widget->image, gCommonFormatArgs, 34, l, t, width); + gfx_draw_string_centred_clipped(dpi, widget->text, gCommonFormatArgs, 34, l, t, width); } /** @@ -648,7 +650,7 @@ static void widget_closebox_draw(rct_drawpixelinfo *dpi, rct_window *w, int widg // Draw the button gfx_fill_rect_inset(dpi, l, t, r, b, colour, press); - if (widget->image == -1) + if (widget->text == STR_NONE) return; l = w->x + (widget->left + widget->right) / 2 - 1; @@ -657,7 +659,7 @@ static void widget_closebox_draw(rct_drawpixelinfo *dpi, rct_window *w, int widg if (widget_is_disabled(w, widgetIndex)) colour |= 0x40; - gfx_draw_string_centred_clipped(dpi, widget->image, gCommonFormatArgs, colour, l, t, widget->right - widget->left - 2); + gfx_draw_string_centred_clipped(dpi, widget->text, gCommonFormatArgs, colour, l, t, widget->right - widget->left - 2); } /** @@ -690,14 +692,14 @@ static void widget_checkbox_draw(rct_drawpixelinfo *dpi, rct_window *w, int widg } // draw the text - if (widget->image == -1) + if (widget->text == STR_NONE) return; if (widget_is_disabled(w, widgetIndex)) { colour |= 0x40; } - gfx_draw_string_left_centred(dpi, (rct_string_id)widget->image, gCommonFormatArgs, colour, l + 14, yMid); + gfx_draw_string_left_centred(dpi, widget->text, gCommonFormatArgs, colour, l + 14, yMid); } /** @@ -834,7 +836,7 @@ static void widget_draw_image(rct_drawpixelinfo *dpi, rct_window *w, int widgetI // Get the image int image = widget->image; - if (image == -1) + if (image == SPR_NONE) return; // Resolve the absolute ltrb @@ -1070,8 +1072,8 @@ static void widget_text_box_draw(rct_drawpixelinfo *dpi, rct_window *w, int widg if (!active) { - if (w->widgets[widgetIndex].image != 0) { - safe_strcpy(wrapped_string, (char*)w->widgets[widgetIndex].image, 512); + if (w->widgets[widgetIndex].text != 0) { + safe_strcpy(wrapped_string, w->widgets[widgetIndex].string, 512); gfx_wrap_string(wrapped_string, r - l - 5, &no_lines, &font_height); gfx_draw_string(dpi, wrapped_string, w->colours[1], l + 2, t); } diff --git a/src/interface/widget.h b/src/interface/widget.h index a20b6b918c..31131b1370 100644 --- a/src/interface/widget.h +++ b/src/interface/widget.h @@ -24,14 +24,14 @@ typedef enum { WWT_FRAME = 1, WWT_RESIZE = 2, WWT_IMGBTN = 3, - WWT_4 = 4, + WWT_4 = 4, // Same as IMGBTN but uses .image + 1 while pressed/active WWT_5 = 5, WWT_COLOURBTN = 6, WWT_TRNBTN = 7, WWT_TAB = 8, WWT_FLATBTN = 9, WWT_DROPDOWN_BUTTON = 10, - WWT_11, + WWT_11, // Same as dropdown button but uses .text + 1 while pressed/active WWT_12, // looks like a normal label to me WWT_13, WWT_14, @@ -51,6 +51,12 @@ typedef enum { } WINDOW_WIDGET_TYPES; #define WIDGETS_END WWT_LAST, 0, 0, 0, 0, 0, 0, 0 +enum { + SCROLL_HORIZONTAL = (1 << 0), + SCROLL_VERTICAL = (1 << 1), + SCROLL_BOTH = SCROLL_HORIZONTAL | SCROLL_VERTICAL +}; + void widget_scroll_update_thumbs(rct_window *w, int widget_index); void widget_draw(rct_drawpixelinfo *dpi, rct_window *w, int widgetIndex); diff --git a/src/interface/window.c b/src/interface/window.c index 0afb1723ed..a6186f3c64 100644 --- a/src/interface/window.c +++ b/src/interface/window.c @@ -1002,9 +1002,9 @@ void window_init_scroll_widgets(rct_window *w) scroll->v_top = 0; scroll->v_bottom = height + 1; - if (widget->image & 0x01) + if (widget->content & SCROLL_HORIZONTAL) scroll->flags |= HSCROLLBAR_VISIBLE; - if (widget->image & 0x02) + if (widget->content & SCROLL_VERTICAL) scroll->flags |= VSCROLLBAR_VISIBLE; widget_scroll_update_thumbs(w, widget_index); @@ -1047,12 +1047,12 @@ void window_update_scroll_widgets(rct_window *w) height++; scrollPositionChanged = 0; - if ((widget->image & 1) && width != scroll->h_right) { + if ((widget->content & SCROLL_HORIZONTAL) && width != scroll->h_right) { scrollPositionChanged = 1; scroll->h_right = width; } - if ((widget->image & 2) && height != scroll->v_bottom) { + if ((widget->content & SCROLL_VERTICAL) && height != scroll->v_bottom) { scrollPositionChanged = 1; scroll->v_bottom = height; } diff --git a/src/interface/window.h b/src/interface/window.h index 2110d18dff..0eb41e32f3 100644 --- a/src/interface/window.h +++ b/src/interface/window.h @@ -65,8 +65,13 @@ typedef struct rct_widget { sint16 right; // 0x04 sint16 top; // 0x06 sint16 bottom; // 0x08 - uint32 image; // 0x0A - uint16 tooltip; // 0x0E + union { // 0x0A + uint32 image; + rct_string_id text; + uint32 content; + utf8 * string; + }; + rct_string_id tooltip; // 0x0E } rct_widget; /** diff --git a/src/localisation/localisation.c b/src/localisation/localisation.c index 0a18840a93..cc49071eb7 100644 --- a/src/localisation/localisation.c +++ b/src/localisation/localisation.c @@ -29,10 +29,283 @@ #include "../util/util.h" #include "date.h" #include "localisation.h" +#include "../management/marketing.h" uint8 gCommonFormatArgs[80]; uint8 gMapTooltipFormatArgs[40]; +const rct_string_id SpeedNames[] = { + STR_SPEED_NORMAL, + STR_SPEED_QUICK, + STR_SPEED_FAST, + STR_SPEED_TURBO, + STR_SPEED_HYPER, +}; + +const rct_string_id ObjectiveNames[] = { + STR_OBJECTIVE_NONE, + STR_OBJECTIVE_GUESTS_BY, + STR_OBJECTIVE_PARK_VALUE_BY, + STR_OBJECTIVE_HAVE_FUN, + STR_OBJECTIVE_BUILD_THE_BEST, + STR_OBJECTIVE_10_ROLLERCOASTERS, + STR_OBJECTIVE_GUESTS_AND_RATING, + STR_OBJECTIVE_MONTHLY_RIDE_INCOME, + STR_OBJECTIVE_10_ROLLERCOASTERS_LENGTH, + STR_OBJECTIVE_FINISH_5_ROLLERCOASTERS, + STR_OBJECTIVE_REPLAY_LOAN_AND_PARK_VALUE, + STR_OBJECTIVE_MONTHLY_FOOD_INCOME, +}; + +const rct_string_id ResearchFundingLevelNames[] = { + STR_RESEARCH_FUNDING_NONE, + STR_RESEARCH_FUNDING_MINIMUM, + STR_RESEARCH_FUNDING_NORMAL, + STR_RESEARCH_FUNDING_MAXIMUM, +}; + +const rct_string_id MarketingCampaignNames[ADVERTISING_CAMPAIGN_COUNT][3] = { + { STR_MARKETING_VOUCHERS_FOR_FREE_ENTRY_TO_THE_PARK, STR_VOUCHERS_FOR_FREE_ENTRY_TO, STR_MARKETING_FINISHED_FREE_ENTRY }, // ADVERTISING_CAMPAIGN_PARK_ENTRY_FREE, + { STR_MARKETING_VOUCHERS_FOR_FREE_RIDES_ON_A_PARTICULAR_RIDE, STR_VOUCHERS_FOR_FREE_RIDE_ON, STR_MARKETING_FINISHED_FREE_RIDES }, // ADVERTISING_CAMPAIGN_RIDE_FREE, + { STR_MARKETING_VOUCHERS_FOR_HALF_PRICE_ENTRY_TO_THE_PARK, STR_VOUCHERS_FOR_HALF_PRICE_ENTRY_TO, STR_MARKETING_FINISHED_HALF_PRICE_ENTRY }, // ADVERTISING_CAMPAIGN_PARK_ENTRY_HALF_PRICE, + { STR_MARKETING_VOUCHERS_FOR_FREE_FOOD_OR_DRINK, STR_VOUCHERS_FOR_FREE, STR_MARKETING_FINISHED_FREE_RIDE }, // ADVERTISING_CAMPAIGN_FOOD_OR_DRINK_FREE, + { STR_MARKETING_ADVERTISING_CAMPAIGN_FOR_THE_PARK, STR_ADVERTISING_CAMPAIGN_FOR_1, STR_MARKETING_FINISHED_PARK_ADS }, // ADVERTISING_CAMPAIGN_PARK, + { STR_MARKETING_ADVERTISING_CAMPAIGN_FOR_A_PARTICULAR_RIDE, STR_ADVERTISING_CAMPAIGN_FOR_2, STR_MARKETING_FINISHED_RIDE_ADS }, // ADVERTISING_CAMPAIGN_RIDE, +}; + +const rct_string_id RideInspectionIntervalNames[] = { + STR_EVERY_10_MINUTES, + STR_EVERY_20_MINUTES, + STR_EVERY_30_MINUTES, + STR_EVERY_45_MINUTES, + STR_EVERY_HOUR, + STR_EVERY_2_HOURS, + STR_NEVER, + RIDE_SETTING_INSPECTION_INTERVAL +}; + +const rct_string_id PeepThoughts[] = { + STR_PEEP_THOUGHT_TYPE_CANT_AFFORD_0, + STR_PEEP_THOUGHT_TYPE_SPENT_MONEY, + STR_PEEP_THOUGHT_TYPE_SICK, + STR_PEEP_THOUGHT_TYPE_VERY_SICK, + STR_PEEP_THOUGHT_TYPE_MORE_THRILLING, + STR_PEEP_THOUGHT_TYPE_INTENSE, + STR_PEEP_THOUGHT_TYPE_HAVENT_FINISHED, + STR_PEEP_THOUGHT_TYPE_SICKENING, + STR_PEEP_THOUGHT_TYPE_BAD_VALUE, + STR_PEEP_THOUGHT_TYPE_GO_HOME, + STR_PEEP_THOUGHT_TYPE_GOOD_VALUE, + STR_PEEP_THOUGHT_TYPE_ALREADY_GOT, + STR_PEEP_THOUGHT_TYPE_CANT_AFFORD, + STR_PEEP_THOUGHT_TYPE_NOT_HUNGRY, + STR_PEEP_THOUGHT_TYPE_NOT_THIRSTY, + STR_PEEP_THOUGHT_TYPE_DROWNING, + STR_PEEP_THOUGHT_TYPE_LOST, + STR_PEEP_THOUGHT_TYPE_WAS_GREAT, + STR_PEEP_THOUGHT_TYPE_QUEUING_AGES, + STR_PEEP_THOUGHT_TYPE_TIRED, + STR_PEEP_THOUGHT_TYPE_HUNGRY, + STR_PEEP_THOUGHT_TYPE_THIRSTY, + STR_PEEP_THOUGHT_TYPE_BATHROOM, + STR_PEEP_THOUGHT_TYPE_CANT_FIND, + STR_PEEP_THOUGHT_TYPE_NOT_PAYING, + STR_PEEP_THOUGHT_TYPE_NOT_WHILE_RAINING, + STR_PEEP_THOUGHT_TYPE_BAD_LITTER, + STR_PEEP_THOUGHT_TYPE_CANT_FIND_EXIT, + STR_PEEP_THOUGHT_TYPE_GET_OFF, + STR_PEEP_THOUGHT_TYPE_GET_OUT, + STR_PEEP_THOUGHT_TYPE_NOT_SAFE, + STR_PEEP_THOUGHT_TYPE_PATH_DISGUSTING, + STR_PEEP_THOUGHT_TYPE_CROWDED, + STR_PEEP_THOUGHT_TYPE_VANDALISM, + STR_PEEP_THOUGHT_TYPE_SCENERY, + STR_PEEP_THOUGHT_TYPE_VERY_CLEAN, + STR_PEEP_THOUGHT_TYPE_FOUNTAINS, + STR_PEEP_THOUGHT_TYPE_MUSIC, + STR_PEEP_THOUGHT_TYPE_BALLOON, + STR_PEEP_THOUGHT_TYPE_TOY, + STR_PEEP_THOUGHT_TYPE_MAP, + STR_PEEP_THOUGHT_TYPE_PHOTO, + STR_PEEP_THOUGHT_TYPE_UMBRELLA, + STR_PEEP_THOUGHT_TYPE_DRINK, + STR_PEEP_THOUGHT_TYPE_BURGER, + STR_PEEP_THOUGHT_TYPE_FRIES, + STR_PEEP_THOUGHT_TYPE_ICE_CREAM, + STR_PEEP_THOUGHT_TYPE_COTTON_CANDY, + 0, + 0, + 0, + STR_PEEP_THOUGHT_TYPE_PIZZA, + 0, + STR_PEEP_THOUGHT_TYPE_POPCORN, + STR_PEEP_THOUGHT_TYPE_HOT_DOG, + STR_PEEP_THOUGHT_TYPE_TENTACLE, + STR_PEEP_THOUGHT_TYPE_HAT, + STR_PEEP_THOUGHT_TYPE_CANDY_APPLE, + STR_PEEP_THOUGHT_TYPE_TSHIRT, + STR_PEEP_THOUGHT_TYPE_DONUT, + STR_PEEP_THOUGHT_TYPE_COFFEE, + 0, + STR_PEEP_THOUGHT_TYPE_CHICKEN, + STR_PEEP_THOUGHT_TYPE_LEMONADE, + 0, + 0, + 0, + STR_PEEP_THOUGHT_TYPE_WOW, + 0, + 0, + STR_PEEP_THOUGHT_TYPE_WOW2, + STR_PEEP_THOUGHT_TYPE_WATCHED, + STR_PEEP_THOUGHT_TYPE_BALLOON_MUCH, + STR_PEEP_THOUGHT_TYPE_TOY_MUCH, + STR_PEEP_THOUGHT_TYPE_MAP_MUCH, + STR_PEEP_THOUGHT_TYPE_PHOTO_MUCH, + STR_PEEP_THOUGHT_TYPE_UMBRELLA_MUCH, + STR_PEEP_THOUGHT_TYPE_DRINK_MUCH, + STR_PEEP_THOUGHT_TYPE_BURGER_MUCH, + STR_PEEP_THOUGHT_TYPE_FRIES_MUCH, + STR_PEEP_THOUGHT_TYPE_ICE_CREAM_MUCH, + STR_PEEP_THOUGHT_TYPE_COTTON_CANDY_MUCH, + 0, + 0, + 0, + STR_PEEP_THOUGHT_TYPE_PIZZA_MUCH, + 0, + STR_PEEP_THOUGHT_TYPE_POPCORN_MUCH, + STR_PEEP_THOUGHT_TYPE_HOT_DOG_MUCH, + STR_PEEP_THOUGHT_TYPE_TENTACLE_MUCH, + STR_PEEP_THOUGHT_TYPE_HAT_MUCH, + STR_PEEP_THOUGHT_TYPE_CANDY_APPLE_MUCH, + STR_PEEP_THOUGHT_TYPE_TSHIRT_MUCH, + STR_PEEP_THOUGHT_TYPE_DONUT_MUCH, + STR_PEEP_THOUGHT_TYPE_COFFEE_MUCH, + 0, + STR_PEEP_THOUGHT_TYPE_CHICKEN_MUCH, + STR_PEEP_THOUGHT_TYPE_LEMONADE_MUCH, + 0, + 0, + 0, + 0, + 0, + 0, + STR_PEEP_THOUGHT_TYPE_PHOTO2, + STR_PEEP_THOUGHT_TYPE_PHOTO3, + STR_PEEP_THOUGHT_TYPE_PHOTO4, + STR_PEEP_THOUGHT_TYPE_PRETZEL, + STR_PEEP_THOUGHT_TYPE_HOT_CHOCOLATE, + STR_PEEP_THOUGHT_TYPE_ICED_TEA, + STR_PEEP_THOUGHT_TYPE_FUNNEL_CAKE, + STR_PEEP_THOUGHT_TYPE_SUNGLASSES, + STR_PEEP_THOUGHT_TYPE_BEEF_NOODLES, + STR_PEEP_THOUGHT_TYPE_FRIED_RICE_NOODLES, + STR_PEEP_THOUGHT_TYPE_WONTON_SOUP, + STR_PEEP_THOUGHT_TYPE_MEATBALL_SOUP, + STR_PEEP_THOUGHT_TYPE_FRUIT_JUICE, + STR_PEEP_THOUGHT_TYPE_SOYBEAN_MILK, + STR_PEEP_THOUGHT_TYPE_SU_JONGKWA, + STR_PEEP_THOUGHT_TYPE_SUB_SANDWICH, + STR_PEEP_THOUGHT_TYPE_COOKIE, + 0, + 0, + 0, + STR_PEEP_THOUGHT_TYPE_ROAST_SAUSAGE, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + STR_PEEP_THOUGHT_TYPE_PHOTO2_MUCH, + STR_PEEP_THOUGHT_TYPE_PHOTO3_MUCH, + STR_PEEP_THOUGHT_TYPE_PHOTO4_MUCH, + STR_PEEP_THOUGHT_TYPE_PRETZEL_MUCH, + STR_PEEP_THOUGHT_TYPE_HOT_CHOCOLATE_MUCH, + STR_PEEP_THOUGHT_TYPE_ICED_TEA_MUCH, + STR_PEEP_THOUGHT_TYPE_FUNNEL_CAKE_MUCH, + STR_PEEP_THOUGHT_TYPE_SUNGLASSES_MUCH, + STR_PEEP_THOUGHT_TYPE_BEEF_NOODLES_MUCH, + STR_PEEP_THOUGHT_TYPE_FRIED_RICE_NOODLES_MUCH, + STR_PEEP_THOUGHT_TYPE_WONTON_SOUP_MUCH, + STR_PEEP_THOUGHT_TYPE_MEATBALL_SOUP_MUCH, + STR_PEEP_THOUGHT_TYPE_FRUIT_JUICE_MUCH, + STR_PEEP_THOUGHT_TYPE_SOYBEAN_MILK_MUCH, + STR_PEEP_THOUGHT_TYPE_SU_JONGKWA_MUCH, + STR_PEEP_THOUGHT_TYPE_SUB_SANDWICH_MUCH, + STR_PEEP_THOUGHT_TYPE_COOKIE_MUCH, + 0, + 0, + 0, + STR_PEEP_THOUGHT_TYPE_ROAST_SAUSAGE_MUCH, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + STR_PEEP_THOUGHT_TYPE_HELP, + STR_PEEP_THOUGHT_TYPE_RUNNING_OUT, + STR_PEEP_THOUGHT_TYPE_NEW_RIDE, + STR_PEEP_THOUGHT_TYPE_NICE_RIDE_DEPRECATED, + STR_PEEP_THOUGHT_TYPE_EXCITED_DEPRECATED, + STR_PEEP_THOUGHT_TYPE_HERE_WE_ARE, +}; + +const rct_string_id DateDayNames[] = { + STR_DATE_DAY_1, + STR_DATE_DAY_2, + STR_DATE_DAY_3, + STR_DATE_DAY_4, + STR_DATE_DAY_5, + STR_DATE_DAY_6, + STR_DATE_DAY_7, + STR_DATE_DAY_8, + STR_DATE_DAY_9, + STR_DATE_DAY_10, + STR_DATE_DAY_11, + STR_DATE_DAY_12, + STR_DATE_DAY_13, + STR_DATE_DAY_14, + STR_DATE_DAY_15, + STR_DATE_DAY_16, + STR_DATE_DAY_17, + STR_DATE_DAY_18, + STR_DATE_DAY_19, + STR_DATE_DAY_20, + STR_DATE_DAY_21, + STR_DATE_DAY_22, + STR_DATE_DAY_23, + STR_DATE_DAY_24, + STR_DATE_DAY_25, + STR_DATE_DAY_26, + STR_DATE_DAY_27, + STR_DATE_DAY_28, + STR_DATE_DAY_29, + STR_DATE_DAY_30, + STR_DATE_DAY_31, +}; + +const rct_string_id DateGameMonthNames[MONTH_COUNT] = { + STR_MONTH_MARCH, + STR_MONTH_APRIL, + STR_MONTH_MAY, + STR_MONTH_JUNE, + STR_MONTH_JULY, + STR_MONTH_AUGUST, + STR_MONTH_SEPTEMBER, + STR_MONTH_OCTOBER, +}; + #pragma region Format codes typedef struct format_code_token { @@ -253,7 +526,7 @@ void format_comma_separated_integer(char **dest, long long value) char *dst = *dest; char *finish; char tmp; - const char *commaMark = language_get_string(5151); + const char *commaMark = language_get_string(STR_LOCALE_THOUSANDS_SEPARATOR); const char *ch; // Negative sign @@ -307,8 +580,8 @@ void format_comma_separated_fixed_1dp(char **dest, long long value) char *dst = *dest; char *finish; char tmp; - const char *commaMark = language_get_string(5151); - const char *decimalMark = language_get_string(5152); + const char *commaMark = language_get_string(STR_LOCALE_THOUSANDS_SEPARATOR); + const char *decimalMark = language_get_string(STR_LOCALE_DECIMAL_POINT); const char *ch; // Negative sign @@ -372,8 +645,8 @@ void format_comma_separated_fixed_2dp(char **dest, long long value) char *dst = *dest; char *finish; char tmp; - const char *commaMark = language_get_string(5151); - const char *decimalMark = language_get_string(5152); + const char *commaMark = language_get_string(STR_LOCALE_THOUSANDS_SEPARATOR); + const char *decimalMark = language_get_string(STR_LOCALE_DECIMAL_POINT); const char *ch; // Negative sign @@ -521,17 +794,17 @@ void format_date(char **dest, uint16 value) { uint16 args[] = { date_get_month(value), date_get_year(value) + 1 }; uint16 *argsRef = args; - format_string_part(dest, 2736, (char**)&argsRef); + format_string_part(dest, STR_DATE_FORMAT_MY, (char**)&argsRef); (*dest)--; } void format_length(char **dest, sint16 value) { - rct_string_id stringId = 2733; + rct_string_id stringId = STR_UNIT_SUFFIX_METRES; if (gConfigGeneral.measurement_format == MEASUREMENT_FORMAT_IMPERIAL) { value = metres_to_feet(value); - stringId--; + stringId = STR_UNIT_SUFFIX_FEET; } sint16 *argRef = &value; @@ -562,47 +835,69 @@ void format_velocity(char **dest, uint16 value) (*dest)--; } +static const rct_string_id DurationFormats[][2] = { + {STR_DURATION_SEC, STR_DURATION_SECS}, + {STR_DURATION_MIN_SEC, STR_DURATION_MIN_SECS}, + {STR_DURATION_MINS_SEC, STR_DURATION_MINS_SECS}, +}; + void format_duration(char **dest, uint16 value) { uint16 minutes = value / 60; uint16 seconds = value % 60; uint16 args[] = { minutes, seconds }; uint16 *argsRef = &args[1]; - rct_string_id stringId = 2720; + int minuteIndex = 0; if (minutes > 0) { - stringId += 2; - if (minutes != 1) - stringId += 2; - + minuteIndex = 1; + if (minutes != 1) { + minuteIndex = 2; + } + argsRef--; } - if (seconds != 1) - stringId++; + int secondsIndex = 0; + if (seconds != 1) { + secondsIndex = 1; + } + rct_string_id stringId = DurationFormats[minuteIndex][secondsIndex]; + format_string_part(dest, stringId, (char**)&argsRef); (*dest)--; } -void format_realtime(char **dest, uint16 value) +static const rct_string_id RealtimeFormats[][2] = { + {STR_REALTIME_MIN, STR_REALTIME_MINS}, + {STR_REALTIME_HOUR_MIN, STR_REALTIME_HOUR_MINS}, + {STR_REALTIME_HOURS_MIN, STR_REALTIME_HOURS_MINS}, +}; + +void format_realtime(char ** dest, uint16 value) { uint16 hours = value / 60; uint16 minutes = value % 60; uint16 args[] = { hours, minutes }; uint16 *argsRef = &args[1]; - rct_string_id stringId = 2726; + int hourIndex = 0; if (hours > 0) { - stringId += 2; - if (hours != 1) - stringId += 2; + hourIndex = 1; + if (hours != 1) { + hourIndex = 2; + } argsRef--; } - if (minutes != 1) - stringId++; + int minuteIndex = 0; + if (minutes != 1) { + minuteIndex = 1; + } + + rct_string_id stringId = RealtimeFormats[hourIndex][minuteIndex]; format_string_part(dest, stringId, (char**)&argsRef); (*dest)--; @@ -700,7 +995,7 @@ void format_string_code(unsigned int format_code, char **dest, char **args) value = *((uint16*)*args); *args += 2; - strcpy(*dest, language_get_string(STR_MONTH_MARCH + date_get_month(value))); + strcpy(*dest, language_get_string(DateGameMonthNames[date_get_month(value)])); *dest += strlen(*dest); break; case FORMAT_VELOCITY: diff --git a/src/localisation/localisation.h b/src/localisation/localisation.h index fbf1eaf53b..3748dc31a5 100644 --- a/src/localisation/localisation.h +++ b/src/localisation/localisation.h @@ -18,9 +18,11 @@ #define LOCALISATION_H #include "currency.h" +#include "date.h" #include "format_codes.h" #include "language.h" #include "string_ids.h" +#include "../management/marketing.h" bool utf8_is_format_code(int codepoint); bool utf8_is_colour_code(int codepoint); @@ -64,6 +66,15 @@ extern utf8 *gUserStrings; extern uint8 gCommonFormatArgs[80]; extern uint8 gMapTooltipFormatArgs[40]; +extern const rct_string_id SpeedNames[5]; +extern const rct_string_id ObjectiveNames[12]; +extern const rct_string_id ResearchFundingLevelNames[4]; +extern const rct_string_id MarketingCampaignNames[ADVERTISING_CAMPAIGN_COUNT][3]; +extern const rct_string_id RideInspectionIntervalNames[]; +extern const rct_string_id PeepThoughts[174]; +extern const rct_string_id DateDayNames[31]; +extern const rct_string_id DateGameMonthNames[MONTH_COUNT]; + static inline void set_format_arg_body(uint8 *args, size_t offset, uintptr_t value, size_t size) { memcpy(args + offset, &value, size); diff --git a/src/localisation/string_ids.h b/src/localisation/string_ids.h index 7cd33fd92e..df872b8c01 100644 --- a/src/localisation/string_ids.h +++ b/src/localisation/string_ids.h @@ -22,8 +22,19 @@ #define STR_NONE ((rct_string_id)-1) enum { - STR_GUEST = 767, + // STR_0001 :{STRINGID} {COMMA16} + STR_RIDE_NAME_SPIRAL_ROLLER_COASTER = 2, + STR_RIDE_DESCRIPTION_SPIRAL_ROLLER_COASTER = 512, + + STR_GUEST_X = 767, + STR_HANDYMAN_X = 768, + STR_MECHANIC_X = 769, + STR_SECURITY_GUARD_X = 770, + STR_ENTERTAINER_X = 771, + + STR_UNNAMED_PARK = 777, + STR_DEFAULT_SIGN = 778, STR_DATE_DAY_1 = 779, STR_DATE_DAY_2 = STR_DATE_DAY_1 + 1, STR_DATE_DAY_3 = STR_DATE_DAY_1 + 2, @@ -55,34 +66,44 @@ enum { STR_DATE_DAY_29 = STR_DATE_DAY_1 + 28, STR_DATE_DAY_30 = STR_DATE_DAY_1 + 29, STR_DATE_DAY_31 = STR_DATE_DAY_1 + 30, - STR_MONTH_SHORT_JAN = 810, - STR_MONTH_SHORT_FEB = STR_MONTH_SHORT_JAN + 1, - STR_MONTH_SHORT_MAR = STR_MONTH_SHORT_JAN + 2, - STR_MONTH_SHORT_APR = STR_MONTH_SHORT_JAN + 3, - STR_MONTH_SHORT_MAY = STR_MONTH_SHORT_JAN + 4, - STR_MONTH_SHORT_JUN = STR_MONTH_SHORT_JAN + 5, - STR_MONTH_SHORT_JUL = STR_MONTH_SHORT_JAN + 6, - STR_MONTH_SHORT_AUG = STR_MONTH_SHORT_JAN + 7, - STR_MONTH_SHORT_SEP = STR_MONTH_SHORT_JAN + 8, - STR_MONTH_SHORT_OCT = STR_MONTH_SHORT_JAN + 9, - STR_MONTH_SHORT_NOV = STR_MONTH_SHORT_JAN + 10, - STR_MONTH_SHORT_DEC = STR_MONTH_SHORT_JAN + 11, - + STR_MONTH_SHORT_JAN = 810, // unused + STR_MONTH_SHORT_FEB = STR_MONTH_SHORT_JAN + 1, // unused + STR_MONTH_SHORT_MAR = STR_MONTH_SHORT_JAN + 2, // unused + STR_MONTH_SHORT_APR = STR_MONTH_SHORT_JAN + 3, // unused + STR_MONTH_SHORT_MAY = STR_MONTH_SHORT_JAN + 4, // unused + STR_MONTH_SHORT_JUN = STR_MONTH_SHORT_JAN + 5, // unused + STR_MONTH_SHORT_JUL = STR_MONTH_SHORT_JAN + 6, // unused + STR_MONTH_SHORT_AUG = STR_MONTH_SHORT_JAN + 7, // unused + STR_MONTH_SHORT_SEP = STR_MONTH_SHORT_JAN + 8, // unused + STR_MONTH_SHORT_OCT = STR_MONTH_SHORT_JAN + 9, // unused + STR_MONTH_SHORT_NOV = STR_MONTH_SHORT_JAN + 10, // unused + STR_MONTH_SHORT_DEC = STR_MONTH_SHORT_JAN + 11, // unused +// STR_0822 :Unable to access graphic data file +// STR_0823 :Missing or inaccessible data file STR_CLOSE_X = 824, STR_CHOSEN_NAME_IN_USE_ALREADY = 825, STR_TOO_MANY_NAMES_DEFINED = 826, STR_NOT_ENOUGH_CASH_REQUIRES = 827, STR_CLOSE_WINDOW_TIP = 828, STR_WINDOW_TITLE_TIP = 829, - STR_ZOOM_IN_TIP = 830, STR_ZOOM_OUT_TIP = 831, STR_ROTATE_TIP = 832, STR_PAUSE_GAME_TIP = 833, STR_DISC_AND_GAME_OPTIONS_TIP = 834, - - STR_RESOLUTION_X_BY_Y = 840, - + STR_ERR_GAME_INITIALISATION_FAILED = 835, +// STR_0835 :Game initialisation failed +// STR_0836 :Unable to start game in a minimised state +// STR_0837 :Unable to initialise graphics system +// STR_0838 : + STR_RESOLUTION_X_BY_Y = 839, + STR_ARG_16_RESOLUTION_X_BY_Y = 840, +// STR_0841 : +// STR_0842 : +// STR_0843 : +// STR_0844 : +// STR_0845 : +// STR_0846 : STR_ABOUT = 847, STR_ROLLERCOASTER_TYCOON_2 = 848, STR_VERSION_X = 849, @@ -102,29 +123,37 @@ enum { STR_CREDIT_SPARE_6 = 863, STR_CREDIT_SPARE_7 = 864, STR_STRINGID = 865, - + STR_ARG_2_STRINGID = 866, // Unused + STR_ARG_4_STRINGID = 867, // Unused + STR_ARG_6_STRINGID = 868, + STR_ARG_8_STRINGID = 869, // Unused + STR_ARG_10_STRINGID = 870, + STR_ARG_12_STRINGID = 871, + STR_ARG_14_STRINGID = 872, + STR_ARG_16_STRINGID = 873, // Unused + STR_ARG_18_STRINGID = 874, + STR_ARG_20_STRINGID = 875, STR_DROPDOWN_GLYPH = 876, STR_TOO_LOW = 877, STR_TOO_HIGH = 878, STR_CANT_LOWER_LAND_HERE = 879, STR_CANT_RAISE_LAND_HERE = 880, STR_OBJECT_IN_THE_WAY = 881, - STR_LOAD_GAME = 882, STR_SAVE_GAME = 883, STR_LOAD_LANDSCAPE = 884, STR_SAVE_LANDSCAPE = 885, - STR_QUIT_GAME = 886, - STR_QUIT_TO_MENU = 5158, - STR_EXIT_OPENRCT2 = 5159, + STR_QUIT_GAME = 886, // Unused STR_QUIT_SCENARIO_EDITOR = 887, STR_QUIT_ROLLERCOASTER_DESIGNER = 888, STR_QUIT_TRACK_DESIGNS_MANAGER = 889, +// STR_0890 : STR_SCREENSHOT = 891, STR_SCREENSHOT_SAVED_AS = 892, STR_SCREENSHOT_FAILED = 893, + STR_ERR_LANDSCAPE_DATA_AREA_FULL = 894, STR_CANT_BUILD_PARTLY_ABOVE_AND_PARTLY_BELOW_GROUND = 895, - + STR_RIDE_CONSTRUCTION_WINDOW_TITLE = 896, STR_RIDE_CONSTRUCTION_DIRECTION = 897, STR_RIDE_CONSTRUCTION_LEFT_CURVE_TIP = 898, STR_RIDE_CONSTRUCTION_RIGHT_CURVE_TIP = 899, @@ -138,7 +167,6 @@ enum { STR_RIDE_CONSTRUCTION_SLOPE = 907, STR_RIDE_CONSTRUCTION_ROLL_BANKING = 908, STR_RIDE_CONSTRUCTION_SEAT_ROT = 909, - STR_RIDE_CONSTRUCTION_ROLL_FOR_LEFT_CURVE_TIP = 910, STR_RIDE_CONSTRUCTION_ROLL_FOR_RIGHT_CURVE_TIP = 911, STR_RIDE_CONSTRUCTION_NO_ROLL_TIP = 912, @@ -158,7 +186,6 @@ enum { STR_RIDE_CONSTRUCTION_CANT_REMOVE_THIS = 926, STR_RIDE_CONSTRUCTION_CANT_CONSTRUCT_THIS_HERE = 927, STR_RIDE_CONSTRUCTION_CHAIN_LIFT_TIP = 928, - STR_S_BEND_LEFT = 929, STR_S_BEND_RIGHT = 930, STR_VERTICAL_LOOP_LEFT = 931, @@ -169,25 +196,22 @@ enum { STR_PARK_ENTRANCE_IN_THE_WAY = 936, STR_VIEW_OPTIONS_TIP = 937, STR_ADJUST_LAND_TIP = 938, - STR_UNDERGROUND_VIEW = 939, + STR_UNDERGROUND_VIEW = 939, STR_REMOVE_BASE_LAND = 940, STR_REMOVE_VERTICAL_FACES = 941, STR_SEE_THROUGH_RIDES = 942, STR_SEE_THROUGH_SCENERY = 943, - STR_SAVE_PROMPT_SAVE = 944, STR_SAVE_PROMPT_DONT_SAVE = 945, STR_SAVE_PROMPT_CANCEL = 946, - STR_SAVE_BEFORE_LOADING = 947, STR_SAVE_BEFORE_QUITTING = 948, STR_SAVE_BEFORE_QUITTING_2 = 949, - STR_LOAD_GAME_PROMPT_TITLE = 950, STR_QUIT_GAME_PROMPT_TITLE = 951, STR_QUIT_GAME_2_PROMPT_TITLE = 952, STR_LOAD_LANDSCAPE_PROMPT_TITLE = 953, - +// STR_0954 : STR_RIDE_CONSTRUCTION_SELECT_SEAT_ROTATION_ANGLE_TIP = 955, STR_RIDE_CONSTRUCTION_SEAT_ROTATION_ANGLE_NEG_180 = 956, STR_RIDE_CONSTRUCTION_SEAT_ROTATION_ANGLE_NEG_135 = 957, @@ -205,14 +229,11 @@ enum { STR_RIDE_CONSTRUCTION_SEAT_ROTATION_ANGLE_405 = 969, STR_RIDE_CONSTRUCTION_SEAT_ROTATION_ANGLE_450 = 970, STR_RIDE_CONSTRUCTION_SEAT_ROTATION_ANGLE_495 = 971, - STR_CANCEL = 972, STR_OK = 973, - STR_RIDES = 974, STR_SHOPS_AND_STALLS = 975, STR_RESTROOMS_AND_INFORMATION_KIOSKS = 976, - STR_NEW_TRANSPORT_RIDES = 977, STR_NEW_GENTLE_RIDES = 978, STR_NEW_ROLLER_COASTERS = 979, @@ -220,30 +241,24 @@ enum { STR_NEW_WATER_RIDES = 981, STR_NEW_SHOPS_STALLS = 982, STR_RESEARCH_AND_DEVELOPMENT = 983, - STR_RAISE_COST_AMOUNT = 984, STR_LOWER_COST_AMOUNT = 985, STR_COST_AMOUNT = 986, - STR_TOO_MANY_RIDES = 987, STR_CANT_CREATE_NEW_RIDE_ATTRACTION = 988, - + STR_RIDE_WINDOW_TITLE = 989, STR_CONSTRUCTION = 990, - STR_STATION_PLATFORM = 991, - STR_DEMOLISH_RIDE_TIP = 992, STR_DEMOLISH_RIDE = 993, STR_DEMOLISH = 994, STR_DEMOLISH_RIDE_ID = 995, - STR_OVERALL_VIEW = 996, STR_VIEW_SELECTION = 997, STR_NO_MORE_STATIONS_ALLOWED_ON_THIS_RIDE = 998, STR_REQUIRES_A_STATION_PLATFORM = 999, STR_TRACK_IS_NOT_A_COMPLETE_CIRCUIT = 1000, STR_TRACK_UNSUITABLE_FOR_TYPE_OF_TRAIN = 1001, - STR_CANT_OPEN = 1002, STR_CANT_TEST = 1003, STR_CANT_CLOSE = 1004, @@ -257,21 +272,20 @@ enum { STR_OPEN_ALL = 1012, STR_CLOSE_PARK = 1013, STR_OPEN_PARK = 1014, - STR_UNABLE_TO_OPERATE_WITH_MORE_THAN_ONE_STATION_IN_THIS_MODE = 1015, STR_UNABLE_TO_OPERATE_WITH_LESS_THAN_TWO_STATIONS_IN_THIS_MODE = 1016, STR_CANT_CHANGE_OPERATING_MODE = 1017, STR_RIDE_SET_VEHICLE_TYPE_FAIL = 1018, STR_RIDE_SET_VEHICLE_SET_NUM_CARS_PER_TRAIN_FAIL = 1019, STR_RIDE_SET_VEHICLE_SET_NUM_TRAINS_FAIL = 1020, - + STR_RIDE_VEHICLE_COUNT = 1021, STR_1_CAR_PER_TRAIN = 1022, STR_X_CARS_PER_TRAIN = 1023, - +// STR_1024 :{COMMA16} car per train +// STR_1025 :{COMMA16} cars per train STR_STATION_PLATFORM_TOO_LONG = 1026, STR_LOCATE_SUBJECT_TIP = 1027, STR_OFF_EDGE_OF_MAP = 1028, - STR_CANNOT_BUILD_PARTLY_ABOVE_AND_PARTLY_BELOW_WATER = 1029, STR_CAN_ONLY_BUILD_THIS_UNDERWATER = 1030, STR_RIDE_CANT_BUILD_THIS_UNDERWATER = 1031, @@ -279,10 +293,9 @@ enum { STR_CAN_ONLY_BUILD_THIS_ABOVE_GROUND = 1033, STR_CAN_ONLY_BUILD_THIS_ON_LAND = 1034, STR_LOCAL_AUTHORITY_WONT_ALLOW_CONSTRUCTION_ABOVE_TREE_HEIGHT = 1035, - STR_FILE_DIALOG_TITLE_LOAD_GAME = 1036, STR_FILE_DIALOG_TITLE_LOAD_LANDSCAPE = 1037, - STR_FILE_DIALOG_TITLE_CONVERT_SAVED_GAME_TO_SCENARIO = 1038, + STR_FILE_DIALOG_TITLE_CONVERT_SAVED_GAME_TO_SCENARIO = 1038, // Unused STR_FILE_DIALOG_TITLE_INSTALL_NEW_TRACK_DESIGN = 1039, STR_FILE_DIALOG_TITLE_SAVE_GAME = 1040, STR_FILE_DIALOG_TITLE_SAVE_SCENARIO = 1041, @@ -295,10 +308,8 @@ enum { STR_SCENARIO_SAVE_FAILED = 1048, STR_LANDSCAPE_SAVE_FAILED = 1049, STR_FAILED_TO_LOAD_FILE_CONTAINS_INVALID_DATA = 1050, - STR_INVISIBLE_SUPPORTS = 1051, STR_INVISIBLE_PEOPLE = 1052, - STR_RIDES_IN_PARK_TIP = 1053, STR_NAME_RIDE_TIP = 1054, STR_NAME_GUEST_TIP = 1055, @@ -307,46 +318,43 @@ enum { STR_ENTER_NEW_NAME_FOR_THIS_RIDE_ATTRACTION = 1058, STR_CANT_RENAME_RIDE_ATTRACTION = 1059, STR_INVALID_RIDE_ATTRACTION_NAME = 1060, - - STR_RIDE_MODE_START = 1061, - STR_RIDE_MODE_NORMAL = STR_RIDE_MODE_START + 0, - STR_RIDE_MODE_CONTINUOUS_CIRCUIT = STR_RIDE_MODE_START + 1, - STR_RIDE_MODE_REVERSE_INCLINE_LAUNCHED_SHUTTLE = STR_RIDE_MODE_START + 2, - STR_RIDE_MODE_POWERED_LAUNCH_PASSTROUGH = STR_RIDE_MODE_START + 3, - STR_RIDE_MODE_SHUTTLE = STR_RIDE_MODE_START + 4, - STR_RIDE_MODE_BOAT_HIRE = STR_RIDE_MODE_START + 5, - STR_RIDE_MODE_UPWARD_LAUNCH = STR_RIDE_MODE_START + 6, - STR_RIDE_MODE_ROTATING_LIFT = STR_RIDE_MODE_START + 7, - STR_RIDE_MODE_STATION_TO_STATION = STR_RIDE_MODE_START + 8, - STR_RIDE_MODE_SINGLE_RIDE_PER_ADMISSION = STR_RIDE_MODE_START + 9, - STR_RIDE_MODE_UNLIMITED_RIDES_PER_ADMISSION = STR_RIDE_MODE_START + 10, - STR_RIDE_MODE_MAZE = STR_RIDE_MODE_START + 11, - STR_RIDE_MODE_RACE = STR_RIDE_MODE_START + 12, - STR_RIDE_MODE_BUMPER_CAR = STR_RIDE_MODE_START + 13, - STR_RIDE_MODE_SWING = STR_RIDE_MODE_START + 14, - STR_RIDE_MODE_SHOP_STALL = STR_RIDE_MODE_START + 15, - STR_RIDE_MODE_ROTATION = STR_RIDE_MODE_START + 16, - STR_RIDE_MODE_FORWARD_ROTATION = STR_RIDE_MODE_START + 17, - STR_RIDE_MODE_BACKWARD_ROTATION = STR_RIDE_MODE_START + 18, - STR_RIDE_MODE_FILM_AVENGING_AVIATORS = STR_RIDE_MODE_START + 19, - STR_RIDE_MODE_3D_FILM_MOUSE_TAILS = STR_RIDE_MODE_START + 20, - STR_RIDE_MODE_SPACE_RINGS = STR_RIDE_MODE_START + 21, - STR_RIDE_MODE_BEGINNERS = STR_RIDE_MODE_START + 22, - STR_RIDE_MODE_LIM_POWERED_LAUNCH = STR_RIDE_MODE_START + 23, - STR_RIDE_MODE_FILM_THRILL_RIDERS = STR_RIDE_MODE_START + 24, - STR_RIDE_MODE_3D_FILM_STORM_CHASERS = STR_RIDE_MODE_START + 25, - STR_RIDE_MODE_3D_FILM_SPACE_RAIDERS = STR_RIDE_MODE_START + 26, - STR_RIDE_MODE_INTENSE = STR_RIDE_MODE_START + 27, - STR_RIDE_MODE_BERSERK = STR_RIDE_MODE_START + 28, - STR_RIDE_MODE_HAUNTED_HOUSE = STR_RIDE_MODE_START + 29, - STR_RIDE_MODE_CIRCUS_SHOW = STR_RIDE_MODE_START + 30, - STR_RIDE_MODE_DOWNWARD_LAUNCH = STR_RIDE_MODE_START + 31, - STR_RIDE_MODE_CROOKED_HOUSE = STR_RIDE_MODE_START + 32, - STR_RIDE_MODE_FREEFALL_DROP = STR_RIDE_MODE_START + 33, - STR_RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED = STR_RIDE_MODE_START + 34, - STR_RIDE_MODE_POWERED_LAUNCH = STR_RIDE_MODE_START + 35, - STR_RIDE_MODE_POWERED_LAUNCH_BLOCK_SECTIONED_MODE = STR_RIDE_MODE_START + 36, - + STR_RIDE_MODE_NORMAL = 1061, + STR_RIDE_MODE_CONTINUOUS_CIRCUIT = 1062, + STR_RIDE_MODE_REVERSE_INCLINE_LAUNCHED_SHUTTLE = 1063, + STR_RIDE_MODE_POWERED_LAUNCH_PASSTROUGH = 1064, + STR_RIDE_MODE_SHUTTLE = 1065, + STR_RIDE_MODE_BOAT_HIRE = 1066, + STR_RIDE_MODE_UPWARD_LAUNCH = 1067, + STR_RIDE_MODE_ROTATING_LIFT = 1068, + STR_RIDE_MODE_STATION_TO_STATION = 1069, + STR_RIDE_MODE_SINGLE_RIDE_PER_ADMISSION = 1070, + STR_RIDE_MODE_UNLIMITED_RIDES_PER_ADMISSION = 1071, + STR_RIDE_MODE_MAZE = 1072, + STR_RIDE_MODE_RACE = 1073, + STR_RIDE_MODE_BUMPER_CAR = 1074, + STR_RIDE_MODE_SWING = 1075, + STR_RIDE_MODE_SHOP_STALL = 1076, + STR_RIDE_MODE_ROTATION = 1077, + STR_RIDE_MODE_FORWARD_ROTATION = 1078, + STR_RIDE_MODE_BACKWARD_ROTATION = 1079, + STR_RIDE_MODE_FILM_AVENGING_AVIATORS = 1080, + STR_RIDE_MODE_3D_FILM_MOUSE_TAILS = 1081, + STR_RIDE_MODE_SPACE_RINGS = 1082, + STR_RIDE_MODE_BEGINNERS = 1083, + STR_RIDE_MODE_LIM_POWERED_LAUNCH = 1084, + STR_RIDE_MODE_FILM_THRILL_RIDERS = 1085, + STR_RIDE_MODE_3D_FILM_STORM_CHASERS = 1086, + STR_RIDE_MODE_3D_FILM_SPACE_RAIDERS = 1087, + STR_RIDE_MODE_INTENSE = 1088, + STR_RIDE_MODE_BERSERK = 1089, + STR_RIDE_MODE_HAUNTED_HOUSE = 1090, + STR_RIDE_MODE_CIRCUS_SHOW = 1091, + STR_RIDE_MODE_DOWNWARD_LAUNCH = 1092, + STR_RIDE_MODE_CROOKED_HOUSE = 1093, + STR_RIDE_MODE_FREEFALL_DROP = 1094, + STR_RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED = 1095, + STR_RIDE_MODE_POWERED_LAUNCH = 1096, + STR_RIDE_MODE_POWERED_LAUNCH_BLOCK_SECTIONED_MODE = 1097, STR_MOVING_TO_END_OF = 1098, STR_WAITING_FOR_PASSENGERS_AT = 1099, STR_WAITING_TO_DEPART = 1100, @@ -381,55 +389,54 @@ enum { STR_ALL_VEHICLES_IN_SAME_COLOURS = 1129, STR_DIFFERENT_COLOURS_PER = 1130, STR_DIFFERENT_COLOURS_PER_VEHICLE = 1131, - + STR_RIDE_COLOUR_VEHICLE_VALUE = 1132, + STR_RIDE_COLOUR_VEHICLE_OPTION = 1133, + STR_RIDE_COLOUR_TRAIN_VALUE = 1134, + STR_RIDE_COLOUR_TRAIN_OPTION = 1135, STR_SELECT_MAIN_COLOUR_TIP = 1136, STR_SELECT_ADDITIONAL_COLOUR_1_TIP = 1137, STR_SELECT_ADDITIONAL_COLOUR_2_TIP = 1138, STR_SELECT_SUPPORT_STRUCTURE_COLOUR_TIP = 1139, STR_SELECT_VEHICLE_COLOUR_SCHEME_TIP = 1140, STR_SELECT_VEHICLE_TO_MODIFY_TIP = 1141, - STR_DROPDOWN_MENU_LABEL = 1142, - +// STR_1143 :{RIGHTGUILLEMET}{MOVE_X}{SMALLFONT}{STRINGID} STR_CANT_BUILD_MOVE_ENTRANCE_FOR_THIS_RIDE_ATTRACTION = 1144, STR_CANT_BUILD_MOVE_EXIT_FOR_THIS_RIDE_ATTRACTION = 1145, STR_ENTRANCE_NOT_YET_BUILT = 1146, STR_EXIT_NOT_YET_BUILT = 1147, - STR_QUARTER_LOAD = 1148, STR_HALF_LOAD = 1149, STR_THREE_QUARTER_LOAD = 1150, STR_FULL_LOAD = 1151, STR_ANY_LOAD = 1152, - STR_HEIGHT_MARKS_ON_RIDE_TRACKS = 1153, STR_HEIGHT_MARKS_ON_LAND = 1154, STR_HEIGHT_MARKS_ON_PATHS = 1155, - + STR_TOGGLE_OPTION = 1156, + STR_TOGGLE_OPTION_CHECKED = 1157, // Used as STR_TOGGLE_OPTION + 1 STR_CANT_REMOVE_THIS = 1158, STR_PLACE_SCENERY_TIP = 1159, STR_ADJUST_WATER_TIP = 1160, - STR_CANT_POSITION_THIS_HERE = 1161, + STR_MAP_TOOLTIP_STRINGID = 1162, + STR_MAP_TOOLTIP_STRINGID_CLICK_TO_MODIFY = 1163, + STR_MAP_TOOLTIP_STRINGID_CLICK_TO_REMOVE = 1164, + STR_MAP_TOOLTIP_STRINGID_STRINGID = 1165, STR_CANT_LOWER_WATER_LEVEL_HERE = 1166, STR_CANT_RAISE_WATER_LEVEL_HERE = 1167, - STR_OPTIONS_TITLE = 1168, STR_SOUND_NONE = 1169, STR_STRING = 1170, - STR_RIDE_ENTRANCE_CLOSED = 1171, STR_RIDE_ENTRANCE_NAME = 1172, - STR_BUILD_FOOTPATH_TIP = 1173, - STR_BANNER_SIGN_IN_THE_WAY = 1174, STR_CANT_BUILD_THIS_ON_SLOPED_FOOTPATH = 1175, STR_CANT_BUILD_FOOTPATH_HERE = 1176, STR_CANT_REMOVE_FOOTPATH_FROM_HERE = 1177, STR_LAND_SLOPE_UNSUITABLE = 1178, STR_FOOTPATH_IN_THE_WAY = 1179, - STR_CANT_BUILD_THIS_UNDERWATER = 1180, STR_FOOTPATHS = 1181, STR_TYPE = 1182, @@ -442,8 +449,8 @@ enum { STR_CONSTRUCT_THE_SELECTED_FOOTPATH_SECTION_TIP = 1189, STR_REMOVE_PREVIOUS_FOOTPATH_SECTION_TIP = 1190, STR_BLACK_STRING = 1191, - STR_LOSS = 1192, - STR_WINDOW_COLOUR_2_STRING = 1193, + STR_RED_OUTLINED_STRING = 1192, + STR_WINDOW_COLOUR_2_STRINGID = 1193, STR_CLOSED = 1194, STR_TEST_RUN = 1195, STR_OPEN = 1196, @@ -451,14 +458,12 @@ enum { STR_CRASHED = 1198, STR_PERSON_ON_RIDE = 1199, STR_PEOPLE_ON_RIDE = 1200, - STR_QUEUE_EMPTY = 1201, STR_QUEUE_ONE_PERSON = 1202, STR_QUEUE_PEOPLE = 1203, STR_QUEUE_TIME_LABEL = 1204, STR_QUEUE_TIME_PLURAL_LABEL = 1205, STR_WAIT_FOR = 1206, - STR_LEAVE_IF_ANOTHER_TRAIN_ARRIVES = 1207, STR_LEAVE_IF_ANOTHER_BOAT_ARRIVES = 1208, STR_WAIT_FOR_PASSENGERS_BEFORE_DEPARTING_TIP = 1209, @@ -481,24 +486,121 @@ enum { STR_THRILL_RIDES_TIP = 1226, STR_WATER_RIDES_TIP = 1227, STR_SHOPS_STALLS_TIP = 1228, - - STR_VEHICLE_LOWERCASE_BOAT = 1236, - - STR_PLAYER_DEFAULT_NAME = 1315, - STR_X_PLAYER = 1317, - STR_X_PLAYERS = 1318, - + STR_RIDE_COMPONENT_TRAIN = 1229, + STR_RIDE_COMPONENT_TRAIN_PLURAL = 1230, + STR_RIDE_COMPONENT_TRAIN_CAPITALISED = 1231, + STR_RIDE_COMPONENT_TRAIN_CAPITALISED_PLURAL = 1232, + STR_RIDE_COMPONENT_TRAIN_COUNT = 1233, + STR_RIDE_COMPONENT_TRAIN_COUNT_PLURAL = 1234, + STR_RIDE_COMPONENT_TRAIN_NO = 1235, + STR_RIDE_COMPONENT_BOAT = 1236, + STR_RIDE_COMPONENT_BOAT_PLURAL = 1237, + STR_RIDE_COMPONENT_BOAT_CAPITALISED = 1238, + STR_RIDE_COMPONENT_BOAT_CAPITALISED_PLURAL = 1239, + STR_RIDE_COMPONENT_BOAT_COUNT = 1240, + STR_RIDE_COMPONENT_BOAT_COUNT_PLURAL = 1241, + STR_RIDE_COMPONENT_BOAT_NO = 1242, + STR_RIDE_COMPONENT_TRACK = 1243, + STR_RIDE_COMPONENT_TRACK_PLURAL = 1244, + STR_RIDE_COMPONENT_TRACK_CAPITALISED = 1245, + STR_RIDE_COMPONENT_TRACK_CAPITALISED_PLURAL = 1246, + STR_RIDE_COMPONENT_TRACK_COUNT = 1247, + STR_RIDE_COMPONENT_TRACK_COUNT_PLURAL = 1248, + STR_RIDE_COMPONENT_TRACK_NO = 1249, + STR_RIDE_COMPONENT_DOCKING_PLATFORM = 1250, + STR_RIDE_COMPONENT_DOCKING_PLATFORM_PLURAL = 1251, + STR_RIDE_COMPONENT_DOCKING_PLATFORM_CAPITALISED = 1252, + STR_RIDE_COMPONENT_DOCKING_PLATFORM_CAPITALISED_PLURAL = 1253, + STR_RIDE_COMPONENT_DOCKING_PLATFORM_COUNT = 1254, + STR_RIDE_COMPONENT_DOCKING_PLATFORM_COUNT_PLURAL = 1255, + STR_RIDE_COMPONENT_DOCKING_PLATFORM_NO = 1256, + STR_RIDE_COMPONENT_STATION = 1257, + STR_RIDE_COMPONENT_STATION_PLURAL = 1258, + STR_RIDE_COMPONENT_STATION_CAPITALISED = 1259, + STR_RIDE_COMPONENT_STATION_CAPITALISED_PLURAL = 1260, + STR_RIDE_COMPONENT_STATION_COUNT = 1261, + STR_RIDE_COMPONENT_STATION_COUNT_PLURAL = 1262, + STR_RIDE_COMPONENT_STATION_NO = 1263, + STR_RIDE_COMPONENT_CAR = 1264, + STR_RIDE_COMPONENT_CAR_PLURAL = 1265, + STR_RIDE_COMPONENT_CAR_CAPITALISED = 1266, + STR_RIDE_COMPONENT_CAR_CAPITALISED_PLURAL = 1267, + STR_RIDE_COMPONENT_CAR_COUNT = 1268, + STR_RIDE_COMPONENT_CAR_COUNT_PLURAL = 1269, + STR_RIDE_COMPONENT_CAR_NO = 1270, + STR_RIDE_COMPONENT_BUILDING = 1271, + STR_RIDE_COMPONENT_BUILDING_PLURAL = 1272, + STR_RIDE_COMPONENT_BUILDING_CAPITALISED = 1273, + STR_RIDE_COMPONENT_BUILDING_CAPITALISED_PLURAL = 1274, + STR_RIDE_COMPONENT_BUILDING_COUNT = 1275, + STR_RIDE_COMPONENT_BUILDING_COUNT_PLURAL = 1276, + STR_RIDE_COMPONENT_BUILDING_NO = 1277, + STR_RIDE_COMPONENT_STRUCTURE = 1278, + STR_RIDE_COMPONENT_STRUCTURE_PLURAL = 1279, + STR_RIDE_COMPONENT_STRUCTURE_CAPITALISED = 1280, + STR_RIDE_COMPONENT_STRUCTURE_CAPITALISED_PLURAL = 1281, + STR_RIDE_COMPONENT_STRUCTURE_COUNT = 1282, + STR_RIDE_COMPONENT_STRUCTURE_COUNT_PLURAL = 1283, + STR_RIDE_COMPONENT_STRUCTURE_NO = 1284, + STR_RIDE_COMPONENT_SHIP = 1285, + STR_RIDE_COMPONENT_SHIP_PLURAL = 1286, + STR_RIDE_COMPONENT_SHIP_CAPITALISED = 1287, + STR_RIDE_COMPONENT_SHIP_CAPITALISED_PLURAL = 1288, + STR_RIDE_COMPONENT_SHIP_COUNT = 1289, + STR_RIDE_COMPONENT_SHIP_COUNT_PLURAL = 1290, + STR_RIDE_COMPONENT_SHIP_NO = 1291, + STR_RIDE_COMPONENT_CABIN = 1292, + STR_RIDE_COMPONENT_CABIN_PLURAL = 1293, + STR_RIDE_COMPONENT_CABIN_CAPITALISED = 1294, + STR_RIDE_COMPONENT_CABIN_CAPITALISED_PLURAL = 1295, + STR_RIDE_COMPONENT_CABIN_COUNT = 1296, + STR_RIDE_COMPONENT_CABIN_COUNT_PLURAL = 1297, + STR_RIDE_COMPONENT_CABIN_NO = 1298, + STR_RIDE_COMPONENT_WHEEL = 1299, + STR_RIDE_COMPONENT_WHEEL_PLURAL = 1300, + STR_RIDE_COMPONENT_WHEEL_CAPITALISED = 1301, + STR_RIDE_COMPONENT_WHEEL_CAPITALISED_PLURAL = 1302, + STR_RIDE_COMPONENT_WHEEL_COUNT = 1303, + STR_RIDE_COMPONENT_WHEEL_COUNT_PLURAL = 1304, + STR_RIDE_COMPONENT_WHEEL_NO = 1305, + STR_RIDE_COMPONENT_RING = 1306, + STR_RIDE_COMPONENT_RING_PLURAL = 1307, + STR_RIDE_COMPONENT_RING_CAPITALISED = 1308, + STR_RIDE_COMPONENT_RING_CAPITALISED_PLURAL = 1309, + STR_RIDE_COMPONENT_RING_COUNT = 1310, + STR_RIDE_COMPONENT_RING_COUNT_PLURAL = 1311, + STR_RIDE_COMPONENT_RING_NO = 1312, + STR_RIDE_COMPONENT_PLAYER = 1313, + STR_RIDE_COMPONENT_PLAYER_PLURAL = 1314, + STR_RIDE_COMPONENT_PLAYER_CAPITALISED = 1315, + STR_RIDE_COMPONENT_PLAYER_CAPITALISED_PLURAL = 1316, + STR_RIDE_COMPONENT_PLAYER_COUNT = 1317, + STR_RIDE_COMPONENT_PLAYER_COUNT_PLURAL = 1318, + STR_RIDE_COMPONENT_PLAYER_NO = 1319, + STR_RIDE_COMPONENT_COURSE = 1320, + STR_RIDE_COMPONENT_COURSE_PLURAL = 1321, + STR_RIDE_COMPONENT_COURSE_CAPITALISED = 1322, + STR_RIDE_COMPONENT_COURSE_CAPITALISED_PLURAL = 1323, + STR_RIDE_COMPONENT_COURSE_COUNT = 1324, + STR_RIDE_COMPONENT_COURSE_COUNT_PLURAL = 1325, + STR_RIDE_COMPONENT_COURSE_NO = 1326, STR_ROTATE_OBJECTS_90 = 1327, STR_LEVEL_LAND_REQUIRED = 1328, STR_LAUNCH_SPEED = 1329, STR_LAUNCH_SPEED_TIP = 1330, - + STR_RIDE_MODE_SPEED_VALUE = 1331, +// 1332 not used. Likely ride_mode_speed value + STR_RIDE_STATION = 1333, + STR_RIDE_STATION_X = 1334, + STR_RIDE_ENTRANCE = 1335, + STR_RIDE_STATION_X_ENTRANCE = 1336, + STR_RIDE_EXIT = 1337, + STR_RIDE_STATION_X_EXIT = 1338, STR_NO_TEST_RESULTS_YET = 1339, STR_MAX_SPEED = 1340, STR_RIDE_TIME = 1341, STR_RIDE_TIME_ENTRY = 1342, STR_RIDE_TIME_ENTRY_WITH_SEPARATOR = 1343, - STR_RIDE_LENGTH = 1344, STR_RIDE_LENGTH_ENTRY = 1345, STR_RIDE_LENGTH_ENTRY_WITH_SEPARATOR = 1346, @@ -516,13 +618,10 @@ enum { STR_TOTAL_AIR_TIME = 1358, STR_QUEUE_TIME_MINUTE = 1359, STR_QUEUE_TIME_MINUTES = 1360, - STR_CANT_CHANGE_SPEED = 1361, STR_CANT_CHANGE_LAUNCH_SPEED = 1362, - STR_TOO_HIGH_FOR_SUPPORTS = 1363, STR_SUPPORTS_CANT_BE_EXTENDED = 1364, - STR_IN_LINE_TWIST_LEFT = 1365, STR_IN_LINE_TWIST_RIGHT = 1366, STR_HALF_LOOP = 1367, @@ -542,12 +641,14 @@ enum { STR_CURVED_LIFT_HILL_LEFT = 1381, STR_CURVED_LIFT_HILL_RIGHT = 1382, STR_QUARTER_LOOP = 1383, - + STR_YELLOW_STRING = 1384, STR_RIDE_CONSTRUCTION_OTHER_TRACK_CONFIGURATIONS_TIP = 1385, STR_RIDE_CONSTRUCTION_SPECIAL = 1386, - STR_CANT_CHANGE_LAND_TYPE = 1387, - + STR_MONEY_EFFECT_RECEIVE = 1388, + STR_MONEY_EFFECT_SPEND = 1389, + STR_BOTTOM_TOOLBAR_CASH = 1390, + STR_BOTTOM_TOOLBAR_CASH_NEGATIVE = 1391, STR_VIEW_OF_RIDE_ATTRACTION_TIP = 1392, STR_VEHICLE_DETAILS_AND_OPTIONS_TIP = 1393, STR_OPERATING_OPTIONS_TIP = 1394, @@ -556,7 +657,6 @@ enum { STR_SOUND_AND_MUSIC_OPTIONS_TIP = 1397, STR_MEASUREMENTS_AND_TEST_DATA_TIP = 1398, STR_GRAPHS_TIP = 1399, - STR_RIDE_CONSTRUCTION_ENTRANCE = 1400, STR_RIDE_CONSTRUCTION_EXIT = 1401, STR_RIDE_CONSTRUCTION_ENTRANCE_TIP = 1402, @@ -564,33 +664,29 @@ enum { STR_ROTATE_90_TIP = 1404, STR_MIRROR_IMAGE_TIP = 1405, STR_TOGGLE_SCENERY_TIP = 1406, - STR_BUILD_THIS = 1407, STR_COST_LABEL = 1408, - STR_ENTRY_EXIT_PLATFORM = 1409, STR_VERTICAL_TOWER = 1410, STR_X_IN_THE_WAY = 1411, - STR_DATA_LOGGING_NOT_AVAILABLE_FOR_THIS_TYPE_OF_RIDE = 1412, STR_DATA_LOGGING_WILL_START_WHEN_NEXT_LEAVES = 1413, - STR_RIDE_STATS_TIME = 1414, STR_RIDE_STATS_VELOCITY = 1415, STR_RIDE_STATS_ALTITUDE = 1416, STR_RIDE_STATS_VERT_G = 1417, STR_RIDE_STATS_LAT_G = 1418, - STR_RIDE_STATS_VELOCITY_FORMAT = 1419, + STR_RIDE_STATS_VELOCITY_FORMAT = 1419, // Unused STR_RIDE_STATS_ALTITUDE_FORMAT = 1420, - STR_RIDE_STATS_G_FORCE_FORMAT = 1421, - + STR_RIDE_STATS_G_FORCE_FORMAT = 1421, // Unused STR_LOGGING_DATA_FROM_TIP = 1422, STR_QUEUE_LINE_PATH_TIP = 1423, STR_FOOTPATH_TIP = 1424, - + STR_FOOTPATH_MAP_TIP = 1425, + STR_QUEUE_LINE_MAP_TIP = 1426, STR_CUSTOMERS_PER_HOUR = 1427, STR_RIDE_INCOME_ADMISSION_PRICE = 1428, - + STR_ARG_6_CURRENCY2DP = 1429, STR_FREE = 1430, STR_WALKING = 1431, STR_HEADING_FOR = 1432, @@ -610,30 +706,30 @@ enum { STR_LOOKING_AT_SCENERY = 1446, STR_LEAVING_PARK = 1447, STR_WATCHING_NEW_RIDE_BEING_CONSTRUCTED = 1448, - + STR_GUEST_MAP_TIP = 1449, + STR_TRACKED_GUEST_MAP_TIP = 1450, + STR_STAFF_MAP_TIP = 1451, + STR_GUEST_RENAME_TITLE = 1452, + STR_GUEST_RENAME_PROMPT = 1453, STR_CANT_NAME_GUEST = 1454, - + STR_ERR_INVALID_NAME_FOR_GUEST = 1455, + STR_GUEST_STAT_CASH_SPENT = 1456, + STR_GUEST_STAT_CASH_IN_POCKET = 1457, + STR_GUEST_STAT_TIME_IN_PARK = 1458, STR_RIDE_CONSTRUCTION_TRACK_STYLE = 1459, STR_RIDE_CONSTRUCTION_U_SHAPED_OPEN_TRACK_TIP = 1460, STR_RIDE_CONSTRUCTION_O_SHAPED_ENCLOSED_TRACK_TIP = 1461, - STR_TOO_STEEP_FOR_LIFT_HILL = 1462, - STR_GUESTS = 1463, - STR_HELIX_UP_SMALL = 1464, STR_HELIX_UP_LARGE = 1465, STR_HELIX_DOWN_SMALL = 1466, STR_HELIX_DOWN_LARGE = 1467, - STR_STAFF = 1468, - STR_RIDE_MUST_START_AND_END_WITH_STATIONS = 1469, STR_STATION_NOT_LONG_ENOUGH = 1470, - STR_SPEED = 1471, STR_SPEED_TIP = 1472, - STR_EXCITEMENT_RATING = 1473, STR_EXCITEMENT_RATING_NOT_YET_AVAILABLE = 1474, STR_INTENSITY_RATING = 1475, @@ -641,26 +737,205 @@ enum { STR_INTENSITY_RATING_RED = 1477, STR_NAUSEA_RATING = 1478, STR_NAUSEA_RATING_NOT_YET_AVAILABLE = 1479, - - STR_THOUGHT_START = 1480, - + STR_PEEP_THOUGHT_TYPE_CANT_AFFORD_0 = 1480, + STR_PEEP_THOUGHT_TYPE_SPENT_MONEY = 1481, + STR_PEEP_THOUGHT_TYPE_SICK = 1482, + STR_PEEP_THOUGHT_TYPE_VERY_SICK = 1483, + STR_PEEP_THOUGHT_TYPE_MORE_THRILLING = 1484, + STR_PEEP_THOUGHT_TYPE_INTENSE = 1485, + STR_PEEP_THOUGHT_TYPE_HAVENT_FINISHED = 1486, + STR_PEEP_THOUGHT_TYPE_SICKENING = 1487, + STR_PEEP_THOUGHT_TYPE_BAD_VALUE = 1488, + STR_PEEP_THOUGHT_TYPE_GO_HOME = 1489, + STR_PEEP_THOUGHT_TYPE_GOOD_VALUE = 1490, + STR_PEEP_THOUGHT_TYPE_ALREADY_GOT = 1491, + STR_PEEP_THOUGHT_TYPE_CANT_AFFORD = 1492, + STR_PEEP_THOUGHT_TYPE_NOT_HUNGRY = 1493, + STR_PEEP_THOUGHT_TYPE_NOT_THIRSTY = 1494, + STR_PEEP_THOUGHT_TYPE_DROWNING = 1495, + STR_PEEP_THOUGHT_TYPE_LOST = 1496, + STR_PEEP_THOUGHT_TYPE_WAS_GREAT = 1497, + STR_PEEP_THOUGHT_TYPE_QUEUING_AGES = 1498, + STR_PEEP_THOUGHT_TYPE_TIRED = 1499, + STR_PEEP_THOUGHT_TYPE_HUNGRY = 1500, + STR_PEEP_THOUGHT_TYPE_THIRSTY = 1501, + STR_PEEP_THOUGHT_TYPE_BATHROOM = 1502, + STR_PEEP_THOUGHT_TYPE_CANT_FIND = 1503, + STR_PEEP_THOUGHT_TYPE_NOT_PAYING = 1504, + STR_PEEP_THOUGHT_TYPE_NOT_WHILE_RAINING = 1505, + STR_PEEP_THOUGHT_TYPE_BAD_LITTER = 1506, + STR_PEEP_THOUGHT_TYPE_CANT_FIND_EXIT = 1507, + STR_PEEP_THOUGHT_TYPE_GET_OFF = 1508, + STR_PEEP_THOUGHT_TYPE_GET_OUT = 1509, + STR_PEEP_THOUGHT_TYPE_NOT_SAFE = 1510, + STR_PEEP_THOUGHT_TYPE_PATH_DISGUSTING = 1511, + STR_PEEP_THOUGHT_TYPE_CROWDED = 1512, + STR_PEEP_THOUGHT_TYPE_VANDALISM = 1513, + STR_PEEP_THOUGHT_TYPE_SCENERY = 1514, + STR_PEEP_THOUGHT_TYPE_VERY_CLEAN = 1515, + STR_PEEP_THOUGHT_TYPE_FOUNTAINS = 1516, + STR_PEEP_THOUGHT_TYPE_MUSIC = 1517, + STR_PEEP_THOUGHT_TYPE_BALLOON = 1518, + STR_PEEP_THOUGHT_TYPE_TOY = 1519, + STR_PEEP_THOUGHT_TYPE_MAP = 1520, + STR_PEEP_THOUGHT_TYPE_PHOTO = 1521, + STR_PEEP_THOUGHT_TYPE_UMBRELLA = 1522, + STR_PEEP_THOUGHT_TYPE_DRINK = 1523, + STR_PEEP_THOUGHT_TYPE_BURGER = 1524, + STR_PEEP_THOUGHT_TYPE_FRIES = 1525, + STR_PEEP_THOUGHT_TYPE_ICE_CREAM = 1526, + STR_PEEP_THOUGHT_TYPE_COTTON_CANDY = 1527, +// STR_1528 : +// STR_1529 : +// STR_1530 : + STR_PEEP_THOUGHT_TYPE_PIZZA = 1531, +// STR_1532 : + STR_PEEP_THOUGHT_TYPE_POPCORN = 1533, + STR_PEEP_THOUGHT_TYPE_HOT_DOG = 1534, + STR_PEEP_THOUGHT_TYPE_TENTACLE = 1535, + STR_PEEP_THOUGHT_TYPE_HAT = 1536, + STR_PEEP_THOUGHT_TYPE_CANDY_APPLE = 1537, + STR_PEEP_THOUGHT_TYPE_TSHIRT = 1538, + STR_PEEP_THOUGHT_TYPE_DONUT = 1539, + STR_PEEP_THOUGHT_TYPE_COFFEE = 1540, +// STR_1541 : + STR_PEEP_THOUGHT_TYPE_CHICKEN = 1542, + STR_PEEP_THOUGHT_TYPE_LEMONADE = 1543, +// STR_1544 : +// STR_1545 : +// STR_1546 : + STR_PEEP_THOUGHT_TYPE_WOW = 1547, // This string is empty! STR_1547 : +// STR_1548 : +// STR_1549 : + STR_PEEP_THOUGHT_TYPE_WOW2 = 1550, + STR_PEEP_THOUGHT_TYPE_WATCHED = 1551, + STR_PEEP_THOUGHT_TYPE_BALLOON_MUCH = 1552, + STR_PEEP_THOUGHT_TYPE_TOY_MUCH = 1553, + STR_PEEP_THOUGHT_TYPE_MAP_MUCH = 1554, + STR_PEEP_THOUGHT_TYPE_PHOTO_MUCH = 1555, + STR_PEEP_THOUGHT_TYPE_UMBRELLA_MUCH = 1556, + STR_PEEP_THOUGHT_TYPE_DRINK_MUCH = 1557, + STR_PEEP_THOUGHT_TYPE_BURGER_MUCH = 1558, + STR_PEEP_THOUGHT_TYPE_FRIES_MUCH = 1559, + STR_PEEP_THOUGHT_TYPE_ICE_CREAM_MUCH = 1560, + STR_PEEP_THOUGHT_TYPE_COTTON_CANDY_MUCH = 1561, +// STR_1562 : +// STR_1563 : +// STR_1564 : + STR_PEEP_THOUGHT_TYPE_PIZZA_MUCH = 1565, +// STR_1566 : + STR_PEEP_THOUGHT_TYPE_POPCORN_MUCH = 1567, + STR_PEEP_THOUGHT_TYPE_HOT_DOG_MUCH = 1568, + STR_PEEP_THOUGHT_TYPE_TENTACLE_MUCH = 1569, + STR_PEEP_THOUGHT_TYPE_HAT_MUCH = 1570, + STR_PEEP_THOUGHT_TYPE_CANDY_APPLE_MUCH = 1571, + STR_PEEP_THOUGHT_TYPE_TSHIRT_MUCH = 1572, + STR_PEEP_THOUGHT_TYPE_DONUT_MUCH = 1573, + STR_PEEP_THOUGHT_TYPE_COFFEE_MUCH = 1574, +// STR_1575 : + STR_PEEP_THOUGHT_TYPE_CHICKEN_MUCH = 1576, + STR_PEEP_THOUGHT_TYPE_LEMONADE_MUCH = 1577, +// STR_1578 : +// STR_1579 : +// STR_1580 : +// STR_1581 : +// STR_1582 : +// STR_1583 : + STR_PEEP_THOUGHT_TYPE_PHOTO2 = 1584, + STR_PEEP_THOUGHT_TYPE_PHOTO3 = 1585, + STR_PEEP_THOUGHT_TYPE_PHOTO4 = 1586, + STR_PEEP_THOUGHT_TYPE_PRETZEL = 1587, + STR_PEEP_THOUGHT_TYPE_HOT_CHOCOLATE = 1588, + STR_PEEP_THOUGHT_TYPE_ICED_TEA = 1589, + STR_PEEP_THOUGHT_TYPE_FUNNEL_CAKE = 1590, + STR_PEEP_THOUGHT_TYPE_SUNGLASSES = 1591, + STR_PEEP_THOUGHT_TYPE_BEEF_NOODLES = 1592, + STR_PEEP_THOUGHT_TYPE_FRIED_RICE_NOODLES = 1593, + STR_PEEP_THOUGHT_TYPE_WONTON_SOUP = 1594, + STR_PEEP_THOUGHT_TYPE_MEATBALL_SOUP = 1595, + STR_PEEP_THOUGHT_TYPE_FRUIT_JUICE = 1596, + STR_PEEP_THOUGHT_TYPE_SOYBEAN_MILK = 1597, + STR_PEEP_THOUGHT_TYPE_SU_JONGKWA = 1598, + STR_PEEP_THOUGHT_TYPE_SUB_SANDWICH = 1599, + STR_PEEP_THOUGHT_TYPE_COOKIE = 1600, +// STR_1601 : +// STR_1602 : +// STR_1603 : + STR_PEEP_THOUGHT_TYPE_ROAST_SAUSAGE = 1604, +// STR_1605 : +// STR_1606 : +// STR_1607 : +// STR_1608 : +// STR_1609 : +// STR_1610 : +// STR_1611 : +// STR_1612 : +// STR_1613 : +// STR_1614 : +// STR_1615 : + STR_PEEP_THOUGHT_TYPE_PHOTO2_MUCH = 1616, + STR_PEEP_THOUGHT_TYPE_PHOTO3_MUCH = 1617, + STR_PEEP_THOUGHT_TYPE_PHOTO4_MUCH = 1618, + STR_PEEP_THOUGHT_TYPE_PRETZEL_MUCH = 1619, + STR_PEEP_THOUGHT_TYPE_HOT_CHOCOLATE_MUCH = 1620, + STR_PEEP_THOUGHT_TYPE_ICED_TEA_MUCH = 1621, + STR_PEEP_THOUGHT_TYPE_FUNNEL_CAKE_MUCH = 1622, + STR_PEEP_THOUGHT_TYPE_SUNGLASSES_MUCH = 1623, + STR_PEEP_THOUGHT_TYPE_BEEF_NOODLES_MUCH = 1624, + STR_PEEP_THOUGHT_TYPE_FRIED_RICE_NOODLES_MUCH = 1625, + STR_PEEP_THOUGHT_TYPE_WONTON_SOUP_MUCH = 1626, + STR_PEEP_THOUGHT_TYPE_MEATBALL_SOUP_MUCH = 1627, + STR_PEEP_THOUGHT_TYPE_FRUIT_JUICE_MUCH = 1628, + STR_PEEP_THOUGHT_TYPE_SOYBEAN_MILK_MUCH = 1629, + STR_PEEP_THOUGHT_TYPE_SU_JONGKWA_MUCH = 1630, + STR_PEEP_THOUGHT_TYPE_SUB_SANDWICH_MUCH = 1631, + STR_PEEP_THOUGHT_TYPE_COOKIE_MUCH = 1632, +// STR_1633 : +// STR_1634 : +// STR_1635 : + STR_PEEP_THOUGHT_TYPE_ROAST_SAUSAGE_MUCH = 1636, +// STR_1637 : +// STR_1638 : +// STR_1639 : +// STR_1640 : +// STR_1641 : +// STR_1642 : +// STR_1643 : +// STR_1644 : +// STR_1645 : +// STR_1646 : +// STR_1647 : + STR_PEEP_THOUGHT_TYPE_HELP = 1648, + STR_PEEP_THOUGHT_TYPE_RUNNING_OUT = 1649, + STR_PEEP_THOUGHT_TYPE_NEW_RIDE = 1650, + STR_PEEP_THOUGHT_TYPE_NICE_RIDE_DEPRECATED = 1651, + STR_PEEP_THOUGHT_TYPE_EXCITED_DEPRECATED = 1652, + STR_PEEP_THOUGHT_TYPE_HERE_WE_ARE = 1653, + STR_GUEST_RECENT_THOUGHTS_LABEL = 1654, STR_CONSTRUCT_FOOTPATH_ON_LAND_TIP = 1655, STR_CONSTRUCT_BRIDGE_OR_TUNNEL_FOOTPATH_TIP = 1656, - + STR_GUEST_STAT_PREFERRED_RIDE = 1657, + STR_GUEST_STAT_PREFERRED_INTESITY_BELOW = 1658, + STR_GUEST_STAT_PREFERRED_INTESITY_BETWEEN = 1659, + STR_GUEST_STAT_PREFERRED_INTESITY_ABOVE = 1660, + STR_GUEST_STAT_NAUSEA_TOLERANCE = 1661, + STR_GUEST_STAT_HAPPINESS_LABEL = 1662, + STR_GUEST_STAT_NAUSEA_LABEL = 1663, + STR_GUEST_STAT_ENERGY_LABEL = 1664, + STR_GUEST_STAT_HUNGER_LABEL = 1665, + STR_GUEST_STAT_THIRST_LABEL = 1666, + STR_GUEST_STAT_TOILET_LABEL = 1667, STR_SATISFACTION_UNKNOWN = 1668, STR_SATISFACTION_PERCENT = 1669, STR_TOTAL_CUSTOMERS = 1670, STR_TOTAL_PROFIT = 1671, - STR_BRAKES = 1672, STR_SPINNING_CONTROL_TOGGLE_TRACK = 1673, - STR_RIDE_CONSTRUCTION_BRAKE_SPEED = 1674, + STR_RIDE_CONSTRUCTION_BRAKE_SPEED_VELOCITY = 1675, STR_RIDE_CONSTRUCTION_BRAKE_SPEED_LIMIT_TIP = 1676, - STR_POPULARITY_UNKNOWN = 1677, STR_POPULARITY_PERCENT = 1678, - STR_HELIX_UP_LEFT = 1679, STR_HELIX_UP_RIGHT = 1680, STR_HELIX_DOWN_LEFT = 1681, @@ -670,17 +945,17 @@ enum { STR_BASE_SIZE_2_X_4 = 1685, STR_BASE_SIZE_5_X_1 = 1686, STR_WATER_SPLASH = 1687, - STR_BASE_SIZE_4_X_1 = 1688, + STR_BASE_SIZE_4_X_1 = 1688, // Unused STR_BLOCK_BRAKES = 1689, - + STR_NEW_RIDE_NAME_AND_DESCRIPTION = 1690, + STR_NEW_RIDE_COST = 1691, + STR_NEW_RIDE_COST_FROM = 1692, STR_GUESTS_TIP = 1693, STR_STAFF_TIP = 1694, - STR_INCOME_AND_COSTS_TIP = 1695, STR_CUSTOMER_INFORMATION_TIP = 1696, STR_CANNOT_PLACE_THESE_ON_QUEUE_LINE_AREA = 1697, STR_CAN_ONLY_PLACE_THESE_ON_QUEUE_AREA = 1698, - STR_TOO_MANY_PEOPLE_IN_GAME = 1699, STR_HIRE_HANDYMAN = 1700, STR_HIRE_MECHANIC = 1701, @@ -694,44 +969,45 @@ enum { STR_SACK_STAFF = 1709, STR_YES = 1710, STR_FIRE_STAFF_ID = 1711, - + STR_STAFF_OPTION_SWEEP_FOOTPATHS = 1712, + STR_STAFF_OPTION_WATER_GARDENS = 1713, + STR_STAFF_OPTION_EMPTY_LITTER = 1714, + STR_STAFF_OPTION_MOW_GRASS = 1715, STR_INVALID_NAME_FOR_PARK = 1716, STR_CANT_RENAME_PARK = 1717, STR_PARK_NAME = 1718, STR_ENTER_PARK_NAME = 1719, - STR_NAME_PARK_TIP = 1720, STR_PARK_CLOSED = 1721, STR_PARK_OPEN = 1722, - STR_CANT_OPEN_PARK = 1723, STR_CANT_CLOSE_PARK = 1724, + STR_CANT_BUY_LAND = 1725, STR_LAND_NOT_FOR_SALE = 1726, STR_CONSTRUCTION_RIGHTS_NOT_FOR_SALE = 1727, - + STR_CANT_BUY_CONSTRUCTION_RIGHTS_HERE = 1728, STR_LAND_NOT_OWNED_BY_PARK = 1729, - + STR_BANNER_TEXT_CLOSED = 1730, STR_BANNER_TEXT_FORMAT = 1731, - STR_RIDE_CONSTRUCTION_BUILD = 1732, STR_RIDE_CONSTRUCTION_MODE = 1733, - STR_NUMBER_OF_LAPS = 1734, STR_NUMBER_OF_LAPS_TIP = 1735, - + STR_RIDE_MODE_COUNT_VALUE = 1736, + STR_MAPGEN_COMMA16 = 1737, STR_CANT_CHANGE_NUMBER_OF_LAPS = 1738, STR_RACE_WON_BY_GUEST = 1739, STR_RACE_WON_BY = 1740, - STR_NOT_YET_CONSTRUCTED = 1741, - STR_MAX_PEOPLE_ON_RIDE = 1742, STR_MAX_PEOPLE_ON_RIDE_TIP = 1743, - +// STR_1744 :{POP16}{POP16}{POP16}{POP16}{POP16}{POP16}{POP16}{POP16}{POP16}{COMMA16} +// STR_1745 :{COMMA16} STR_CANT_CHANGE_THIS = 1746, STR_TIME_LIMIT = 1747, STR_TIME_LIMIT_TIP = 1748, - + STR_RIDE_MODE_TIME_LIMIT_VALUE = 1749, +// STR_1750 :{DURATION} STR_CANT_CHANGE_TIME_LIMIT = 1751, STR_INDIVIDUAL_GUESTS_TIP = 1752, STR_SUMMARISED_GUESTS_TIP = 1753, @@ -739,12 +1015,10 @@ enum { STR_FORMAT_NUM_GUESTS_SINGULAR = 1755, STR_ADMISSION_PRICE = 1756, STR_RELIABILITY_LABEL_1757 = 1757, - STR_RIDE_CONSTRUCTION_BUILD_MODE = 1758, STR_RIDE_CONSTRUCTION_MOVE_MODE = 1759, STR_RIDE_CONSTRUCTION_FILL_IN_MODE = 1760, STR_RIDE_CONSTRUCTION_BUILD_MAZE_IN_THIS_DIRECTION_TIP = 1761, - STR_WATERFALLS = 1762, STR_RAPIDS = 1763, STR_LOG_BUMPS = 1764, @@ -754,15 +1028,25 @@ enum { STR_CANT_CHANGE_NUMBER_OF_SWINGS = 1768, STR_NUMBER_OF_SWINGS = 1769, STR_NUMBER_OF_SWINGS_TIP = 1770, - + STR_RIDE_MODE_NUMBER_OF_SWINGS_VALUE = 1771, +// STR_1772 :{COMMA16} STR_ONLY_ONE_ON_RIDE_PHOTO_PER_RIDE = 1773, STR_ONLY_ONE_CABLE_LIFT_HILL_PER_RIDE = 1774, - - STR_OFF = 1775, - STR_ON = 1776, + STR_OPTIONS_RIDE_MUSIC_OFF = 1775, + STR_OPTIONS_RIDE_MUSIC_ON = 1776, STR_RIDE_MUSIC = 1777, STR_SCROLLING_SIGN_TEXT = 1778, - + STR_STAFF_OPTION_COSTUME_PANDA = 1779, + STR_STAFF_OPTION_COSTUME_TIGER = 1780, + STR_STAFF_OPTION_COSTUME_ELEPHANT = 1781, + STR_STAFF_OPTION_COSTUME_ROMAN = 1782, + STR_STAFF_OPTION_COSTUME_GORILLA = 1783, + STR_STAFF_OPTION_COSTUME_SNOWMAN = 1784, + STR_STAFF_OPTION_COSTUME_KNIGHT = 1785, + STR_STAFF_OPTION_COSTUME_ASTRONAUT = 1786, + STR_STAFF_OPTION_COSTUME_BANDIT = 1787, + STR_STAFF_OPTION_COSTUME_SHERIFF = 1788, + STR_STAFF_OPTION_COSTUME_PIRATE = 1789, STR_UNIFORM_COLOUR_TIP = 1790, STR_UNIFORM_COLOUR = 1791, STR_RESPONDING_TO_RIDE_BREAKDOWN_CALL = 1792, @@ -770,42 +1054,35 @@ enum { STR_FIXING_RIDE = 1794, STR_ANSWERING_RADIO_CALL = 1795, STR_HAS_BROKEN_DOWN_AND_REQUIRES_FIXING = 1796, - +// STR_1797 :This option cannot be changed for this ride STR_WHIRLPOOL = 1798, - - STR_SAFETY_CUT_OUT = 1800, - STR_RESTRAINTS_STUCK_CLOSED = 1801, - STR_RESTRAINTS_STUCK_OPEN = 1802, - STR_DOORS_STUCK_CLOSED = 1803, - STR_DOORS_STUCK_OPEN = 1804, - STR_VEHICLE_MALFUNCTION = 1805, - STR_BRAKES_FAILURE = 1806, - STR_CONTROL_FAILURE = 1807, - + STR_RIDE_SECONDARY_PRICE_VALUE = 1799, + STR_RIDE_BREAKDOWN_SAFETY_CUT_OUT = 1800, + STR_RIDE_BREAKDOWN_RESTRAINTS_STUCK_CLOSED = 1801, + STR_RIDE_BREAKDOWN_RESTRAINTS_STUCK_OPEN = 1802, + STR_RIDE_BREAKDOWN_DOORS_STUCK_CLOSED = 1803, + STR_RIDE_BREAKDOWN_DOORS_STUCK_OPEN = 1804, + STR_RIDE_BREAKDOWN_VEHICLE_MALFUNCTION = 1805, + STR_RIDE_BREAKDOWN_BRAKES_FAILURE = 1806, + STR_RIDE_BREAKDOWN_CONTROL_FAILURE = 1807, STR_LAST_BREAKDOWN = 1808, STR_CURRENT_BREAKDOWN = 1809, - STR_CARRYING = 1810, STR_CANT_BUILD_PARK_ENTRANCE_HERE = 1811, - STR_STRING_DEFINED_TOOLTIP = 1812, - STR_MISCELLANEOUS = 1813, - STR_ACTIONS = 1814, - STR_THOUGHTS = STR_ACTIONS + 1, + STR_THOUGHTS = 1815, STR_INFORMATION_TYPE_TIP = 1816, STR_GUESTS_COUNT_COMMA_SEP = 1817, STR_ALL_GUESTS = 1818, STR_ALL_GUESTS_SUMMARISED = 1819, STR_GUESTS_FILTER = 1820, - STR_GUESTS_FILTER_THINKING = STR_GUESTS_FILTER + 1, - STR_GUESTS_FILTER_THINKING_ABOUT = STR_GUESTS_FILTER + 2, - + STR_GUESTS_FILTER_THINKING = 1821, + STR_GUESTS_FILTER_THINKING_ABOUT = 1822, STR_SHOW_GUESTS_THOUGHTS_ABOUT_THIS_RIDE_ATTRACTION_TIP = 1823, STR_SHOW_GUESTS_ON_THIS_RIDE_ATTRACTION_TIP = 1824, STR_SHOW_GUESTS_QUEUING_FOR_THIS_RIDE_ATTRACTION_TIP = 1825, - STR_STATUS = 1826, STR_POPULARITY = 1827, STR_SATISFACTION = 1828, @@ -825,20 +1102,20 @@ enum { STR_GUESTS_FAVOURITE_LABEL = 1842, STR_GUESTS_FAVOURITE_PLURAL_LABEL = 1843, STR_RIDE_LIST_INFORMATION_TYPE_TIP = 1844, - STR_NUM_GUESTS = 1846, - +// STR_1845 :{MONTHYEAR} // Used in window_game_bottom_toolbar_onpaint + STR_BOTTOM_TOOLBAR_NUM_GUESTS_STABLE = 1846, + STR_BOTTOM_TOOLBAR_NUM_GUESTS_DECREASE = 1847, + STR_BOTTOM_TOOLBAR_NUM_GUESTS_INCREASE = 1848, STR_PLAY_MUSIC = 1849, STR_SELECT_MUSIC_TIP = 1850, STR_RUNNING_COST_PER_HOUR = 1851, STR_RUNNING_COST_UNKNOWN = 1852, - STR_BUILT_THIS_YEAR = 1853, - STR_BUILT_LAST_YEAR = 1854, - STR_BUILT_YEARS_AGO = 1855, - + STR_BUILT_THIS_YEAR = 1853, + STR_BUILT_LAST_YEAR = 1854, + STR_BUILT_YEARS_AGO = 1855, STR_PROFIT_PER_ITEM_SOLD = 1856, STR_LOSS_PER_ITEM_SOLD = 1857, STR_COST_PER_MONTH = 1858, - STR_HANDYMAN_PLURAL = 1859, STR_MECHANIC_PLURAL = 1860, STR_SECURITY_GUARD_PLURAL = 1861, @@ -851,14 +1128,14 @@ enum { STR_CANT_CHANGE_NUMBER_OF_ROTATIONS = 1868, STR_NUMBER_OF_ROTATIONS = 1869, STR_NUMBER_OF_ROTATIONS_TIP = 1870, - + STR_ARG18_COMMA16 = 1871, // Should probably be in RIDE domain + STR_COMMA16 = 1872, // Unused STR_INCOME_PER_HOUR = 1873, STR_PROFIT_PER_HOUR = 1874, STR_GUEST_ITEM_FORMAT = 1875, STR_INSPECT_RIDES = 1876, STR_FIX_RIDES = 1877, STR_INSPECTION = 1878, - STR_EVERY_10_MINUTES = 1879, STR_EVERY_20_MINUTES = 1880, STR_EVERY_30_MINUTES = 1881, @@ -866,16 +1143,14 @@ enum { STR_EVERY_HOUR = 1883, STR_EVERY_2_HOURS = 1884, STR_NEVER = 1885, - STR_INSPECTING_RIDE = 1886, - STR_TIME_SINCE_LAST_INSPECTION_MINUTES = 1887, STR_TIME_SINCE_LAST_INSPECTION_MORE_THAN_4_HOURS = 1888, STR_DOWN_TIME_LABEL_1889 = 1889, STR_SELECT_HOW_OFTEN_A_MECHANIC_SHOULD_CHECK_THIS_RIDE = 1890, - STR_NO_THING_IN_PARK_YET = 1891, - +// STR_1892 : +// STR_1893 : STR_ITEMS_SOLD = 1894, STR_BUILD_RIDE_TIP = 1895, STR_FINANCES_SUMMARY_EXPENDITURE_INCOME = 1896, @@ -893,23 +1168,22 @@ enum { STR_FINANCES_SUMMARY_MARKETING = 1908, STR_FINANCES_SUMMARY_RESEARCH = 1909, STR_FINANCES_SUMMARY_LOAN_INTEREST = 1910, - STR_FINANCES_SUMMARY_AT_X_PER_YEAR = 1911, STR_FINANCES_SUMMARY_MONTH_HEADING = 1912, STR_FINANCES_SUMMARY_INCOME_VALUE = 1913, STR_FINANCES_SUMMARY_EXPENDITURE_VALUE = 1914, STR_FINANCES_SUMMARY_LOSS_VALUE = 1915, STR_FINANCES_SUMMARY_LOAN = 1916, - + STR_FINANCES_SUMMARY_LOAN_VALUE = 1917, STR_CANT_BORROW_ANY_MORE_MONEY = 1918, STR_NOT_ENOUGH_CASH_AVAILABLE = 1919, STR_CANT_PAY_BACK_LOAN = 1920, - STR_START_NEW_GAME_TIP = 1921, STR_CONTINUE_SAVED_GAME_TIP = 1922, STR_SHOW_TUTORIAL_TIP = 1923, STR_EXIT = 1924, - + STR_ERR_CANT_PLACE_PERSON_HERE = 1925, +// STR_1926 :{SMALLFONT} // Used in window_game_bottom_toolbar_onpaint and window_news_onscrollpaint STR_RIDE_IS_BROKEN_DOWN = 1927, STR_RIDE_HAS_CRASHED = 1928, STR_RIDE_IS_STILL_NOT_FIXED = 1929, @@ -938,12 +1212,39 @@ enum { STR_PROFIT_GRAPH = 1952, STR_MARKETING = 1953, STR_RESEARCH_FUNDING = 1954, - STR_NUMBER_OF_CIRCUITS = 1955, STR_NUMBER_OF_CIRCUITS_TIP = 1956, - - STR_ON_RIDE_PHOTO_PRICE = 1963, - + STR_NUMBER_OF_CIRCUITS_VALUE = 1957, +// STR_1958 :{COMMA16} +// STR_1959 :Can't change number of circuits... + STR_SHOP_ITEM_PRICE_LABEL_BALLOON = 1960, + STR_SHOP_ITEM_PRICE_LABEL_CUDDLY_TOY = 1961, + STR_SHOP_ITEM_PRICE_LABEL_PARK_MAP = 1962, + STR_SHOP_ITEM_PRICE_LABEL_ON_RIDE_PHOTO = 1963, + STR_SHOP_ITEM_PRICE_LABEL_UMBRELLA = 1964, + STR_SHOP_ITEM_PRICE_LABEL_DRINK = 1965, + STR_SHOP_ITEM_PRICE_LABEL_BURGER = 1966, + STR_SHOP_ITEM_PRICE_LABEL_CHIPS = 1967, + STR_SHOP_ITEM_PRICE_LABEL_ICE_CREAM = 1968, + STR_SHOP_ITEM_PRICE_LABEL_CANDYFLOSS = 1969, + STR_SHOP_ITEM_PRICE_LABEL_EMPTY_CAN = 1970, // Empty + STR_SHOP_ITEM_PRICE_LABEL_RUBBISH = 1971, // Empty + STR_SHOP_ITEM_PRICE_LABEL_EMPTY_BURGER_BOX = 1972, // Empty + STR_SHOP_ITEM_PRICE_LABEL_PIZZA = 1973, + STR_SHOP_ITEM_PRICE_LABEL_VOUCHER = 1974, // Empty + STR_SHOP_ITEM_PRICE_LABEL_POPCORN = 1975, + STR_SHOP_ITEM_PRICE_LABEL_HOT_DOG = 1976, + STR_SHOP_ITEM_PRICE_LABEL_TENTACLE = 1977, + STR_SHOP_ITEM_PRICE_LABEL_HAT = 1978, + STR_SHOP_ITEM_PRICE_LABEL_TOFFEE_APPLE = 1979, + STR_SHOP_ITEM_PRICE_LABEL_T_SHIRT = 1981, + STR_SHOP_ITEM_PRICE_LABEL_DOUGHNUT = 1981, + STR_SHOP_ITEM_PRICE_LABEL_COFFEE = 1982, + STR_SHOP_ITEM_PRICE_LABEL_EMPTY_CUP = 1983, // Empty + STR_SHOP_ITEM_PRICE_LABEL_FRIED_CHICKEN = 1984, + STR_SHOP_ITEM_PRICE_LABEL_LEMONADE = 1985, + STR_SHOP_ITEM_PRICE_LABEL_EMPTY_BOX = 1986, // Empty + STR_SHOP_ITEM_PRICE_LABEL_EMPTY_BOTTLE = 1987, // Empty STR_SHOP_ITEM_SINGULAR_BALLOON = 1988, STR_SHOP_ITEM_SINGULAR_CUDDLY_TOY = 1989, STR_SHOP_ITEM_SINGULAR_PARK_MAP = 1990, @@ -972,7 +1273,6 @@ enum { STR_SHOP_ITEM_SINGULAR_LEMONADE = 2013, STR_SHOP_ITEM_SINGULAR_EMPTY_BOX = 2014, STR_SHOP_ITEM_SINGULAR_EMPTY_BOTTLE = 2015, - STR_SHOP_ITEM_PLURAL_BALLOON = 2016, STR_SHOP_ITEM_PLURAL_CUDDLY_TOY = 2017, STR_SHOP_ITEM_PLURAL_PARK_MAP = 2018, @@ -1001,7 +1301,6 @@ enum { STR_SHOP_ITEM_PLURAL_LEMONADE = 2041, STR_SHOP_ITEM_PLURAL_EMPTY_BOX = 2042, STR_SHOP_ITEM_PLURAL_EMPTY_BOTTLE = 2043, - STR_SHOP_ITEM_INDEFINITE_BALLOON = 2044, STR_SHOP_ITEM_INDEFINITE_CUDDLY_TOY = 2045, STR_SHOP_ITEM_INDEFINITE_PARK_MAP = 2046, @@ -1030,7 +1329,6 @@ enum { STR_SHOP_ITEM_INDEFINITE_LEMONADE = 2069, STR_SHOP_ITEM_INDEFINITE_EMPTY_BOX = 2070, STR_SHOP_ITEM_INDEFINITE_EMPTY_BOTTLE = 2071, - STR_SHOP_ITEM_DISPLAY_BALLOON = 2072, STR_SHOP_ITEM_DISPLAY_CUDDLY_TOY = 2073, STR_SHOP_ITEM_DISPLAY_PARK_MAP = 2074, @@ -1059,7 +1357,31 @@ enum { STR_SHOP_ITEM_DISPLAY_LEMONADE = 2097, STR_SHOP_ITEM_DISPLAY_EMPTY_BOX = 2098, STR_SHOP_ITEM_DISPLAY_EMPTY_BOTTLE = 2099, - + STR_SHOP_ITEM_PRICE_LABEL_ON_RIDE_PHOTO2 = 2100, // Unused + STR_SHOP_ITEM_PRICE_LABEL_ON_RIDE_PHOTO3 = 2101, // Unused + STR_SHOP_ITEM_PRICE_LABEL_ON_RIDE_PHOTO4 = 2102, // Unused + STR_SHOP_ITEM_PRICE_LABEL_PRETZEL = 2103, + STR_SHOP_ITEM_PRICE_LABEL_HOT_CHOCOLATE = 2104, + STR_SHOP_ITEM_PRICE_LABEL_ICED_TEA = 2105, + STR_SHOP_ITEM_PRICE_LABEL_FUNNEL_CAKE = 2106, + STR_SHOP_ITEM_PRICE_LABEL_SUNGLASSES = 2107, + STR_SHOP_ITEM_PRICE_LABEL_BEEF_NOODLES = 2108, + STR_SHOP_ITEM_PRICE_LABEL_FRIED_RICE_NOODLES = 2109, + STR_SHOP_ITEM_PRICE_LABEL_WONTON_SOUP = 2110, + STR_SHOP_ITEM_PRICE_LABEL_MEATBALL_SOUP = 2111, + STR_SHOP_ITEM_PRICE_LABEL_FRUIT_JUICE = 2112, + STR_SHOP_ITEM_PRICE_LABEL_SOYBEAN_MILK = 2113, + STR_SHOP_ITEM_PRICE_LABEL_SUJONGKWA = 2114, + STR_SHOP_ITEM_PRICE_LABEL_SUB_SANDWICH = 2115, + STR_SHOP_ITEM_PRICE_LABEL_COOKIE = 2116, + STR_SHOP_ITEM_PRICE_LABEL_EMPTY_BOWL_RED = 2117, // Empty + STR_SHOP_ITEM_PRICE_LABEL_EMPTY_DRINK_CARTON = 2118, // Empty + STR_SHOP_ITEM_PRICE_LABEL_EMPTY_JUICE_CUP = 2119, // Empty + STR_SHOP_ITEM_PRICE_LABEL_ROAST_SAUSAGE = 2120, + STR_SHOP_ITEM_PRICE_LABEL_EMPTY_BOWL_BLUE = 2121, // Empty + STR_SHOP_ITEM_SINGULAR_ON_RIDE_PHOTO2 = 2122, // Unused + STR_SHOP_ITEM_SINGULAR_ON_RIDE_PHOTO3 = 2123, // Unused + STR_SHOP_ITEM_SINGULAR_ON_RIDE_PHOTO4 = 2124, // Unused STR_SHOP_ITEM_SINGULAR_PRETZEL = 2125, STR_SHOP_ITEM_SINGULAR_HOT_CHOCOLATE = 2126, STR_SHOP_ITEM_SINGULAR_ICED_TEA = 2127, @@ -1079,7 +1401,9 @@ enum { STR_SHOP_ITEM_SINGULAR_EMPTY_JUICE_CUP = 2141, STR_SHOP_ITEM_SINGULAR_ROAST_SAUSAGE = 2142, STR_SHOP_ITEM_SINGULAR_EMPTY_BOWL_BLUE = 2143, - + STR_SHOP_ITEM_PLURAL_ON_RIDE_PHOTO2 = 2144, // Unused + STR_SHOP_ITEM_PLURAL_ON_RIDE_PHOTO3 = 2145, // Unused + STR_SHOP_ITEM_PLURAL_ON_RIDE_PHOTO4 = 2146, // Unused STR_SHOP_ITEM_PLURAL_PRETZEL = 2147, STR_SHOP_ITEM_PLURAL_HOT_CHOCOLATE = 2148, STR_SHOP_ITEM_PLURAL_ICED_TEA = 2149, @@ -1099,10 +1423,9 @@ enum { STR_SHOP_ITEM_PLURAL_EMPTY_JUICE_CUP = 2163, STR_SHOP_ITEM_PLURAL_ROAST_SAUSAGE = 2164, STR_SHOP_ITEM_PLURAL_EMPTY_BOWL_BLUE = 2165, - - STR_SHOP_ITEM_INDEFINITE_PHOTO2 = 2166, - STR_SHOP_ITEM_INDEFINITE_PHOTO3 = 2167, - STR_SHOP_ITEM_INDEFINITE_PHOTO4 = 2168, + STR_SHOP_ITEM_INDEFINITE_PHOTO2 = 2166, // Unused + STR_SHOP_ITEM_INDEFINITE_PHOTO3 = 2167, // Unused + STR_SHOP_ITEM_INDEFINITE_PHOTO4 = 2168, // Unused STR_SHOP_ITEM_INDEFINITE_PRETZEL = 2169, STR_SHOP_ITEM_INDEFINITE_HOT_CHOCOLATE = 2170, STR_SHOP_ITEM_INDEFINITE_ICED_TEA = 2171, @@ -1122,7 +1445,9 @@ enum { STR_SHOP_ITEM_INDEFINITE_EMPTY_JUICE_CUP = 2185, STR_SHOP_ITEM_INDEFINITE_ROAST_SAUSAGE = 2186, STR_SHOP_ITEM_INDEFINITE_EMPTY_BOWL_BLUE = 2187, - + STR_SHOP_ITEM_DISPLAY_PHOTO2 = 2188, // Unused + STR_SHOP_ITEM_DISPLAY_PHOTO3 = 2189, // Unused + STR_SHOP_ITEM_DISPLAY_PHOTO4 = 2190, // Unused STR_SHOP_ITEM_DISPLAY_PRETZEL = 2191, STR_SHOP_ITEM_DISPLAY_HOT_CHOCOLATE = 2192, STR_SHOP_ITEM_DISPLAY_ICED_TEA = 2193, @@ -1142,69 +1467,60 @@ enum { STR_SHOP_ITEM_DISPLAY_EMPTY_JUICE_CUP = 2207, STR_SHOP_ITEM_DISPLAY_ROAST_SAUSAGE = 2208, STR_SHOP_ITEM_DISPLAY_EMPTY_BOWL_BLUE = 2209, - STR_STAFF_HANDYMEN_TAB_TIP = 2210, STR_STAFF_MECHANICS_TAB_TIP = 2211, STR_STAFF_SECURITY_TAB_TIP = 2212, STR_STAFF_ENTERTAINERS_TAB_TIP = 2213, - STR_CONSTRUCTION_NOT_POSSIBLE_WHILE_GAME_IS_PAUSED = 2214, - + STR_RIDE_MAP_TIP = 2215, STR_CELSIUS_VALUE = 2216, STR_FAHRENHEIT_VALUE = 2217, - + STR_NEWS_VEHICLE_HAS_STALLED = 2218, STR_X_PEOPLE_DIED_ON_X = 2219, STR_PARK_RATING_LABEL = 2220, STR_PARK_RATING_TIP = 2221, - + STR_GRAPH_LABEL = 2222, STR_GUESTS_IN_PARK_LABEL = 2223, STR_CASH_LABEL = 2224, STR_CASH_NEGATIVE_LABEL = 2225, STR_PARK_VALUE_LABEL = 2226, STR_COMPANY_VALUE_LABEL = 2227, STR_LAST_MONTH_PROFIT_FROM_FOOD_DRINK_MERCHANDISE_SALES_LABEL = 2228, - STR_SLOPE_UP_TO_VERTICAL = 2229, STR_VERTICAL_TRACK = 2230, STR_HOLDING_BRAKE_FOR_DROP = 2231, STR_CABLE_LIFT_HILL = 2232, - STR_PARK_INFORMATION_TIP = 2233, STR_RECENT_MESSAGES = 2234, - - STR_MONTH_JANUARY = 2236, - STR_MONTH_FEBRUARY = STR_MONTH_JANUARY + 1, - STR_MONTH_MARCH = STR_MONTH_JANUARY + 2, - STR_MONTH_APRIL = STR_MONTH_JANUARY + 3, - STR_MONTH_MAY = STR_MONTH_JANUARY + 4, - STR_MONTH_JUNE = STR_MONTH_JANUARY + 5, - STR_MONTH_JULY = STR_MONTH_JANUARY + 6, - STR_MONTH_AUGUST = STR_MONTH_JANUARY + 7, - STR_MONTH_SEPTEMBER = STR_MONTH_JANUARY + 8, - STR_MONTH_OCTOBER = STR_MONTH_JANUARY + 9, - STR_MONTH_NOVEMBER = STR_MONTH_JANUARY + 10, - STR_MONTH_DECEMBER = STR_MONTH_JANUARY + 11, - + STR_NEWS_DATE_FORMAT = 2235, + STR_MONTH_JANUARY = 2236, // unused + STR_MONTH_FEBRUARY = 2237, // unused + STR_MONTH_MARCH = 2238, + STR_MONTH_APRIL = 2239, + STR_MONTH_MAY = 2240, + STR_MONTH_JUNE = 2241, + STR_MONTH_JULY = 2242, + STR_MONTH_AUGUST = 2243, + STR_MONTH_SEPTEMBER = 2244, + STR_MONTH_OCTOBER = 2245, + STR_MONTH_NOVEMBER = 2246, // unused + STR_MONTH_DECEMBER = 2247, // unused STR_CANT_DEMOLISH_RIDE = 2248, - STR_NEWS_ITEM_RESEARCH_NEW_RIDE_AVAILABLE = 2249, STR_NEWS_ITEM_RESEARCH_NEW_SCENERY_SET_AVAILABLE = 2250, - +// STR_2251 :Can only be built on paths! STR_CAN_ONLY_BE_BUILT_ACROSS_PATHS = 2252, - - STR_RESEARCH_TRANSPORT_RIDES = 2253, - STR_RESEARCH_GENTLE_RIDES = 2254, - STR_RESEARCH_ROLLER_COASTERS = 2255, - STR_RESEARCH_THRILL_RIDES = 2256, - STR_RESEARCH_WATER_RIDES = 2257, - STR_RESEARCH_SHOPS_AND_STALLS = 2258, - STR_RESEARCH_SCENERY_AND_THEMING = 2259, - - STR_NO_FUNDING = 2260, - STR_MINIMUM_FUNDING = 2261, - STR_NORMAL_FUNDING = 2262, - STR_MAXIMUM_FUNDING = 2263, - + STR_RESEARCH_NEW_TRANSPORT_RIDES = 2253, + STR_RESEARCH_NEW_GENTLE_RIDES = 2254, + STR_RESEARCH_NEW_ROLLER_COASTERS = 2255, + STR_RESEARCH_NEW_THRILL_RIDES = 2256, + STR_RESEARCH_NEW_WATER_RIDES = 2257, + STR_RESEARCH_NEW_SHOPS_AND_STALLS = 2258, + STR_RESEARCH_NEW_SCENERY_AND_THEMING = 2259, + STR_RESEARCH_FUNDING_NONE = 2260, + STR_RESEARCH_FUNDING_MINIMUM = 2261, + STR_RESEARCH_FUNDING_NORMAL = 2262, + STR_RESEARCH_FUNDING_MAXIMUM = 2263, STR_RESEARCH_FUNDING_ = 2264, STR_RESEARCH_COST_PER_MONTH = 2265, STR_RESEARCH_PRIORITIES = 2266, @@ -1215,48 +1531,59 @@ enum { STR_RESEARCH_EXPECTED_LABEL = 2271, STR_RESEARCH_RIDE_LABEL = 2272, STR_RESEARCH_SCENERY_LABEL = 2273, - STR_RESEARCH_SHOW_DETAILS_TIP = 2274, STR_FINANCES_RESEARCH_TIP = 2275, STR_RESEARCH_AND_DEVELOPMENT_TIP = 2276, STR_RESEARCH_UNKNOWN = 2277, - - STR_TRANSPORT_RIDE = 2278, - STR_GENTLE_RIDE = 2279, - STR_ROLLER_COASTER = 2280, - STR_THRILL_RIDE = 2281, - STR_WATER_RIDE = 2282, - STR_SHOP_STALL = 2283, - STR_SCENERY_THEMEING = 2284, - - STR_INITIAL_RESEARCH = 2285, - STR_DESIGNING = 2286, - STR_COMPLETING_DESIGN = 2287, - STR_UNKNOWN = 2288, - + STR_RESEARCH_CATEGORY_TRANSPORT = 2278, + STR_RESEARCH_CATEGORY_GENTLE = 2279, + STR_RESEARCH_CATEGORY_ROLLERCOASTER = 2280, + STR_RESEARCH_CATEGORY_THRILL = 2281, + STR_RESEARCH_CATEGORY_WATER = 2282, + STR_RESEARCH_CATEGORY_SHOP = 2283, + STR_RESEARCH_CATEGORY_SCENERYSET = 2284, + STR_RESEARCH_STAGE_INITIAL_RESEARCH = 2285, + STR_RESEARCH_STAGE_DESIGNING = 2286, + STR_RESEARCH_STAGE_COMPLETING_DESIGN = 2287, + STR_RESEARCH_STAGE_UNKNOWN = 2288, + STR_RESEARCH_EXPECTED_FORMAT = 2289, +// STR_2290 : STR_SELECT_SCENARIO = 2291, - + STR_GUEST_LABEL_RIDES_BEEN_ON = 2292, STR_NOTHING = 2293, STR_CHANGE_BASE_LAND_TIP = 2294, STR_CHANGE_VERTICAL_LAND_TIP = 2295, - + STR_GUEST_EXPENSES_ENTRANCE_FEE = 2296, + STR_GUEST_EXPENSES_RIDE = 2297, + STR_GUEST_EXPENSES_RIDE_PLURAL = 2298, + STR_GUEST_EXPENSES_FOOD = 2299, + STR_GUEST_EXPENSES_FOOD_PLURAL = 2300, + STR_GUEST_EXPENSES_DRINK = 2301, + STR_GUEST_EXPENSES_DRINK_PLURAL = 2302, + STR_GUEST_EXPENSES_SOUVENIR = 2303, + STR_GUEST_EXPENSES_SOUVENIR_PLURAL = 2304, +// STR_2305 :Track design files +// STR_2306 :Save track design STR_SELECT_DESIGN = 2307, STR_TRACK_DESIGNS = 2308, + STR_TRACK_DESIGN_INSTALL_WINDOW_TITLE = 2309, STR_BUILD_CUSTOM_DESIGN = 2310, - STR_TRACK_LIST_EXCITEMENT_RATING = 2311, STR_TRACK_LIST_INTENSITY_RATING = 2312, STR_TRACK_LIST_NAUSEA_RATING = 2313, STR_TRACK_LIST_RIDE_LENGTH = 2314, STR_TRACK_LIST_COST_AROUND = 2315, STR_TRACK_LIST_SPACE_REQUIRED = 2316, - +// STR_2317 : +// STR_2318 : +// STR_2319 : +// STR_2320 : STR_NUMBER_OF_RIDES_LABEL = 2321, STR_STAFF_LABEL = 2322, STR_PARK_SIZE_METRIC_LABEL = 2323, STR_PARK_SIZE_IMPERIAL_LABEL = 2324, - SPR_BUY_LAND_RIGHTS_TIP = 2325, - SPR_BUY_CONSTRUCTION_RIGHTS_TIP = 2326, + STR_BUY_LAND_RIGHTS_TIP = 2325, + STR_BUY_CONSTRUCTION_RIGHTS_TIP = 2326, STR_OPTIONS = 2327, STR_CURRENCY = 2328, STR_DISTANCE_AND_SPEED = 2329, @@ -1276,12 +1603,19 @@ enum { STR_EUROS = 2343, STR_IMPERIAL = 2344, STR_METRIC = 2345, - STR_DISPLAY = 2346, - + STR_DISPLAY = 2346, // Unused STR_NEWS_ITEM_GUEST_DROWNED = 2347, - STR_STAFF_STATS_TIP = 2348, - + STR_STAFF_STAT_WAGES = 2349, + STR_STAFF_STAT_EMPLOYED_FOR = 2350, + STR_STAFF_STAT_LAWNS_MOWN = 2351, + STR_STAFF_STAT_GARDENS_WATERED = 2352, + STR_STAFF_STAT_LITTER_SWEPT = 2353, + STR_STAFF_STAT_BINS_EMPTIED = 2354, + STR_STAFF_STAT_RIDES_FIXED = 2355, + STR_STAFF_STAT_RIDES_INSPECTED = 2356, +// STR_2357 :House +// STR_2358 :Units //STR_UNITS = 2358, STR_REAL_VALUES = 2359, STR_DISPLAY_RESOLUTION = 2360, @@ -1292,37 +1626,35 @@ enum { STR_BANK_REFUSES_TO_INCREASE_LOAN = 2365, STR_CELSIUS = 2366, STR_FAHRENHEIT = 2367, - //STR_NONE = 2368, - STR_LOW = 2369, - STR_AVERAGE = 2370, - STR_HIGH = 2371, + STR_PEEP_STAT_NAUSEA_TOLERANCE_NONE = 2368, + STR_PEEP_STAT_NAUSEA_TOLERANCE_LOW = 2369, + STR_PEEP_STAT_NAUSEA_TOLERANCE_AVERAGE = 2370, + STR_PEEP_STAT_NAUSEA_TOLERANCE_HIGH = 2371, STR_RATING_LOW = 2372, STR_RATING_MEDIUM = 2373, STR_RATING_HIGH = 2374, STR_RATING_VERY_HIGH = 2375, STR_RATING_EXTREME = 2376, STR_RATING_ULTRA_EXTREME = 2377, - STR_ADJUST_SMALLER_LAND_TIP = 2378, STR_ADJUST_LARGER_LAND_TIP = 2379, STR_ADJUST_SMALLER_WATER_TIP = 2380, STR_ADJUST_LARGER_WATER_TIP = 2381, STR_LAND = 2382, STR_WATER = 2383, - + STR_OBJECTIVE_LABEL = 2384, STR_OBJECTIVE_NONE = 2385, STR_OBJECTIVE_GUESTS_BY = STR_OBJECTIVE_NONE + 1, STR_OBJECTIVE_PARK_VALUE_BY = STR_OBJECTIVE_NONE + 2, STR_OBJECTIVE_HAVE_FUN = STR_OBJECTIVE_NONE + 3, STR_OBJECTIVE_BUILD_THE_BEST = STR_OBJECTIVE_NONE + 4, STR_OBJECTIVE_10_ROLLERCOASTERS = STR_OBJECTIVE_NONE + 5, - STR_OBJECTIVE_GUESTS_AND_rating = STR_OBJECTIVE_NONE + 6, + STR_OBJECTIVE_GUESTS_AND_RATING = STR_OBJECTIVE_NONE + 6, STR_OBJECTIVE_MONTHLY_RIDE_INCOME = STR_OBJECTIVE_NONE + 7, STR_OBJECTIVE_10_ROLLERCOASTERS_LENGTH = STR_OBJECTIVE_NONE + 8, STR_OBJECTIVE_FINISH_5_ROLLERCOASTERS = STR_OBJECTIVE_NONE + 9, STR_OBJECTIVE_REPLAY_LOAN_AND_PARK_VALUE = STR_OBJECTIVE_NONE + 10, STR_OBJECTIVE_MONTHLY_FOOD_INCOME = STR_OBJECTIVE_NONE + 11, - STR_OBJECTIVE_DROPDOWN_NONE = 2397, STR_OBJECTIVE_DROPDOWN_NUMBER_OF_GUESTS_AT_A_GIVEN_DATE = STR_OBJECTIVE_DROPDOWN_NONE + 1, STR_OBJECTIVE_DROPDOWN_PARK_VALUE_AT_A_GIVEN_DATE = STR_OBJECTIVE_DROPDOWN_NONE + 2, @@ -1335,7 +1667,6 @@ enum { STR_OBJECTIVE_DROPDOWN_FINISH_BUILDING_5_ROLLER_COASTERS = STR_OBJECTIVE_DROPDOWN_NONE + 9, STR_OBJECTIVE_DROPDOWN_REPAY_LOAN_AND_ACHIEVE_A_GIVEN_PARK_VALUE = STR_OBJECTIVE_DROPDOWN_NONE + 10, STR_OBJECTIVE_DROPDOWN_MONTHLY_PROFIT_FROM_FOOD_MERCHANDISE = STR_OBJECTIVE_DROPDOWN_NONE + 11, - STR_MARKETING_CAMPAIGNS_IN_OPERATION = 2409, STR_MARKETING_CAMPAGINS_NONE = 2410, STR_MARKETING_CAMPAIGNS_AVAILABLE = 2411, @@ -1344,48 +1675,51 @@ enum { STR_MARKETING_NOT_SELECTED = 2414, STR_MARKETING_RIDE = 2415, STR_MARKETING_ITEM = 2416, - STR_LENGTH_OF_TIME = 2417, - + STR_PEEP_INVENTORY_VOUCHER_PARK_ENTRY_FREE = 2418, + STR_PEEP_INVENTORY_VOUCHER_RIDE_FREE = 2419, + STR_PEEP_INVENTORY_VOUCHER_PARK_ENTRY_HALF_PRICE = 2420, + STR_PEEP_INVENTORY_VOUCHER_FOOD_OR_DRINK_FREE = 2421, +// STR_2422 :Advertising campaign for {STRINGID} +// STR_2423 :Advertising campaign for {STRINGID} STR_MARKETING_VOUCHERS_FOR_FREE_ENTRY_TO_THE_PARK = 2424, STR_MARKETING_VOUCHERS_FOR_FREE_RIDES_ON_A_PARTICULAR_RIDE = 2425, STR_MARKETING_VOUCHERS_FOR_HALF_PRICE_ENTRY_TO_THE_PARK = 2426, STR_MARKETING_VOUCHERS_FOR_FREE_FOOD_OR_DRINK = 2427, STR_MARKETING_ADVERTISING_CAMPAIGN_FOR_THE_PARK = 2428, STR_MARKETING_ADVERTISING_CAMPAIGN_FOR_A_PARTICULAR_RIDE = 2429, - STR_VOUCHERS_FOR_FREE_ENTRY_TO = 2430, STR_VOUCHERS_FOR_FREE_RIDE_ON = 2431, STR_VOUCHERS_FOR_HALF_PRICE_ENTRY_TO = 2432, STR_VOUCHERS_FOR_FREE = 2433, STR_ADVERTISING_CAMPAIGN_FOR_1 = 2434, STR_ADVERTISING_CAMPAIGN_FOR_2 = 2435, - STR_MARKETING_1_WEEK = 2436, +// STR_2437 : +// STR_2438 : +// STR_2439 : +// STR_2440 : +// STR_2441 : +// STR_2442 : STR_MARKETING_COST_PER_WEEK = 2443, STR_MARKETING_TOTAL_COST = 2444, STR_MARKETING_START_THIS_MARKETING_CAMPAIGN = 2445, - - STR_MARKETING_FINISHED_BASE = 2446, STR_MARKETING_FINISHED_FREE_ENTRY = 2446, STR_MARKETING_FINISHED_FREE_RIDES = 2447, STR_MARKETING_FINISHED_HALF_PRICE_ENTRY = 2448, STR_MARKETING_FINISHED_FREE_RIDE = 2449, STR_MARKETING_FINISHED_PARK_ADS = 2450, STR_MARKETING_FINISHED_RIDE_ADS = 2451, - STR_FINANCES_FINANCIAL_GRAPH_CASH_LESS_LOAN_POSITIVE = 2452, STR_FINANCES_FINANCIAL_GRAPH_CASH_LESS_LOAN_NEGATIVE = 2453, STR_FINANCES_FINANCIAL_GRAPH_CASH_VALUE = 2454, - STR_FINANCES_FINANCIAL_GRAPH_CASH_VALUE_POSITIVE = 2455, - STR_FINANCES_FINANCIAL_GRAPH_CASH_VALUE_NEGATIVE = 2456, - + STR_FINANCES_FINANCIAL_GRAPH_CASH_VALUE_POSITIVE = 2455, // Unused + STR_FINANCES_FINANCIAL_GRAPH_CASH_VALUE_NEGATIVE = 2456, // Unused STR_FINANCES_SHOW_SUMMARY_TAB_TIP = 2457, STR_FINANCES_SHOW_CASH_TAB_TIP = 2458, STR_FINANCES_SHOW_PARK_VALUE_TAB_TIP = 2459, STR_FINANCES_SHOW_WEEKLY_PROFIT_TAB_TIP = 2460, STR_FINANCES_SHOW_MARKETING_TAB_TIP = 2461, - STR_PARK_ENTRANCE_TAB_TIP = 2462, STR_PARK_RATING_TAB_TIP = 2463, STR_PARK_GUESTS_TAB_TIP = 2464, @@ -1393,33 +1727,30 @@ enum { STR_PARK_STATS_TAB_TIP = 2466, STR_PARK_OBJECTIVE_TAB_TIP = 2467, STR_PARK_AWARDS_TAB_TIP = 2468, - STR_SELECT_LEVEL_OF_RESEARCH_AND_DEVELOPMENT = 2469, - STR_RESEARCH_NEW_TRANSPORT_RIDES = 2470, - STR_RESEARCH_NEW_GENTLE_RIDES = 2471, - STR_RESEARCH_NEW_ROLLER_COASTERS = 2472, - STR_RESEARCH_NEW_THRILL_RIDES = 2473, - STR_RESEARCH_NEW_WATER_RIDES = 2474, - STR_RESEARCH_NEW_SHOPS_AND_STALLS = 2475, - STR_RESEARCH_NEW_SCENERY_AND_THEMING = 2476, - + STR_RESEARCH_NEW_TRANSPORT_RIDES_TIP = 2470, + STR_RESEARCH_NEW_GENTLE_RIDES_TIP = 2471, + STR_RESEARCH_NEW_ROLLER_COASTERS_TIP = 2472, + STR_RESEARCH_NEW_THRILL_RIDES_TIP = 2473, + STR_RESEARCH_NEW_WATER_RIDES_TIP = 2474, + STR_RESEARCH_NEW_SHOPS_AND_STALLS_TIP = 2475, + STR_RESEARCH_NEW_SCENERY_AND_THEMING_TIP = 2476, STR_SELECT_OPERATING_MODE = 2477, - STR_SHOW_GRAPH_OF_VELOCITY_AGAINST_TIME_TIP = 2478, STR_SHOW_GRAPH_OF_ALTITUDE_AGAINST_TIME_TIP = 2479, STR_SHOW_GRAPH_OF_VERTICAL_ACCELERATION_AGAINST_TIME_TIP = 2480, STR_SHOW_GRAPH_OF_LATERAL_ACCELERATION_AGAINST_TIME_TIP = 2481, - STR_PROFIT_PER_WEEK_AND_PARK_VALUE_TIP = 2482, STR_FINANCES_WEEKLY_PROFIT_POSITIVE = 2483, STR_FINANCES_WEEKLY_PROFIT_LOSS = 2484, - - STR_CONTROLS = 2485, - STR_GENERAL = 2486, + STR_CONTROLS = 2485, // Unused + STR_GENERAL = 2486, // Unused STR_REAL_NAME = 2487, STR_REAL_NAME_TIP = 2488, STR_HOTKEY = 2489, - +// STR_2490 :Keyboard shortcuts + STR_SHORTCUT_ACTION_RESET = 2491, + STR_SHORTCUT_ACTION_RESET_TIP = 2492, STR_SHORTCUT_CLOSE_TOP_MOST_WINDOW = 2493, STR_SHORTCUT_CLOSE_ALL_FLOATING_WINDOWS = 2494, STR_SHORTCUT_CANCEL_CONSTRUCTION_MODE = 2495, @@ -1452,34 +1783,232 @@ enum { STR_SHORTCUT_SHOW_RECENT_MESSAGES = 2522, STR_SHORTCUT_SHOW_MAP = 2523, STR_SHORTCUT_SCREENSHOT = 2524, - STR_INDIVIDUAL_KEYS_BASE = 2525, - + STR_SHORTCUT_KEY_UNKNOWN = 2525, +// STR_2525 :??? +// STR_2526 :??? +// STR_2527 :??? +// STR_2528 :??? +// STR_2529 :??? +// STR_2530 :??? +// STR_2531 :??? +// STR_2532 :??? +// STR_2533 :Backspace +// STR_2534 :Tab +// STR_2535 :??? +// STR_2536 :??? +// STR_2537 :Clear +// STR_2538 :Return +// STR_2539 :??? +// STR_2540 :??? +// STR_2541 :??? +// STR_2542 :??? +// STR_2543 :Alt/Menu +// STR_2544 :Pause +// STR_2545 :Caps +// STR_2546 :??? +// STR_2547 :??? +// STR_2548 :??? +// STR_2549 :??? +// STR_2550 :??? +// STR_2551 :??? +// STR_2552 :Escape +// STR_2553 :??? +// STR_2554 :??? +// STR_2555 :??? +// STR_2556 :??? +// STR_2557 :Spacebar +// STR_2558 :PgUp +// STR_2559 :PgDn +// STR_2560 :End +// STR_2561 :Home +// STR_2562 :Left +// STR_2563 :Up +// STR_2564 :Right +// STR_2565 :Down +// STR_2566 :Select +// STR_2567 :Print +// STR_2568 :Execute +// STR_2569 :Snapshot +// STR_2570 :Insert +// STR_2571 :Delete +// STR_2572 :Help +// STR_2573 :0 +// STR_2574 :1 +// STR_2575 :2 +// STR_2576 :3 +// STR_2577 :4 +// STR_2578 :5 +// STR_2579 :6 +// STR_2580 :7 +// STR_2581 :8 +// STR_2582 :9 +// STR_2583 :??? +// STR_2584 :??? +// STR_2585 :??? +// STR_2586 :??? +// STR_2587 :??? +// STR_2588 :??? +// STR_2589 :??? +// STR_2590 :A +// STR_2591 :B +// STR_2592 :C +// STR_2593 :D +// STR_2594 :E +// STR_2595 :F +// STR_2596 :G +// STR_2597 :H +// STR_2598 :I +// STR_2599 :J +// STR_2600 :K +// STR_2601 :L +// STR_2602 :M +// STR_2603 :N +// STR_2604 :O +// STR_2605 :P +// STR_2606 :Q +// STR_2607 :R +// STR_2608 :S +// STR_2609 :T +// STR_2610 :U +// STR_2611 :V +// STR_2612 :W +// STR_2613 :X +// STR_2614 :Y +// STR_2615 :Z +// STR_2616 :??? +// STR_2617 :??? +// STR_2618 :Menu +// STR_2619 :??? +// STR_2620 :??? +// STR_2621 :NumPad 0 +// STR_2622 :NumPad 1 +// STR_2623 :NumPad 2 +// STR_2624 :NumPad 3 +// STR_2625 :NumPad 4 +// STR_2626 :NumPad 5 +// STR_2627 :NumPad 6 +// STR_2628 :NumPad 7 +// STR_2629 :NumPad 8 +// STR_2630 :NumPad 9 +// STR_2631 :NumPad * +// STR_2632 :NumPad + +// STR_2633 :??? +// STR_2634 :NumPad - +// STR_2635 :NumPad . +// STR_2636 :NumPad / +// STR_2637 :F1 +// STR_2638 :F2 +// STR_2639 :F3 +// STR_2640 :F4 +// STR_2641 :F5 +// STR_2642 :F6 +// STR_2643 :F7 +// STR_2644 :F8 +// STR_2645 :F9 +// STR_2646 :F10 +// STR_2647 :F11 +// STR_2648 :F12 +// STR_2649 :F13 +// STR_2650 :F14 +// STR_2651 :F15 +// STR_2652 :F16 +// STR_2653 :F17 +// STR_2654 :F18 +// STR_2655 :F19 +// STR_2656 :F20 +// STR_2657 :F21 +// STR_2658 :F22 +// STR_2659 :F23 +// STR_2660 :F24 +// STR_2661 :??? +// STR_2662 :??? +// STR_2663 :??? +// STR_2664 :??? +// STR_2665 :??? +// STR_2666 :??? +// STR_2667 :??? +// STR_2668 :??? +// STR_2669 :NumLock +// STR_2670 :Scroll +// STR_2671 :??? +// STR_2672 :??? +// STR_2673 :??? +// STR_2674 :??? +// STR_2675 :??? +// STR_2676 :??? +// STR_2677 :??? +// STR_2678 :??? +// STR_2679 :??? + STR_RESEARCH_COMPLETED_AL = 2680, STR_CHEAT_5K_MONEY_TIP = 2681, - +// STR_2682 : +// STR_2683 : + STR_CHEAT_LARGE_TRAM_GUESTS_TIP = 2684, + STR_MAPGEN_SIMPLEX_NOISE = 2685, + STR_MAPGEN_SIMPLEX_NOISE_LOW_ = 2686, + STR_MAPGEN_SIMPLEX_NOISE_HIGH = 2687, + STR_MAPGEN_SIMPLEX_NOISE_BASE_FREQUENCY = 2688, + STR_MAPGEN_SIMPLEX_NOISE_OCTAVES = 2689, + STR_MAPGEN_WINDOW_TITLE = 2690, STR_BASE_HEIGHT_LABEL = 2691, STR_WATER_LEVEL_LABEL = 2692, STR_TERRAIN_LABEL = 2693, - - STR_CHEAT_LARGE_TRAM_GUESTS_TIP = 2684, - + STR_MAPGEN_ACTION_GENERATE = 2694, + STR_MAPGEN_OPTION_RANDOM_TERRAIN = 2695, + STR_MAPGEN_OPTION_PLACE_TREES = 2696, +// STR_2697 :??? +// STR_2698 :??? +// STR_2699 :??? + STR_OPTIONS_AUTOSAVE_FREQUENCY_LABEL = 2700, STR_SAVE_EVERY_MINUTE = 2701, STR_SAVE_EVERY_5MINUTES = 2702, STR_SAVE_EVERY_15MINUTES = 2703, STR_SAVE_EVERY_30MINUTES = 2704, STR_SAVE_EVERY_HOUR = 2705, STR_SAVE_NEVER = 2706, - + STR_FILEBROWSER_USE_SYSTEM_WINDOW = 2707, + STR_FILEBROWSER_OVERWRITE_PROMPT = 2708, + STR_FILEBROWSER_OVERWRITE_TITLE = 2709, + STR_FILEBROWSER_NAME_PROMPT = 2710, +// STR_2711 :; +// STR_2712 := +// STR_2713 :, +// STR_2714 :- +// STR_2715 :. +// STR_2716 :/ +// STR_2717 :' + STR_FILEBROWSER_ACTION_UP = 2718, + STR_FILEBROWSER_ACTION_NEW_FILE = 2719, + STR_DURATION_SEC = 2720, + STR_DURATION_SECS = 2721, + STR_DURATION_MIN_SEC = 2722, + STR_DURATION_MIN_SECS = 2723, + STR_DURATION_MINS_SEC = 2724, + STR_DURATION_MINS_SECS = 2725, + STR_REALTIME_MIN = 2726, + STR_REALTIME_MINS = 2727, + STR_REALTIME_HOUR_MIN = 2728, + STR_REALTIME_HOUR_MINS = 2729, + STR_REALTIME_HOURS_MIN = 2730, + STR_REALTIME_HOURS_MINS = 2731, STR_UNIT_SUFFIX_FEET = 2732, STR_UNIT_SUFFIX_METRES = 2733, STR_UNIT_SUFFIX_MILES_PER_HOUR = 2734, STR_UNIT_SUFFIX_KILOMETRES_PER_HOUR = 2735, - + STR_DATE_FORMAT_MY = 2736, STR_DATE_FORMAT_DMY = 2737, - + STR_OPTIONS_MUSIC_LABEL = 2738, + STR_OPTIONS_MUSIC_VALUE_NONE = 2739, STR_ROLLERCOASTER_TYCOON_1_DROPDOWN = 2740, STR_ROLLERCOASTER_TYCOON_2_DROPDOWN = 2741, - - + STR_OPTIONS_MUSIC_ERR_CSS50_NOT_FOUND = 2742, + STR_OPTIONS_MUSIC_ERR_CSS50_NOT_FOUND_HINT = 2743, +// STR_2744 :[ +// STR_2745 :\ +// STR_2746 :] +// STR_2747 :{ENDQUOTES} +// STR_2748 :Bar + STR_MY_NEW_SCENARIO = 2749, STR_MOVE_ALL_TOP = 2750, STR_MOVE_ALL_BOTTOM = 2751, STR_CHEAT_CLEAR_GRASS = 2752, @@ -1487,74 +2016,83 @@ enum { STR_CHEAT_WATER_PLANTS = 2754, STR_CHEAT_FIX_VANDALISM = 2755, STR_CHEAT_REMOVE_LITTER = 2756, - STR_CHEAT_FORCE_SUN = 2757, - STR_CHEAT_FORCE_THUNDER = 2758, - STR_CHEAT_ZERO_CLEARANCE = 2759, + STR_CHEAT_FORCE_SUN = 2757, // + STR_CHEAT_FORCE_THUNDER = 2758, // + STR_CHEAT_ZERO_CLEARANCE = 2759, // STR_CHEAT_5K_MONEY = 2760, +// STR_2761 : +// STR_2762 : +// STR_2763 :??? +// STR_2764 : STR_CHEAT_LARGE_TRAM_GUESTS = 2765, STR_CHEAT_WIN_SCENARIO = 2766, STR_CHEAT_FREEZE_CLIMATE = 2767, STR_CHEAT_UNFREEZE_CLIMATE = 2768, STR_CHEAT_OPEN_PARK = 2769, STR_CHEAT_CLOSE_PARK = 2770, - +// STR_2771 :Slower Gamespeed +// STR_2772 :Faster Gamespeed + STR_OPTIONS_DISPLAY_WINDOWED = 2773, + STR_OPTIONS_DISPLAY_FULLSCREEN = 2774, + STR_OPTIONS_DISPLAY_FULLSCREEN_BORDERLESS = 2775, + STR_OPTIONS_LANGUAGE = 2776, + STR_OPTIONS_DROPDOWN_ITEM = 2777, + STR_OPTIONS_DROPDOWN_ITEM_SELECTED = 2778, // used as STR_OPTIONS_DROPDOWN_ITEM + 1 + STR_VIEWPORT_NO = 2779, + STR_EXTRA_VIEWPORT = 2780, STR_SHORTCUT_ENTRY_FORMAT = 2781, STR_SHIFT_PLUS = 2782, STR_CTRL_PLUS = 2783, - - STR_FINACNES_PARK_VALUE = 2787, - + STR_SHORTCUT_CHANGE_TITLE = 2784, + STR_SHORTCUT_CHANGE_PROMPT = 2785, + STR_SHORTCUT_LIST_TIP = 2786, + STR_FINANCES_PARK_VALUE = 2787, + STR_OBJECTIVE_ACHIEVED = 2788, + STR_OBJECTIVE_FAILED = 2789, STR_ENTER_NAME_INTO_SCENARIO_CHART = 2790, STR_ENTER_NAME = 2791, STR_PLEASE_ENTER_YOUR_NAME_FOR_THE_SCENARIO_CHART = 2792, - + STR_COMPLETED_BY = 2793, STR_COMPLETED_BY_WITH_COMPANY_VALUE = 2794, STR_SORT = 2795, STR_RIDE_LIST_SORT_TIP = 2796, - STR_SCREEN_EDGE_SCROLLING = 2797, STR_SCREEN_EDGE_SCROLLING_TIP = 2798, STR_HOTKEY_TIP = 2799, - STR_TOTAL_ADMISSIONS = 2800, STR_INCOME_FROM_ADMISSIONS = 2801, - STR_MAP_LABEL = 2802, STR_SHOW_GUESTS_ON_MAP_TIP = 2803, STR_SHOW_STAFF_ON_MAP_TIP = 2804, STR_SHOW_MAP_TIP = 2805, - STR_PEEPS_DISGUSTED_BY_PATHS = 2806, STR_PEEPS_DISLIKE_LITTER = 2807, STR_PEEPS_DISLIKE_VANDALISM = 2808, STR_PEEPS_ARE_HUNGRY = 2809, STR_PEEPS_ARE_THIRSTY = 2810, - STR_PEEPS_CANT_FIND_BATHROOM = 2811, + STR_PEEPS_CANT_FIND_BATHROOM = 2811, STR_PEEPS_GETTING_LOST_OR_STUCK = 2812, - STR_ENTRANCE_FEE_TOO_HI = 2813, - STR_AWARD_MOST_UNTIDY = 2814, - STR_MOST_TIDY = STR_AWARD_MOST_UNTIDY + 1, - STR_BEST_ROLLERCOASTERS = STR_AWARD_MOST_UNTIDY + 2, - STR_BEST_VALUE = STR_AWARD_MOST_UNTIDY + 3, - STR_MOST_BEAUTIFUL = STR_AWARD_MOST_UNTIDY + 4, - STR_WORST_VALUE = STR_AWARD_MOST_UNTIDY + 5, - STR_SAFEST = STR_AWARD_MOST_UNTIDY + 6, - STR_BEST_STAFF = STR_AWARD_MOST_UNTIDY + 7, - STR_BEST_FOOD = STR_AWARD_MOST_UNTIDY + 8, - STR_WORST_FOOD = STR_AWARD_MOST_UNTIDY + 9, - STR_BEST_RESTROOMS = STR_AWARD_MOST_UNTIDY + 10, - STR_MOST_DISAPPOINTING = STR_AWARD_MOST_UNTIDY + 11, - STR_BEST_WATER_RIDES = STR_AWARD_MOST_UNTIDY + 12, - STR_BEST_CUSTOM_DESIGNED_RIDES = STR_AWARD_MOST_UNTIDY + 13, - STR_MOST_DAZZLING_RIDE_COLOURS = STR_AWARD_MOST_UNTIDY + 14, - STR_MOST_CONFUSING_LAYOUT = STR_AWARD_MOST_UNTIDY + 15, - STR_BEST_GENTLE_RIDES = STR_AWARD_MOST_UNTIDY + 16, - + STR_AWARD_MOST_TIDY = STR_AWARD_MOST_UNTIDY + 1, + STR_AWARD_BEST_ROLLERCOASTERS = STR_AWARD_MOST_UNTIDY + 2, + STR_AWARD_BEST_VALUE = STR_AWARD_MOST_UNTIDY + 3, + STR_AWARD_MOST_BEAUTIFUL = STR_AWARD_MOST_UNTIDY + 4, + STR_AWARD_WORST_VALUE = STR_AWARD_MOST_UNTIDY + 5, + STR_AWARD_SAFEST = STR_AWARD_MOST_UNTIDY + 6, + STR_AWARD_BEST_STAFF = STR_AWARD_MOST_UNTIDY + 7, + STR_AWARD_BEST_FOOD = STR_AWARD_MOST_UNTIDY + 8, + STR_AWARD_WORST_FOOD = STR_AWARD_MOST_UNTIDY + 9, + STR_AWARD_BEST_RESTROOMS = STR_AWARD_MOST_UNTIDY + 10, + STR_AWARD_MOST_DISAPPOINTING = STR_AWARD_MOST_UNTIDY + 11, + STR_AWARD_BEST_WATER_RIDES = STR_AWARD_MOST_UNTIDY + 12, + STR_AWARD_BEST_CUSTOM_DESIGNED_RIDES = STR_AWARD_MOST_UNTIDY + 13, + STR_AWARD_MOST_DAZZLING_RIDE_COLOURS = STR_AWARD_MOST_UNTIDY + 14, + STR_AWARD_MOST_CONFUSING_LAYOUT = STR_AWARD_MOST_UNTIDY + 15, + STR_AWARD_BEST_GENTLE_RIDES = STR_AWARD_MOST_UNTIDY + 16, STR_NEWS_ITEM_AWARD_MOST_UNTIDY = 2831, STR_NEWS_ITEM_MOST_TIDY = STR_NEWS_ITEM_AWARD_MOST_UNTIDY + 1, - STR_NEWS_ITEM_BEST_ROLLERCOASTERS = STR_AWARD_MOST_UNTIDY + 2, + STR_NEWS_ITEM_BEST_ROLLERCOASTERS = STR_NEWS_ITEM_AWARD_MOST_UNTIDY + 2, STR_NEWS_ITEM_BEST_VALUE = STR_NEWS_ITEM_AWARD_MOST_UNTIDY + 3, STR_NEWS_ITEM_MOST_BEAUTIFUL = STR_NEWS_ITEM_AWARD_MOST_UNTIDY + 4, STR_NEWS_ITEM_WORST_VALUE = STR_NEWS_ITEM_AWARD_MOST_UNTIDY + 5, @@ -1569,42 +2107,74 @@ enum { STR_NEWS_ITEM_MOST_DAZZLING_RIDE_COLOURS = STR_NEWS_ITEM_AWARD_MOST_UNTIDY + 14, STR_NEWS_ITEM_MOST_CONFUSING_LAYOUT = STR_NEWS_ITEM_AWARD_MOST_UNTIDY + 15, STR_NEWS_ITEM_BEST_GENTLE_RIDES = STR_NEWS_ITEM_AWARD_MOST_UNTIDY + 16, - STR_NO_RECENT_AWARDS = 2848, - +// STR_2849 :New scenario installed successfully +// STR_2850 :New track design installed successfully +// STR_2851 :Scenario already installed +// STR_2852 :Track design already installed STR_FORBIDDEN_BY_THE_LOCAL_AUTHORITY = 2853, STR_ENTRANCE_NOT_CONNECTED = 2854, STR_EXIT_NOT_CONNECTED = 2855, - +// STR_2856 :{WINDOW_COLOUR_2}Tutorial +// STR_2857 :{WINDOW_COLOUR_2}(Press a key or mouse button to take control) STR_CANT_START_MARKETING_CAMPAIGN = 2858, - +// STR_2859 :Another instance of OpenRCT2 is already running STR_INFOGRAMES_INTERACTIVE_CREDITS = 2860, STR_LICENSED_TO_INFOGRAMES_INTERACTIVE_INC = 2861, STR_MUSIC_ACKNOWLEDGEMENTS_ELLIPSIS = 2862, STR_MUSIC_ACKNOWLEDGEMENTS = 2863, + STR_MUSIC_ACKNOWLEDGEMENTS_LINE_0 = 2864, + + + STR_CREDITS_PUBLISHER_TILE = 2908, + STR_CREDITS_PUBLISHER_LINE_0 = 2909, + STR_CREDITS_PUBLISHER_LINE_1 = 2910, + STR_CREDITS_PUBLISHER_LINE_2 = 2911, + STR_CREDITS_PUBLISHER_LINE_3 = 2912, + STR_CREDITS_PUBLISHER_LINE_4 = 2913, + STR_CREDITS_PUBLISHER_LINE_5 = 2914, + STR_CREDITS_PUBLISHER_LINE_6 = 2915, + STR_CREDITS_PUBLISHER_LINE_7 = 2916, + STR_CREDITS_PUBLISHER_LINE_10 = 2917, + STR_CREDITS_PUBLISHER_LINE_11 = 2918, + STR_CREDITS_PUBLISHER_LINE_14 = 2919, + STR_CREDITS_PUBLISHER_LINE_15 = 2920, + STR_CREDITS_PUBLISHER_LINE_16 = 2921, + STR_CREDITS_PUBLISHER_LINE_17 = 2922, + STR_CREDITS_PUBLISHER_LINE_18 = 2923, + STR_CREDITS_PUBLISHER_LINE_21 = 2924, + STR_CREDITS_PUBLISHER_LINE_19 = 2925, + STR_CREDITS_PUBLISHER_LINE_20 = 2926, + STR_CREDITS_PUBLISHER_LINE_12 = 2927, + STR_CREDITS_PUBLISHER_LINE_13 = 2928, + STR_CREDITS_PUBLISHER_LINE_9 = 2929, + STR_CREDITS_PUBLISHER_LINE_8 = 2930, STR_MAIN_COLOUR_SCHEME = 2971, STR_ALTERNATIVE_COLOUR_SCHEME_1 = 2972, STR_ALTERNATIVE_COLOUR_SCHEME_2 = 2973, STR_ALTERNATIVE_COLOUR_SCHEME_3 = 2974, - - STR_CANT_NAME_STAFF_MEMBER = 2979, - + STR_COLOUR_SCHEME_TO_CHANGE_TIP = 2975, + STR_PAINT_INDIVIDUAL_AREA_TIP = 2976, + STR_STAFF_TITLE_STAFF_MEMBER_NAME = 2977, + STR_STAFF_PROMPT_ENTER_NAME = 2978, + STR_STAFF_ERROR_CANT_NAME_STAFF_MEMBER = 2979, STR_TOO_MANY_BANNERS_IN_GAME = 2980, STR_NO_ENTRY = 2981, STR_BANNER_TEXT = 2982, STR_ENTER_BANNER_TEXT = 2983, - + STR_ERR_CANT_SET_BANNER_TEXT = 2984, + STR_BANNER_WINDOW_TITLE = 2985, STR_CHANGE_BANNER_TEXT_TIP = 2986, STR_SET_AS_NO_ENTRY_BANNER_TIP = 2987, STR_DEMOLISH_BANNER_TIP = 2988, STR_SELECT_MAIN_SIGN_COLOUR_TIP = 2989, STR_SELECT_TEXT_COLOUR_TIP = 2990, STR_SIGN = 2991, - + STR_SIGN_TEXT_TITLE = 2992, + STR_SIGN_TEXT_PROMPT = 2993, STR_CHANGE_SIGN_TEXT_TIP = 2994, STR_DEMOLISH_SIGN_TIP = 2995, - STR_TEXT_COLOR_BLACK = 2996, STR_TEXT_COLOR_GREY = 2997, STR_TEXT_COLOR_WHITE = 2998, @@ -1619,90 +2189,74 @@ enum { STR_TEXT_COLOR_LIGHTPINK = 3007, STR_TEXT_COLOR_PEARLAQUA = 3008, STR_TEXT_COLOR_PALESILVER = 3009, - - STR_COLOUR_SCHEME_TO_CHANGE_TIP = 2975, - STR_PAINT_INDIVIDUAL_AREA_TIP = 2976, - STR_UNABLE_TO_LOAD_FILE = 3010, STR_FILE_CONTAINS_INVALID_DATA = 3011, - - STR_MUSIC_STYLE_START = 3012, - STR_DODGEMS_BEAT_STYLE = STR_MUSIC_STYLE_START + 0, - STR_FAIRGROUND_ORGAN_STYLE = STR_MUSIC_STYLE_START + 1, - STR_ROMAN_FANFARE_STYLE = STR_MUSIC_STYLE_START + 2, - STR_ORIENTAL_STYLE = STR_MUSIC_STYLE_START + 3, - STR_MARTIAN_STYLE = STR_MUSIC_STYLE_START + 4, - STR_JUNGLE_DRUMS_STYLE = STR_MUSIC_STYLE_START + 5, - STR_EGYPTIAN_STYLE = STR_MUSIC_STYLE_START + 6, - STR_TOYLAND_STYLE = STR_MUSIC_STYLE_START + 7, - // STR_??? = STR_MUSIC_STYLE_START + 8, // Circus show; never displayed as a string - STR_SPACE_STYLE = STR_MUSIC_STYLE_START + 9, - STR_HORROR_STYLE = STR_MUSIC_STYLE_START + 10, - STR_TECHNO_STYLE = STR_MUSIC_STYLE_START + 11, - STR_GENTLE_STYLE = STR_MUSIC_STYLE_START + 12, - STR_SUMMER_STYLE = STR_MUSIC_STYLE_START + 13, - STR_WATER_STYLE = STR_MUSIC_STYLE_START + 14, - STR_WILD_WEST_STYLE = STR_MUSIC_STYLE_START + 15, - STR_JURASSIC_STYLE = STR_MUSIC_STYLE_START + 16, - STR_ROCK_STYLE = STR_MUSIC_STYLE_START + 17, - STR_RAGTIME_STYLE = STR_MUSIC_STYLE_START + 18, - STR_FANTASY_STYLE = STR_MUSIC_STYLE_START + 19, - STR_ROCK_STYLE_2 = STR_MUSIC_STYLE_START + 20, - STR_ICE_STYLE = STR_MUSIC_STYLE_START + 21, - STR_SNOW_STYLE = STR_MUSIC_STYLE_START + 22, - STR_CUSTOM_MUSIC_1 = STR_MUSIC_STYLE_START + 23, - STR_CUSTOM_MUSIC_2 = STR_MUSIC_STYLE_START + 24, - STR_MEDIEVAL_STYLE = STR_MUSIC_STYLE_START + 25, - STR_URBAN_STYLE = STR_MUSIC_STYLE_START + 26, - STR_ORGAN_STYLE = STR_MUSIC_STYLE_START + 27, - STR_MECHANICAL_STYLE = STR_MUSIC_STYLE_START + 28, - STR_MODERN_STYLE = STR_MUSIC_STYLE_START + 29, - STR_PIRATES_STYLE = STR_MUSIC_STYLE_START + 30, - STR_ROCK_STYLE_3 = STR_MUSIC_STYLE_START + 31, - STR_CANDY_STYLE = STR_MUSIC_STYLE_START + 32, - + STR_MUSIC_STYLE_DODGEMS_BEAT = 3012, + STR_MUSIC_STYLE_FAIRGROUND_ORGAN = 3013, + STR_MUSIC_STYLE_ROMAN_FANFARE = 3014, + STR_MUSIC_STYLE_ORIENTAL = 3015, + STR_MUSIC_STYLE_MARTIAN = 3016, + STR_MUSIC_STYLE_JUNGLE_DRUMS = 3017, + STR_MUSIC_STYLE_EGYPTIAN = 3018, + STR_MUSIC_STYLE_TOYLAND = 3019, + STR_MUSIC_STYLE_CIRCUS_SHOW = 3020, + STR_MUSIC_STYLE_SPACE = 3021, + STR_MUSIC_STYLE_HORROR = 3022, + STR_MUSIC_STYLE_TECHNO = 3023, + STR_MUSIC_STYLE_GENTLE = 3024, + STR_MUSIC_STYLE_SUMMER = 3025, + STR_MUSIC_STYLE_WATER = 3026, + STR_MUSIC_STYLE_WILD_WEST = 3027, + STR_MUSIC_STYLE_JURASSIC = 3028, + STR_MUSIC_STYLE_ROCK = 3029, + STR_MUSIC_STYLE_RAGTIME = 3030, + STR_MUSIC_STYLE_FANTASY = 3031, + STR_MUSIC_STYLE_ROCK_STYLE_2 = 3032, + STR_MUSIC_STYLE_ICE = 3033, + STR_MUSIC_STYLE_SNOW = 3034, + STR_MUSIC_STYLE_CUSTOM_MUSIC_1 = 3035, + STR_MUSIC_STYLE_CUSTOM_MUSIC_2 = 3036, + STR_MUSIC_STYLE_MEDIEVAL = 3037, + STR_MUSIC_STYLE_URBAN = 3038, + STR_MUSIC_STYLE_ORGAN = 3039, + STR_MUSIC_STYLE_MECHANICAL = 3040, + STR_MUSIC_STYLE_MODERN = 3041, + STR_MUSIC_STYLE_PIRATES = 3042, + STR_MUSIC_STYLE_ROCK_STYLE_3 = 3043, + STR_MUSIC_STYLE_CANDY_STYLE = 3044, STR_SELECT_MUSIC_STYLE_TIP = 3045, - - STR_THIS_RIDE_CANNOT_BE_MODIFIED = 3046, + STR_THIS_RIDE_CANNOT_BE_MODIFIED = 3046, // Unused STR_LOCAL_AUTHORITY_FORBIDS_DEMOLITION_OR_MODIFICATIONS_TO_THIS_RIDE = 3047, STR_MARKETING_CAMPAIGNS_FORBIDDEN_BY_LOCAL_AUTHORITY = 3048, - STR_GOLF_HOLE_A = 3049, STR_GOLF_HOLE_B = 3050, STR_GOLF_HOLE_C = 3051, STR_GOLF_HOLE_D = 3052, STR_GOLF_HOLE_E = 3053, - - STR_WHITE = 3055, - STR_TRANSLUCENT = 3056, +// STR_3054 :Loading... + STR_CONSTRUCTION_MARKER_COLOUR_WHITE = 3055, + STR_CONSTRUCTION_MARKER_COLOUR_TRANSLUCENT = 3056, STR_CONSTRUCTION_MARKER = 3057, - - STR_BRICK_WALLS = 3058, - STR_HEDGES = 3059, - STR_ICE_BLOCKS = 3060, - STR_WOODEN_FENCES = 3061, - + STR_RIDE_DESIGN_MAZE_BRICK_WALLS = 3058, + STR_RIDE_DESIGN_MAZE_HEDGES = 3059, + STR_RIDE_DESIGN_MAZE_ICE_BLOCKS = 3060, + STR_RIDE_DESIGN_MAZE_WOODEN_FENCES = 3061, STR_RIDE_CONSTRUCTION_STANDARD_RC_TRACK_TIP = 3062, STR_RIDE_CONSTRUCTION_WATER_CHANNEL_TIP = 3063, - STR_BEGINNER_PARKS = 3064, STR_CHALLENGING_PARKS = STR_BEGINNER_PARKS + 1, STR_EXPERT_PARKS = STR_BEGINNER_PARKS + 2, STR_REAL_PARKS = STR_BEGINNER_PARKS + 3, STR_OTHER_PARKS = STR_BEGINNER_PARKS + 4, - STR_TOP_SECTION = 3069, STR_SLOPE_TO_LEVEL = 3070, - STR_SAME_PRICE_THROUGHOUT_PARK = 3071, STR_SAME_PRICE_THROUGHOUT_PARK_TIP = 3072, - STR_PARK_RATING_WARNING_4_WEEKS_REMAINING = 3073, STR_PARK_RATING_WARNING_3_WEEKS_REMAINING = 3074, STR_PARK_RATING_WARNING_2_WEEKS_REMAINING = 3075, STR_PARK_RATING_WARNING_1_WEEK_REMAINING = 3076, STR_PARK_HAS_BEEN_CLOSED_DOWN = 3077, - STR_PLAIN_ENTRANCE = 3078, STR_WOODEN_ENTRANCE = 3079, STR_CANVAS_TENT_ENTRANCE = 3080, @@ -1715,22 +2269,20 @@ enum { STR_SNOW_ICE_ENTRANCE = 3087, STR_PAGODA_ENTRANCE = 3088, STR_SPACE_ENTRANCE = 3089, - STR_SELECT_STYLE_OF_ENTRANCE_EXIT_STATION_TIP = 3090, - STR_YOU_ARE_NOT_ALLOWED_TO_REMOVE_THIS_SECTION = 3091, STR_NOT_ALLOWED_TO_MODIFY_STATION = 3092, - + STR_FAVOURITE_RIDE = 3093, + STR_PEEP_FAVOURITE_RIDE_NOT_AVAILABLE = 3094, STR_LIFT_HILL_CHAIN_SPEED = 3095, - + STR_LIFT_HILL_CHAIN_SPEED_VALUE = 3096, STR_SELECT_LIFT_HILL_CHAIN_SPEED_TIP = 3097, - +// STR_3098 :Can't change lift hill speed... STR_SELECT_COLOUR = 3099, STR_SELECT_SECONDARY_COLOUR = 3100, STR_SELECT_TERNARY_COLOUR = 3101, - + STR_SCENERY_PAINTBRUSH_TIP = 3102, STR_CANT_REPAINT_THIS = 3103, - STR_LIST_RIDES_TIP = 3104, STR_LIST_SHOPS_AND_STALLS_TIP = 3105, STR_LIST_KIOSKS_AND_FACILITIES_TIP = 3106, @@ -1738,35 +2290,29 @@ enum { STR_TEST_RIDE = 3108, STR_OPEN_RIDE = 3109, STR_BLOCK_SECTIONS = 3110, - STR_CLICK_ON_DESIGN_TO_BUILD_IT_TIP = 3111, STR_CLICK_ON_DESIGN_TO_RENAME_OR_DELETE_IT = 3112, STR_SELECT_A_DIFFERENT_DESIGN = 3113, STR_GO_BACK_TO_DESIGN_SELECTION_WINDOW_TIP = 3114, STR_SAVE_TRACK_DESIGN = 3115, STR_SAVE_TRACK_DESIGN_NOT_POSSIBLE = 3116, - STR_CALLING_MECHANIC = 3117, STR_MEHCANIC_IS_HEADING_FOR_THE_RIDE = 3118, STR_MEHCANIC_IS_FIXING_THE_RIDE = 3119, STR_LOCATE_NEAREST_AVAILABLE_MECHANIC_TIP = 3120, STR_UNABLE_TO_LOCATE_MECHANIC = 3121, - STR_FAVOURITE_RIDE_OF_GUEST = 3122, STR_FAVOURITE_RIDE_OF_GUESTS = 3123, - STR_BROKEN = 3124, STR_EXCITEMENT_FACTOR = 3125, STR_INTENSITY_FACTOR = 3126, STR_NAUSEA_FACTOR = 3127, - - STR_SAVE_TRACK_DESIGN_ITEM = 3128, STR_SAVE_TRACK_DESIGN_WITH_SCENERY_ITEM = 3129, STR_DESIGN_SAVE = 3130, STR_DESIGN_CANCEL = 3131, STR_CLICK_ITEMS_OF_SCENERY_TO_SELECT = 3132, - + STR_ERR_UNABLE_TO_BUILD_THIS_ON_SLOPE = 3133, STR_DESIGN_INCLUDES_SCENERY_WHICH_IS_UNAVAILABLE = 3134, STR_VEHICLE_DESIGN_UNAVAILABLE = 3135, STR_THIS_DESIGN_WILL_BE_BUILT_WITH_AN_ALTERNATIVE_VEHICLE_TYPE = 3136, @@ -1776,34 +2322,43 @@ enum { STR_CABLE_LIFT_HILL_MUST_START_IMMEDIATELY_AFTER_STATION = 3140, STR_MULTICIRCUIT_NOT_POSSIBLE_WITH_CABLE_LIFT_HILL = 3141, STR_CAPACITY = 3142, - STR_SHOW_PEOPLE_ON_MAP_TIP = 3143, STR_SHOW_RIDES_STALLS_ON_MAP_TIP = 3144, - - STR_SCROLL_LEFT_TIP = 3145, - STR_SCROLL_RIGHT_TIP = STR_SCROLL_LEFT_TIP + 1, - STR_SCROLL_LEFT_FAST_TIP = STR_SCROLL_LEFT_TIP + 2, - STR_SCROLL_RIGHT_FAST_TIP = STR_SCROLL_LEFT_TIP + 3, - STR_SCROLL_LEFT_RIGHT_TIP = STR_SCROLL_LEFT_TIP + 4, - STR_SCROLL_UP_TIP = STR_SCROLL_LEFT_TIP + 5, - STR_SCROLL_DOWN_TIP = STR_SCROLL_LEFT_TIP + 6, - STR_SCROLL_UP_FAST_TIP = STR_SCROLL_LEFT_TIP + 7, - STR_SCROLL_DOWN_FAST_TIP = STR_SCROLL_LEFT_TIP + 8, - STR_SCROLL_UP_DOWN_TIP = STR_SCROLL_LEFT_TIP + 9, - + STR_SCROLL_LEFT_TIP = 3145, // Unused + STR_SCROLL_RIGHT_TIP = STR_SCROLL_LEFT_TIP + 1, // Unused + STR_SCROLL_LEFT_FAST_TIP = STR_SCROLL_LEFT_TIP + 2, // Unused + STR_SCROLL_RIGHT_FAST_TIP = STR_SCROLL_LEFT_TIP + 3, // Unused + STR_SCROLL_LEFT_RIGHT_TIP = STR_SCROLL_LEFT_TIP + 4, // Unused + STR_SCROLL_UP_TIP = STR_SCROLL_LEFT_TIP + 5, // Unused + STR_SCROLL_DOWN_TIP = STR_SCROLL_LEFT_TIP + 6, // Unused + STR_SCROLL_UP_FAST_TIP = STR_SCROLL_LEFT_TIP + 7, // Unused + STR_SCROLL_DOWN_FAST_TIP = STR_SCROLL_LEFT_TIP + 8, // Unused + STR_SCROLL_UP_DOWN_TIP = STR_SCROLL_LEFT_TIP + 9, // Unused +// STR_3155 : +// STR_3156 : STR_MAP = 3157, STR_GRAPH = 3158, STR_LIST = 3159, - STR_SELECT_NUMBER_OF_CIRCUITS_TIP = 3160, - +// STR_3161 : + STR_ERR_REASON_NOT_ENOUGH_MEMORY = 3162, +// STR_3163 :Installing new data: + STR_OBJECT_SELECTION_SELECTION_SIZE = 3164, STR_PLACEHOLDER = 3165, - +// STR_3166 :{BLACK}(ID: +// STR_3167 :{WINDOW_COLOUR_2}Includes: {BLACK}{COMMA16} objects + STR_OBJECT_SELECTION_DESCRIPTION_SCENARIO_TEXT = 3168, + STR_OBJECT_SELECTION_ERR_OBJECT_DATA_NOT_FOUND = 3169, + STR_OBJECT_SELECTION_ERR_NOT_ENOUGH_SPACE_FOR_GRAPHICS = 3170, + STR_OBJECT_SELECTION_ERR_TOO_MANY_OF_TYPE_SELECTED = 3171, + STR_OBJECT_SELECTION_ERR_SHOULD_SELECT_X_FIRST = 3172, + STR_OBJECT_SELECTION_ERR_CURRENTLY_IN_USE = 3173, + STR_OBJECT_SELECTION_ERR_IS_REQUIRED_BY_ANOTHER = 3174, + STR_OBJECT_SELECTION_ERR_ALWAYS_REQUIRED = 3175, STR_UNABLE_TO_SELECT_THIS_OBJECT = 3176, STR_UNABLE_TO_DE_SELECT_THIS_OBJECT = 3177, STR_AT_LEAST_ONE_PATH_OBJECT_MUST_BE_SELECTED = 3178, STR_AT_LEAST_ONE_RIDE_OBJECT_MUST_BE_SELECTED = 3179, - STR_INVALID_SELECTION_OF_OBJECTS = 3180, STR_OBJECT_SELECTION = 3181, STR_PARK_ENTRANCE_TYPE_MUST_BE_SELECTED = 3182, @@ -1819,35 +2374,28 @@ enum { STR_OBJECT_SELECTION_PARK_ENTRANCE = 3192, STR_OBJECT_SELECTION_WATER = 3193, STR_OBJECT_SELECTION_SCENARIO_DESCRIPTION = 3194, - STR_INVENTION_LIST = 3195, STR_INVENTION_RESEARCH_GROUP = 3196, STR_INVENTION_PREINVENTED_ITEMS = 3197, STR_INVENTION_TO_BE_INVENTED_ITEMS = 3198, - STR_RANDOM_SHUFFLE = 3199, STR_RANDOM_SHUFFLE_TIP = 3200, - - STR_OBJECT_SELECTION_STEP = 3201, - STR_LANDSCAPE_EDITOR_STEP = 3202, - STR_INVENTION_LIST_SET_UP_STEP = 3203, - STR_OPTIONS_SELECTION_STEP = 3204, - STR_OBJECTIVE_SELECTION_STEP = 3205, - STR_SAVE_SCENARIO_STEP = 3206, - STR_ROLLERCOASTER_DESIGNER_STEP = 3207, - STR_TRACK_DESIGNS_MANAGER_STEP = 3208, - + STR_EDITOR_STEP_OBJECT_SELECTION = 3201, + STR_EDITOR_STEP_LANDSCAPE_EDITOR = 3202, + STR_EDITOR_STEP_INVENTIONS_LIST_SET_UP = 3203, + STR_EDITOR_STEP_OPTIONS_SELECTION = 3204, + STR_EDITOR_STEP_OBJECTIVE_SELECTION = 3205, + STR_EDITOR_STEP_SAVE_SCENARIO = 3206, + STR_EDITOR_STEP_ROLLERCOASTER_DESIGNER = 3207, + STR_EDITOR_STEP_TRACK_DESIGNS_MANAGER = 3208, STR_BACK_TO_PREVIOUS_STEP = 3209, STR_FORWARD_TO_NEXT_STEP = 3210, - STR_MAP_SIZE = 3211, - + STR_MAP_SIZE_VALUE = 3212, STR_CANT_DECREASE_MAP_SIZE_ANY_FURTHER = 3213, STR_CANT_INCREASE_MAP_SIZE_ANY_FURTHER = 3214, STR_TOO_CLOSE_TO_EDGE_OF_MAP = 3215, - STR_SELECT_PARK_OWNED_LAND_TIP = 3216, - STR_LAND_OWNED = 3217, STR_CONSTRUCTION_RIGHTS_OWNED = 3218, STR_LAND_SALE = 3219, @@ -1856,15 +2404,13 @@ enum { STR_SET_CONSTRUCTION_RIGHTS_TO_BE_OWNED_TIP = 3222, STR_SET_LAND_TO_BE_AVAILABLE_TIP = 3223, STR_SET_CONSTRUCTION_RIGHTS_TO_BE_AVAILABLE_TIP = 3224, - + STR_SCENERY_CLUSTER_TIP = 3225, STR_BUILD_PARK_ENTRANCE_TIP = 3226, - + STR_ERR_TOO_MANY_PARK_ENTRANCES = 3227, STR_SET_STARTING_POSITIONS_TIP = 3228, - STR_BLOCK_BRAKES_CANNOT_BE_USED_DIRECTLY_AFTER_STATION = 3229, STR_BLOCK_BRAKES_CANNOT_BE_USED_DIRECTLY_AFTER_EACH_OTHER = 3230, STR_BLOCK_BRAKES_CANNOT_BE_USED_DIRECTLY_AFTER_THE_TOP_OF_THIS_LIFT_HILL = 3231, - STR_SCENARIO_OPTIONS_FINANCIAL = 3232, STR_SCENARIO_OPTIONS_GUESTS = 3233, STR_SCENARIO_OPTIONS_PARK = 3234, @@ -1889,7 +2435,6 @@ enum { STR_CANT_REDUCE_MAX_LOAN = 3253, STR_CANT_INCREASE_INTEREST_RATE = 3254, STR_CANT_REDUCE_INTEREST_RATE = 3255, - STR_GUESTS_PREFER_LESS_INTENSE_RIDES = 3256, STR_GUESTS_PREFER_LESS_INTENSE_RIDES_TIP = 3257, STR_GUESTS_PREFER_MORE_INTENSE_RIDES = 3258, @@ -1900,7 +2445,6 @@ enum { STR_GUEST_INIT_THIRST = 3263, STR_CANT_INCREASE_FURTHER = 3264, STR_CANT_REDUCE_FURTHER = 3265, - STR_PAY_FOR_PARK_PAY_FOR_RIDES_TIP = 3266, STR_FORBID_TREE_REMOVAL = 3267, STR_FORBID_TREE_REMOVAL_TIP = 3268, @@ -1920,23 +2464,34 @@ enum { STR_SELECT_OBJECTIVE_AND_PARK_NAME_TIP = 3282, STR_SELECT_RIDES_TO_BE_PRESERVED_TIP = 3283, STR_OBJECTIVE_SELECTION = 3284, +// STR_3285 :Preserved Rides STR_SELECT_OBJECTIVE_FOR_THIS_SCENARIO_TIP = 3286, STR_OBJECTIVE_WINDOW = 3287, STR_SELECT_CLIMATE_TIP = 3288, STR_CLIMATE_LABEL = 3289, - STR_CLIMATE_COOL_AND_WET = 3290, STR_CLIMATE_WARM = STR_CLIMATE_COOL_AND_WET + 1, STR_CLIMATE_HOT_AND_DRY = STR_CLIMATE_COOL_AND_WET + 2, STR_CLIMATE_COLD = STR_CLIMATE_COOL_AND_WET + 3, - STR_CHANGE = 3294, STR_CHANGE_NAME_OF_PARK_TIP = 3295, STR_CHANGE_NAME_OF_SCENARIO_TIP = 3296, STR_CHANGE_DETAIL_NOTES_ABOUT_PARK_SCENARIO_TIP = 3297, - STR_WINDOW_PARK_NAME = 3298, + STR_WINDOW_PARK_NAME = 3298, // Unused STR_WINDOW_PARK_DETAILS = 3299, - + STR_WINDOW_SCENARIO_NAME = 3300, + STR_WINDOW_OBJECTIVE_DATE = 3301, + STR_WINDOW_OBJECTIVE_VALUE_DATE = 3302, + STR_WINDOW_OBJECTIVE_GUEST_COUNT = 3303, + STR_WINDOW_OBJECTIVE_PARK_VALUE = 3304, + STR_WINDOW_OBJECTIVE_MONTHLY_INCOME = 3305, + STR_WINDOW_OBJECTIVE_MONTHLY_PROFIT = 3306, + STR_WINDOW_OBJECTIVE_MINIMUM_LENGTH = 3307, + STR_WINDOW_OBJECTIVE_EXCITEMENT_RATING = 3308, + STR_WINDOW_OBJECTIVE_VALUE_GUEST_COUNT = 3309, + STR_WINDOW_OBJECTIVE_VALUE_LENGTH = 3310, + STR_WINDOW_OBJECTIVE_VALUE_RATING = 3311, + STR_WINDOW_PRESERVATION_ORDER = 3312, STR_SCENARIO_NAME = 3313, STR_ENTER_SCENARIO_NAME = 3314, STR_PARK_SCENARIO_DETAILS = 3315, @@ -1945,13 +2500,12 @@ enum { STR_SELECT_WHICH_GROUP_THIS_SCENARIO_APPEARS_IN = 3318, STR_WINDOW_SCENARIO_GROUP = 3319, STR_UNABLE_TO_SAVE_SCENARIO_FILE = 3320, - +// STR_3321 :New objects installed successfully STR_OBJECTIVE = 3322, - STR_MISSING_OBJECT_DATA_ID = 3323, STR_REQUIRES_THE_FOLLOWING_ADDON_PACK = 3324, STR_REQUIRES_AN_ADDON_PACK = 3325, - + STR_WINDOW_NO_IMAGE = 3326, STR_PEEP_SPAWNS_NOT_SET = 3327, STR_CANT_ADVANCE_TO_NEXT_EDITOR_STAGE = 3328, STR_NO_PARK_ENTRANCES = 3329, @@ -1962,22 +2516,19 @@ enum { STR_SAVE_PLUGIN_DATA_TIP = 3334, STR_ROLLER_COASTER_DESIGNER_SELECT_RIDE_TYPES_VEHICLES = 3335, STR_TRACK_DESIGNS_MANAGER_SELECT_RIDE_TYPE = 3336, - +// STR_3337 : STR_CUSTOM_DESIGNED_LAYOUT = 3338, STR_1_DESIGN_AVAILABLE = 3339, STR_X_DESIGNS_AVAILABLE = 3340, - STR_GAME_TOOLS_TIP = 3341, STR_SCENARIO_EDITOR = 3342, STR_CONVERT_SAVED_GAME_TO_SCENARIO = 3343, STR_ROLLER_COASTER_DESIGNER = 3344, STR_TRACK_DESIGNS_MANAGER = 3345, - STR_CANT_SAVE_TRACK_DESIGN = 3346, STR_TRACK_TOO_LARGE_OR_TOO_MUCH_SCENERY = 3347, STR_TRACK_MANAGE_RENAME = 3348, STR_TRACK_MANAGE_DELETE = 3349, - STR_TRACK_DESIGN_RENAME_TITLE = 3350, STR_TRACK_DESIGN_RENAME_DESC = 3351, STR_CANT_RENAME_TRACK_DESIGN = 3352, @@ -1985,78 +2536,98 @@ enum { STR_ANOTHER_FILE_EXISTS_WITH_NAME_OR_FILE_IS_WRITE_PROTECTED = 3354, STR_FILE_IS_WRITE_PROTECTED_OR_LOCKED = 3355, STR_DELETE_FILE = 3356, - STR_ARE_YOU_SURE_YOU_WANT_TO_PERMANENTLY_DELETE_TRACK = 3357, STR_CANT_DELETE_TRACK_DESIGN = 3358, STR_NO_TRACK_DESIGNS_OF_THIS_TYPE = 3359, STR_WARNING = 3360, STR_TOO_MANY_TRACK_DESIGNS_OF_THIS_TYPE = 3361, - +// STR_3362 : +// STR_3363 : STR_OBJECT_SELECTION_ADVANCED = 3364, STR_OBJECT_SELECTION_ADVANCED_TIP = 3365, - STR_MAP_RIDE = 3366, - + STR_MAP_FOOD_STALL = 3367, + STR_MAP_DRINK_STALL = 3368, + STR_MAP_SOUVENIR_STALL = 3369, + STR_MAP_INFO_KIOSK = 3370, + STR_MAP_FIRST_AID = 3371, + STR_MAP_CASH_MACHINE = 3372, + STR_MAP_TOILET = 3373, STR_WARNING_TOO_MANY_OBJECTS_SELECTED = 3374, STR_NOT_ALL_OBJECTS_IN_THIS_SCENERY_GROUP_COULD_BE_SELECTED = 3375, STR_INSTALL_NEW_TRACK_DESIGN = 3376, STR_INSTALL_NEW_TRACK_DESIGN_TIP = 3377, - + STR_INSTALL_NEW_TRACK_DESIGN_INSTALL = 3378, + STR_INSTALL_NEW_TRACK_DESIGN_CANCEL = 3379, STR_UNABLE_TO_INSTALL_THIS_TRACK_DESIGN = 3380, +// STR_3381 :File is not compatible or contains invalid data +// STR_3382 :File copy failed STR_SELECT_NEW_NAME_FOR_TRACK_DESIGN = 3383, STR_AN_EXISTING_TRACK_DESIGN_ALREADY_HAS_THIS_NAME = 3384, - +// STR_3385 :Beginners Tutorial +// STR_3386 :Custom Rides Tutorial +// STR_3387 :Roller Coaster Building Tutorial +// STR_3388 :Unable to switch to selected mode STR_SAVE_TRACK_SCENERY_UNABLE_TO_SELECT_ADDITIONAL_ITEM_OF_SCENERY = 3389, STR_SAVE_TRACK_SCENERY_TOO_MANY_ITEMS_SELECTED = 3390, - +// TUTORIAL STR_CLEAR_SCENERY_TIP = 3437, + STR_UNABLE_TO_REMOVE_ALL_SCENERY_FROM_HERE = 3438, STR_CLEAR_SCENERY = 3439, - STR_PAGE_1 = 3440, STR_PAGE_2 = STR_PAGE_1 + 1, STR_PAGE_3 = STR_PAGE_1 + 2, STR_PAGE_4 = STR_PAGE_1 + 3, STR_PAGE_5 = STR_PAGE_1 + 4, - STR_SET_PATROL_AREA = 3445, STR_CLEAR_PATROL_AREA = 3446, - STR_UNABLE_TO_REMOVE_ALL_SCENERY_FROM_HERE = 3438, - STR_OPENRCT2_BEGIN_STRING_ID = 5120, STR_FINANCES_BUTTON_ON_TOOLBAR = 5120, STR_RESEARCH_BUTTON_ON_TOOLBAR = 5121, STR_SELECT_BY_TRACK_TYPE = 5122, - STR_CHEAT_RENEW_RIDES = 5123, +// STR_5124 : STR_CHEAT_MAKE_DESTRUCTABLE = 5125, + STR_OPTIONS_MUSIC_VALUE_RANDOM = 5126, STR_DISABLE_ELEVATION = 5127, STR_SELECTION_SIZE = 5128, STR_ENTER_SELECTION_SIZE = 5129, STR_MAP_SIZE_2 = 5130, STR_ENTER_MAP_SIZE = 5131, STR_CHEAT_FIX_ALL_RIDES = 5132, + STR_ADJUST_SMALLER_LAND_RIGHTS_TIP = 5133, + STR_ADJUST_LARGER_LAND_RIGHTS_TIP = 5134, + STR_BUY_LAND_AND_CONSTRUCTION_RIGHTS_TIP = 5135, + STR_LAND_RIGHTS = 5136, STR_CHEAT_UNLOCK_OPERATING_LIMITS = 5137, + STR_SMALL_WINDOW_COLOUR_2_STRINGID = 5138, + STR_WHITE_STRING = 5139, STR_CHEAT_DISABLE_BRAKES_FAILURE = 5140, STR_CHEAT_DISABLE_BREAKDOWNS = 5141, + STR_SPEED_NORMAL = 5142, + STR_SPEED_QUICK = 5143, + STR_SPEED_FAST = 5144, + STR_SPEED_TURBO = 5145, + STR_SPEED_HYPER = 5146, STR_CHEATS_BUTTON_ON_TOOLBAR = 5147, STR_GAME_SPEED_TIP = 5148, STR_CHEATS_TIP = 5149, - STR_ENABLE_DEBUGGING_TOOLS = 5150, + STR_LOCALE_THOUSANDS_SEPARATOR = 5151, + STR_LOCALE_DECIMAL_POINT = 5152, STR_EDIT_THEMES_BUTTON = 5153, - STR_HARDWARE_DISPLAY = 5154, + STR_HARDWARE_DISPLAY = 5154, // Unused STR_TEST_UNFINISHED_TRACKS = 5155, STR_TEST_UNFINISHED_TRACKS_TIP = 5156, - STR_CHEAT_UNLOCK_PRICES = 5157, - + STR_QUIT_TO_MENU = 5158, + STR_EXIT_OPENRCT2 = 5159, STR_DATE_FORMAT_MDY = 5160, STR_DATE_FORMAT = 5161, STR_DATE_FORMAT_DAY_MONTH_YEAR = 5162, STR_DATE_FORMAT_MONTH_DAY_YEAR = 5163, - STR_TWITCH_NAME = 5164, STR_TWITCH_PEEP_FOLLOWERS = 5165, STR_TWITCH_PEEP_FOLLOWERS_TIP = 5166, @@ -2070,114 +2641,181 @@ enum { STR_TWITCH_CHAT_NEWS_TIP = 5174, STR_TWITCH_NAME_DESC = 5175, STR_TWITCH_ENABLE = 5176, - STR_FULLSCREEN_MODE = 5177, - - // Cheat tab tips STR_FINANCIAL_CHEATS_TIP = 5178, STR_GUEST_CHEATS_TIP = 5179, STR_PARK_CHEATS_TIP = 5180, STR_RIDE_CHEATS_TIP = 5181, - + STR_FORMAT_INTEGER = 5182, STR_BASE_HEIGHT = 5183, STR_ENTER_BASE_HEIGHT = 5184, - STR_WATER_LEVEL = 5185, STR_ENTER_WATER_LEVEL = 5186, - + STR_THEMES_WINDOW_FINANCES = 5187, + STR_THEMES_WINDOW_NEW_CAMPAIGN = 5188, + STR_THEMES_WINDOW_RESEARCH = 5189, + STR_THEMES_WINDOW_MAP = 5190, + STR_THEMES_WINDOW_VIEWPORT = 5191, + STR_THEMES_WINDOW_RECENT_NEWS = 5192, + STR_THEMES_WINDOW_LAND = 5193, + STR_THEMES_WINDOW_WATER = 5194, + STR_THEMES_WINDOW_CLEAR_SCENERY = 5195, + STR_THEMES_WINDOW_LAND_RIGHTS = 5196, + STR_THEMES_WINDOW_SCENERY = 5197, + STR_THEMES_WINDOW_FOOTPATH = 5198, + STR_THEMES_WINDOW_RIDE_CONSTRUCTION = 5199, + STR_THEMES_WINDOW_TRACK_DESIGN_PLACE = 5200, + STR_THEMES_WINDOW_CONSTRUCT_RIDE = 5201, + STR_THEMES_WINDOW_TRACK_DESIGN_LIST = 5202, + STR_THEMES_WINDOW_RIDE = 5203, + STR_THEMES_WINDOW_RIDE_LIST = 5204, + STR_THEMES_WINDOW_PEEP = 5205, + STR_THEMES_WINDOW_GUEST_LIST = 5206, + STR_THEMES_WINDOW_STAFF = 5207, + STR_THEMES_WINDOW_STAFF_LIST = 5208, + STR_THEMES_WINDOW_BANNER = 5209, + STR_THEMES_WINDOW_EDITOR_OBJECT_SELECTION = 5210, + STR_THEMES_WINDOW_EDITOR_INVENTION_LIST = 5211, + STR_THEMES_WINDOW_EDITOR_SCENARIO_OPTIONS = 5212, + STR_THEMES_WINDOW_EDTIOR_OBJECTIVE_OPTIONS = 5213, + STR_THEMES_WINDOW_MAPGEN = 5214, + STR_THEMES_WINDOW_MANAGE_TRACK_DESIGN = 5215, + STR_THEMES_WINDOW_INSTALL_TRACK = 5216, STR_CHEAT_TITLE = 5217, - + STR_THEMES_WINDOW_THEMES = 5218, + STR_THEMES_WINDOW_OPTIONS = 5219, + STR_THEMES_WINDOW_KEYBOARD_SHORTCUT_LIST = 5220, + STR_THEMES_WINDOW_CHANGE_KEYBOARD_SHORTCUT = 5221, + STR_THEMES_WINDOW_LOADSAVE = 5222, + STR_THEMES_WINDOW_SAVE_PROMPT = 5223, + STR_THEMES_WINDOW_DEMOLISH_RIDE_PROMPT = 5224, + STR_THEMES_WINDOW_FIRE_PROMPT = 5225, + STR_THEMES_WINDOW_TRACK_DELETE_PROMPT = 5226, + STR_THEMES_WINDOW_LOADSAVE_OVERWRITE_PROMPT = 5227, + STR_THEMES_TAB_MAIN_TIP = 5228, + STR_THEMES_TAB_PARK_TIP = 5229, + STR_THEMES_TAB_TOOLS_TIP = 5230, + STR_THEMES_TAB_RIDES_AND_GUESTS_TIP = 5231, + STR_THEMES_TAB_EDITORS_TIP = 5232, + STR_THEMES_TAB_MISC_TIP = 5233, + STR_THEMES_TAB_PROMPTS_TIP = 5234, + STR_THEMES_TAB_SETTINGS_TIP = 5235, + STR_THEMES_HEADER_WINDOW = 5236, + STR_THEMES_HEADER_PALETTE = 5237, + STR_THEMES_LABEL_CURRENT_THEME = 5238, + STR_TITLE_EDITOR_ACTION_DUPLICATE = 5239, + STR_THEMES_PROMPT_ENTER_THEME_NAME = 5240, + STR_THEMES_ERR_CANT_CHANGE_THIS_THEME = 5241, + STR_THEMES_ERR_NAME_ALREADY_EXISTS = 5242, + STR_ERROR_INVALID_CHARACTERS = 5243, + STR_THEMES_TITLE = 5244, + STR_THEMES_WINDOW_TOP_TOOLBAR = 5245, + STR_THEMES_WINDOW_BOTTOM_TOOLBAR = 5246, + STR_THEMES_WINDOW_BOTTOM_TOOLBAR_TRACK_EDITOR = 5247, + STR_THEMES_WINDOW_BOTTOM_TOOLBAR_SCENARIO_EDITOR = 5248, + STR_THEMES_WINDOW_TITLE_MENU_BUTTONS = 5249, + STR_THEMES_WINDOW_TITLE_MENU_EXIT = 5250, + STR_THEMES_WINDOW_TITLE_MENU_OPTIONS = 5251, + STR_THEMES_WINDOW_TITLE_MENU_SCENARIO_SELECTION = 5252, + STR_THEMES_WINDOW_PARK_INFORMATION = 5253, + STR_TITLE_EDITOR_ACTION_CREATE = 5254, + STR_TITLE_EDITOR_ACTION_CREATE_SEQUENCE_TIP = 5255, + STR_THEMES_DESC_CANT_CHANGE_THIS_THEME = 5256, + STR_THEMES_ACTION_DUPLICATE_TIP = 5257, + STR_THEMES_ACTION_DELETE_TIP = 5258, + STR_THEMES_ACTION_RENAME_TIP = 5259, STR_GIANT_SCREENSHOT = 5260, - STR_OBJECT_FILTER = 5261, STR_OBJECT_FILTER_WW = 5262, STR_OBJECT_FILTER_TT = 5263, STR_OBJECT_FILTER_CUSTOM = 5264, STR_OBJECT_FILTER_TIP = 5265, - STR_OPTIONS_DISPLAY_TIP = 5266, STR_OPTIONS_CULTURE_TIP = 5267, STR_OPTIONS_AUDIO_TIP = 5268, STR_OPTIONS_CONTROLS_AND_INTERFACE_TIP = 5269, STR_OPTIONS_MISCELLANEOUS_TIP = 5270, STR_OPTIONS_TWITCH_TIP = 5271, - - STR_OBJECT_SEARCH = 5275, - STR_OBJECT_SEARCH_DESC = 5276, + STR_CLEAR_SCENERY_REMOVE_SMALL_SCENERY_TIP = 5272, + STR_CLEAR_SCENERY_REMOVE_LARGE_SCENERY_TIP = 5273, + STR_CLEAR_SCENERY_REMOVE_FOOTPATHS_TIP = 5274, + STR_OBJECT_SEARCH = 5275, // Unused (commented out) + STR_OBJECT_SEARCH_DESC = 5276, // Unused (commented out) STR_OBJECT_SEARCH_CLEAR = 5277, - STR_CHEAT_SANDBOX_MODE = 5278, STR_CHEAT_SANDBOX_MODE_DISABLE = 5279, STR_CHEAT_SANDBOX_MODE_TIP = 5280, - + STR_THEMES_TAB_FEATURES_TIP = 5281, + STR_THEMES_OPTION_RCT1_RIDE_CONTROLS = 5282, + STR_THEMES_OPTION_RCT1_PARK_CONTROLS = 5283, + STR_THEMES_OPTION_RCT1_SCENARIO_SELECTION_FONT = 5284, STR_CHEAT_EXPLODE = 5285, STR_CHEAT_EXPLODE_TIP = 5286, - STR_DEBUG_RIDE_ALREADY_BROKEN = 5287, STR_DEBUG_RIDE_IS_CLOSED = 5288, STR_DEBUG_NO_BREAKDOWNS_AVAILABLE = 5289, STR_DEBUG_FIX_RIDE = 5290, - STR_DEBUG_CANT_FORCE_BREAKDOWN = 5291, - STR_DEBUG_FORCE_BREAKDOWN_TIP = 5292, STR_CLOSE_RIDE_TIP = 5293, STR_TEST_RIDE_TIP = 5294, STR_OPEN_RIDE_TIP = 5295, - STR_CLOSE_PARK_TIP = 5296, STR_OPEN_PARK_TIP = 5297, - + STR_RED_STRINGID = 5298, + STR_LIGHTPINK_STRINGID = 5299, STR_QUICK_FIRE_STAFF = 5300, STR_CHEAT_CLEAR_LOAN_TIP = 5301, STR_CHEAT_CLEAR_LOAN = 5302, STR_CHEAT_BUILD_IN_PAUSE_MODE = 5303, - STR_TITLE_SEQUENCE = 5304, STR_TITLE_SEQUENCE_RCT1 = 5305, STR_TITLE_SEQUENCE_RCT1_AA = 5306, STR_TITLE_SEQUENCE_RCT1_AA_LL = 5307, STR_TITLE_SEQUENCE_RCT2 = 5308, STR_TITLE_SEQUENCE_OPENRCT2 = 5309, - STR_TITLE_SEQUENCE_RANDOM = 5310, - + STR_TITLE_SEQUENCE_RANDOM = 5310, // Unused STR_DEBUG_TIP = 5311, STR_DEBUG_DROPDOWN_CONSOLE = 5312, STR_DEBUG_DROPDOWN_TILE_INSPECTOR = 5313, - STR_TILE_INSPECTOR_TITLE = 5314, - STR_TILE_INSPECTOR_TERRAIN_START = 5315, - - STR_TILE_INSPECTOR_TERRAIN_EDGE_START = 5331, - STR_TILE_INSPECTOR_ENTRANCE_START = 5335, + STR_TILE_INSPECTOR_TERRAIN_GRASS = 5315, + STR_TILE_INSPECTOR_TERRAIN_SAND = 5316, + STR_TILE_INSPECTOR_TERRAIN_DIRT = 5317, + STR_TILE_INSPECTOR_TERRAIN_ROCK = 5318, + STR_TILE_INSPECTOR_TERRAIN_MARTIAN = 5319, + STR_TILE_INSPECTOR_TERRAIN_CHECKERBOARD = 5320, + STR_TILE_INSPECTOR_TERRAIN_GRASS_CLUMPS = 5321, + STR_TILE_INSPECTOR_TERRAIN_ICE = 5322, + STR_TILE_INSPECTOR_TERRAIN_GRID_RED = 5323, + STR_TILE_INSPECTOR_TERRAIN_GRID_YELLOW = 5324, + STR_TILE_INSPECTOR_TERRAIN_GRID_BLUE = 5325, + STR_TILE_INSPECTOR_TERRAIN_GRID_GREEN = 5326, + STR_TILE_INSPECTOR_TERRAIN_SAND_DARK = 5327, + STR_TILE_INSPECTOR_TERRAIN_SAND_LIGHT = 5328, + STR_TILE_INSPECTOR_TERRAIN_CHECKERBOARD_INVERTED = 5329, + STR_TILE_INSPECTOR_TERRAIN_UNDERGROUND_VIEW = 5330, + STR_TILE_INSPECTOR_TERRAIN_EDGE_ROCK = 5331, + STR_TILE_INSPECTOR_TERRAIN_EDGE_WOOD_RED = 5332, + STR_TILE_INSPECTOR_TERRAIN_EDGE_WOOD_BLACK = 5333, + STR_TILE_INSPECTOR_TERRAIN_EDGE_ICE = 5334, + STR_TILE_INSPECTOR_ENTRANCE_TYPE_RIDE_ENTRANCE = 5335, + STR_TILE_INSPECTOR_ENTRANCE_TYPE_RIDE_EXIT = 5336, + STR_TILE_INSPECTOR_ENTRANCE_TYPE_PARK_ENTRANC = 5337, STR_TILE_INSPECTOR_ELEMENT_TYPE = 5338, STR_TILE_INSPECTOR_BASE_HEIGHT = 5339, - STR_TILE_INSPECTOR_BASE_HEIGHT_SHORT = 5608, STR_TILE_INSPECTOR_CLEARANCE_HEIGHT = 5340, - STR_TILE_INSPECTOR_CLEARANGE_HEIGHT_SHORT = 5609, - STR_TILE_INSPECTOR_FLAGS = 5341, + STR_TILE_INSPECTOR_FLAGS = 5341, // unused 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, - STR_CHANGELOG_TITLE = 5344, - STR_CHEAT_TITLE_FINANCIAL = 5345, STR_CHEAT_TITLE_GUEST = 5346, STR_CHEAT_TITLE_RIDE = 5347, STR_CHEAT_TITLE_PARK = 5348, - STR_OBJECT_FILTER_ALL_RIDES_TIP = 5349, - STR_MAX = 5350, STR_MIN = 5351, - STR_CHEAT_GUEST_HAPPINESS = 5352, STR_CHEAT_GUEST_ENERGY = 5353, STR_CHEAT_GUEST_HUNGER = 5354, @@ -2195,96 +2833,133 @@ enum { STR_NORMAL = 5366, STR_FAST = 5367, STR_CHEAT_RESET_CRASH_STATUS = 5368, - STR_CHEAT_10_MINUTE_INSPECTIONS = 5559, - STR_CHEAT_10_MINUTE_INSPECTIONS_TIP = 5560, STR_CHEAT_PARK_PARAMETERS = 5369, STR_CHEAT_PARK_PARAMETERS_TIP = 5370, - STR_DEBUG_DROPDOWN_OBJECT_SELECTION = 5371, - STR_INVERT_RIGHT_MOUSE_DRAG = 5372, - STR_NAME = 5373, STR_DATE = 5374, STR_UP = 5375, STR_DOWN = 5376, - - + STR_TITLE_EDITOR_SAVES_TAB_TIP = 5377, + STR_TITLE_EDITOR_SCRIPT_TAB_TIP = 5378, + STR_TITLE_EDITOR_ACTION_SKIP_TIP = 5379, + STR_TITLE_EDITOR_ACTION_PLAY_TIP = 5380, + STR_TITLE_EDITOR_ACTION_STOP_TIP = 5381, + STR_TITLE_EDITOR_ACTION_REPLAY_TIP = 5382, + STR_TITLE_EDITOR_ACTION_DUPLICATE_SEQUENCE_TIP = 5383, + STR_TITLE_EDITOR_ACTION_DELETE_SEQUENCE_TIP = 5384, + STR_TITLE_EDITOR_ACTION_RENAME_SEQUENCE_TIP = 5385, + STR_TITLE_EDITOR_ACTION_INSERT_TIP = 5386, + STR_TITLE_EDITOR_ACTION_EDIT_TIP = 5387, + STR_TITLE_EDITOR_ACTION_DELETE_TIP = 5388, + STR_TITLE_EDITOR_ACTION_SKIP_TO_TIP = 5389, + STR_TITLE_EDITOR_ACTION_MOVE_DOWN_TIP = 5390, + STR_TITLE_EDITOR_ACTION_MOVE_UP_TIP = 5391, + STR_TITLE_EDITOR_ACTION_ADD_TIP = 5392, + STR_TITLE_EDITOR_ACTION_REMOVE_TIP = 5393, + STR_TITLE_EDITOR_ACTION_RENAME_TIP = 5394, + STR_TITLE_EDITOR_ACTION_LOAD_TIP = 5395, + STR_TITLE_EDITOR_ACTION_RELOAD_TIP = 5396, +// STR_5397 :Can only be used on the title screen + STR_TITLE_EDITOR_ERR_CANT_EDIT_WHILE_PLAYING = 5398, + STR_TITLE_EDITOR_PRESS_STOP_TO_CONTINUE_EDITING = 5399, + STR_ERROR_CANT_CHANGE_TITLE_SEQUENCE = 5400, +// STR_5401 :Create a new title sequence to make changes to + STR_ERR_FAILED_TO_LOAD_TITLE_SEQUENCE = 5402, +// STR_5403 :There may be no Load or Wait command or a save may be invalid + STR_ERROR_EXISTING_NAME = 5404, + STR_TITLE_EDITOR_ENTER_NAME_FOR_SAVE = 5405, + STR_TITLE_EDITOR_ENTER_NAME_FOR_SEQUENCE = 5406, + STR_TITLE_EDITOR_ACTION_ADD = 5407, + STR_TITLE_EDITOR_ACTION_REMOVE = 5408, + STR_TITLE_EDITOR_ACTION_INSERT = 5409, + STR_TITLE_EDITOR_ACTION_EDIT = 5410, + STR_TITLE_EDITOR_ACTION_RELOAD = 5411, // unused (commented out) + STR_TITLE_EDITOR_ACTION_SKIP_TO = 5412, + STR_TITLE_EDITOR_ACTION_LOAD = 5413, + STR_TITLE_EDITOR_COMMAND_LOAD_SFMM = 5414, + STR_TITLE_EDITOR_COMMAND_LOAD_FILE = 5415, + STR_TITLE_EDITOR_COMMAND_LOAD_NO_SAVE = 5416, + STR_TITLE_EDITOR_COMMAND_TYPE_LOCATION = 5417, + STR_TITLE_EDITOR_COMMAND_LOCATION = 5418, + STR_TITLE_EDITOR_COMMAND_TYPE_ROTATE = 5419, + STR_TITLE_EDITOR_COMMAND_ROTATE = 5420, + STR_TITLE_EDITOR_COMMAND_TYPE_ZOOM = 5421, + STR_TITLE_EDITOR_COMMAND_ZOOM = 5422, + STR_TITLE_EDITOR_COMMAND_TYPE_WAIT = 5423, + STR_TITLE_EDITOR_COMMAND_WAIT = 5424, + STR_TITLE_EDITOR_RESTART = 5425, + STR_TITLE_EDITOR_END = 5426, + STR_TITLE_EDITOR_ARGUMENT_COORDINATES = 5427, + STR_TITLE_EDITOR_ARGUMENT_ROTATIONS = 5428, + STR_TITLE_EDITOR_ARGUMENT_ZOOM_LEVEL = 5429, + STR_TITLE_EDITOR_ARGUMENT_WAIT_SECONDS = 5430, + STR_TITLE_EDITOR_ARGUMENT_SAVEFILE = 5431, + STR_TITLE_COMMAND_EDITOR_COMMAND_LABEL = 5432, + STR_TITLE_EDITOR_TITLE = 5433, + STR_TITLE_COMMAND_EDITOR_TITLE = 5434, + STR_FILEBROWSER_RENAME_SAVE_TITLE = 5435, STR_EDIT_TITLE_SEQUENCES_BUTTON = 5436, - + STR_TITLE_COMMAND_EDITOR_NO_SAVE_SELECTED = 5437, + STR_TITLE_EDITOR_ERR_CANT_CHANGE_WHILE_EDITOR_IS_OPEN = 5438, +// STR_5439 :A wait command with at least 4 seconds is required with a restart command STR_MINIMISE_FULLSCREEN_ON_FOCUS_LOSS = 5440, - STR_SELECT_BY_TRACK_TYPE_TIP = 5441, - STR_FORCE_PARK_RATING = 5442, - + STR_TITLE_EDITOR_COMMAND_SPEED = 5443, + STR_TITLE_EDITOR_ARGUMENT_SPEED = 5444, + STR_TITLE_EDITOR_COMMAND_TYPE_SPEED = 5445, + STR_TITLE_COMMAND_EDITOR_ACTION_GET_LOCATION = 5446, STR_OBJECTS_SORT_TYPE = 5447, STR_OBJECTS_SORT_RIDE = 5448, - STR_SHORTCUT_REDUCE_GAME_SPEED = 5449, STR_SHORTCUT_INCREASE_GAME_SPEED = 5450, STR_SHORTCUT_OPEN_CHEATS_WINDOW = 5451, STR_SHORTCUT_TOGGLE_VISIBILITY_OF_TOOLBARS = 5452, - STR_SELECT_OTHER_RIDE = 5453, - STR_UNCAP_FPS = 5454, - STR_ENABLE_SANDBOX_MODE = 5455, STR_DISABLE_CLEARANCE_CHECKS = 5456, STR_DISABLE_SUPPORT_LIMITS = 5457, - STR_ROTATE_CLOCKWISE = 5458, STR_ROTATE_ANTI_CLOCKWISE = 5459, STR_SHORTCUT_ROTATE_VIEW_ANTICLOCKWISE = 5460, - STR_CHEAT_SET_GUESTS_PARAMETERS = 5461, STR_CHEAT_CURRENCY_FORMAT = 5462, STR_CHEAT_HAVE_FUN = 5463, STR_CHEAT_GENERAL_GROUP = 5464, STR_CHEAT_CLIMATE_GROUP = 5465, STR_CHEAT_STAFF_GROUP = 5466, - STR_ALT_PLUS = 5467, STR_SHOW_RECENT_MESSAGES_ON_TOOLBAR = 5468, - STR_SHORTCUT_SCROLL_MAP_UP = 5469, STR_SHORTCUT_SCROLL_MAP_LEFT = 5470, STR_SHORTCUT_SCROLL_MAP_DOWN = 5471, STR_SHORTCUT_SCROLL_MAP_RIGHT = 5472, - STR_CYCLE_DAY_NIGHT = 5473, STR_UPPERCASE_BANNERS = 5474, - STR_X_WEEKS = 5475, - STR_HARDWARE_GROUP = 5476, STR_RENDERING_GROUP = 5477, STR_CONTROLS_GROUP = 5478, STR_TOOLBAR_BUTTONS_GROUP = 5479, STR_SHOW_TOOLBAR_BUTTONS_FOR = 5480, STR_THEMES_GROUP = 5481, - STR_TIME_SINCE_LAST_INSPECTION_MINUTE = 5482, - STR_X_WEEKS_REMAINING = 5483, STR_1_WEEK_REMAINING = 5484, - + STR_BOTTOM_TOOLBAR_NEWS_TEXT = 5485, STR_LAND_TOOL_SIZE_VALUE = 5486, - STR_SHOW_RECENT_MESSAGES_TIP = 5487, - STR_ENTRANCE_NONE = 5488, - STR_TRACKED_GUESTS_ONLY_TIP = 5489, - STR_AUDIO_FOCUS = 5490, - STR_DEBUG_DROPDOWN_INVENTIONS_LIST = 5491, STR_DEBUG_DROPDOWN_SCENARIO_OPTIONS = 5492, - STR_SEND_MESSAGE = 5493, - STR_PLAYER_LIST = 5495, +// STR_5494 : + STR_PLAYER_LIST = 5495, // Unused STR_PLAYER = 5496, STR_PING = 5497, STR_SERVER_LIST = 5498, @@ -2295,54 +2970,66 @@ enum { STR_ENTER_HOSTNAME_OR_IP_ADDRESS = 5503, STR_SHOW_MULTIPLAYER_STATUS_TIP = 5504, STR_UNABLE_TO_CONNECT_TO_SERVER = 5505, - STR_CHEAT_IGNORE_INTENSITY = 5506, - STR_HANDYMEN_MOW_BY_DEFAULT = 5507, - STR_ALLOW_LOADING_WITH_INCORRECT_CHECKSUM = 5508, STR_ALLOW_LOADING_WITH_INCORRECT_CHECKSUM_TIP = 5509, - + STR_OPTIONS_SOUND_VALUE_DEFAULT = 5510, + STR_OPTIONS_SOUND_VALUE_UNKNOWN = 5511, STR_SAVE_GAME_AS = 5512, STR_SHORTCUT_QUICK_SAVE_GAME = 5513, - STR_CHEAT_DISABLE_VANDALISM = 5514, STR_CHEAT_DISABLE_VANDALISM_TIP = 5515, - - STR_COLOUR_NAMES_START = 5516, - + STR_COLOUR_BLACK_TIP = 5516, + STR_COLOUR_GREY_TIP = 5517, + STR_COLOUR_WHITE_TIP = 5518, + STR_COLOUR_DARK_PURPLE_TIP = 5519, + STR_COLOUR_LIGHT_PURPLE_TIP = 5520, + STR_COLOUR_BRIGHT_PURPLE_TIP = 5521, + STR_COLOUR_DARK_BLUE_TIP = 5522, + STR_COLOUR_LIGHT_BLUE_TIP = 5523, + STR_COLOUR_ICY_BLUE_TIP = 5524, + STR_COLOUR_TEAL_TIP = 5525, + STR_COLOUR_AQUAMARINE_TIP = 5526, + STR_COLOUR_SATURATED_GREEN_TIP = 5527, + STR_COLOUR_DARK_GREEN_TIP = 5528, + STR_COLOUR_MOSS_GREEN_TIP = 5529, + STR_COLOUR_BRIGHT_GREEN_TIP = 5530, + STR_COLOUR_OLIVE_GREEN_TIP = 5531, + STR_COLOUR_DARK_OLIVE_GREEN_TIP = 5532, + STR_COLOUR_BRIGHT_YELLOW_TIP = 5533, + STR_COLOUR_YELLOW_TIP = 5534, + STR_COLOUR_DARK_YELLOW_TIP = 5535, + STR_COLOUR_LIGHT_ORANGE_TIP = 5536, + STR_COLOUR_DARK_ORANGE_TIP = 5537, + STR_COLOUR_LIGHT_BROWN_TIP = 5538, + STR_COLOUR_SATURATED_BROWN_TIP = 5539, + STR_COLOUR_DARK_BROWN_TIP = 5540, + STR_COLOUR_SALMON_PINK_TIP = 5541, + STR_COLOUR_BORDEAUX_RED_TIP = 5542, + STR_COLOUR_SATURATED_RED_TIP = 5543, + STR_COLOUR_BRIGHT_RED_TIP = 5544, + STR_COLOUR_DARK_PINK_TIP = 5545, + STR_COLOUR_BRIGHT_PINK_TIP = 5546, + STR_COLOUR_LIGHT_PINK_TIP = 5547, STR_CHEAT_SHOW_ALL_OPERATING_MODES = 5548, - STR_DATE_FORMAT_YEAR_MONTH_DAY = 5549, STR_DATE_FORMAT_YMD = 5550, STR_DATE_FORMAT_YEAR_DAY_MONTH = 5551, STR_DATE_FORMAT_YDM = 5552, - STR_STEAM_OVERLAY_PAUSE = 5553, - STR_ENABLE_MOUNTAIN_TOOL_TIP = 5554, - STR_CHEAT_SHOW_VEHICLES_FROM_OTHER_TRACK_TYPES = 5555, - STR_KICK_PLAYER_TIP = 5556, STR_STAY_CONNECTED_AFTER_DESYNC = 5557, - - STR_AUTO_OPEN_SHOPS = 5586, - STR_AUTO_OPEN_SHOPS_TIP = 5587, - - STR_RESTART_REQUIRED = 5558, - STR_LANGUAGE_LOAD_FAILED = 5561, - + STR_RESTART_REQUIRED = 5558, + STR_CHEAT_10_MINUTE_INSPECTIONS = 5559, + STR_CHEAT_10_MINUTE_INSPECTIONS_TIP = 5560, + STR_LANGUAGE_LOAD_FAILED = 5561, STR_WARNING_IN_CAPS = 5562, STR_THIS_FEATURE_IS_CURRENTLY_UNSTABLE = 5563, - - STR_INSERT_CORRUPT = 5564, + STR_INSERT_CORRUPT = 5564, // Unused STR_INSERT_CORRUPT_TIP = 5565, - STR_REMOVE_SELECTED_ELEMENT_TIP = 5607, - STR_MOVE_SELECTED_ELEMENT_UP_TIP = 5617, - STR_MOVE_SELECTED_ELEMENT_DOWN_TIP = 5618, - STR_ROTATE_SELECTED_ELEMENT_TIP = 5803, - STR_PASSWORD = 5566, STR_ADVERTISE = 5567, STR_PASSWORD_REQUIRED = 5568, @@ -2354,25 +3041,18 @@ enum { STR_SERVER_NAME = 5574, STR_MAX_PLAYERS = 5575, STR_PORT = 5576, - STR_WON = 5577, STR_ROUBLE = 5578, - STR_UI_SCALING_DESC = 5579, - STR_CZECH_KORUNA = 5580, - STR_SHOW_FPS = 5581, - STR_TRAP_MOUSE = 5582, - STR_UNIT_SUFFIX_METRES_PER_SECOND = 5583, STR_SI = 5584, - STR_CHEAT_UNLOCK_OPERATING_LIMITS_TIP = 5585, - + STR_AUTO_OPEN_SHOPS = 5586, + STR_AUTO_OPEN_SHOPS_TIP = 5587, STR_SHOW_MULTIPLAYER_TIP = 5588, - STR_NOTIFICATION_SETTINGS = 5589, STR_NOTIFICATION_PARK_AWARD = 5590, STR_NOTIFICATION_PARK_MARKETING_CAMPAIGN_FINISHED = 5591, @@ -2391,7 +3071,18 @@ enum { STR_NOTIFICATION_GUEST_BOUGHT_ITEM = 5604, STR_NOTIFICATION_GUEST_USED_FACILITY = 5605, STR_NOTIFICATION_GUEST_DIED = 5606, - + STR_REMOVE_SELECTED_ELEMENT_TIP = 5607, + STR_TILE_INSPECTOR_BASE_HEIGHT_SHORT = 5608, + STR_TILE_INSPECTOR_CLEARANGE_HEIGHT_SHORT = 5609, +// 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_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_MOVE_SELECTED_ELEMENT_UP_TIP = 5617, + STR_MOVE_SELECTED_ELEMENT_DOWN_TIP = 5618, STR_SCENARIO_CATEGORY_RCT1 = 5619, STR_SCENARIO_CATEGORY_RCT1_AA = 5620, STR_SCENARIO_CATEGORY_RCT1_LL = 5621, @@ -2400,18 +3091,14 @@ enum { STR_SCENARIO_CATEGORY_RCT2_TT = 5624, STR_SCENARIO_CATEGORY_REAL_PARKS = 5625, STR_SCENARIO_CATEGORY_OTHER_PARKS = 5626, - STR_OPTIONS_SCENARIO_GROUPING = 5627, STR_OPTIONS_SCENARIO_ORIGIN = 5628, STR_OPTIONS_SCENARIO_DIFFICULTY = 5629, STR_OPTIONS_SCENARIO_UNLOCKING = 5630, - STR_DLC_PARKS = 5631, STR_BUILD_YOUR_OWN_PARKS = 5632, - STR_CMD_PLUS = 5633, STR_OPTION_PLUS = 5634, - STR_MONEY_SPENT = 5635, STR_COMMANDS_RAN = 5636, STR_CANT_DO_THIS = 5637, @@ -2422,7 +3109,6 @@ enum { STR_GROUP = 5642, STR_ADD_GROUP = 5643, STR_REMOVE_GROUP = 5644, - STR_ACTION_CHAT = 5645, STR_ACTION_TERRAFORM = 5646, STR_ACTION_TOGGLE_PAUSE = 5647, @@ -2445,7 +3131,7 @@ enum { STR_ACTION_CHEAT = 5664, STR_ACTION_TOGGLE_SCENERY_CLUSTER = 5665, STR_ACTION_PASSWORDLESS_LOGIN = 5666, - +// Empty block STR_LAST_ACTION_RAN = 5701, STR_LOCATE_PLAYER_TIP = 5702, STR_CANT_KICK_THE_HOST = 5703, @@ -2458,16 +3144,12 @@ enum { STR_GROUP_NAME = 5710, STR_ENTER_NEW_NAME_FOR_THIS_GROUP = 5711, STR_CANT_MODIFY_PERMISSION_THAT_YOU_DO_NOT_HAVE_YOURSELF = 5712, - +// STR_5713 :Kick Player (unused) STR_SHORTCUT_SHOW_OPTIONS = 5714, - STR_NEW_GAME = 5715, - - STR_NOT_ALLOWED_IN_MULTIPLAYER = 5716, - + STR_NOT_ALLOWED_IN_MULTIPLAYER = 5716, // Unused STR_NETWORK_VERSION = 5717, STR_NETWORK_VERSION_TIP = 5718, - STR_SUNNY = 5719, STR_PARTIALLY_CLOUDY = STR_SUNNY + 1, STR_CLOUDY = STR_SUNNY + 2, @@ -2476,24 +3158,21 @@ enum { STR_THUNDERSTORM = STR_SUNNY + 5, STR_FORCE_WEATHER = 5725, STR_FORCE_WEATHER_TOOLTIP = 5726, - STR_SCALING_QUALITY = 5727, - STR_REQUIRES_HW_DISPLAY = 5728, - STR_REQUIRES_HW_DISPLAY_TIP = 5729, + STR_REQUIRES_HW_DISPLAY = 5728, // unused + STR_REQUIRES_HW_DISPLAY_TIP = 5729, // unused STR_SCALING_QUALITY_NN = 5730, STR_SCALING_QUALITY_LINEAR = 5731, STR_SCALING_QUALITY_ANISOTROPIC = 5732, STR_USE_NN_AT_INTEGER_SCALE = 5733, STR_OPTIONS_RENDERING_TIP = 5734, - + STR_THEMES_WINDOW_NETWORK_STATUS = 5735, + STR_THEMES_WINDOW_PLAYER = 5736, STR_CLOSED_WITH_PERSON = 5737, STR_CLOSED_WITH_PEOPLE = 5738, - STR_CUSTOMERS_ON_RIDE = 5739, - STR_CHEAT_NEVERENDING_MARKETING = 5740, STR_CHEAT_NEVERENDING_MARKETING_TIP = 5741, - STR_MULTIPLAYER_AUTHENTICATING = 5742, STR_MULTIPLAYER_CONNECTING = 5743, STR_MULTIPLAYER_RESOLVING = 5744, @@ -2512,16 +3191,13 @@ enum { STR_MULTIPLAYER_SERVER_FULL = 5757, STR_MULTIPLAYER_PLAYER_HAS_JOINED_THE_GAME = 5758, STR_MULTIPLAYER_DOWNLOADING_MAP = 5759, - STR_HONG_KONG_DOLLAR = 5760, STR_NEW_TAIWAN_DOLLAR = 5761, STR_CHINESE_YUAN = 5762, - STR_ALL_FILES = 5763, - STR_INVALID_RIDE_TYPE = 5764, STR_CANT_EDIT_INVALID_RIDE_TYPE = 5765, - +// 5766 is unused STR_RIDE_LIST_INCOME = 5767, STR_RIDE_LIST_TOTAL_CUSTOMERS = 5768, STR_RIDE_LIST_TOTAL_PROFIT = 5769, @@ -2537,22 +3213,14 @@ enum { STR_RIDE_LIST_INCOME_LABEL = 5779, STR_RIDE_LIST_RUNNING_COST_LABEL = 5780, STR_RIDE_LIST_RUNNING_COST_UNKNOWN = 5781, - - STR_MULTIPLAYER_CONNECTED_CHAT_HINT = 5782, - STR_SCENARIO_LOCKED = 5783, STR_SCENARIO_LOCKED_DESC = 5784, - STR_CANT_RENAME_GROUP = 5785, STR_INVALID_GROUP_NAME = 5786, - STR_X_PLAYERS_ONLINE = 5787, - STR_DEFAULT_INSPECTION_INTERVAL = 5788, - STR_DISABLE_LIGHTNING_EFFECT = 5789, - STR_CHEAT_UNLOCK_PRICES_TIP = 5790, STR_CHEAT_RENEW_RIDES_TIP = 5791, STR_CHEAT_FIX_ALL_RIDES_TIP = 5792, @@ -2564,27 +3232,21 @@ enum { STR_CHEAT_BUILD_IN_PAUSE_MODE_TIP = 5798, STR_CHEAT_DISABLE_BRAKES_FAILURE_TIP = 5799, STR_CHEAT_DISABLE_BREAKDOWNS_TIP = 5800, - STR_CHEAT_DISABLE_LITTERING = 5801, STR_CHEAT_DISABLE_LITTERING_TIP = 5802, - + STR_ROTATE_SELECTED_ELEMENT_TIP = 5803, STR_SHORTCUT_MUTE_SOUND = 5804, - STR_ADVERTISE_SERVER_TIP = 5805, - STR_SHORTCUT_WINDOWED_MODE_TOGGLE = 5806, STR_NUMBER_RIDES = 5807, STR_NUMBER_SHOPS_AND_STALLS = 5808, STR_NUMBER_RESTROOMS_AND_INFORMATION_KIOSKS = 5809, - STR_CHEAT_DISABLE_TRAIN_LENGTH_LIMIT = 5810, STR_CHEAT_DISABLE_TRAIN_LENGTH_LIMIT_TIP = 5811, - STR_SHORTCUT_SHOW_MULTIPLAYER = 5812, - - STR_HARDWARE_DISPLAY_TIP = 5858, + STR_TRACK_LIST_NAME_FORMAT = 5813, + STR_TRACK_PREVIEW_NAME_FORMAT = 5814, STR_SHOW_FPS_TIP = 5815, - STR_UNCAP_FPS_TIP = 5859, STR_WINDOW_SCALE_TIP = 5816, STR_SCALE_QUALITY_TIP = 5817, STR_USE_NN_AT_INTEGER_SCALE_TIP = 5818, @@ -2627,12 +3289,9 @@ enum { STR_FULLSCREEN_MODE_TIP = 5855, STR_DISPLAY_RESOLUTION_TIP = 5856, STR_OPTIONS_TIP = 5857, - + STR_HARDWARE_DISPLAY_TIP = 5858, // Unused + STR_UNCAP_FPS_TIP = 5859, STR_SHORTCUT_PAINT_ORIGINAL = 5860, - - STR_TRACK_LIST_NAME_FORMAT = 5813, - STR_TRACK_PREVIEW_NAME_FORMAT = 5814, - STR_MULTIPLAYER_VERIFICATION_FAILURE = 5861, STR_ALLOW_KNOWN_KEYS_ONLY = 5862, STR_ALLOW_KNOWN_KEYS_ONLY_TIP = 5863, @@ -2643,22 +3302,17 @@ enum { STR_PROVIDER_EMAIL = 5868, STR_PROVIDER_WEBSITE = 5869, STR_SHOW_SERVER_INFO_TIP = 5870, - STR_CHEAT_DISABLE_PLANT_AGING = 5871, STR_CHEAT_DISABLE_PLANT_AGING_TIP = 5872, - STR_CHEAT_ENABLE_CHAIN_LIFT_ON_ALL_TRACK = 5873, STR_CHEAT_ENABLE_CHAIN_LIFT_ON_ALL_TRACK_TIP = 5874, - STR_DRAWING_ENGINE = 5875, STR_DRAWING_ENGINE_TIP = 5876, STR_DRAWING_ENGINE_SOFTWARE = 5877, STR_DRAWING_ENGINE_SOFTWARE_WITH_HARDWARE_DISPLAY = 5878, STR_DRAWING_ENGINE_OPENGL = 5879, - STR_SELECTED_ONLY = 5880, STR_NON_SELECTED_ONLY = 5881, - STR_CUSTOM_CURRENCY = 5882, STR_CUSTOM_CURRENCY_WINDOW_TITLE = 5883, STR_RATE = 5884, @@ -2668,13 +3322,10 @@ enum { STR_SUFFIX = 5888, STR_CUSTOM_CURRENCY_SYMBOL_INPUT_TITLE = 5889, STR_CUSTOM_CURRENCY_SYMBOL_INPUT_DESC = 5890, - STR_LOADSAVE_DEFAULT = 5891, STR_LOADSAVE_DEFAULT_TIP = 5892, - STR_RATE_INPUT_TITLE = 5893, STR_RATE_INPUT_DESC = 5894, - STR_FILE_DIALOG_TITLE_SAVE_TRACK = 5895, STR_TRACK_SAVE_FAILED = 5896, diff --git a/src/management/award.c b/src/management/award.c index 15ba7df53d..19bf62ff3a 100644 --- a/src/management/award.c +++ b/src/management/award.c @@ -48,6 +48,26 @@ static const uint8 AwardPositiveMap[] = { POSITIVE, // PARK_AWARD_BEST_GENTLE_RIDES }; +static const rct_string_id AwardNewsStrings[] = { + STR_NEWS_ITEM_AWARD_MOST_UNTIDY, + STR_NEWS_ITEM_MOST_TIDY, + STR_NEWS_ITEM_BEST_ROLLERCOASTERS, + STR_NEWS_ITEM_BEST_VALUE, + STR_NEWS_ITEM_MOST_BEAUTIFUL, + STR_NEWS_ITEM_WORST_VALUE, + STR_NEWS_ITEM_SAFEST, + STR_NEWS_ITEM_BEST_STAFF, + STR_NEWS_ITEM_BEST_FOOD, + STR_NEWS_ITEM_WORST_FOOD, + STR_NEWS_ITEM_BEST_RESTROOMS, + STR_NEWS_ITEM_MOST_DISAPPOINTING, + STR_NEWS_ITEM_BEST_WATER_RIDES, + STR_NEWS_ITEM_BEST_CUSTOM_DESIGNED_RIDES, + STR_NEWS_ITEM_MOST_DAZZLING_RIDE_COLOURS, + STR_NEWS_ITEM_MOST_CONFUSING_LAYOUT, + STR_NEWS_ITEM_BEST_GENTLE_RIDES, +}; + rct_award *gCurrentAwards = (rct_award*)RCT2_ADDRESS_AWARD_LIST; bool award_is_positive(int type) @@ -634,7 +654,7 @@ void award_update_all() gCurrentAwards[freeAwardEntryIndex].type = awardType; gCurrentAwards[freeAwardEntryIndex].time = 5; if (gConfigNotifications.park_award) { - news_item_add_to_queue(NEWS_ITEM_AWARD, STR_NEWS_ITEM_AWARD_MOST_UNTIDY + awardType, 0); + news_item_add_to_queue(NEWS_ITEM_AWARD, AwardNewsStrings[awardType], 0); } window_invalidate_by_class(WC_PARK_INFORMATION); } diff --git a/src/management/marketing.c b/src/management/marketing.c index 07eab7f4a3..2880fe1b38 100644 --- a/src/management/marketing.c +++ b/src/management/marketing.c @@ -102,7 +102,7 @@ void marketing_update() } if (gConfigNotifications.park_marketing_campaign_finished) { - news_item_add_to_queue(NEWS_ITEM_MONEY, STR_MARKETING_FINISHED_BASE + campaign, 0); + news_item_add_to_queue(NEWS_ITEM_MONEY, MarketingCampaignNames[campaign][2], 0); } } } diff --git a/src/management/research.c b/src/management/research.c index 9d6f2a79e6..d7c2e551e5 100644 --- a/src/management/research.c +++ b/src/management/research.c @@ -211,7 +211,7 @@ void research_finish_item(sint32 entryIndex) // I don't think 0x009AC06C is ever not 0, so probably redundant if (RCT2_GLOBAL(0x009AC06C, uint8) == 0) { set_format_arg(0, rct_string_id, ((rideEntry->flags & RIDE_ENTRY_FLAG_SEPARATE_RIDE_NAME)) ? - rideEntry->name : base_ride_type + 2); + rideEntry->name : base_ride_type + STR_RIDE_NAME_SPIRAL_ROLLER_COASTER); // TODO: remove string addition if (!gSilentResearch) { if (gConfigNotifications.ride_researched) { news_item_add_to_queue(NEWS_ITEM_RESEARCH, STR_NEWS_ITEM_RESEARCH_NEW_RIDE_AVAILABLE, entryIndex); diff --git a/src/network/network.cpp b/src/network/network.cpp index 6a7fce2559..1dfb39f8f3 100644 --- a/src/network/network.cpp +++ b/src/network/network.cpp @@ -2086,7 +2086,8 @@ const char* network_get_group_name(unsigned int index) void network_chat_show_connected_message() { - char *templateString = (char*)language_get_string(STR_INDIVIDUAL_KEYS_BASE); + // TODO: How does this work? 2525 is '???' + char *templateString = (char*)language_get_string(STR_SHORTCUT_KEY_UNKNOWN); keyboard_shortcut_format_string(templateString, gShortcutKeys[SHORTCUT_OPEN_CHAT_WINDOW]); utf8 buffer[256]; NetworkPlayer server; diff --git a/src/object/StexObject.cpp b/src/object/StexObject.cpp index 93e7471290..855521be75 100644 --- a/src/object/StexObject.cpp +++ b/src/object/StexObject.cpp @@ -64,7 +64,7 @@ void StexObject::DrawPreview(rct_drawpixelinfo * dpi, sint32 width, sint32 heigh // Write (no image) sint32 x = width / 2; sint32 y = height / 2; - gfx_draw_string_centred(dpi, 3326, x, y, 0, nullptr); + gfx_draw_string_centred(dpi, STR_WINDOW_NO_IMAGE, x, y, 0, nullptr); } const utf8 * StexObject::GetName() const diff --git a/src/object/WaterObject.cpp b/src/object/WaterObject.cpp index cf2ee24a3c..ac11a2c062 100644 --- a/src/object/WaterObject.cpp +++ b/src/object/WaterObject.cpp @@ -63,5 +63,5 @@ void WaterObject::DrawPreview(rct_drawpixelinfo * dpi, sint32 width, sint32 heig // Write (no image) sint32 x = width / 2; sint32 y = height / 2; - gfx_draw_string_centred(dpi, 3326, x, y, 0, nullptr); + gfx_draw_string_centred(dpi, STR_WINDOW_NO_IMAGE, x, y, 0, nullptr); } diff --git a/src/paint/map_element/entrance.c b/src/paint/map_element/entrance.c index f3f9e31496..5668b0319c 100644 --- a/src/paint/map_element/entrance.c +++ b/src/paint/map_element/entrance.c @@ -194,7 +194,7 @@ void park_entrance_paint(uint8 direction, int height, rct_map_element* map_eleme if (ghost_id != 0) break; - rct_string_id park_text_id = 1730; + rct_string_id park_text_id = STR_BANNER_TEXT_CLOSED; set_format_arg(0, uint32, 0); set_format_arg(4, uint32, 0); @@ -202,7 +202,7 @@ void park_entrance_paint(uint8 direction, int height, rct_map_element* map_eleme set_format_arg(0, rct_string_id, gParkName); set_format_arg(2, uint32, gParkNameArgs); - park_text_id = 1731; + park_text_id = STR_BANNER_TEXT_FORMAT; } utf8 park_name[MAX_PATH]; diff --git a/src/paint/sprite/misc.c b/src/paint/sprite/misc.c index 2274e8c9cd..f16d76d51f 100644 --- a/src/paint/sprite/misc.c +++ b/src/paint/sprite/misc.c @@ -19,6 +19,7 @@ #include "../../drawing/drawing.h" #include "../../interface/viewport.h" #include "../paint.h" +#include "../../localisation/string_ids.h" /** rct2: 0x0097EDA4 */ const sint8 money_wave[] = { @@ -54,10 +55,10 @@ void misc_paint(rct_sprite *misc, int imageDirection) rct_money_effect moneyEffect = misc->money_effect; money32 amount = moneyEffect.value; - uint16 stringId = 1388; // {OUTLINE}{GREEN}+ {CURRENCY} + rct_string_id stringId = STR_MONEY_EFFECT_RECEIVE; if (amount < 0) { amount = -amount; - stringId = 1389; // {OUTLINE}{RED}- {CURRENCY} + stringId = STR_MONEY_EFFECT_SPEND; } sub_685EBC(amount, stringId, moneyEffect.y, moneyEffect.z, (sint8 *) &money_wave[moneyEffect.wiggle % 22], moneyEffect.offset_x, get_current_rotation()); diff --git a/src/peep/peep.c b/src/peep/peep.c index 4730470d16..df2456905a 100644 --- a/src/peep/peep.c +++ b/src/peep/peep.c @@ -6169,7 +6169,7 @@ rct_peep *peep_generate(int x, int y, int z) peep->no_of_rides = 0; memset(&peep->ride_types_been_on, 0, 16); peep->id = gNextGuestNumber++; - peep->name_string_idx = 767; + peep->name_string_idx = STR_GUEST_X; money32 cash = (scenario_rand() & 0x3) * 100 - 100 + gGuestInitialCash; if (cash < 0) cash = 0; @@ -6377,13 +6377,14 @@ void get_arguments_from_thought(rct_peep_thought thought, uint32* argument_1, ui rct_ride* ride = get_ride(thought.item); esi = (int)(&(ride->name)); } else if ((RCT2_ADDRESS(0x00981DB1, uint16)[thought.type] & 0xFF) & 2) { - RCT2_GLOBAL(0x009AC86C, uint16) = ShopItemStringIds[thought.item].singular; + RCT2_GLOBAL(0x009AC86C, rct_string_id) = ShopItemStringIds[thought.item].singular; } else if ((RCT2_ADDRESS(0x00981DB1, uint16)[thought.type] & 0xFF) & 4) { - RCT2_GLOBAL(0x009AC86C, uint16) = ShopItemStringIds[thought.item].indefinite; + RCT2_GLOBAL(0x009AC86C, rct_string_id) = ShopItemStringIds[thought.item].indefinite; } else { esi = 0x009AC864; //No thought? } - *argument_1 = (((thought.type + STR_THOUGHT_START) & 0xFFFF) | (((uint32)*((uint16*)esi)) << 16)); + + *argument_1 = ((PeepThoughts[thought.type] & 0xFFFF) | (((uint32)*((uint16*)esi)) << 16)); *argument_2 = *((uint32*)(esi + 2)); //Always 0 apart from on rides? } @@ -6429,9 +6430,9 @@ const int face_sprite_small[] = { }; const int face_sprite_large[] = { - SPR_PEEP_LARGE_FACE_ANGRY, - SPR_PEEP_LARGE_FACE_VERY_VERY_SICK, - SPR_PEEP_LARGE_FACE_VERY_SICK, + SPR_PEEP_LARGE_FACE_ANGRY_0, + SPR_PEEP_LARGE_FACE_VERY_VERY_SICK_0, + SPR_PEEP_LARGE_FACE_VERY_SICK_0, SPR_PEEP_LARGE_FACE_SICK, SPR_PEEP_LARGE_FACE_VERY_TIRED, SPR_PEEP_LARGE_FACE_TIRED, @@ -6747,9 +6748,9 @@ static void peep_stop_purchase_thought(rct_peep* peep, uint8 ride_type){ void peep_set_map_tooltip(rct_peep *peep) { if (peep->type == PEEP_TYPE_GUEST) { - set_map_tooltip_format_arg(0, uint16, peep->peep_flags & PEEP_FLAGS_TRACKING ? 1450 : 1449); + set_map_tooltip_format_arg(0, rct_string_id, peep->peep_flags & PEEP_FLAGS_TRACKING ? STR_TRACKED_GUEST_MAP_TIP : STR_GUEST_MAP_TIP); set_map_tooltip_format_arg(2, uint32, get_peep_face_sprite_small(peep)); - set_map_tooltip_format_arg(6, uint16, peep->name_string_idx); + set_map_tooltip_format_arg(6, rct_string_id, peep->name_string_idx); set_map_tooltip_format_arg(8, uint32, peep->id); uint32 arg0, arg1; @@ -6757,8 +6758,8 @@ void peep_set_map_tooltip(rct_peep *peep) set_map_tooltip_format_arg(12, uint32, arg0); set_map_tooltip_format_arg(16, uint32, arg1); } else { - set_map_tooltip_format_arg(0, uint16, 1451); - set_map_tooltip_format_arg(2, uint16, peep->name_string_idx); + set_map_tooltip_format_arg(0, rct_string_id, STR_STAFF_MAP_TIP); + set_map_tooltip_format_arg(2, rct_string_id, peep->name_string_idx); set_map_tooltip_format_arg(4, uint32, peep->id); uint32 arg0, arg1; @@ -9052,9 +9053,9 @@ loc_69B221: peep->window_invalidate_flags |= PEEP_INVALIDATE_PEEP_INVENTORY; peep_update_sprite_type(peep); if (peep->peep_flags & PEEP_FLAGS_TRACKING) { - set_format_arg(0, uint16, peep->name_string_idx); + set_format_arg(0, rct_string_id, peep->name_string_idx); set_format_arg(2, uint32, peep->id); - set_format_arg(6, uint16, (shopItem >= 32 ? STR_SHOP_ITEM_INDEFINITE_PHOTO2 + (shopItem - 32) : STR_SHOP_ITEM_INDEFINITE_BALLOON + shopItem)); + set_format_arg(6, rct_string_id, ShopItemStringIds[shopItem].indefinite); if (gConfigNotifications.guest_bought_item) { news_item_add_to_queue(2, STR_PEEP_TRACKING_NOTIFICATION_BOUGHT_X, peep->sprite_index); } @@ -10489,7 +10490,7 @@ void peep_update_names(bool realNames) rct_peep *peep; uint16 spriteIndex; FOR_ALL_GUESTS(spriteIndex, peep) { - if (peep->name_string_idx == 767) { + if (peep->name_string_idx == STR_GUEST_X) { peep_give_real_name(peep); } } @@ -10499,7 +10500,7 @@ void peep_update_names(bool realNames) uint16 spriteIndex; FOR_ALL_GUESTS(spriteIndex, peep) { if (peep->name_string_idx >= 0xA000 && peep->name_string_idx < 0xE000) { - peep->name_string_idx = 767; + peep->name_string_idx = STR_GUEST_X; } } } @@ -10551,7 +10552,7 @@ money32 set_peep_name(int flags, int state, uint16 sprite_index, uint8* text_1, return 0; if (*fullText == '\0') { - gGameCommandErrorText = 1455; + gGameCommandErrorText = STR_ERR_INVALID_NAME_FOR_GUEST; return MONEY32_UNDEFINED; } diff --git a/src/peep/peep.h b/src/peep/peep.h index bd88d8b0ec..7a763c7434 100644 --- a/src/peep/peep.h +++ b/src/peep/peep.h @@ -403,7 +403,7 @@ typedef struct rct_peep { sint16 sprite_bottom; // 0x1C uint8 sprite_direction; // 0x1E uint8 pad_1F[3]; - uint16 name_string_idx; // 0x22 + rct_string_id name_string_idx; // 0x22 uint16 next_x; // 0x24 uint16 next_y; // 0x26 uint8 next_z; // 0x28 diff --git a/src/peep/staff.c b/src/peep/staff.c index 4355a499c7..8c496f4b10 100644 --- a/src/peep/staff.c +++ b/src/peep/staff.c @@ -232,8 +232,15 @@ money32 staff_hire_new_staff_member(uint8 staff_type, uint8 flags, sint16 comman newPeep->id = newStaffIndex; newPeep->staff_type = staff_type; + static const rct_string_id staffNames[] = { + STR_HANDYMAN_X, + STR_MECHANIC_X, + STR_SECURITY_GUARD_X, + STR_ENTERTAINER_X, + }; + uint8 sprite_type = RCT2_ADDRESS(0x009929FC, uint8)[staff_type]; - newPeep->name_string_idx = staff_type + 0x300; + newPeep->name_string_idx = staffNames[staff_type]; newPeep->sprite_type = sprite_type; spriteBounds = g_sprite_entries[sprite_type].sprite_bounds; diff --git a/src/rct1/S4Importer.cpp b/src/rct1/S4Importer.cpp index dbdb0686bd..a3c52765c1 100644 --- a/src/rct1/S4Importer.cpp +++ b/src/rct1/S4Importer.cpp @@ -1395,7 +1395,7 @@ void S4Importer::ImportBanner(rct_banner * dst, rct_banner * src) *dst = *src; dst->colour = RCT1::GetColour(src->colour); - dst->string_idx = 778; + dst->string_idx = STR_DEFAULT_SIGN; if (is_user_string_id(src->string_idx)) { const char * bannerText = GetUserString(src->string_idx); diff --git a/src/ride/ride.c b/src/ride/ride.c index 3f4cead7f8..37af5ff8cf 100644 --- a/src/ride/ride.c +++ b/src/ride/ride.c @@ -819,7 +819,7 @@ void ride_get_status(int rideIndex, int *formatSecondary, int *argument) } rct_peep *peep = GET_PEEP(ride->race_winner); if (ride->mode == RIDE_MODE_RACE && !(ride->lifecycle_flags & RIDE_LIFECYCLE_PASS_STATION_NO_STOPPING) && ride->race_winner != 0xFFFF && peep->sprite_identifier == SPRITE_IDENTIFIER_PEEP) { - if (peep->name_string_idx == STR_GUEST) { + if (peep->name_string_idx == STR_GUEST_X) { *argument = peep->id; *formatSecondary = STR_RACE_WON_BY_GUEST; } else { @@ -971,7 +971,7 @@ int ride_create_ride(ride_list_item listItem) esi = 0; ebp = 0; - gGameCommandErrorTitle = 0x3DC; + gGameCommandErrorTitle = STR_CANT_CREATE_NEW_RIDE_ATTRACTION; esi = GAME_COMMAND_CREATE_RIDE; game_do_command_p(esi, &eax, &ebx, &ecx, &edx, &esi, &edi, &ebp); @@ -3004,8 +3004,8 @@ rct_ride_measurement *ride_get_measurement(int rideIndex, rct_string_id *message if (message != NULL) *message = 0; return measurement; } else { - set_format_arg(0, uint16, RideNameConvention[ride->type].vehicle_name); - set_format_arg(2, uint16, RideNameConvention[ride->type].station_name); + set_format_arg(0, uint16, RideComponentNames[RideNameConvention[ride->type].vehicle].singular); + set_format_arg(2, uint16, RideComponentNames[RideNameConvention[ride->type].station].singular); if (message != NULL) *message = STR_DATA_LOGGING_WILL_START_WHEN_NEXT_LEAVES; return NULL; } @@ -3278,8 +3278,8 @@ static void ride_track_set_map_tooltip(rct_map_element *mapElement) rideIndex = mapElement->properties.track.ride_index; ride = get_ride(rideIndex); - set_map_tooltip_format_arg(0, uint16, 2215); - set_map_tooltip_format_arg(2, uint16, ride->name); + set_map_tooltip_format_arg(0, rct_string_id, STR_RIDE_MAP_TIP); + set_map_tooltip_format_arg(2, rct_string_id, ride->name); set_map_tooltip_format_arg(4, uint32, ride->name_arguments); int arg0, arg1; @@ -3301,11 +3301,11 @@ static void ride_station_set_map_tooltip(rct_map_element *mapElement) if (ride->station_starts[i] == 0xFFFF) stationIndex--; - set_map_tooltip_format_arg(0, uint16, 2215); - set_map_tooltip_format_arg(2, uint16, ride->num_stations <= 1 ? 1333 : 1334); - set_map_tooltip_format_arg(4, uint16, ride->name); + set_map_tooltip_format_arg(0, rct_string_id, STR_RIDE_MAP_TIP); + set_map_tooltip_format_arg(2, rct_string_id, ride->num_stations <= 1 ? STR_RIDE_STATION : STR_RIDE_STATION_X); + set_map_tooltip_format_arg(4, rct_string_id, ride->name); set_map_tooltip_format_arg(6, uint32, ride->name_arguments); - set_map_tooltip_format_arg(10, uint16, RideNameConvention[ride->type].station_name + 2); + set_map_tooltip_format_arg(10, rct_string_id, RideComponentNames[RideNameConvention[ride->type].station].capitalised); set_map_tooltip_format_arg(12, uint16, stationIndex + 1); int arg0, arg1; @@ -3334,17 +3334,17 @@ static void ride_entrance_set_map_tooltip(rct_map_element *mapElement) if (ride->entrances[stationIndex] != 0xFFFF) queueLength = ride->queue_length[stationIndex]; - set_map_tooltip_format_arg(0, uint16, 2215); - set_map_tooltip_format_arg(2, uint16, ride->num_stations <= 1 ? 1335 : 1336); - set_map_tooltip_format_arg(4, uint16, ride->name); + set_map_tooltip_format_arg(0, rct_string_id, STR_RIDE_MAP_TIP); + set_map_tooltip_format_arg(2, rct_string_id, ride->num_stations <= 1 ? STR_RIDE_ENTRANCE : STR_RIDE_STATION_X_ENTRANCE); + set_map_tooltip_format_arg(4, rct_string_id, ride->name); set_map_tooltip_format_arg(6, uint32, ride->name_arguments); set_map_tooltip_format_arg(12, uint16, stationIndex + 1); if (queueLength == 0) { - set_map_tooltip_format_arg(14, uint16, 1201); + set_map_tooltip_format_arg(14, rct_string_id, STR_QUEUE_EMPTY); } else if (queueLength == 1) { - set_map_tooltip_format_arg(14, uint16, 1202); + set_map_tooltip_format_arg(14, rct_string_id, STR_QUEUE_ONE_PERSON); } else { - set_map_tooltip_format_arg(14, uint16, 1203); + set_map_tooltip_format_arg(14, rct_string_id, STR_QUEUE_PEOPLE); } set_map_tooltip_format_arg(16, uint16, queueLength); } else { @@ -3354,8 +3354,8 @@ static void ride_entrance_set_map_tooltip(rct_map_element *mapElement) if (ride->station_starts[i] == 0xFFFF) stationIndex--; - set_map_tooltip_format_arg(0, uint16, ride->num_stations <= 1 ? 1337 : 1338); - set_map_tooltip_format_arg(2, uint16, ride->name); + set_map_tooltip_format_arg(0, rct_string_id, ride->num_stations <= 1 ? STR_RIDE_EXIT : STR_RIDE_STATION_X_EXIT); + set_map_tooltip_format_arg(2, rct_string_id, ride->name); set_map_tooltip_format_arg(4, uint32, ride->name_arguments); set_map_tooltip_format_arg(10, uint16, stationIndex + 1); } @@ -6341,7 +6341,7 @@ void game_command_demolish_ride(int *eax, int *ebx, int *ecx, int *edx, int *esi rct_banner *banner = &gBanners[i]; if(banner->type != BANNER_NULL && banner->flags & BANNER_FLAG_2 && banner->colour == ride_id){ banner->flags &= 0xFB; - banner->string_idx = 778; + banner->string_idx = STR_DEFAULT_SIGN; } } diff --git a/src/ride/ride.h b/src/ride/ride.h index 320378d7c5..af28fcff0c 100644 --- a/src/ride/ride.h +++ b/src/ride/ride.h @@ -841,7 +841,7 @@ enum { SHOP_ITEM_CHICKEN, SHOP_ITEM_LEMONADE, SHOP_ITEM_EMPTY_BOX, - SHOP_ITEM_EMPTY_BOTTLE, + SHOP_ITEM_EMPTY_BOTTLE = 27, SHOP_ITEM_ADMISSION = 31, SHOP_ITEM_PHOTO2 = 32, SHOP_ITEM_PHOTO3, diff --git a/src/ride/ride_data.c b/src/ride/ride_data.c index 8c5bf62f3d..aa0aae8c5f 100644 --- a/src/ride/ride_data.c +++ b/src/ride/ride_data.c @@ -696,98 +696,115 @@ const uint8 rideBonusValue[0x60] = { 55, // 59 LIM Launched Roller Coaster }; +const ride_component_name RideComponentNames[] = { + { STR_RIDE_COMPONENT_TRAIN, STR_RIDE_COMPONENT_TRAIN_PLURAL, STR_RIDE_COMPONENT_TRAIN_CAPITALISED, STR_RIDE_COMPONENT_TRAIN_CAPITALISED_PLURAL, STR_RIDE_COMPONENT_TRAIN_COUNT, STR_RIDE_COMPONENT_TRAIN_COUNT_PLURAL, STR_RIDE_COMPONENT_TRAIN_NO }, + { STR_RIDE_COMPONENT_BOAT, STR_RIDE_COMPONENT_BOAT_PLURAL, STR_RIDE_COMPONENT_BOAT_CAPITALISED, STR_RIDE_COMPONENT_BOAT_CAPITALISED_PLURAL, STR_RIDE_COMPONENT_BOAT_COUNT, STR_RIDE_COMPONENT_BOAT_COUNT_PLURAL, STR_RIDE_COMPONENT_BOAT_NO }, + { STR_RIDE_COMPONENT_TRACK, STR_RIDE_COMPONENT_TRACK_PLURAL, STR_RIDE_COMPONENT_TRACK_CAPITALISED, STR_RIDE_COMPONENT_TRACK_CAPITALISED_PLURAL, STR_RIDE_COMPONENT_TRACK_COUNT, STR_RIDE_COMPONENT_TRACK_COUNT_PLURAL, STR_RIDE_COMPONENT_TRACK_NO }, + { STR_RIDE_COMPONENT_DOCKING_PLATFORM, STR_RIDE_COMPONENT_DOCKING_PLATFORM_PLURAL, STR_RIDE_COMPONENT_DOCKING_PLATFORM_CAPITALISED, STR_RIDE_COMPONENT_DOCKING_PLATFORM_CAPITALISED_PLURAL, STR_RIDE_COMPONENT_DOCKING_PLATFORM_COUNT, STR_RIDE_COMPONENT_DOCKING_PLATFORM_COUNT_PLURAL, STR_RIDE_COMPONENT_DOCKING_PLATFORM_NO }, + { STR_RIDE_COMPONENT_STATION, STR_RIDE_COMPONENT_STATION_PLURAL, STR_RIDE_COMPONENT_STATION_CAPITALISED, STR_RIDE_COMPONENT_STATION_CAPITALISED_PLURAL, STR_RIDE_COMPONENT_STATION_COUNT, STR_RIDE_COMPONENT_STATION_COUNT_PLURAL, STR_RIDE_COMPONENT_STATION_NO }, + { STR_RIDE_COMPONENT_CAR, STR_RIDE_COMPONENT_CAR_PLURAL, STR_RIDE_COMPONENT_CAR_CAPITALISED, STR_RIDE_COMPONENT_CAR_CAPITALISED_PLURAL, STR_RIDE_COMPONENT_CAR_COUNT, STR_RIDE_COMPONENT_CAR_COUNT_PLURAL, STR_RIDE_COMPONENT_CAR_NO }, + { STR_RIDE_COMPONENT_BUILDING, STR_RIDE_COMPONENT_BUILDING_PLURAL, STR_RIDE_COMPONENT_BUILDING_CAPITALISED, STR_RIDE_COMPONENT_BUILDING_CAPITALISED_PLURAL, STR_RIDE_COMPONENT_BUILDING_COUNT, STR_RIDE_COMPONENT_BUILDING_COUNT_PLURAL, STR_RIDE_COMPONENT_BUILDING_NO }, + { STR_RIDE_COMPONENT_STRUCTURE, STR_RIDE_COMPONENT_STRUCTURE_PLURAL, STR_RIDE_COMPONENT_STRUCTURE_CAPITALISED, STR_RIDE_COMPONENT_STRUCTURE_CAPITALISED_PLURAL, STR_RIDE_COMPONENT_STRUCTURE_COUNT, STR_RIDE_COMPONENT_STRUCTURE_COUNT_PLURAL, STR_RIDE_COMPONENT_STRUCTURE_NO }, + { STR_RIDE_COMPONENT_SHIP, STR_RIDE_COMPONENT_SHIP_PLURAL, STR_RIDE_COMPONENT_SHIP_CAPITALISED, STR_RIDE_COMPONENT_SHIP_CAPITALISED_PLURAL, STR_RIDE_COMPONENT_SHIP_COUNT, STR_RIDE_COMPONENT_SHIP_COUNT_PLURAL, STR_RIDE_COMPONENT_SHIP_NO }, + { STR_RIDE_COMPONENT_CABIN, STR_RIDE_COMPONENT_CABIN_PLURAL, STR_RIDE_COMPONENT_CABIN_CAPITALISED, STR_RIDE_COMPONENT_CABIN_CAPITALISED_PLURAL, STR_RIDE_COMPONENT_CABIN_COUNT, STR_RIDE_COMPONENT_CABIN_COUNT_PLURAL, STR_RIDE_COMPONENT_CABIN_NO }, + { STR_RIDE_COMPONENT_WHEEL, STR_RIDE_COMPONENT_WHEEL_PLURAL, STR_RIDE_COMPONENT_WHEEL_CAPITALISED, STR_RIDE_COMPONENT_WHEEL_CAPITALISED_PLURAL, STR_RIDE_COMPONENT_WHEEL_COUNT, STR_RIDE_COMPONENT_WHEEL_COUNT_PLURAL, STR_RIDE_COMPONENT_WHEEL_NO }, + { STR_RIDE_COMPONENT_RING, STR_RIDE_COMPONENT_RING_PLURAL, STR_RIDE_COMPONENT_RING_CAPITALISED, STR_RIDE_COMPONENT_RING_CAPITALISED_PLURAL, STR_RIDE_COMPONENT_RING_COUNT, STR_RIDE_COMPONENT_RING_COUNT_PLURAL, STR_RIDE_COMPONENT_RING_NO }, + { STR_RIDE_COMPONENT_PLAYER, STR_RIDE_COMPONENT_PLAYER_PLURAL, STR_RIDE_COMPONENT_PLAYER_CAPITALISED, STR_RIDE_COMPONENT_PLAYER_CAPITALISED_PLURAL, STR_RIDE_COMPONENT_PLAYER_COUNT, STR_RIDE_COMPONENT_PLAYER_COUNT_PLURAL, STR_RIDE_COMPONENT_PLAYER_NO }, + { STR_RIDE_COMPONENT_COURSE, STR_RIDE_COMPONENT_COURSE_PLURAL, STR_RIDE_COMPONENT_COURSE_CAPITALISED, STR_RIDE_COMPONENT_COURSE_CAPITALISED_PLURAL, STR_RIDE_COMPONENT_COURSE_COUNT, STR_RIDE_COMPONENT_COURSE_COUNT_PLURAL, STR_RIDE_COMPONENT_COURSE_NO }, +}; + const rct_ride_name_convention RideNameConvention[96] = { - { 1229, 1243, 1257, 0 }, // 00 Spiral Roller coaster - { 1229, 1243, 1257, 0 }, // 01 Stand Up Coaster - { 1229, 1243, 1257, 0 }, // 02 Suspended Swinging - { 1229, 1243, 1257, 0 }, // 03 Inverted - { 1229, 1243, 1257, 0 }, // 04 Steel Mini Coaster - { 1229, 1243, 1257, 0 }, // 05 Mini Railroad - { 1229, 1243, 1257, 0 }, // 06 Monorail - { 1264, 1243, 1257, 0 }, // 07 Mini Suspended Coaster - { 1236, 1250, 1250, 0 }, // 08 Boat Ride - { 1264, 1243, 1257, 0 }, // 09 Wooden Wild Mine/Mouse - { 1264, 1243, 1257, 0 }, // 0a Steeplechase/Motorbike/Soap Box Derby - { 1264, 1243, 1257, 0 }, // 0b Car Ride - { 1264, 1243, 1257, 0 }, // 0c Launched Freefall - { 1229, 1243, 1257, 0 }, // 0d Bobsleigh Coaster - { 1292, 1243, 1257, 0 }, // 0e Observation Tower - { 1229, 1243, 1257, 0 }, // 0f Looping Roller Coaster - { 1236, 1243, 1257, 0 }, // 10 Dinghy Slide - { 1229, 1243, 1257, 0 }, // 11 Mine Train Coaster - { 1264, 1243, 1257, 0 }, // 12 Chairlift - { 1229, 1243, 1257, 0 }, // 13 Corkscrew Roller Coaster - { 1229, 1243, 1257, 0 }, // 14 Maze - { 1229, 1271, 1257, 0 }, // 15 Spiral Slide - { 1264, 1243, 1257, 0 }, // 16 Go Karts - { 1236, 1243, 1257, 0 }, // 17 Log Flume - { 1236, 1243, 1257, 0 }, // 18 River Rapids - { 1264, 1271, 1257, 0 }, // 19 Bumper Cars - { 1285, 1278, 1257, 0 }, // 1a Pirate Ship - { 1285, 1278, 1257, 0 }, // 1b Swinging Inverter Ship - { 1264, 1271, 1257, 0 }, // 1c Food Stall - { 1264, 1271, 1257, 0 }, // 1d (none) - { 1264, 1271, 1257, 0 }, // 1e Drink Stall - { 1264, 1271, 1257, 0 }, // 1f (none) - { 1264, 1271, 1257, 0 }, // 20 Shop (all types) - { 1264, 1278, 1257, 0 }, // 21 Merry Go Round - { 1264, 1271, 1257, 0 }, // 22 Balloon Stall (maybe) - { 1264, 1271, 1257, 0 }, // 23 Information Kiosk - { 1264, 1271, 1257, 0 }, // 24 Bathroom - { 1299, 1278, 1257, 0 }, // 25 Ferris Wheel - { 1264, 1278, 1257, 0 }, // 26 Motion Simulator - { 1271, 1278, 1257, 0 }, // 27 3D Cinema - { 1264, 1278, 1257, 0 }, // 28 Topspin - { 1306, 1278, 1257, 0 }, // 29 Space Rings - { 1264, 1243, 1257, 0 }, // 2a Reverse Freefall Coaster - { 1292, 1243, 1257, 0 }, // 2b Elevator - { 1229, 1243, 1257, 0 }, // 2c Vertical Drop Roller Coaster - { 1264, 1271, 1257, 0 }, // 2d ATM - { 1278, 1278, 1257, 0 }, // 2e Twist - { 1271, 1278, 1257, 0 }, // 2f Haunted House - { 1264, 1271, 1257, 0 }, // 30 First Aid - { 1271, 1278, 1257, 0 }, // 31 Circus Show - { 1264, 1243, 1257, 0 }, // 32 Ghost Train - { 1229, 1243, 1257, 0 }, // 33 Twister Roller Coaster - { 1229, 1243, 1257, 0 }, // 34 Wooden Roller Coaster - { 1229, 1243, 1257, 0 }, // 35 Side-Friction Roller Coaster - { 1264, 1243, 1257, 0 }, // 36 Wild Mouse - { 1229, 1243, 1257, 0 }, // 37 Multi Dimension Coaster - { 1229, 1243, 1257, 0 }, // 38 (none) - { 1229, 1243, 1257, 0 }, // 39 Flying Roller Coaster - { 1229, 1243, 1257, 0 }, // 3a (none) - { 1264, 1243, 1257, 0 }, // 3b Virginia Reel - { 1236, 1243, 1257, 0 }, // 3c Splash Boats - { 1264, 1243, 1257, 0 }, // 3d Mini Helicopters - { 1229, 1243, 1257, 0 }, // 3e Lay-down Roller Coaster - { 1229, 1243, 1257, 0 }, // 3f Suspended Monorail - { 1229, 1243, 1257, 0 }, // 40 (none) - { 1264, 1243, 1257, 0 }, // 41 Reverser Roller Coaster - { 1264, 1243, 1257, 0 }, // 42 Heartline Twister Roller Coaster - { 1313, 1320, 1257, 0 }, // 43 Mini Golf - { 1229, 1243, 1257, 0 }, // 44 Giga Coaster - { 1264, 1243, 1257, 0 }, // 45 Roto-Drop - { 1264, 1271, 1257, 0 }, // 46 Flying Saucers - { 1271, 1278, 1257, 0 }, // 47 Crooked House - { 1264, 1243, 1257, 0 }, // 48 Monorail Cycles - { 1229, 1243, 1257, 0 }, // 49 Compact Inverted Coaster - { 1236, 1243, 1257, 0 }, // 4a Water Coaster - { 1229, 1243, 1257, 0 }, // 4b Air Powered Vertical Coaster - { 1264, 1243, 1257, 0 }, // 4c Inverted Hairpin Coaster - { 1264, 1278, 1257, 0 }, // 4d Magic Carpet - { 1236, 1243, 1250, 0 }, // 4e Submarine Ride - { 1236, 1243, 1257, 0 }, // 4f River Rafts - { 1264, 1271, 1257, 0 }, // 50 (none) - { 1299, 1278, 1257, 0 }, // 51 Enterprise - { 1264, 1271, 1257, 0 }, // 52 (none) - { 1264, 1271, 1257, 0 }, // 53 (none) - { 1264, 1271, 1257, 0 }, // 54 (none) - { 1229, 1243, 1257, 0 }, // 55 (none) - { 1229, 1243, 1257, 0 }, // 56 Inverted Impulse Coaster - { 1264, 1243, 1257, 0 }, // 57 Mini Roller Coaster - { 1229, 1243, 1257, 0 }, // 58 Mine Ride - { 1264, 1243, 1257, 0 }, // 59 LIM Launched Roller Coaster - { 1229, 1243, 1257, 0 } + { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 00 Spiral Roller coaster + { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 01 Stand Up Coaster + { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 02 Suspended Swinging + { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 03 Inverted + { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 04 Steel Mini Coaster + { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 05 Mini Railroad + { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 06 Monorail + { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 07 Mini Suspended Coaster + { RIDE_COMPONENT_TYPE_BOAT, RIDE_COMPONENT_TYPE_DOCKING_PLATFORM, RIDE_COMPONENT_TYPE_DOCKING_PLATFORM }, // 08 Boat Ride + { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 09 Wooden Wild Mine/Mouse + { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 0a Steeplechase/Motorbike/Soap Box Derby + { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 0b Car Ride + { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 0c Launched Freefall + { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 0d Bobsleigh Coaster + { RIDE_COMPONENT_TYPE_CABIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 0e Observation Tower + { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 0f Looping Roller Coaster + { RIDE_COMPONENT_TYPE_BOAT, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 10 Dinghy Slide + { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 11 Mine Train Coaster + { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 12 Chairlift + { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 13 Corkscrew Roller Coaster + { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 14 Maze + { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }, // 15 Spiral Slide + { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 16 Go Karts + { RIDE_COMPONENT_TYPE_BOAT, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 17 Log Flume + { RIDE_COMPONENT_TYPE_BOAT, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 18 River Rapids + { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }, // 19 Bumper Cars + { RIDE_COMPONENT_TYPE_SHIP, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }, // 1a Pirate Ship + { RIDE_COMPONENT_TYPE_SHIP, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }, // 1b Swinging Inverter Ship + { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }, // 1c Food Stall + { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }, // 1d (none) + { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }, // 1e Drink Stall + { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }, // 1f (none) + { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }, // 20 Shop (all types) + { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }, // 21 Merry Go Round + { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }, // 22 Balloon Stall (maybe) + { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }, // 23 Information Kiosk + { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }, // 24 Bathroom + { RIDE_COMPONENT_TYPE_WHEEL, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }, // 25 Ferris Wheel + { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }, // 26 Motion Simulator + { RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }, // 27 3D Cinema + { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }, // 28 Topspin + { RIDE_COMPONENT_TYPE_RING, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }, // 29 Space Rings + { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 2a Reverse Freefall Coaster + { RIDE_COMPONENT_TYPE_CABIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 2b Elevator + { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 2c Vertical Drop Roller Coaster + { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }, // 2d ATM + { RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }, // 2e Twist + { RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }, // 2f Haunted House + { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }, // 30 First Aid + { RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }, // 31 Circus Show + { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 32 Ghost Train + { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 33 Twister Roller Coaster + { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 34 Wooden Roller Coaster + { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 35 Side-Friction Roller Coaster + { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 36 Wild Mouse + { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 37 Multi Dimension Coaster + { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 38 (none) + { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 39 Flying Roller Coaster + { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 3a (none) + { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 3b Virginia Reel + { RIDE_COMPONENT_TYPE_BOAT, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 3c Splash Boats + { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 3d Mini Helicopters + { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 3e Lay-down Roller Coaster + { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 3f Suspended Monorail + { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 40 (none) + { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 41 Reverser Roller Coaster + { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 42 Heartline Twister Roller Coaster + { RIDE_COMPONENT_TYPE_PLAYER, RIDE_COMPONENT_TYPE_COURSE, RIDE_COMPONENT_TYPE_STATION }, // 43 Mini Golf + { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 44 Giga Coaster + { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 45 Roto-Drop + { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }, // 46 Flying Saucers + { RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }, // 47 Crooked House + { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 48 Monorail Cycles + { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 49 Compact Inverted Coaster + { RIDE_COMPONENT_TYPE_BOAT, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 4a Water Coaster + { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 4b Air Powered Vertical Coaster + { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 4c Inverted Hairpin Coaster + { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }, // 4d Magic Carpet + { RIDE_COMPONENT_TYPE_BOAT, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_DOCKING_PLATFORM }, // 4e Submarine Ride + { RIDE_COMPONENT_TYPE_BOAT, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 4f River Rafts + { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }, // 50 (none) + { RIDE_COMPONENT_TYPE_WHEEL, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }, // 51 Enterprise + { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }, // 52 (none) + { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }, // 53 (none) + { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }, // 54 (none) + { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 55 (none) + { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 56 Inverted Impulse Coaster + { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 57 Mini Roller Coaster + { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 58 Mine Ride + { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }, // 59 LIM Launched Roller Coaster + { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION } }; /** @@ -1350,60 +1367,60 @@ const money8 DefaultShopItemPrice[SHOP_ITEM_COUNT] = { }; const rct_shop_item_string_types ShopItemStringIds[SHOP_ITEM_COUNT] = { - { STR_SHOP_ITEM_SINGULAR_BALLOON, STR_SHOP_ITEM_PLURAL_BALLOON, STR_SHOP_ITEM_INDEFINITE_BALLOON, STR_SHOP_ITEM_DISPLAY_BALLOON }, - { STR_SHOP_ITEM_SINGULAR_CUDDLY_TOY, STR_SHOP_ITEM_PLURAL_CUDDLY_TOY, STR_SHOP_ITEM_INDEFINITE_CUDDLY_TOY, STR_SHOP_ITEM_DISPLAY_CUDDLY_TOY }, - { STR_SHOP_ITEM_SINGULAR_PARK_MAP, STR_SHOP_ITEM_PLURAL_PARK_MAP, STR_SHOP_ITEM_INDEFINITE_PARK_MAP, STR_SHOP_ITEM_DISPLAY_PARK_MAP }, - { STR_SHOP_ITEM_SINGULAR_ON_RIDE_PHOTO, STR_SHOP_ITEM_PLURAL_ON_RIDE_PHOTO, STR_SHOP_ITEM_INDEFINITE_ON_RIDE_PHOTO, STR_SHOP_ITEM_DISPLAY_ON_RIDE_PHOTO }, - { STR_SHOP_ITEM_SINGULAR_UMBRELLA, STR_SHOP_ITEM_PLURAL_UMBRELLA, STR_SHOP_ITEM_INDEFINITE_UMBRELLA, STR_SHOP_ITEM_DISPLAY_UMBRELLA }, - { STR_SHOP_ITEM_SINGULAR_DRINK, STR_SHOP_ITEM_PLURAL_DRINK, STR_SHOP_ITEM_INDEFINITE_DRINK, STR_SHOP_ITEM_DISPLAY_DRINK }, - { STR_SHOP_ITEM_SINGULAR_BURGER, STR_SHOP_ITEM_PLURAL_BURGER, STR_SHOP_ITEM_INDEFINITE_BURGER, STR_SHOP_ITEM_DISPLAY_BURGER }, - { STR_SHOP_ITEM_SINGULAR_CHIPS, STR_SHOP_ITEM_PLURAL_CHIPS, STR_SHOP_ITEM_INDEFINITE_CHIPS, STR_SHOP_ITEM_DISPLAY_CHIPS }, - { STR_SHOP_ITEM_SINGULAR_ICE_CREAM, STR_SHOP_ITEM_PLURAL_ICE_CREAM, STR_SHOP_ITEM_INDEFINITE_ICE_CREAM, STR_SHOP_ITEM_DISPLAY_ICE_CREAM }, - { STR_SHOP_ITEM_SINGULAR_CANDYFLOSS, STR_SHOP_ITEM_PLURAL_CANDYFLOSS, STR_SHOP_ITEM_INDEFINITE_CANDYFLOSS, STR_SHOP_ITEM_DISPLAY_CANDYFLOSS }, - { STR_SHOP_ITEM_SINGULAR_EMPTY_CAN, STR_SHOP_ITEM_PLURAL_EMPTY_CAN, STR_SHOP_ITEM_INDEFINITE_EMPTY_CAN, STR_SHOP_ITEM_DISPLAY_EMPTY_CAN }, - { STR_SHOP_ITEM_SINGULAR_RUBBISH, STR_SHOP_ITEM_PLURAL_RUBBISH, STR_SHOP_ITEM_INDEFINITE_RUBBISH, STR_SHOP_ITEM_DISPLAY_RUBBISH }, - { STR_SHOP_ITEM_SINGULAR_EMPTY_BURGER_BOX, STR_SHOP_ITEM_PLURAL_EMPTY_BURGER_BOX, STR_SHOP_ITEM_INDEFINITE_EMPTY_BURGER_BOX, STR_SHOP_ITEM_DISPLAY_EMPTY_BURGER_BOX }, - { STR_SHOP_ITEM_SINGULAR_PIZZA, STR_SHOP_ITEM_PLURAL_PIZZA, STR_SHOP_ITEM_INDEFINITE_PIZZA, STR_SHOP_ITEM_DISPLAY_PIZZA }, - { STR_SHOP_ITEM_SINGULAR_VOUCHER, STR_SHOP_ITEM_PLURAL_VOUCHER, STR_SHOP_ITEM_INDEFINITE_VOUCHER, STR_SHOP_ITEM_DISPLAY_VOUCHER }, - { STR_SHOP_ITEM_SINGULAR_POPCORN, STR_SHOP_ITEM_PLURAL_POPCORN, STR_SHOP_ITEM_INDEFINITE_POPCORN, STR_SHOP_ITEM_DISPLAY_POPCORN }, - { STR_SHOP_ITEM_SINGULAR_HOT_DOG, STR_SHOP_ITEM_PLURAL_HOT_DOG, STR_SHOP_ITEM_INDEFINITE_HOT_DOG, STR_SHOP_ITEM_DISPLAY_HOT_DOG }, - { STR_SHOP_ITEM_SINGULAR_TENTACLE, STR_SHOP_ITEM_PLURAL_TENTACLE, STR_SHOP_ITEM_INDEFINITE_TENTACLE, STR_SHOP_ITEM_DISPLAY_TENTACLE }, - { STR_SHOP_ITEM_SINGULAR_HAT, STR_SHOP_ITEM_PLURAL_HAT, STR_SHOP_ITEM_INDEFINITE_HAT, STR_SHOP_ITEM_DISPLAY_HAT }, - { STR_SHOP_ITEM_SINGULAR_TOFFEE_APPLE, STR_SHOP_ITEM_PLURAL_TOFFEE_APPLE, STR_SHOP_ITEM_INDEFINITE_TOFFEE_APPLE, STR_SHOP_ITEM_DISPLAY_TOFFEE_APPLE }, - { STR_SHOP_ITEM_SINGULAR_T_SHIRT, STR_SHOP_ITEM_PLURAL_T_SHIRT, STR_SHOP_ITEM_INDEFINITE_T_SHIRT, STR_SHOP_ITEM_DISPLAY_T_SHIRT }, - { STR_SHOP_ITEM_SINGULAR_DOUGHNUT, STR_SHOP_ITEM_PLURAL_DOUGHNUT, STR_SHOP_ITEM_INDEFINITE_DOUGHNUT, STR_SHOP_ITEM_DISPLAY_DOUGHNUT }, - { STR_SHOP_ITEM_SINGULAR_COFFEE, STR_SHOP_ITEM_PLURAL_COFFEE, STR_SHOP_ITEM_INDEFINITE_COFFEE, STR_SHOP_ITEM_DISPLAY_COFFEE }, - { STR_SHOP_ITEM_SINGULAR_EMPTY_CUP, STR_SHOP_ITEM_PLURAL_EMPTY_CUP, STR_SHOP_ITEM_INDEFINITE_EMPTY_CUP, STR_SHOP_ITEM_DISPLAY_EMPTY_CUP }, - { STR_SHOP_ITEM_SINGULAR_FRIED_CHICKEN, STR_SHOP_ITEM_PLURAL_FRIED_CHICKEN, STR_SHOP_ITEM_INDEFINITE_FRIED_CHICKEN, STR_SHOP_ITEM_DISPLAY_FRIED_CHICKEN }, - { STR_SHOP_ITEM_SINGULAR_LEMONADE, STR_SHOP_ITEM_PLURAL_LEMONADE, STR_SHOP_ITEM_INDEFINITE_LEMONADE, STR_SHOP_ITEM_DISPLAY_LEMONADE }, - { STR_SHOP_ITEM_SINGULAR_EMPTY_BOX, STR_SHOP_ITEM_PLURAL_EMPTY_BOX, STR_SHOP_ITEM_INDEFINITE_EMPTY_BOX, STR_SHOP_ITEM_DISPLAY_EMPTY_BOX }, - { STR_SHOP_ITEM_SINGULAR_EMPTY_BOTTLE, STR_SHOP_ITEM_PLURAL_EMPTY_BOTTLE, STR_SHOP_ITEM_INDEFINITE_EMPTY_BOTTLE, STR_SHOP_ITEM_DISPLAY_EMPTY_BOTTLE }, - { STR_NONE, STR_NONE, STR_NONE, STR_NONE }, - { STR_NONE, STR_NONE, STR_NONE, STR_NONE }, - { STR_NONE, STR_NONE, STR_NONE, STR_NONE }, - { STR_NONE, STR_NONE, STR_NONE, STR_NONE }, - { STR_SHOP_ITEM_SINGULAR_ON_RIDE_PHOTO, STR_SHOP_ITEM_PLURAL_ON_RIDE_PHOTO, STR_SHOP_ITEM_INDEFINITE_ON_RIDE_PHOTO, STR_SHOP_ITEM_DISPLAY_ON_RIDE_PHOTO }, - { STR_SHOP_ITEM_SINGULAR_ON_RIDE_PHOTO, STR_SHOP_ITEM_PLURAL_ON_RIDE_PHOTO, STR_SHOP_ITEM_INDEFINITE_ON_RIDE_PHOTO, STR_SHOP_ITEM_DISPLAY_ON_RIDE_PHOTO }, - { STR_SHOP_ITEM_SINGULAR_ON_RIDE_PHOTO, STR_SHOP_ITEM_PLURAL_ON_RIDE_PHOTO, STR_SHOP_ITEM_INDEFINITE_ON_RIDE_PHOTO, STR_SHOP_ITEM_DISPLAY_ON_RIDE_PHOTO }, - { STR_SHOP_ITEM_SINGULAR_PRETZEL, STR_SHOP_ITEM_PLURAL_PRETZEL, STR_SHOP_ITEM_INDEFINITE_PRETZEL, STR_SHOP_ITEM_DISPLAY_PRETZEL }, - { STR_SHOP_ITEM_SINGULAR_HOT_CHOCOLATE, STR_SHOP_ITEM_PLURAL_HOT_CHOCOLATE, STR_SHOP_ITEM_INDEFINITE_HOT_CHOCOLATE, STR_SHOP_ITEM_DISPLAY_HOT_CHOCOLATE }, - { STR_SHOP_ITEM_SINGULAR_ICED_TEA, STR_SHOP_ITEM_PLURAL_ICED_TEA, STR_SHOP_ITEM_INDEFINITE_ICED_TEA, STR_SHOP_ITEM_DISPLAY_ICED_TEA }, - { STR_SHOP_ITEM_SINGULAR_FUNNEL_CAKE, STR_SHOP_ITEM_PLURAL_FUNNEL_CAKE, STR_SHOP_ITEM_INDEFINITE_FUNNEL_CAKE, STR_SHOP_ITEM_DISPLAY_FUNNEL_CAKE }, - { STR_SHOP_ITEM_SINGULAR_SUNGLASSES, STR_SHOP_ITEM_PLURAL_SUNGLASSES, STR_SHOP_ITEM_INDEFINITE_SUNGLASSES, STR_SHOP_ITEM_DISPLAY_SUNGLASSES }, - { STR_SHOP_ITEM_SINGULAR_BEEF_NOODLES, STR_SHOP_ITEM_PLURAL_BEEF_NOODLES, STR_SHOP_ITEM_INDEFINITE_BEEF_NOODLES, STR_SHOP_ITEM_DISPLAY_BEEF_NOODLES }, - { STR_SHOP_ITEM_SINGULAR_FRIED_RICE_NOODLES, STR_SHOP_ITEM_PLURAL_FRIED_RICE_NOODLES, STR_SHOP_ITEM_INDEFINITE_FRIED_RICE_NOODLES, STR_SHOP_ITEM_DISPLAY_FRIED_RICE_NOODLES }, - { STR_SHOP_ITEM_SINGULAR_WONTON_SOUP, STR_SHOP_ITEM_PLURAL_WONTON_SOUP, STR_SHOP_ITEM_INDEFINITE_WONTON_SOUP, STR_SHOP_ITEM_DISPLAY_WONTON_SOUP }, - { STR_SHOP_ITEM_SINGULAR_MEATBALL_SOUP, STR_SHOP_ITEM_PLURAL_MEATBALL_SOUP, STR_SHOP_ITEM_INDEFINITE_MEATBALL_SOUP, STR_SHOP_ITEM_DISPLAY_MEATBALL_SOUP }, - { STR_SHOP_ITEM_SINGULAR_FRUIT_JUICE, STR_SHOP_ITEM_PLURAL_FRUIT_JUICE, STR_SHOP_ITEM_INDEFINITE_FRUIT_JUICE, STR_SHOP_ITEM_DISPLAY_FRUIT_JUICE }, - { STR_SHOP_ITEM_SINGULAR_SOYBEAN_MILK, STR_SHOP_ITEM_PLURAL_SOYBEAN_MILK, STR_SHOP_ITEM_INDEFINITE_SOYBEAN_MILK, STR_SHOP_ITEM_DISPLAY_SOYBEAN_MILK }, - { STR_SHOP_ITEM_SINGULAR_SUJONGKWA, STR_SHOP_ITEM_PLURAL_SUJONGKWA, STR_SHOP_ITEM_INDEFINITE_SUJONGKWA, STR_SHOP_ITEM_DISPLAY_SUJONGKWA }, - { STR_SHOP_ITEM_SINGULAR_SUB_SANDWICH, STR_SHOP_ITEM_PLURAL_SUB_SANDWICH, STR_SHOP_ITEM_INDEFINITE_SUB_SANDWICH, STR_SHOP_ITEM_DISPLAY_SUB_SANDWICH }, - { STR_SHOP_ITEM_SINGULAR_COOKIE, STR_SHOP_ITEM_PLURAL_COOKIE, STR_SHOP_ITEM_INDEFINITE_COOKIE, STR_SHOP_ITEM_DISPLAY_COOKIE }, - { STR_SHOP_ITEM_SINGULAR_EMPTY_BOWL_RED, STR_SHOP_ITEM_PLURAL_EMPTY_BOWL_RED, STR_SHOP_ITEM_INDEFINITE_EMPTY_BOWL_RED, STR_SHOP_ITEM_DISPLAY_EMPTY_BOWL_RED }, - { STR_SHOP_ITEM_SINGULAR_EMPTY_DRINK_CARTON, STR_SHOP_ITEM_PLURAL_EMPTY_DRINK_CARTON, STR_SHOP_ITEM_INDEFINITE_EMPTY_DRINK_CARTON, STR_SHOP_ITEM_DISPLAY_EMPTY_DRINK_CARTON }, - { STR_SHOP_ITEM_SINGULAR_EMPTY_JUICE_CUP, STR_SHOP_ITEM_PLURAL_EMPTY_JUICE_CUP, STR_SHOP_ITEM_INDEFINITE_EMPTY_JUICE_CUP, STR_SHOP_ITEM_DISPLAY_EMPTY_JUICE_CUP }, - { STR_SHOP_ITEM_SINGULAR_ROAST_SAUSAGE, STR_SHOP_ITEM_PLURAL_ROAST_SAUSAGE, STR_SHOP_ITEM_INDEFINITE_ROAST_SAUSAGE, STR_SHOP_ITEM_DISPLAY_ROAST_SAUSAGE }, - { STR_SHOP_ITEM_SINGULAR_EMPTY_BOWL_BLUE, STR_SHOP_ITEM_PLURAL_EMPTY_BOWL_BLUE, STR_SHOP_ITEM_INDEFINITE_EMPTY_BOWL_BLUE, STR_SHOP_ITEM_DISPLAY_EMPTY_BOWL_BLUE }, + { STR_SHOP_ITEM_PRICE_LABEL_BALLOON, STR_SHOP_ITEM_SINGULAR_BALLOON, STR_SHOP_ITEM_PLURAL_BALLOON, STR_SHOP_ITEM_INDEFINITE_BALLOON, STR_SHOP_ITEM_DISPLAY_BALLOON }, + { STR_SHOP_ITEM_PRICE_LABEL_CUDDLY_TOY, STR_SHOP_ITEM_SINGULAR_CUDDLY_TOY, STR_SHOP_ITEM_PLURAL_CUDDLY_TOY, STR_SHOP_ITEM_INDEFINITE_CUDDLY_TOY, STR_SHOP_ITEM_DISPLAY_CUDDLY_TOY }, + { STR_SHOP_ITEM_PRICE_LABEL_PARK_MAP, STR_SHOP_ITEM_SINGULAR_PARK_MAP, STR_SHOP_ITEM_PLURAL_PARK_MAP, STR_SHOP_ITEM_INDEFINITE_PARK_MAP, STR_SHOP_ITEM_DISPLAY_PARK_MAP }, + { STR_SHOP_ITEM_PRICE_LABEL_ON_RIDE_PHOTO, STR_SHOP_ITEM_SINGULAR_ON_RIDE_PHOTO, STR_SHOP_ITEM_PLURAL_ON_RIDE_PHOTO, STR_SHOP_ITEM_INDEFINITE_ON_RIDE_PHOTO, STR_SHOP_ITEM_DISPLAY_ON_RIDE_PHOTO }, + { STR_SHOP_ITEM_PRICE_LABEL_UMBRELLA, STR_SHOP_ITEM_SINGULAR_UMBRELLA, STR_SHOP_ITEM_PLURAL_UMBRELLA, STR_SHOP_ITEM_INDEFINITE_UMBRELLA, STR_SHOP_ITEM_DISPLAY_UMBRELLA }, + { STR_SHOP_ITEM_PRICE_LABEL_DRINK, STR_SHOP_ITEM_SINGULAR_DRINK, STR_SHOP_ITEM_PLURAL_DRINK, STR_SHOP_ITEM_INDEFINITE_DRINK, STR_SHOP_ITEM_DISPLAY_DRINK }, + { STR_SHOP_ITEM_PRICE_LABEL_BURGER, STR_SHOP_ITEM_SINGULAR_BURGER, STR_SHOP_ITEM_PLURAL_BURGER, STR_SHOP_ITEM_INDEFINITE_BURGER, STR_SHOP_ITEM_DISPLAY_BURGER }, + { STR_SHOP_ITEM_PRICE_LABEL_CHIPS, STR_SHOP_ITEM_SINGULAR_CHIPS, STR_SHOP_ITEM_PLURAL_CHIPS, STR_SHOP_ITEM_INDEFINITE_CHIPS, STR_SHOP_ITEM_DISPLAY_CHIPS }, + { STR_SHOP_ITEM_PRICE_LABEL_ICE_CREAM, STR_SHOP_ITEM_SINGULAR_ICE_CREAM, STR_SHOP_ITEM_PLURAL_ICE_CREAM, STR_SHOP_ITEM_INDEFINITE_ICE_CREAM, STR_SHOP_ITEM_DISPLAY_ICE_CREAM }, + { STR_SHOP_ITEM_PRICE_LABEL_CANDYFLOSS, STR_SHOP_ITEM_SINGULAR_CANDYFLOSS, STR_SHOP_ITEM_PLURAL_CANDYFLOSS, STR_SHOP_ITEM_INDEFINITE_CANDYFLOSS, STR_SHOP_ITEM_DISPLAY_CANDYFLOSS }, + { STR_SHOP_ITEM_PRICE_LABEL_EMPTY_CAN, STR_SHOP_ITEM_SINGULAR_EMPTY_CAN, STR_SHOP_ITEM_PLURAL_EMPTY_CAN, STR_SHOP_ITEM_INDEFINITE_EMPTY_CAN, STR_SHOP_ITEM_DISPLAY_EMPTY_CAN }, + { STR_SHOP_ITEM_PRICE_LABEL_RUBBISH, STR_SHOP_ITEM_SINGULAR_RUBBISH, STR_SHOP_ITEM_PLURAL_RUBBISH, STR_SHOP_ITEM_INDEFINITE_RUBBISH, STR_SHOP_ITEM_DISPLAY_RUBBISH }, + { STR_SHOP_ITEM_PRICE_LABEL_EMPTY_BURGER_BOX, STR_SHOP_ITEM_SINGULAR_EMPTY_BURGER_BOX, STR_SHOP_ITEM_PLURAL_EMPTY_BURGER_BOX, STR_SHOP_ITEM_INDEFINITE_EMPTY_BURGER_BOX, STR_SHOP_ITEM_DISPLAY_EMPTY_BURGER_BOX }, + { STR_SHOP_ITEM_PRICE_LABEL_PIZZA, STR_SHOP_ITEM_SINGULAR_PIZZA, STR_SHOP_ITEM_PLURAL_PIZZA, STR_SHOP_ITEM_INDEFINITE_PIZZA, STR_SHOP_ITEM_DISPLAY_PIZZA }, + { STR_SHOP_ITEM_PRICE_LABEL_VOUCHER, STR_SHOP_ITEM_SINGULAR_VOUCHER, STR_SHOP_ITEM_PLURAL_VOUCHER, STR_SHOP_ITEM_INDEFINITE_VOUCHER, STR_SHOP_ITEM_DISPLAY_VOUCHER }, + { STR_SHOP_ITEM_PRICE_LABEL_POPCORN, STR_SHOP_ITEM_SINGULAR_POPCORN, STR_SHOP_ITEM_PLURAL_POPCORN, STR_SHOP_ITEM_INDEFINITE_POPCORN, STR_SHOP_ITEM_DISPLAY_POPCORN }, + { STR_SHOP_ITEM_PRICE_LABEL_HOT_DOG, STR_SHOP_ITEM_SINGULAR_HOT_DOG, STR_SHOP_ITEM_PLURAL_HOT_DOG, STR_SHOP_ITEM_INDEFINITE_HOT_DOG, STR_SHOP_ITEM_DISPLAY_HOT_DOG }, + { STR_SHOP_ITEM_PRICE_LABEL_TENTACLE, STR_SHOP_ITEM_SINGULAR_TENTACLE, STR_SHOP_ITEM_PLURAL_TENTACLE, STR_SHOP_ITEM_INDEFINITE_TENTACLE, STR_SHOP_ITEM_DISPLAY_TENTACLE }, + { STR_SHOP_ITEM_PRICE_LABEL_HAT, STR_SHOP_ITEM_SINGULAR_HAT, STR_SHOP_ITEM_PLURAL_HAT, STR_SHOP_ITEM_INDEFINITE_HAT, STR_SHOP_ITEM_DISPLAY_HAT }, + { STR_SHOP_ITEM_PRICE_LABEL_TOFFEE_APPLE, STR_SHOP_ITEM_SINGULAR_TOFFEE_APPLE, STR_SHOP_ITEM_PLURAL_TOFFEE_APPLE, STR_SHOP_ITEM_INDEFINITE_TOFFEE_APPLE, STR_SHOP_ITEM_DISPLAY_TOFFEE_APPLE }, + { STR_SHOP_ITEM_PRICE_LABEL_T_SHIRT, STR_SHOP_ITEM_SINGULAR_T_SHIRT, STR_SHOP_ITEM_PLURAL_T_SHIRT, STR_SHOP_ITEM_INDEFINITE_T_SHIRT, STR_SHOP_ITEM_DISPLAY_T_SHIRT }, + { STR_SHOP_ITEM_PRICE_LABEL_DOUGHNUT, STR_SHOP_ITEM_SINGULAR_DOUGHNUT, STR_SHOP_ITEM_PLURAL_DOUGHNUT, STR_SHOP_ITEM_INDEFINITE_DOUGHNUT, STR_SHOP_ITEM_DISPLAY_DOUGHNUT }, + { STR_SHOP_ITEM_PRICE_LABEL_COFFEE, STR_SHOP_ITEM_SINGULAR_COFFEE, STR_SHOP_ITEM_PLURAL_COFFEE, STR_SHOP_ITEM_INDEFINITE_COFFEE, STR_SHOP_ITEM_DISPLAY_COFFEE }, + { STR_SHOP_ITEM_PRICE_LABEL_EMPTY_CUP, STR_SHOP_ITEM_SINGULAR_EMPTY_CUP, STR_SHOP_ITEM_PLURAL_EMPTY_CUP, STR_SHOP_ITEM_INDEFINITE_EMPTY_CUP, STR_SHOP_ITEM_DISPLAY_EMPTY_CUP }, + { STR_SHOP_ITEM_PRICE_LABEL_FRIED_CHICKEN, STR_SHOP_ITEM_SINGULAR_FRIED_CHICKEN, STR_SHOP_ITEM_PLURAL_FRIED_CHICKEN, STR_SHOP_ITEM_INDEFINITE_FRIED_CHICKEN, STR_SHOP_ITEM_DISPLAY_FRIED_CHICKEN }, + { STR_SHOP_ITEM_PRICE_LABEL_LEMONADE, STR_SHOP_ITEM_SINGULAR_LEMONADE, STR_SHOP_ITEM_PLURAL_LEMONADE, STR_SHOP_ITEM_INDEFINITE_LEMONADE, STR_SHOP_ITEM_DISPLAY_LEMONADE }, + { STR_SHOP_ITEM_PRICE_LABEL_EMPTY_BOX, STR_SHOP_ITEM_SINGULAR_EMPTY_BOX, STR_SHOP_ITEM_PLURAL_EMPTY_BOX, STR_SHOP_ITEM_INDEFINITE_EMPTY_BOX, STR_SHOP_ITEM_DISPLAY_EMPTY_BOX }, + { STR_SHOP_ITEM_PRICE_LABEL_EMPTY_BOTTLE, STR_SHOP_ITEM_SINGULAR_EMPTY_BOTTLE, STR_SHOP_ITEM_PLURAL_EMPTY_BOTTLE, STR_SHOP_ITEM_INDEFINITE_EMPTY_BOTTLE, STR_SHOP_ITEM_DISPLAY_EMPTY_BOTTLE }, + { STR_NONE, STR_NONE, STR_NONE, STR_NONE, STR_NONE }, + { STR_NONE, STR_NONE, STR_NONE, STR_NONE, STR_NONE }, + { STR_NONE, STR_NONE, STR_NONE, STR_NONE, STR_NONE }, + { STR_NONE, STR_NONE, STR_NONE, STR_NONE, STR_NONE }, + { STR_SHOP_ITEM_PRICE_LABEL_ON_RIDE_PHOTO, STR_SHOP_ITEM_SINGULAR_ON_RIDE_PHOTO, STR_SHOP_ITEM_PLURAL_ON_RIDE_PHOTO, STR_SHOP_ITEM_INDEFINITE_ON_RIDE_PHOTO, STR_SHOP_ITEM_DISPLAY_ON_RIDE_PHOTO }, + { STR_SHOP_ITEM_PRICE_LABEL_ON_RIDE_PHOTO, STR_SHOP_ITEM_SINGULAR_ON_RIDE_PHOTO, STR_SHOP_ITEM_PLURAL_ON_RIDE_PHOTO, STR_SHOP_ITEM_INDEFINITE_ON_RIDE_PHOTO, STR_SHOP_ITEM_DISPLAY_ON_RIDE_PHOTO }, + { STR_SHOP_ITEM_PRICE_LABEL_ON_RIDE_PHOTO, STR_SHOP_ITEM_SINGULAR_ON_RIDE_PHOTO, STR_SHOP_ITEM_PLURAL_ON_RIDE_PHOTO, STR_SHOP_ITEM_INDEFINITE_ON_RIDE_PHOTO, STR_SHOP_ITEM_DISPLAY_ON_RIDE_PHOTO }, + { STR_SHOP_ITEM_PRICE_LABEL_PRETZEL, STR_SHOP_ITEM_SINGULAR_PRETZEL, STR_SHOP_ITEM_PLURAL_PRETZEL, STR_SHOP_ITEM_INDEFINITE_PRETZEL, STR_SHOP_ITEM_DISPLAY_PRETZEL }, + { STR_SHOP_ITEM_PRICE_LABEL_HOT_CHOCOLATE, STR_SHOP_ITEM_SINGULAR_HOT_CHOCOLATE, STR_SHOP_ITEM_PLURAL_HOT_CHOCOLATE, STR_SHOP_ITEM_INDEFINITE_HOT_CHOCOLATE, STR_SHOP_ITEM_DISPLAY_HOT_CHOCOLATE }, + { STR_SHOP_ITEM_PRICE_LABEL_ICED_TEA, STR_SHOP_ITEM_SINGULAR_ICED_TEA, STR_SHOP_ITEM_PLURAL_ICED_TEA, STR_SHOP_ITEM_INDEFINITE_ICED_TEA, STR_SHOP_ITEM_DISPLAY_ICED_TEA }, + { STR_SHOP_ITEM_PRICE_LABEL_FUNNEL_CAKE, STR_SHOP_ITEM_SINGULAR_FUNNEL_CAKE, STR_SHOP_ITEM_PLURAL_FUNNEL_CAKE, STR_SHOP_ITEM_INDEFINITE_FUNNEL_CAKE, STR_SHOP_ITEM_DISPLAY_FUNNEL_CAKE }, + { STR_SHOP_ITEM_PRICE_LABEL_SUNGLASSES, STR_SHOP_ITEM_SINGULAR_SUNGLASSES, STR_SHOP_ITEM_PLURAL_SUNGLASSES, STR_SHOP_ITEM_INDEFINITE_SUNGLASSES, STR_SHOP_ITEM_DISPLAY_SUNGLASSES }, + { STR_SHOP_ITEM_PRICE_LABEL_BEEF_NOODLES, STR_SHOP_ITEM_SINGULAR_BEEF_NOODLES, STR_SHOP_ITEM_PLURAL_BEEF_NOODLES, STR_SHOP_ITEM_INDEFINITE_BEEF_NOODLES, STR_SHOP_ITEM_DISPLAY_BEEF_NOODLES }, + { STR_SHOP_ITEM_PRICE_LABEL_FRIED_RICE_NOODLES, STR_SHOP_ITEM_SINGULAR_FRIED_RICE_NOODLES, STR_SHOP_ITEM_PLURAL_FRIED_RICE_NOODLES, STR_SHOP_ITEM_INDEFINITE_FRIED_RICE_NOODLES, STR_SHOP_ITEM_DISPLAY_FRIED_RICE_NOODLES }, + { STR_SHOP_ITEM_PRICE_LABEL_WONTON_SOUP, STR_SHOP_ITEM_SINGULAR_WONTON_SOUP, STR_SHOP_ITEM_PLURAL_WONTON_SOUP, STR_SHOP_ITEM_INDEFINITE_WONTON_SOUP, STR_SHOP_ITEM_DISPLAY_WONTON_SOUP }, + { STR_SHOP_ITEM_PRICE_LABEL_MEATBALL_SOUP, STR_SHOP_ITEM_SINGULAR_MEATBALL_SOUP, STR_SHOP_ITEM_PLURAL_MEATBALL_SOUP, STR_SHOP_ITEM_INDEFINITE_MEATBALL_SOUP, STR_SHOP_ITEM_DISPLAY_MEATBALL_SOUP }, + { STR_SHOP_ITEM_PRICE_LABEL_FRUIT_JUICE, STR_SHOP_ITEM_SINGULAR_FRUIT_JUICE, STR_SHOP_ITEM_PLURAL_FRUIT_JUICE, STR_SHOP_ITEM_INDEFINITE_FRUIT_JUICE, STR_SHOP_ITEM_DISPLAY_FRUIT_JUICE }, + { STR_SHOP_ITEM_PRICE_LABEL_SOYBEAN_MILK, STR_SHOP_ITEM_SINGULAR_SOYBEAN_MILK, STR_SHOP_ITEM_PLURAL_SOYBEAN_MILK, STR_SHOP_ITEM_INDEFINITE_SOYBEAN_MILK, STR_SHOP_ITEM_DISPLAY_SOYBEAN_MILK }, + { STR_SHOP_ITEM_PRICE_LABEL_SUJONGKWA, STR_SHOP_ITEM_SINGULAR_SUJONGKWA, STR_SHOP_ITEM_PLURAL_SUJONGKWA, STR_SHOP_ITEM_INDEFINITE_SUJONGKWA, STR_SHOP_ITEM_DISPLAY_SUJONGKWA }, + { STR_SHOP_ITEM_PRICE_LABEL_SUB_SANDWICH, STR_SHOP_ITEM_SINGULAR_SUB_SANDWICH, STR_SHOP_ITEM_PLURAL_SUB_SANDWICH, STR_SHOP_ITEM_INDEFINITE_SUB_SANDWICH, STR_SHOP_ITEM_DISPLAY_SUB_SANDWICH }, + { STR_SHOP_ITEM_PRICE_LABEL_COOKIE, STR_SHOP_ITEM_SINGULAR_COOKIE, STR_SHOP_ITEM_PLURAL_COOKIE, STR_SHOP_ITEM_INDEFINITE_COOKIE, STR_SHOP_ITEM_DISPLAY_COOKIE }, + { STR_SHOP_ITEM_PRICE_LABEL_EMPTY_BOWL_RED, STR_SHOP_ITEM_SINGULAR_EMPTY_BOWL_RED, STR_SHOP_ITEM_PLURAL_EMPTY_BOWL_RED, STR_SHOP_ITEM_INDEFINITE_EMPTY_BOWL_RED, STR_SHOP_ITEM_DISPLAY_EMPTY_BOWL_RED }, + { STR_SHOP_ITEM_PRICE_LABEL_EMPTY_DRINK_CARTON, STR_SHOP_ITEM_SINGULAR_EMPTY_DRINK_CARTON, STR_SHOP_ITEM_PLURAL_EMPTY_DRINK_CARTON, STR_SHOP_ITEM_INDEFINITE_EMPTY_DRINK_CARTON, STR_SHOP_ITEM_DISPLAY_EMPTY_DRINK_CARTON }, + { STR_SHOP_ITEM_PRICE_LABEL_EMPTY_JUICE_CUP, STR_SHOP_ITEM_SINGULAR_EMPTY_JUICE_CUP, STR_SHOP_ITEM_PLURAL_EMPTY_JUICE_CUP, STR_SHOP_ITEM_INDEFINITE_EMPTY_JUICE_CUP, STR_SHOP_ITEM_DISPLAY_EMPTY_JUICE_CUP }, + { STR_SHOP_ITEM_PRICE_LABEL_ROAST_SAUSAGE, STR_SHOP_ITEM_SINGULAR_ROAST_SAUSAGE, STR_SHOP_ITEM_PLURAL_ROAST_SAUSAGE, STR_SHOP_ITEM_INDEFINITE_ROAST_SAUSAGE, STR_SHOP_ITEM_DISPLAY_ROAST_SAUSAGE }, + { STR_SHOP_ITEM_PRICE_LABEL_EMPTY_BOWL_BLUE, STR_SHOP_ITEM_SINGULAR_EMPTY_BOWL_BLUE, STR_SHOP_ITEM_PLURAL_EMPTY_BOWL_BLUE, STR_SHOP_ITEM_INDEFINITE_EMPTY_BOWL_BLUE, STR_SHOP_ITEM_DISPLAY_EMPTY_BOWL_BLUE }, }; const uint32 ShopItemImage[SHOP_ITEM_COUNT] = { diff --git a/src/ride/ride_data.h b/src/ride/ride_data.h index 7ec189ee80..de03d982d0 100644 --- a/src/ride/ride_data.h +++ b/src/ride/ride_data.h @@ -20,11 +20,38 @@ #include "../common.h" #include "ride.h" +typedef struct ride_component_name { + rct_string_id singular; + rct_string_id plural; + rct_string_id capitalised; + rct_string_id capitalised_plural; + rct_string_id count; + rct_string_id count_plural; + rct_string_id number; +} ride_component_name; + +typedef enum { + RIDE_COMPONENT_TYPE_TRAIN, + RIDE_COMPONENT_TYPE_BOAT, + RIDE_COMPONENT_TYPE_TRACK, + RIDE_COMPONENT_TYPE_DOCKING_PLATFORM, + RIDE_COMPONENT_TYPE_STATION, + RIDE_COMPONENT_TYPE_CAR, + RIDE_COMPONENT_TYPE_BUILDING, + RIDE_COMPONENT_TYPE_STRUCTURE, + RIDE_COMPONENT_TYPE_SHIP, + RIDE_COMPONENT_TYPE_CABIN, + RIDE_COMPONENT_TYPE_WHEEL, + RIDE_COMPONENT_TYPE_RING, + RIDE_COMPONENT_TYPE_PLAYER, + RIDE_COMPONENT_TYPE_COURSE, + RIDE_COMPONENT_TYPE_COUNT +} ride_component_type; + typedef struct rct_ride_name_convention { - rct_string_id vehicle_name; - rct_string_id structure_name; - rct_string_id station_name; - rct_string_id unk_name; + ride_component_type vehicle; + ride_component_type structure; + ride_component_type station; } rct_ride_name_convention; typedef struct rct_ride_entrance_definition { @@ -37,6 +64,7 @@ typedef struct rct_ride_entrance_definition { } rct_ride_entrance_definition; typedef struct rct_shop_item_string_types { + rct_string_id price_label; // Balloon price: rct_string_id singular; // Balloon rct_string_id plural; // Balloons rct_string_id indefinite; // a Balloon @@ -102,6 +130,7 @@ extern const bool rideUnknownData2[0x60]; extern const uint8 rideUnknownData3[0x60]; extern const uint8 rideBonusValue[0x60]; +extern const ride_component_name RideComponentNames[RIDE_COMPONENT_TYPE_COUNT]; extern const rct_ride_name_convention RideNameConvention[96]; extern const uint8 RideAvailableModes[]; extern const uint8 AllRideModesAvailable[]; diff --git a/src/ride/track.c b/src/ride/track.c index b860ec0c6e..5fa3c1f7aa 100644 --- a/src/ride/track.c +++ b/src/ride/track.c @@ -1435,6 +1435,7 @@ money32 set_maze_track(uint16 x, uint8 flags, uint8 direction, uint16 y, uint8 r if ((z & 0xF) != 0) { // ‘Can't construct this here…’ + // TODO: This string is empty gGameCommandErrorText = 954; return MONEY32_UNDEFINED; } diff --git a/src/ride/track_design_save.c b/src/ride/track_design_save.c index c2f03e627c..888fcb5dec 100644 --- a/src/ride/track_design_save.c +++ b/src/ride/track_design_save.c @@ -683,7 +683,7 @@ static bool track_design_save_copy_scenery_to_td6(rct_track_td6 *td6) y /= 32; if (x > 127 || y > 127 || x < -126 || y < -126){ - window_error_open(3346, STR_TRACK_TOO_LARGE_OR_TOO_MUCH_SCENERY); + window_error_open(STR_CANT_SAVE_TRACK_DESIGN, STR_TRACK_TOO_LARGE_OR_TOO_MUCH_SCENERY); SafeFree(td6->scenery_elements); return false; } @@ -694,7 +694,7 @@ static bool track_design_save_copy_scenery_to_td6(rct_track_td6 *td6) int z = scenery->z * 8 - gTrackPreviewOrigin.z; z /= 8; if (z > 127 || z < -126) { - window_error_open(3346, STR_TRACK_TOO_LARGE_OR_TOO_MUCH_SCENERY); + window_error_open(STR_CANT_SAVE_TRACK_DESIGN, STR_TRACK_TOO_LARGE_OR_TOO_MUCH_SCENERY); SafeFree(td6->scenery_elements); return false; } diff --git a/src/ride/vehicle.c b/src/ride/vehicle.c index 70b9ecf199..5bcfaa209f 100644 --- a/src/ride/vehicle.c +++ b/src/ride/vehicle.c @@ -2531,7 +2531,7 @@ static void vehicle_check_if_missing(rct_vehicle* vehicle) { ride->lifecycle_flags |= RIDE_LIFECYCLE_11; - set_format_arg(0, rct_string_id, RCT2_ADDRESS(0x0097C98E, rct_string_id)[ride->type * 4] + 6); + set_format_arg(0, rct_string_id, RideComponentNames[RideNameConvention[ride->type].vehicle].number); uint8 vehicleIndex = 0; for (; vehicleIndex < ride->num_vehicles; ++vehicleIndex) @@ -2541,9 +2541,9 @@ static void vehicle_check_if_missing(rct_vehicle* vehicle) { set_format_arg(2, uint16, vehicleIndex); set_format_arg(4, rct_string_id, ride->name); set_format_arg(6, uint32, ride->name_arguments); - set_format_arg(10, rct_string_id, RCT2_ADDRESS(0x0097C98E, rct_string_id)[ride->type * 4 + 2]); + set_format_arg(10, rct_string_id, RideComponentNames[RideNameConvention[ride->type].station].singular); - news_item_add_to_queue(NEWS_ITEM_RIDE, 2218, vehicle->ride); + news_item_add_to_queue(NEWS_ITEM_RIDE, STR_NEWS_VEHICLE_HAS_STALLED, vehicle->ride); } /** @@ -5048,11 +5048,11 @@ void vehicle_set_map_toolbar(rct_vehicle *vehicle) if (ride->vehicles[vehicleIndex] == vehicle->sprite_index) break; - set_map_tooltip_format_arg(0, uint16, 2215); - set_map_tooltip_format_arg(2, uint16, 1165); - set_map_tooltip_format_arg(4, uint16, ride->name); + set_map_tooltip_format_arg(0, rct_string_id, STR_RIDE_MAP_TIP); + set_map_tooltip_format_arg(2, rct_string_id, STR_MAP_TOOLTIP_STRINGID_STRINGID); + set_map_tooltip_format_arg(4, rct_string_id, ride->name); set_map_tooltip_format_arg(6, uint32, ride->name_arguments); - set_map_tooltip_format_arg(10, uint16, RideNameConvention[ride->type].vehicle_name + 2); + set_map_tooltip_format_arg(10, rct_string_id, RideComponentNames[RideNameConvention[ride->type].vehicle].capitalised); set_map_tooltip_format_arg(12, uint16, vehicleIndex + 1); int arg0, arg1; diff --git a/src/sprites.h b/src/sprites.h index 4df75f8831..751a204db2 100644 --- a/src/sprites.h +++ b/src/sprites.h @@ -23,11 +23,6 @@ enum { SPR_PALETTE_1_START = 3100, SPR_PALETTE_1_END = 3110, - SPR_COOL_AND_WET = 3290, - SPR_WARM = 3291, - SPR_HOT_AND_DRY = 3292, - SPR_COLD = 3293, - // This is the start of every character there are // 224 characters per font (first 32 are control codes hence why it doesn't go to 255) // 4 fonts @@ -35,10 +30,13 @@ enum { SPR_CHAR_START = 3861, SPR_CHAR_END = 4757, + SPR_TEXT_PALETTE = 4914, SPR_PALETTE_2_START = 4915, SPR_PALETTE_2_END = 5047, SPR_RESIZE = 5058, + SPR_PALETTE_BTN = 5059, + SPR_PALETTE_BTN_PRESSED = 5060, SPR_RIDE_CONSTRUCTION_STRAIGHT = 5137, SPR_RIDE_CONSTRUCTION_LEFT_CURVE = 5138, @@ -52,13 +50,17 @@ enum { SPR_RIDE_CONSTRUCTION_SLOPE_LEVEL = 5146, SPR_RIDE_CONSTRUCTION_SLOPE_UP = 5147, SPR_RIDE_CONSTRUCTION_SLOPE_UP_STEEP = 5148, - + SPR_RIDE_CONSTRUCTION_VERTICAL_RISE = 5149, + SPR_RIDE_CONSTRUCTION_VERTICAL_DROP = 5150, + SPR_RIDE_CONSTRUCTION_HELIX_DOWN = 5151, + SPR_RIDE_CONSTRUCTION_HELIX_UP = 5152, SPR_RIDE_CONSTRUCTION_LEFT_BANK = 5153, SPR_RIDE_CONSTRUCTION_NO_BANK = 5154, SPR_RIDE_CONSTRUCTION_RIGHT_BANK = 5155, SPR_RIDE_CONSTRUCTION_U_SHAPED_TRACK = 5156, SPR_RIDE_CONSTRUCTION_O_SHAPED_TRACK = 5157, - + SPR_RIDE_CONSTRUCTION_RC_TRACK = 5158, + SPR_RIDE_CONSTRUCTION_WATER_CHANNEL = 5159, SPR_PREVIOUS = 5160, SPR_NEXT = 5161, SPR_DEMOLISH_CURRENT_SECTION = 5162, @@ -69,7 +71,9 @@ enum { SPR_LOCATE = 5167, SPR_RENAME = 5168, SPR_ROTATE_ARROW = 5169, - + SPR_MIRROR_ARROW = 5170, + SPR_SCENERY = 5171, + SPR_SCENERY_CLUSTER = 5172, SPR_PAINTBRUSH = 5173, SPR_PICKUP_BTN = 5174, SPR_PATROL_BTN = 5175, @@ -81,28 +85,67 @@ enum { SPR_TESTING = 5181, SPR_TOGGLE_OPEN_CLOSE = 5182, SPR_FLOPPY = 5183, - SPR_SHOW_GUESTS_THOUGHTS_ABOUT_THIS_RIDE_ATTRACTION = 5184, SPR_SHOW_GUESTS_QUEUING_FOR_THIS_RIDE_ATTRACTION = 5185, SPR_SHOW_GUESTS_ON_THIS_RIDE_ATTRACTION = 5186, - SPR_RIDE = 5187, SPR_TRACK_PEEP = 5188, - SPR_SCENERY = 5189, + SPR_NEW_RIDE = 5189, SPR_FINANCE = 5190, - SPR_NEW_RIDE = 5191, + SPR_NEW_SCENERY = 5191, SPR_MAP = 5192, SPR_GUESTS = 5193, SPR_AWARD = 5194, SPR_GRAPH = 5195, - + SPR_MECHANIC = 5196, SPR_PARK_ENTRANCE = 5197, - + SPR_TAB = 5198, // 0x144e + SPR_TAB_ACTIVE = 5199, + SPR_TAB_PARK_ENTRANCE = 5200, SPR_TAB_GEARS_0 = 5201, SPR_TAB_GEARS_1 = SPR_TAB_GEARS_0 + 1, SPR_TAB_GEARS_2 = SPR_TAB_GEARS_0 + 2, SPR_TAB_GEARS_3 = SPR_TAB_GEARS_0 + 3, - + SPR_TAB_WRENCH_0 = 5205, + SPR_TAB_WRENCH_1 = SPR_TAB_WRENCH_0 + 1, + SPR_TAB_WRENCH_2 = SPR_TAB_WRENCH_0 + 2, + SPR_TAB_WRENCH_3 = SPR_TAB_WRENCH_0 + 3, + SPR_TAB_WRENCH_4 = SPR_TAB_WRENCH_0 + 4, + SPR_TAB_WRENCH_5 = SPR_TAB_WRENCH_0 + 5, + SPR_TAB_WRENCH_6 = SPR_TAB_WRENCH_0 + 6, + SPR_TAB_WRENCH_7 = SPR_TAB_WRENCH_0 + 7, + SPR_TAB_WRENCH_8 = SPR_TAB_WRENCH_0 + 8, + SPR_TAB_WRENCH_9 = SPR_TAB_WRENCH_0 + 9, + SPR_TAB_WRENCH_10 = SPR_TAB_WRENCH_0 + 10, + SPR_TAB_WRENCH_11 = SPR_TAB_WRENCH_0 + 11, + SPR_TAB_WRENCH_12 = SPR_TAB_WRENCH_0 + 12, + SPR_TAB_WRENCH_13 = SPR_TAB_WRENCH_0 + 13, + SPR_TAB_WRENCH_14 = SPR_TAB_WRENCH_0 + 14, + SPR_TAB_WRENCH_15 = SPR_TAB_WRENCH_0 + 15, + SPR_TAB_PAINT_0 = 5221, + SPR_TAB_PAINT_1 = SPR_TAB_PAINT_0 + 1, + SPR_TAB_PAINT_2 = SPR_TAB_PAINT_0 + 2, + SPR_TAB_PAINT_3 = SPR_TAB_PAINT_0 + 3, + SPR_TAB_PAINT_4 = SPR_TAB_PAINT_0 + 4, + SPR_TAB_PAINT_5 = SPR_TAB_PAINT_0 + 5, + SPR_TAB_PAINT_6 = SPR_TAB_PAINT_0 + 6, + SPR_TAB_PAINT_7 = SPR_TAB_PAINT_0 + 7, + SPR_TAB_TIMER_0 = 5229, + SPR_TAB_TIMER_1 = SPR_TAB_TIMER_0 + 1, + SPR_TAB_TIMER_2 = SPR_TAB_TIMER_0 + 2, + SPR_TAB_TIMER_3 = SPR_TAB_TIMER_0 + 3, + SPR_TAB_TIMER_4 = SPR_TAB_TIMER_0 + 4, + SPR_TAB_TIMER_5 = SPR_TAB_TIMER_0 + 5, + SPR_TAB_TIMER_6 = SPR_TAB_TIMER_0 + 6, + SPR_TAB_TIMER_7 = SPR_TAB_TIMER_0 + 7, + SPR_TAB_GRAPH_A_0 = 5237, + SPR_TAB_GRAPH_A_1 = SPR_TAB_GRAPH_A_0 + 1, + SPR_TAB_GRAPH_A_2 = SPR_TAB_GRAPH_A_0 + 2, + SPR_TAB_GRAPH_A_3 = SPR_TAB_GRAPH_A_0 + 3, + SPR_TAB_GRAPH_A_4 = SPR_TAB_GRAPH_A_0 + 4, + SPR_TAB_GRAPH_A_5 = SPR_TAB_GRAPH_A_0 + 5, + SPR_TAB_GRAPH_A_6 = SPR_TAB_GRAPH_A_0 + 6, + SPR_TAB_GRAPH_A_7 = SPR_TAB_GRAPH_A_0 + 7, SPR_TAB_GRAPH_0 = 5245, SPR_TAB_GRAPH_1 = SPR_TAB_GRAPH_0 + 1, SPR_TAB_GRAPH_2 = SPR_TAB_GRAPH_0 + 2, @@ -111,7 +154,6 @@ enum { SPR_TAB_GRAPH_5 = SPR_TAB_GRAPH_0 + 5, SPR_TAB_GRAPH_6 = SPR_TAB_GRAPH_0 + 6, SPR_TAB_GRAPH_7 = SPR_TAB_GRAPH_0 + 7, - SPR_TAB_ADMISSION_0 = 5253, SPR_TAB_ADMISSION_1 = SPR_TAB_ADMISSION_0 + 1, SPR_TAB_ADMISSION_2 = SPR_TAB_ADMISSION_0 + 2, @@ -120,7 +162,6 @@ enum { SPR_TAB_ADMISSION_5 = SPR_TAB_ADMISSION_0 + 5, SPR_TAB_ADMISSION_6 = SPR_TAB_ADMISSION_0 + 6, SPR_TAB_ADMISSION_7 = SPR_TAB_ADMISSION_0 + 7, - SPR_TAB_FINANCES_SUMMARY_0 = 5261, SPR_TAB_FINANCES_SUMMARY_1 = SPR_TAB_FINANCES_SUMMARY_0 + 1, SPR_TAB_FINANCES_SUMMARY_2 = SPR_TAB_FINANCES_SUMMARY_0 + 2, @@ -129,7 +170,14 @@ enum { SPR_TAB_FINANCES_SUMMARY_5 = SPR_TAB_FINANCES_SUMMARY_0 + 5, SPR_TAB_FINANCES_SUMMARY_6 = SPR_TAB_FINANCES_SUMMARY_0 + 6, SPR_TAB_FINANCES_SUMMARY_7 = SPR_TAB_FINANCES_SUMMARY_0 + 7, - + SPR_TAB_THOUGHTS_0 = 5269, + SPR_TAB_THOUGHTS_1 = SPR_TAB_THOUGHTS_0 + 1, + SPR_TAB_THOUGHTS_2 = SPR_TAB_THOUGHTS_0 + 2, + SPR_TAB_THOUGHTS_3 = SPR_TAB_THOUGHTS_0 + 3, + SPR_TAB_THOUGHTS_4 = SPR_TAB_THOUGHTS_0 + 4, + SPR_TAB_THOUGHTS_5 = SPR_TAB_THOUGHTS_0 + 5, + SPR_TAB_THOUGHTS_6 = SPR_TAB_THOUGHTS_0 + 6, + SPR_TAB_THOUGHTS_7 = SPR_TAB_THOUGHTS_0 + 7, SPR_TAB_STATS_0 = 5277, SPR_TAB_STATS_1 = SPR_TAB_STATS_0 + 1, SPR_TAB_STATS_2 = SPR_TAB_STATS_0 + 2, @@ -137,7 +185,6 @@ enum { SPR_TAB_STATS_4 = SPR_TAB_STATS_0 + 4, SPR_TAB_STATS_5 = SPR_TAB_STATS_0 + 5, SPR_TAB_STATS_6 = SPR_TAB_STATS_0 + 6, - SPR_PEEP_LARGE_FACE_VERY_VERY_UNHAPPY = 5284, SPR_PEEP_LARGE_FACE_VERY_UNHAPPY = 5285, SPR_PEEP_LARGE_FACE_UNHAPPY = 5286, @@ -148,12 +195,31 @@ enum { SPR_PEEP_LARGE_FACE_TIRED = 5291, SPR_PEEP_LARGE_FACE_VERY_TIRED = 5292, SPR_PEEP_LARGE_FACE_SICK = 5293, - SPR_PEEP_LARGE_FACE_VERY_SICK = 5294, - - SPR_PEEP_LARGE_FACE_VERY_VERY_SICK = 5298, - - SPR_PEEP_LARGE_FACE_ANGRY = 5314, - + SPR_PEEP_LARGE_FACE_VERY_SICK_0 = 5294, + SPR_PEEP_LARGE_FACE_VERY_SICK_1 = SPR_PEEP_LARGE_FACE_VERY_SICK_0 + 1, + SPR_PEEP_LARGE_FACE_VERY_SICK_2 = SPR_PEEP_LARGE_FACE_VERY_SICK_0 + 2, + SPR_PEEP_LARGE_FACE_VERY_SICK_3 = SPR_PEEP_LARGE_FACE_VERY_SICK_0 + 3, + SPR_PEEP_LARGE_FACE_VERY_VERY_SICK_0 = 5298, + SPR_PEEP_LARGE_FACE_VERY_VERY_SICK_1 = SPR_PEEP_LARGE_FACE_VERY_VERY_SICK_0 + 1, + SPR_PEEP_LARGE_FACE_VERY_VERY_SICK_2 = SPR_PEEP_LARGE_FACE_VERY_VERY_SICK_0 + 2, + SPR_PEEP_LARGE_FACE_VERY_VERY_SICK_3 = SPR_PEEP_LARGE_FACE_VERY_VERY_SICK_0 + 3, + SPR_PEEP_LARGE_FACE_VERY_VERY_SICK_4 = SPR_PEEP_LARGE_FACE_VERY_VERY_SICK_0 + 4, + SPR_PEEP_LARGE_FACE_VERY_VERY_SICK_5 = SPR_PEEP_LARGE_FACE_VERY_VERY_SICK_0 + 5, + SPR_PEEP_LARGE_FACE_VERY_VERY_SICK_6 = SPR_PEEP_LARGE_FACE_VERY_VERY_SICK_0 + 6, + SPR_PEEP_LARGE_FACE_VERY_VERY_SICK_7 = SPR_PEEP_LARGE_FACE_VERY_VERY_SICK_0 + 7, + SPR_PEEP_LARGE_FACE_VERY_VERY_SICK_8 = SPR_PEEP_LARGE_FACE_VERY_VERY_SICK_0 + 8, + SPR_PEEP_LARGE_FACE_VERY_VERY_SICK_9 = SPR_PEEP_LARGE_FACE_VERY_VERY_SICK_0 + 9, + SPR_PEEP_LARGE_FACE_VERY_VERY_SICK_10 = SPR_PEEP_LARGE_FACE_VERY_VERY_SICK_0 + 10, + SPR_PEEP_LARGE_FACE_VERY_VERY_SICK_11 = SPR_PEEP_LARGE_FACE_VERY_VERY_SICK_0 + 11, + SPR_PEEP_LARGE_FACE_VERY_VERY_SICK_12 = SPR_PEEP_LARGE_FACE_VERY_VERY_SICK_0 + 12, + SPR_PEEP_LARGE_FACE_VERY_VERY_SICK_13 = SPR_PEEP_LARGE_FACE_VERY_VERY_SICK_0 + 13, + SPR_PEEP_LARGE_FACE_VERY_VERY_SICK_14 = SPR_PEEP_LARGE_FACE_VERY_VERY_SICK_0 + 14, + SPR_PEEP_LARGE_FACE_VERY_VERY_SICK_15 = SPR_PEEP_LARGE_FACE_VERY_VERY_SICK_0 + 15, + SPR_PEEP_LARGE_FACE_ANGRY_0 = 5314, + SPR_PEEP_LARGE_FACE_ANGRY_1 = SPR_PEEP_LARGE_FACE_ANGRY_0 + 1, + SPR_PEEP_LARGE_FACE_ANGRY_2 = SPR_PEEP_LARGE_FACE_ANGRY_0 + 2, + SPR_PEEP_LARGE_FACE_ANGRY_3 = SPR_PEEP_LARGE_FACE_ANGRY_0 + 3, + // 5318 seems to be part of SPR_TAB_STAFF_OPTIONS SPR_TAB_STAFF_OPTIONS_0 = 5319, SPR_TAB_STAFF_OPTIONS_1 = SPR_TAB_STAFF_OPTIONS_0 + 1, SPR_TAB_STAFF_OPTIONS_2 = SPR_TAB_STAFF_OPTIONS_0 + 2, @@ -161,9 +227,12 @@ enum { SPR_TAB_STAFF_OPTIONS_4 = SPR_TAB_STAFF_OPTIONS_0 + 4, SPR_TAB_STAFF_OPTIONS_5 = SPR_TAB_STAFF_OPTIONS_0 + 5, SPR_TAB_STAFF_OPTIONS_6 = SPR_TAB_STAFF_OPTIONS_0 + 6, - + SPR_TAB_GUEST_INVENTORY = 5326, SPR_TAB_FINANCES_RESEARCH_0 = 5327, + + SPR_TAB_MUSIC_0 = 5335, + SPR_TAB_SHOPS_AND_STALLS_0 = 5351, SPR_TAB_SHOPS_AND_STALLS_1 = SPR_TAB_SHOPS_AND_STALLS_0 + 1, SPR_TAB_SHOPS_AND_STALLS_2 = SPR_TAB_SHOPS_AND_STALLS_0 + 2, @@ -214,27 +283,34 @@ enum { SPR_TAB_RIDE_13 = SPR_TAB_RIDE_0 + 13, SPR_TAB_RIDE_14 = SPR_TAB_RIDE_0 + 14, SPR_TAB_RIDE_15 = SPR_TAB_RIDE_0 + 15, - + SPR_TAB_RIDE_16 = SPR_TAB_RIDE_0 + 16, // Same as SPR_TAB_RIDE_0 + SPR_TAB_SCENERY_TREES = 5459, + SPR_TAB_SCENERY_URBAN = 5460, + SPR_TAB_SCENERY_WALLS = 5461, + SPR_TAB_SCENERY_SIGNAGE = 5462, + SPR_TAB_SCENERY_PATHS = 5463, + SPR_TAB_SCENERY_PATH_ITEMS = 5464, + SPR_TAB_SCENERY_STATUES = 5465, SPR_TAB_PARK = 5466, - + SPR_TAB_WATER = 5467, + SPR_TAB_STATS = 5468, SPR_AWARD_MOST_UNTIDY = 5469, - SPR_MOST_TIDY = SPR_AWARD_MOST_UNTIDY + 1, - SPR_BEST_ROLLERCOASTERS = SPR_AWARD_MOST_UNTIDY + 2, - SPR_BEST_VALUE = SPR_AWARD_MOST_UNTIDY + 3, - SPR_MOST_BEAUTIFUL = SPR_AWARD_MOST_UNTIDY + 4, - SPR_WORST_VALUE = SPR_AWARD_MOST_UNTIDY + 5, - SPR_SAFEST = SPR_AWARD_MOST_UNTIDY + 6, - SPR_BEST_STAFF = SPR_AWARD_MOST_UNTIDY + 7, - SPR_BEST_FOOD = SPR_AWARD_MOST_UNTIDY + 8, - SPR_WORST_FOOD = SPR_AWARD_MOST_UNTIDY + 9, - SPR_BEST_RESTROOMS = SPR_AWARD_MOST_UNTIDY + 10, - SPR_MOST_DISAPPOINTING = SPR_AWARD_MOST_UNTIDY + 11, - SPR_BEST_WATER_RIDES = SPR_AWARD_MOST_UNTIDY + 12, - SPR_BEST_CUSTOM_DESIGNED_RIDES = SPR_AWARD_MOST_UNTIDY + 13, - SPR_MOST_DAZZLING_RIDE_COLOURS = SPR_AWARD_MOST_UNTIDY + 14, - SPR_MOST_CONFUSING_LAYOUT = SPR_AWARD_MOST_UNTIDY + 15, - SPR_BEST_GENTLE_RIDES = SPR_AWARD_MOST_UNTIDY + 16, - + SPR_AWARD_MOST_TIDY = SPR_AWARD_MOST_UNTIDY + 1, + SPR_AWARD_BEST_ROLLERCOASTERS = SPR_AWARD_MOST_UNTIDY + 2, + SPR_AWARD_BEST_VALUE = SPR_AWARD_MOST_UNTIDY + 3, + SPR_AWARD_MOST_BEAUTIFUL = SPR_AWARD_MOST_UNTIDY + 4, + SPR_AWARD_WORST_VALUE = SPR_AWARD_MOST_UNTIDY + 5, + SPR_AWARD_SAFEST = SPR_AWARD_MOST_UNTIDY + 6, + SPR_AWARD_BEST_STAFF = SPR_AWARD_MOST_UNTIDY + 7, + SPR_AWARD_BEST_FOOD = SPR_AWARD_MOST_UNTIDY + 8, + SPR_AWARD_WORST_FOOD = SPR_AWARD_MOST_UNTIDY + 9, + SPR_AWARD_BEST_RESTROOMS = SPR_AWARD_MOST_UNTIDY + 10, + SPR_AWARD_MOST_DISAPPOINTING = SPR_AWARD_MOST_UNTIDY + 11, + SPR_AWARD_BEST_WATER_RIDES = SPR_AWARD_MOST_UNTIDY + 12, + SPR_AWARD_BEST_CUSTOM_DESIGNED_RIDES = SPR_AWARD_MOST_UNTIDY + 13, + SPR_AWARD_MOST_DAZZLING_RIDE_COLOURS = SPR_AWARD_MOST_UNTIDY + 14, + SPR_AWARD_MOST_CONFUSING_LAYOUT = SPR_AWARD_MOST_UNTIDY + 15, + SPR_AWARD_BEST_GENTLE_RIDES = SPR_AWARD_MOST_UNTIDY + 16, SPR_PEEP_SMALL_FACE_VERY_VERY_UNHAPPY = 5486, SPR_PEEP_SMALL_FACE_VERY_UNHAPPY = 5487, SPR_PEEP_SMALL_FACE_UNHAPPY = 5488, @@ -248,11 +324,10 @@ enum { SPR_PEEP_SMALL_FACE_VERY_SICK = 5496, SPR_PEEP_SMALL_FACE_VERY_VERY_SICK = 5497, SPR_PEEP_SMALL_FACE_ANGRY = 5498, - SPR_LAND_TOOL_DECREASE = 5499, - + SPR_LAND_TOOL_DECREASE_PRESSED = 5500, SPR_LAND_TOOL_INCREASE = 5501, - + SPR_LAND_TOOL_INCREASE_PRESSED = 5502, SPR_LAND_TOOL_SIZE_0 = 5503, SPR_LAND_TOOL_SIZE_1 = SPR_LAND_TOOL_SIZE_0 + 1, SPR_LAND_TOOL_SIZE_2 = SPR_LAND_TOOL_SIZE_0 + 2, @@ -261,7 +336,6 @@ enum { SPR_LAND_TOOL_SIZE_5 = SPR_LAND_TOOL_SIZE_0 + 5, SPR_LAND_TOOL_SIZE_6 = SPR_LAND_TOOL_SIZE_0 + 6, SPR_LAND_TOOL_SIZE_7 = SPR_LAND_TOOL_SIZE_0 + 7, - SPR_TAB_OBJECTIVE_0 = 5511, SPR_TAB_OBJECTIVE_1 = SPR_TAB_OBJECTIVE_0 + 1, SPR_TAB_OBJECTIVE_2 = SPR_TAB_OBJECTIVE_0 + 2, @@ -278,10 +352,25 @@ enum { SPR_TAB_OBJECTIVE_13 = SPR_TAB_OBJECTIVE_0 + 13, SPR_TAB_OBJECTIVE_14 = SPR_TAB_OBJECTIVE_0 + 14, SPR_TAB_OBJECTIVE_15 = SPR_TAB_OBJECTIVE_0 + 15, - SPR_TAB_AWARDS = 5527, SPR_TAB_QUESTION = 5528, + SPR_TAB_RIDES_SHOP_0 = 5530, + + SPR_TAB_RIDES_TRANSPORT_0 = 5537, + + SPR_TAB_RIDES_GENTLE_0 = 5542, + + SPR_TAB_RIDES_ROLLER_COASTERS_0 = 5546, + + SPR_TAB_RIDES_WATER_0 = 5551, + + SPR_TAB_RIDES_THRILL_0 = 5557, + + SPR_TAB_LARGE = 5564, + SPR_TAB_LARGE_SELECTED = 5565, + SPR_TAB_EXTRA_LARGE = 5566, + SPR_TAB_EXTRA_LARGE_SELECTED = 5567, SPR_TAB_GUESTS_0 = 5568, SPR_TAB_GUESTS_1 = SPR_TAB_GUESTS_0 + 1, SPR_TAB_GUESTS_2 = SPR_TAB_GUESTS_0 + 2, @@ -290,15 +379,9 @@ enum { SPR_TAB_GUESTS_5 = SPR_TAB_GUESTS_0 + 5, SPR_TAB_GUESTS_6 = SPR_TAB_GUESTS_0 + 6, SPR_TAB_GUESTS_7 = SPR_TAB_GUESTS_0 + 7, - SPR_TAB_GUESTS_8 = SPR_TAB_GUESTS_0 + 8, - SPR_TAB_GUESTS_9 = SPR_TAB_GUESTS_0 + 9, - SPR_TAB_GUESTS_10 = SPR_TAB_GUESTS_0 + 10, - SPR_TAB_GUESTS_11 = SPR_TAB_GUESTS_0 + 11, - SPR_TAB_GUESTS_12 = SPR_TAB_GUESTS_0 + 12, - SPR_TAB_GUESTS_13 = SPR_TAB_GUESTS_0 + 13, - SPR_TAB_GUESTS_14 = SPR_TAB_GUESTS_0 + 14, - SPR_TAB_GUESTS_15 = SPR_TAB_GUESTS_0 + 15, - + SPR_MAZE_CONSTRUCTION_BUILD = 5576, + SPR_MAZE_CONSTRUCTION_MOVE = 5577, + SPR_MAZE_CONSTRUCTION_FILL_IN = 5578, SPR_FLOOR_TEXTURE_GRASS = 5579, SPR_FLOOR_TEXTURE_SAND = SPR_FLOOR_TEXTURE_GRASS + 1, SPR_FLOOR_TEXTURE_DIRT = SPR_FLOOR_TEXTURE_GRASS + 2, @@ -313,30 +396,60 @@ enum { SPR_FLOOR_TEXTURE_GRID_GREEN = SPR_FLOOR_TEXTURE_GRASS + 11, SPR_FLOOR_TEXTURE_SAND_DARK = SPR_FLOOR_TEXTURE_GRASS + 12, SPR_FLOOR_TEXTURE_SAND_LIGHT = SPR_FLOOR_TEXTURE_GRASS + 13, - SPR_WALL_TEXTURE_ROCK = 5593, SPR_WALL_TEXTURE_WOOD_RED = SPR_WALL_TEXTURE_ROCK + 1, SPR_WALL_TEXTURE_WOOD_BLACK = SPR_WALL_TEXTURE_ROCK + 2, SPR_WALL_TEXTURE_ICE = SPR_WALL_TEXTURE_ROCK + 3, - SPR_TOOLBAR_PAUSE = 5597, + SPR_TOOLBAR_FILE = 5599, + SPR_TOOLBAR_ZOOM_OUT = 5601, + + SPR_TOOLBAR_ZOOM_OUT_DISABLED = 5603, SPR_TOOLBAR_ZOOM_IN = 5604, + + SPR_TOOLBAR_ZOOM_IN_DISABLED = 5606, SPR_TOOLBAR_ROTATE = 5607, + SPR_TOOLBAR_LAND = 5609, + SPR_TOOLBAR_MAP = 5611, + SPR_TOOLBAR_GUESTS = 5613, + SPR_TOOLBAR_SCENERY = 5615, + SPR_TOOLBAR_WATER = 5617, + SPR_TOOLBAR_RIDES = 5619, + SPR_TOOLBAR_VIEW = 5621, + SPR_TOOLBAR_FOOTPATH = 5623, + + SPR_TAB_TOOLBAR = 5625, + SPR_TOOLBAR_STAFF = 5627, + SPR_TOOLBAR_PARK = 5629, + SPR_TOOLBAR_CONSTRUCT_RIDE = 5631, + SPR_TOOLBAR_CLEAR_SCENERY = 5633, + SPR_CONSTRUCTION_DIRECTION_NE = 5635, + SPR_CONSTRUCTION_DIRECTION_SE = 5636, + SPR_CONSTRUCTION_DIRECTION_SW = 5637, + SPR_CONSTRUCTION_DIRECTION_NW = 5638, + SPR_CONSTRUCTION_FOOTPATH_LAND = 5639, + SPR_CONSTRUCTION_FOOTPATH_BRIDGE = 5640, + + SPR_RIDE_DESIGN_PREVIEW_MAZE_BRICK_WALLS = 21990, + SPR_RIDE_DESIGN_PREVIEW_MAZE_HEDGES = 21991, + SPR_RIDE_DESIGN_PREVIEW_MAZE_ICE_BLOCKS = 21992, + SPR_RIDE_DESIGN_PREVIEW_MAZE_WOODEN_FENCES = 21993, + SPR_NEXT_WEATHER = 23189, SPR_WEATHER_SUN = 23190, SPR_WEATHER_SUN_CLOUD = 23191, @@ -345,9 +458,9 @@ enum { SPR_WEATHER_HEAVY_RAIN = 23194, SPR_WEATHER_STORM = 23195, SPR_WEATHER_UNKNOWN = 23196, - SPR_RATING_LOW = 23197, SPR_RATING_HIGH = 23198, + SPR_MENU_CHECKMARK = 23199, SPR_MENU_NEW_GAME = 23207, SPR_MENU_LOAD_GAME = 23208, @@ -372,6 +485,8 @@ enum { SPR_INTRO_INFOGRAMES_11 = SPR_INTRO_INFOGRAMES_00 + 3, SPR_CREDITS_INFOGRAMES = 23230, + SPR_NEW_RIDE_MASK = 29013, + SPR_G2_BEGIN = 324288, SPR_G2_LOGO = SPR_G2_BEGIN + 0, SPR_G2_TITLE = SPR_G2_BEGIN + 1, diff --git a/src/title.c b/src/title.c index 9eb060dfe0..7fb0f32663 100644 --- a/src/title.c +++ b/src/title.c @@ -786,7 +786,7 @@ bool title_refresh_sequence() return true; } log_error("Failed to load title sequence, hasLoad: %i, hasWait4seconds: %i, hasRestart: %i, hasInvalidSave: %i", hasLoad, hasWait, hasRestart, hasInvalidSave); - window_error_open(5402, (!hasWait && hasRestart) ? 5439 : STR_NONE); + window_error_open(STR_ERR_FAILED_TO_LOAD_TITLE_SEQUENCE, (!hasWait && hasRestart) ? 5439 : STR_NONE); _scriptNoLoadsSinceRestart = 1; if (_loadedScript != _magicMountainScript) SafeFree(_loadedScript); diff --git a/src/windows/about.c b/src/windows/about.c index 64d3277690..b4711c7946 100644 --- a/src/windows/about.c +++ b/src/windows/about.c @@ -30,7 +30,7 @@ enum WINDOW_ABOUT_WIDGET_IDX { }; rct_widget window_about_widgets[] = { - { WWT_FRAME, 0, 0, 399, 0, 329, 0x0FFFFFFFF, STR_NONE }, // panel / background + { WWT_FRAME, 0, 0, 399, 0, 329, 0xFFFFFFFF, STR_NONE }, // panel / background { WWT_CAPTION, 0, 1, 398, 1, 14, STR_ROLLERCOASTER_TYCOON_2, STR_WINDOW_TITLE_TIP }, // title bar { WWT_CLOSEBOX, 0, 387, 397, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // close x button { WWT_DROPDOWN_BUTTON, 1, 100, 299, 230, 241, STR_MUSIC_ACKNOWLEDGEMENTS_ELLIPSIS, STR_NONE }, // music credits button diff --git a/src/windows/banner.c b/src/windows/banner.c index 8acb5e521c..45452ea52b 100644 --- a/src/windows/banner.c +++ b/src/windows/banner.c @@ -28,6 +28,7 @@ #include "dropdown.h" #include "../drawing/drawing.h" #include "../interface/themes.h" +#include "../sprites.h" #define WW 113 #define WH 96 @@ -45,17 +46,34 @@ enum WINDOW_BANNER_WIDGET_IDX { WIDX_TEXT_COLOUR_DROPDOWN_BUTTON }; +static const rct_string_id BannerColouredTextFormats[] = { + STR_TEXT_COLOR_BLACK, + STR_TEXT_COLOR_GREY, + STR_TEXT_COLOR_WHITE, + STR_TEXT_COLOR_RED, + STR_TEXT_COLOR_GREEN, + STR_TEXT_COLOR_YELLOW, + STR_TEXT_COLOR_TOPAZ, + STR_TEXT_COLOR_CELADON, + STR_TEXT_COLOR_BABYBLUE, + STR_TEXT_COLOR_PALELAVENDER, + STR_TEXT_COLOR_PALEGOLD, + STR_TEXT_COLOR_LIGHTPINK, + STR_TEXT_COLOR_PEARLAQUA, + STR_TEXT_COLOR_PALESILVER, +}; + rct_widget window_banner_widgets[] = { - { WWT_FRAME, 0, 0, WW - 1, 0, WH - 1, 0x0FFFFFFFF, 65535}, // panel / background - { WWT_CAPTION, 0, 1, WW - 2, 1, 14, 0xBA9, STR_WINDOW_TITLE_TIP}, // title bar - { WWT_CLOSEBOX, 0, WW - 13, WW - 3, 2, 13, 0x338, STR_CLOSE_WINDOW_TIP}, // close x button - { WWT_VIEWPORT, 1, 3, WW - 26,17, WH - 20, 0x0FFFFFFFE, 65535}, // tab content panel - { WWT_FLATBTN, 1, WW - 25, WW - 2, 19, 42, 0x1430, STR_CHANGE_BANNER_TEXT_TIP}, // change banner button - { WWT_FLATBTN, 1, WW - 25, WW - 2, 43, 66, 0x143A, STR_SET_AS_NO_ENTRY_BANNER_TIP}, // no entry button - { WWT_FLATBTN, 1, WW - 25, WW - 2, 67, 90, 0x142D, STR_DEMOLISH_BANNER_TIP}, // demolish button - { WWT_COLOURBTN, 1, 5, 16, WH - 16,WH - 5, 0x0FFFFFFFF, STR_SELECT_MAIN_SIGN_COLOUR_TIP}, // high money - { WWT_DROPDOWN, 1, 43, 81, WH - 16,WH - 5, 0x0FFFFFFFF, 65535}, // high money - { WWT_DROPDOWN_BUTTON, 1, 70, 80, WH - 15,WH - 6, 0x36C, STR_SELECT_TEXT_COLOUR_TIP}, // high money + { WWT_FRAME, 0, 0, WW - 1, 0, WH - 1, 0xFFFFFFFF, STR_NONE}, // panel / background + { WWT_CAPTION, 0, 1, WW - 2, 1, 14, STR_BANNER_WINDOW_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 + { WWT_VIEWPORT, 1, 3, WW - 26,17, WH - 20, 0x0FFFFFFFE, STR_NONE}, // tab content panel + { WWT_FLATBTN, 1, WW - 25, WW - 2, 19, 42, SPR_RENAME, STR_CHANGE_BANNER_TEXT_TIP}, // change banner button + { WWT_FLATBTN, 1, WW - 25, WW - 2, 43, 66, SPR_NO_ENTRY, STR_SET_AS_NO_ENTRY_BANNER_TIP}, // no entry button + { WWT_FLATBTN, 1, WW - 25, WW - 2, 67, 90, SPR_DEMOLISH, STR_DEMOLISH_BANNER_TIP}, // demolish button + { WWT_COLOURBTN, 1, 5, 16, WH - 16,WH - 5, 0xFFFFFFFF, STR_SELECT_MAIN_SIGN_COLOUR_TIP}, // high money + { WWT_DROPDOWN, 1, 43, 81, WH - 16,WH - 5, 0xFFFFFFFF, STR_NONE}, // high money + { WWT_DROPDOWN_BUTTON, 1, 70, 80, WH - 15,WH - 6, STR_DROPDOWN_GLYPH, STR_SELECT_TEXT_COLOUR_TIP}, // high money { WIDGETS_END }, }; @@ -219,7 +237,7 @@ static void window_banner_mousedown(int widgetIndex, rct_window*w, rct_widget* w for( int i = 0; i < 13; ++i){ gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL; - gDropdownItemsArgs[i] = STR_TEXT_COLOR_GREY + i; + gDropdownItemsArgs[i] = BannerColouredTextFormats[i + 1]; } //Switch to the dropdown box widget. @@ -307,10 +325,10 @@ static void window_banner_invalidate(rct_window *w) (1ULL<image = (banner->colour << 19) + 0x600013C3; + colour_btn->image = (banner->colour << 19) | 0x60000000 | SPR_PALETTE_BTN; rct_widget* drop_down_widget = &window_banner_widgets[WIDX_TEXT_COLOUR_DROPDOWN]; - drop_down_widget->image = banner->text_colour + STR_TEXT_COLOR_BLACK; + drop_down_widget->text = BannerColouredTextFormats[banner->text_colour]; } /* rct2: 0x006BA4C5 */ diff --git a/src/windows/changelog.c b/src/windows/changelog.c index 8ea741e67b..2e464f1797 100644 --- a/src/windows/changelog.c +++ b/src/windows/changelog.c @@ -41,11 +41,11 @@ enum { #define MIN_WH 200 rct_widget window_changelog_widgets[] = { - { WWT_FRAME, 0, 0, WW - 1, 0, WH - 1, 0x0FFFFFFFF, STR_NONE }, // panel / background - { WWT_CAPTION, 0, 1, WW - 2, 1, 14, STR_CHANGELOG_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 - { WWT_RESIZE, 1, 0, WW - 1, 14, WH - 1, 0x0FFFFFFFF, STR_NONE }, // content panel - { WWT_SCROLL, 1, 3, WW - 3, 16, WH - 15, 3, STR_NONE }, // scroll area + { WWT_FRAME, 0, 0, WW - 1, 0, WH - 1, 0xFFFFFFFF, STR_NONE }, // panel / background + { WWT_CAPTION, 0, 1, WW - 2, 1, 14, STR_CHANGELOG_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 + { WWT_RESIZE, 1, 0, WW - 1, 14, WH - 1, 0xFFFFFFFF, STR_NONE }, // content panel + { WWT_SCROLL, 1, 3, WW - 3, 16, WH - 15, SCROLL_BOTH, STR_NONE }, // scroll area { WIDGETS_END }, }; diff --git a/src/windows/cheats.c b/src/windows/cheats.c index 40ffdc87b6..e55175af88 100644 --- a/src/windows/cheats.c +++ b/src/windows/cheats.c @@ -44,6 +44,15 @@ enum { WINDOW_CHEATS_PAGE_RIDES, }; +static const rct_string_id WeatherTypes[] = { + STR_SUNNY, + STR_PARTIALLY_CLOUDY, + STR_CLOUDY, + STR_RAIN, + STR_HEAVY_RAIN, + STR_THUNDERSTORM, +}; + enum WINDOW_CHEATS_WIDGET_IDX { WIDX_BACKGROUND, WIDX_TITLE, @@ -154,14 +163,14 @@ enum WINDOW_CHEATS_WIDGET_IDX { #pragma endregion #define MAIN_CHEATS_WIDGETS \ - { WWT_FRAME, 0, 0, WW - 1, 0, WH - 1, 0x0FFFFFFFF, STR_NONE }, /* panel / background */ \ - { WWT_CAPTION, 0, 1, WW - 2, 1, 14, STR_CHEAT_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 */ \ - { WWT_IMGBTN, 1, 0, WW - 1, 43, WH - 1, 0x0FFFFFFFF, STR_NONE }, /* tab content panel */ \ - { WWT_TAB, 1, 3, 33, 17, 43, 0x2000144E, STR_FINANCIAL_CHEATS_TIP }, /* tab 1 */ \ - { WWT_TAB, 1, 34, 64, 17, 43, 0x2000144E, STR_GUEST_CHEATS_TIP }, /* tab 2 */ \ - { WWT_TAB, 1, 65, 95, 17, 43, 0x2000144E, STR_PARK_CHEATS_TIP }, /* tab 3 */ \ - { WWT_TAB, 1, 96, 126, 17, 43, 0x2000144E, STR_RIDE_CHEATS_TIP } /* tab 4 */ + { WWT_FRAME, 0, 0, WW - 1, 0, WH - 1, 0xFFFFFFFF, STR_NONE }, /* panel / background */ \ + { WWT_CAPTION, 0, 1, WW - 2, 1, 14, STR_CHEAT_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 */ \ + { WWT_IMGBTN, 1, 0, WW - 1, 43, WH - 1, 0xFFFFFFFF, STR_NONE }, /* tab content panel */ \ + { WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_FINANCIAL_CHEATS_TIP }, /* tab 1 */ \ + { WWT_TAB, 1, 34, 64, 17, 43, 0x20000000 | SPR_TAB, STR_GUEST_CHEATS_TIP }, /* tab 2 */ \ + { WWT_TAB, 1, 65, 95, 17, 43, 0x20000000 | SPR_TAB, STR_PARK_CHEATS_TIP }, /* tab 3 */ \ + { WWT_TAB, 1, 96, 126, 17, 43, 0x20000000 | SPR_TAB, STR_RIDE_CHEATS_TIP } /* tab 4 */ static rct_widget window_cheats_money_widgets[] = { MAIN_CHEATS_WIDGETS, @@ -462,7 +471,7 @@ static void window_cheats_misc_mousedown(int widgetIndex, rct_window *w, rct_wid for (i = 0; i < 6; i++) { gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL; - gDropdownItemsArgs[i] = STR_SUNNY + i; + gDropdownItemsArgs[i] = WeatherTypes[i]; } window_dropdown_show_text_custom_width( w->x + dropdownWidget->left, @@ -797,12 +806,12 @@ static void window_cheats_invalidate(rct_window *w) widget_set_checkbox_value(w, WIDX_DISABLE_LITTERING, gCheatsDisableLittering); break; case WINDOW_CHEATS_PAGE_MISC: - w->widgets[WIDX_OPEN_CLOSE_PARK].image = gParkFlags & PARK_FLAGS_PARK_OPEN ? + w->widgets[WIDX_OPEN_CLOSE_PARK].text = gParkFlags & PARK_FLAGS_PARK_OPEN ? STR_CHEAT_CLOSE_PARK : STR_CHEAT_OPEN_PARK; widget_set_checkbox_value(w, WIDX_UNLOCK_ALL_PRICES, gCheatsUnlockAllPrices); widget_set_checkbox_value(w, WIDX_FORCE_PARK_RATING, get_forced_park_rating() >= 0); - w->widgets[WIDX_SANDBOX_MODE].image = gCheatsSandboxMode ? STR_CHEAT_SANDBOX_MODE_DISABLE : STR_CHEAT_SANDBOX_MODE; - w->widgets[WIDX_FREEZE_CLIMATE].image = gCheatsFreezeClimate ? STR_CHEAT_UNFREEZE_CLIMATE : STR_CHEAT_FREEZE_CLIMATE; + w->widgets[WIDX_SANDBOX_MODE].text = gCheatsSandboxMode ? STR_CHEAT_SANDBOX_MODE_DISABLE : STR_CHEAT_SANDBOX_MODE; + w->widgets[WIDX_FREEZE_CLIMATE].text = gCheatsFreezeClimate ? STR_CHEAT_UNFREEZE_CLIMATE : STR_CHEAT_FREEZE_CLIMATE; widget_set_checkbox_value(w, WIDX_NEVERENDING_MARKETING, gCheatsNeverendingMarketing); widget_set_checkbox_value(w, WIDX_DISABLE_PLANT_AGING, gCheatsDisablePlantAging); break; @@ -825,12 +834,11 @@ static void window_cheats_invalidate(rct_window *w) w->pressed_widgets |= 1LL << (WIDX_TAB_1 + w->page); // Set title - w->widgets[WIDX_TITLE].image = window_cheats_page_titles[w->page]; + w->widgets[WIDX_TITLE].text = window_cheats_page_titles[w->page]; // Current weather - int currentWeather = gClimateCurrentWeather; - window_cheats_misc_widgets[WIDX_WEATHER].image = STR_SUNNY + currentWeather; + window_cheats_misc_widgets[WIDX_WEATHER].text = WeatherTypes[gClimateCurrentWeather]; } static void window_cheats_paint(rct_window *w, rct_drawpixelinfo *dpi) @@ -846,7 +854,7 @@ static void window_cheats_paint(rct_window *w, rct_drawpixelinfo *dpi) else if(w->page == WINDOW_CHEATS_PAGE_MISC){ gfx_draw_string_left(dpi, STR_CHEAT_STAFF_SPEED, NULL, 0, w->x + XPL(0) + TXTO, w->y + YPL(16) + TXTO); gfx_draw_string_left(dpi, STR_FORCE_WEATHER, NULL, 0, w->x + XPL(0) + TXTO, w->y + YPL(9) + TXTO); - gfx_draw_string_right(dpi, 5182, &park_rating_spinner_value, w->colours[2], w->x + WPL(1) - 10 - TXTO, w->y + YPL(4) + TXTO); + gfx_draw_string_right(dpi, STR_FORMAT_INTEGER, &park_rating_spinner_value, w->colours[2], w->x + WPL(1) - 10 - TXTO, w->y + YPL(4) + TXTO); } else if (w->page == WINDOW_CHEATS_PAGE_GUESTS){ gfx_draw_string_left(dpi, STR_CHEAT_GUEST_HAPPINESS, NULL, 0, w->x + XPL(0) + TXTO, w->y + YPL(1) + TXTO); diff --git a/src/windows/clear_scenery.c b/src/windows/clear_scenery.c index 695b9713e9..ffc5ba0ae7 100644 --- a/src/windows/clear_scenery.c +++ b/src/windows/clear_scenery.c @@ -39,15 +39,15 @@ enum WINDOW_CLEAR_SCENERY_WIDGET_IDX { }; rct_widget window_clear_scenery_widgets[] = { - { WWT_FRAME, 0, 0, 97, 0, 93, -1, STR_NONE }, // panel / background - { WWT_CAPTION, 0, 1, 96, 1, 14, STR_CLEAR_SCENERY, STR_WINDOW_TITLE_TIP }, // title bar - { WWT_CLOSEBOX, 0, 85, 95, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // close x button - { WWT_IMGBTN, 0, 27, 70, 17, 48, SPR_LAND_TOOL_SIZE_0, STR_NONE }, // preview box - { WWT_TRNBTN, 1, 28, 43, 18, 33, 0x20000000 | SPR_LAND_TOOL_DECREASE, STR_ADJUST_SMALLER_LAND_TIP }, // decrement size - { WWT_TRNBTN, 1, 54, 69, 32, 47, 0x20000000 | SPR_LAND_TOOL_INCREASE, STR_ADJUST_LARGER_LAND_TIP }, // increment size - { WWT_FLATBTN, 1, 7, 30, 53, 76, 0x20000000 | SPR_G2_BUTTON_TREES, 5272 }, // small scenery - { WWT_FLATBTN, 1, 37, 60, 53, 76, 0x20000000 | SPR_G2_BUTTON_LARGE_SCENERY, 5273 }, // large scenery - { WWT_FLATBTN, 1, 67, 90, 53, 76, 0x20000000 | SPR_G2_BUTTON_FOOTPATH, 5274 }, // footpaths + { WWT_FRAME, 0, 0, 97, 0, 93, 0xFFFFFFFF, STR_NONE }, // panel / background + { WWT_CAPTION, 0, 1, 96, 1, 14, STR_CLEAR_SCENERY, STR_WINDOW_TITLE_TIP }, // title bar + { WWT_CLOSEBOX, 0, 85, 95, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // close x button + { WWT_IMGBTN, 0, 27, 70, 17, 48, SPR_LAND_TOOL_SIZE_0, STR_NONE }, // preview box + { WWT_TRNBTN, 1, 28, 43, 18, 33, 0x20000000 | SPR_LAND_TOOL_DECREASE, STR_ADJUST_SMALLER_LAND_TIP }, // decrement size + { WWT_TRNBTN, 1, 54, 69, 32, 47, 0x20000000 | SPR_LAND_TOOL_INCREASE, STR_ADJUST_LARGER_LAND_TIP }, // increment size + { WWT_FLATBTN, 1, 7, 30, 53, 76, 0x20000000 | SPR_G2_BUTTON_TREES, STR_CLEAR_SCENERY_REMOVE_SMALL_SCENERY_TIP }, // small scenery + { WWT_FLATBTN, 1, 37, 60, 53, 76, 0x20000000 | SPR_G2_BUTTON_LARGE_SCENERY, STR_CLEAR_SCENERY_REMOVE_LARGE_SCENERY_TIP }, // large scenery + { WWT_FLATBTN, 1, 67, 90, 53, 76, 0x20000000 | SPR_G2_BUTTON_FOOTPATH, STR_CLEAR_SCENERY_REMOVE_FOOTPATHS_TIP }, // footpaths { WIDGETS_END }, }; @@ -192,7 +192,7 @@ static void window_clear_scenery_inputsize(rct_window *w) { TextInputDescriptionArgs[0] = MINIMUM_TOOL_SIZE; TextInputDescriptionArgs[1] = MAXIMUM_TOOL_SIZE; - window_text_input_open(w, WIDX_PREVIEW, 5128, 5129, STR_NONE, STR_NONE, 3); + window_text_input_open(w, WIDX_PREVIEW, STR_SELECTION_SIZE, STR_ENTER_SELECTION_SIZE, STR_NONE, STR_NONE, 3); } /** @@ -246,7 +246,7 @@ static void window_clear_scenery_paint(rct_window *w, rct_drawpixelinfo *dpi) x = (window_clear_scenery_widgets[WIDX_PREVIEW].left + window_clear_scenery_widgets[WIDX_PREVIEW].right) / 2 + w->x; y = window_clear_scenery_widgets[WIDX_PREVIEW].bottom + w->y + 5 + 27; if (RCT2_GLOBAL(0x00F1AD62, uint32) != MONEY32_UNDEFINED && RCT2_GLOBAL(0x00F1AD62, uint32) != 0) - gfx_draw_string_centred(dpi, 986, x, y, 0, (void*)0x00F1AD62); + gfx_draw_string_centred(dpi, STR_COST_AMOUNT, x, y, 0, (void*)0x00F1AD62); } /** diff --git a/src/windows/custom_currency.c b/src/windows/custom_currency.c index 19f9b37e44..1d1029c6f2 100644 --- a/src/windows/custom_currency.c +++ b/src/windows/custom_currency.c @@ -37,14 +37,14 @@ enum WINDOW_CUSTOM_CURRENCY_WIDGET_IDX { }; rct_widget window_custom_currency_widgets[] = { - { WWT_FRAME, 0, 0, 399, 0, 99, 0x0FFFFFFFF, STR_NONE }, + { WWT_FRAME, 0, 0, 399, 0, 99, 0xFFFFFFFF, STR_NONE }, { WWT_CAPTION, 0, 1, 398, 1, 14, STR_CUSTOM_CURRENCY_WINDOW_TITLE, STR_WINDOW_TITLE_TIP }, { WWT_CLOSEBOX, 0, 387, 397, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, - { WWT_SPINNER, 1, 100, 200, 30, 40, 5462, STR_NONE }, + { WWT_SPINNER, 1, 100, 200, 30, 40, STR_CHEAT_CURRENCY_FORMAT, STR_NONE }, { WWT_DROPDOWN_BUTTON, 1, 189, 199, 31, 35, STR_NUMERIC_UP, STR_NONE }, { WWT_DROPDOWN_BUTTON, 1, 189, 199, 36, 40, STR_NUMERIC_DOWN, STR_NONE }, { WWT_DROPDOWN_BUTTON, 1, 120, 200, 50, 60, 0, STR_NONE }, - { WWT_DROPDOWN, 1, 220, 350, 50, 60, 865, STR_NONE }, + { WWT_DROPDOWN, 1, 220, 350, 50, 60, STR_STRINGID, STR_NONE }, { WWT_DROPDOWN_BUTTON, 1, 339, 349, 51, 59, STR_DROPDOWN_GLYPH, STR_NONE }, { WIDGETS_END }, }; @@ -117,9 +117,9 @@ void custom_currency_window_open() window->hold_down_widgets = (1 << WIDX_RATE_UP) | (1 << WIDX_RATE_DOWN); window_init_scroll_widgets(window); - window->colours[0] = 22; - window->colours[1] = 22; - window->colours[2] = 22; + window->colours[0] = COLOUR_LIGHT_BROWN; + window->colours[1] = COLOUR_LIGHT_BROWN; + window->colours[2] = COLOUR_LIGHT_BROWN; } diff --git a/src/windows/dropdown.c b/src/windows/dropdown.c index 8acd7176ba..f53a085d4f 100644 --- a/src/windows/dropdown.c +++ b/src/windows/dropdown.c @@ -45,7 +45,7 @@ int _dropdown_item_width; int _dropdown_item_height; int gDropdownNumItems; -uint16 gDropdownItemsFormat[64]; +rct_string_id gDropdownItemsFormat[64]; sint64 gDropdownItemsArgs[64]; uint64 gDropdownItemsChecked; uint64 gDropdownItemsDisabled; @@ -424,7 +424,7 @@ void window_dropdown_show_colour_available(rct_window *w, rct_widget *widget, ui defaultIndex = i; gDropdownItemsFormat[i] = 0xFFFE; - gDropdownItemsArgs[i] = ((uint64)i << 32) | (0x20000000 | (i << 19) | 5059); + gDropdownItemsArgs[i] = ((uint64)i << 32) | (0x20000000 | (i << 19) | SPR_PALETTE_BTN); } } diff --git a/src/windows/dropdown.h b/src/windows/dropdown.h index 1706718e6f..850ff39635 100644 --- a/src/windows/dropdown.h +++ b/src/windows/dropdown.h @@ -29,7 +29,7 @@ enum extern int gAppropriateImageDropdownItemsPerRow[]; extern int gDropdownNumItems; -extern uint16 gDropdownItemsFormat[64]; +extern rct_string_id gDropdownItemsFormat[64]; extern sint64 gDropdownItemsArgs[64]; extern uint64 gDropdownItemsChecked; extern uint64 gDropdownItemsDisabled; diff --git a/src/windows/editor_bottom_toolbar.c b/src/windows/editor_bottom_toolbar.c index 697df166e1..36b7b9e9b1 100644 --- a/src/windows/editor_bottom_toolbar.c +++ b/src/windows/editor_bottom_toolbar.c @@ -118,6 +118,17 @@ static EMPTY_ARGS_VOID_POINTER *next_button_mouseup_events[] = { NULL }; +static const rct_string_id EditorStepNames[] = { + STR_EDITOR_STEP_OBJECT_SELECTION, + STR_EDITOR_STEP_LANDSCAPE_EDITOR, + STR_EDITOR_STEP_INVENTIONS_LIST_SET_UP, + STR_EDITOR_STEP_OPTIONS_SELECTION, + STR_EDITOR_STEP_OBJECTIVE_SELECTION, + STR_EDITOR_STEP_SAVE_SCENARIO, + STR_EDITOR_STEP_ROLLERCOASTER_DESIGNER, + STR_EDITOR_STEP_TRACK_DESIGNS_MANAGER, +}; + static void sub_6DFED0(); /** @@ -469,7 +480,7 @@ void window_editor_bottom_toolbar_paint(rct_window *w, rct_drawpixelinfo *dpi) (window_editor_bottom_toolbar_widgets[WIDX_PREVIOUS_IMAGE].right + window_editor_bottom_toolbar_widgets[WIDX_NEXT_IMAGE].left) / 2 + w->x; short stateY = w->height - 0x0C + w->y; - gfx_draw_string_centred(dpi, STR_OBJECT_SELECTION_STEP + gS6Info->editor_step, + gfx_draw_string_centred(dpi, EditorStepNames[gS6Info->editor_step], stateX, stateY, (w->colours[2] & 0x7F) | 0x20, 0); if (drawPreviousButton) { @@ -481,16 +492,16 @@ void window_editor_bottom_toolbar_paint(rct_window *w, rct_drawpixelinfo *dpi) if (gHoverWidget.window_classification == WC_BOTTOM_TOOLBAR && gHoverWidget.widget_index == WIDX_PREVIOUS_STEP_BUTTON ) { - textColour = 2; + textColour = COLOUR_WHITE; } short textX = (window_editor_bottom_toolbar_widgets[WIDX_PREVIOUS_IMAGE].left + 30 + window_editor_bottom_toolbar_widgets[WIDX_PREVIOUS_IMAGE].right) / 2 + w->x; short textY = window_editor_bottom_toolbar_widgets[WIDX_PREVIOUS_IMAGE].top + 6 + w->y; - short stringId = STR_OBJECT_SELECTION_STEP + gS6Info->editor_step - 1; + rct_string_id stringId = EditorStepNames[gS6Info->editor_step - 1]; if (gScreenFlags & SCREEN_FLAGS_TRACK_DESIGNER) - stringId = STR_OBJECT_SELECTION_STEP; + stringId = STR_EDITOR_STEP_OBJECT_SELECTION; gfx_draw_string_centred(dpi, STR_BACK_TO_PREVIOUS_STEP, textX, textY, textColour, 0); gfx_draw_string_centred(dpi, stringId, textX, textY + 10, textColour, 0); @@ -513,9 +524,9 @@ void window_editor_bottom_toolbar_paint(rct_window *w, rct_drawpixelinfo *dpi) window_editor_bottom_toolbar_widgets[WIDX_NEXT_IMAGE].right - 30) / 2 + w->x; short textY = window_editor_bottom_toolbar_widgets[WIDX_NEXT_IMAGE].top + 6 + w->y; - short stringId = STR_OBJECT_SELECTION_STEP + gS6Info->editor_step + 1; + rct_string_id stringId = EditorStepNames[gS6Info->editor_step + 1]; if (gScreenFlags & SCREEN_FLAGS_TRACK_DESIGNER) - stringId = STR_ROLLERCOASTER_DESIGNER_STEP; + stringId = STR_EDITOR_STEP_ROLLERCOASTER_DESIGNER; gfx_draw_string_centred(dpi, STR_FORWARD_TO_NEXT_STEP, textX, textY, textColour, 0); gfx_draw_string_centred(dpi, stringId, textX, textY + 10, textColour, 0); diff --git a/src/windows/editor_inventions_list.c b/src/windows/editor_inventions_list.c index 83faf6dda4..542cc9cfa5 100644 --- a/src/windows/editor_inventions_list.c +++ b/src/windows/editor_inventions_list.c @@ -51,9 +51,9 @@ static rct_widget window_editor_inventions_list_widgets[] = { { WWT_CAPTION, 0, 1, 598, 1, 14, STR_INVENTION_LIST, STR_WINDOW_TITLE_TIP }, { WWT_CLOSEBOX, 0, 587, 597, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, { WWT_RESIZE, 1, 0, 599, 43, 399, STR_NONE, STR_NONE }, - { WWT_TAB, 1, 3, 33, 17, 43, 0x2000144E, STR_NONE }, - { WWT_SCROLL, 1, 4, 371, 56, 175, 2, STR_NONE }, - { WWT_SCROLL, 1, 4, 371, 189, 396, 2, STR_NONE }, + { WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_NONE }, + { WWT_SCROLL, 1, 4, 371, 56, 175, SCROLL_VERTICAL, STR_NONE }, + { WWT_SCROLL, 1, 4, 371, 189, 396, SCROLL_VERTICAL, STR_NONE }, { WWT_FLATBTN, 1, 431, 544, 106, 219, 0xFFFFFFFF, STR_NONE }, { WWT_DROPDOWN_BUTTON, 1, 375, 594, 385, 396, STR_RANDOM_SHUFFLE, STR_RANDOM_SHUFFLE_TIP }, { WWT_DROPDOWN_BUTTON, 1, 375, 594, 372, 383, STR_MOVE_ALL_BOTTOM, STR_NONE }, @@ -154,6 +154,16 @@ static rct_window_event_list window_editor_inventions_list_drag_events = { rct_research_item *_editorInventionsListDraggedItem; +static const rct_string_id EditorInventionsResearchCategories[] = { + STR_RESEARCH_NEW_TRANSPORT_RIDES, + STR_RESEARCH_NEW_GENTLE_RIDES, + STR_RESEARCH_NEW_ROLLER_COASTERS, + STR_RESEARCH_NEW_THRILL_RIDES, + STR_RESEARCH_NEW_WATER_RIDES, + STR_RESEARCH_NEW_SHOPS_AND_STALLS, + STR_RESEARCH_NEW_SCENERY_AND_THEMING, +}; + static void window_editor_inventions_list_drag_open(rct_research_item *researchItem); static void move_research_item(rct_research_item *beforeItem); @@ -806,12 +816,12 @@ static void window_editor_inventions_list_paint(rct_window *w, rct_drawpixelinfo y = w->y + widget->bottom + 3; width = w->width - w->widgets[WIDX_RESEARCH_ORDER_SCROLL].right - 6; stringId = research_item_get_name(eax); - gfx_draw_string_centred_clipped(dpi, STR_WINDOW_COLOUR_2_STRING, &stringId, 0, x, y, width); + gfx_draw_string_centred_clipped(dpi, STR_WINDOW_COLOUR_2_STRINGID, &stringId, 0, x, y, width); y += 15; // Item category x = w->x + w->widgets[WIDX_RESEARCH_ORDER_SCROLL].right + 4; - stringId = STR_RESEARCH_TRANSPORT_RIDES + researchItem->category; + stringId = EditorInventionsResearchCategories[researchItem->category]; gfx_draw_string_left(dpi, STR_INVENTION_RESEARCH_GROUP, &stringId, 0, x, y); } @@ -986,7 +996,7 @@ static void window_editor_inventions_list_drag_paint(rct_window *w, rct_drawpixe x = w->x; y = w->y + 2; stringId = research_item_get_name(_editorInventionsListDraggedItem->entryIndex & 0xFFFFFF); - gfx_draw_string_left(dpi, STR_WINDOW_COLOUR_2_STRING, &stringId, 32, x, y); + gfx_draw_string_left(dpi, STR_WINDOW_COLOUR_2_STRINGID, &stringId, 32, x, y); } #pragma endregion diff --git a/src/windows/editor_object_selection.c b/src/windows/editor_object_selection.c index 497bfd375b..4a35cd53f4 100644 --- a/src/windows/editor_object_selection.c +++ b/src/windows/editor_object_selection.c @@ -40,6 +40,7 @@ #include "../world/footpath.h" #include "dropdown.h" #include "error.h" +#include "../sprites.h" enum { FILTER_RCT2 = (1 << 0), @@ -89,6 +90,20 @@ enum { WINDOW_OBJECT_SELECTION_PAGE_COUNT }; +static const rct_string_id ObjectSelectionPageNames[WINDOW_OBJECT_SELECTION_PAGE_COUNT] = { + STR_OBJECT_SELECTION_RIDE_VEHICLES_ATTRACTIONS, + STR_OBJECT_SELECTION_SMALL_SCENERY, + STR_OBJECT_SELECTION_LARGE_SCENERY, + STR_OBJECT_SELECTION_WALLS_FENCES, + STR_OBJECT_SELECTION_PATH_SIGNS, + STR_OBJECT_SELECTION_FOOTPATHS, + STR_OBJECT_SELECTION_PATH_EXTRAS, + STR_OBJECT_SELECTION_SCENERY_GROUPS, + STR_OBJECT_SELECTION_PARK_ENTRANCE, + STR_OBJECT_SELECTION_WATER, + STR_OBJECT_SELECTION_SCENARIO_DESCRIPTION, +}; + #pragma region Widgets enum WINDOW_STAFF_LIST_WIDGET_IDX { @@ -131,32 +146,32 @@ static rct_widget window_editor_object_selection_widgets[] = { { WWT_CAPTION, 0, 1, 598, 1, 14, STR_OBJECT_SELECTION, STR_WINDOW_TITLE_TIP }, { WWT_CLOSEBOX, 0, 587, 597, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, { WWT_RESIZE, 1, 0, 599, 43, 399, 0xFFFFFFFF, STR_NONE }, - { WWT_TAB, 1, 3, 33, 17, 43, 0x2000144E, STR_STRING_DEFINED_TOOLTIP }, - { WWT_TAB, 1, 34, 64, 17, 43, 0x2000144E, STR_STRING_DEFINED_TOOLTIP }, - { WWT_TAB, 1, 65, 95, 17, 43, 0x2000144E, STR_STRING_DEFINED_TOOLTIP }, - { WWT_TAB, 1, 96, 126, 17, 43, 0x2000144E, STR_STRING_DEFINED_TOOLTIP }, - { WWT_TAB, 1, 127, 157, 17, 43, 0x2000144E, STR_STRING_DEFINED_TOOLTIP }, - { WWT_TAB, 1, 158, 188, 17, 43, 0x2000144E, STR_STRING_DEFINED_TOOLTIP }, - { WWT_TAB, 1, 189, 219, 17, 43, 0x2000144E, STR_STRING_DEFINED_TOOLTIP }, - { WWT_TAB, 1, 220, 250, 17, 43, 0x2000144E, STR_STRING_DEFINED_TOOLTIP }, - { WWT_TAB, 1, 251, 281, 17, 43, 0x2000144E, STR_STRING_DEFINED_TOOLTIP }, - { WWT_TAB, 1, 282, 312, 17, 43, 0x2000144E, STR_STRING_DEFINED_TOOLTIP }, - { WWT_TAB, 1, 313, 343, 17, 43, 0x2000144E, STR_STRING_DEFINED_TOOLTIP }, + { WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_STRING_DEFINED_TOOLTIP }, + { WWT_TAB, 1, 34, 64, 17, 43, 0x20000000 | SPR_TAB, STR_STRING_DEFINED_TOOLTIP }, + { WWT_TAB, 1, 65, 95, 17, 43, 0x20000000 | SPR_TAB, STR_STRING_DEFINED_TOOLTIP }, + { WWT_TAB, 1, 96, 126, 17, 43, 0x20000000 | SPR_TAB, STR_STRING_DEFINED_TOOLTIP }, + { WWT_TAB, 1, 127, 157, 17, 43, 0x20000000 | SPR_TAB, STR_STRING_DEFINED_TOOLTIP }, + { WWT_TAB, 1, 158, 188, 17, 43, 0x20000000 | SPR_TAB, STR_STRING_DEFINED_TOOLTIP }, + { WWT_TAB, 1, 189, 219, 17, 43, 0x20000000 | SPR_TAB, STR_STRING_DEFINED_TOOLTIP }, + { WWT_TAB, 1, 220, 250, 17, 43, 0x20000000 | SPR_TAB, STR_STRING_DEFINED_TOOLTIP }, + { WWT_TAB, 1, 251, 281, 17, 43, 0x20000000 | SPR_TAB, STR_STRING_DEFINED_TOOLTIP }, + { WWT_TAB, 1, 282, 312, 17, 43, 0x20000000 | SPR_TAB, STR_STRING_DEFINED_TOOLTIP }, + { WWT_TAB, 1, 313, 343, 17, 43, 0x20000000 | SPR_TAB, STR_STRING_DEFINED_TOOLTIP }, { WWT_DROPDOWN_BUTTON, 0, 470, 591, 23, 34, STR_OBJECT_SELECTION_ADVANCED, STR_OBJECT_SELECTION_ADVANCED_TIP }, - { WWT_SCROLL, 1, 4, 291, 60, 386, 2, STR_NONE }, + { WWT_SCROLL, 1, 4, 291, 60, 386, SCROLL_VERTICAL, STR_NONE }, { WWT_FLATBTN, 1, 391, 504, 46, 159, 0xFFFFFFFF, STR_NONE }, { WWT_DROPDOWN_BUTTON, 0, 470, 591, 23, 34, STR_INSTALL_NEW_TRACK_DESIGN, STR_INSTALL_NEW_TRACK_DESIGN_TIP }, { WWT_DROPDOWN_BUTTON, 0, 350, 463, 23, 34, STR_OBJECT_FILTER, STR_OBJECT_FILTER_TIP }, { WWT_TEXT_BOX, 1, 4, 214, 46, 57, STR_NONE, STR_NONE }, { WWT_DROPDOWN_BUTTON, 1, 218, 287, 46, 57, STR_OBJECT_SEARCH_CLEAR, STR_NONE }, { WWT_IMGBTN, 1, 3, 287, 73, 76, 0xFFFFFFFF, STR_NONE }, - { WWT_TAB, 1, 3, 33, 47, 73, 0x2000144E, STR_OBJECT_FILTER_ALL_RIDES_TIP }, - { WWT_TAB, 1, 34, 64, 47, 73, 0x2000144E, STR_TRANSPORT_RIDES_TIP }, - { WWT_TAB, 1, 65, 95, 47, 73, 0x2000144E, STR_GENTLE_RIDES_TIP }, - { WWT_TAB, 1, 96, 126, 47, 73, 0x2000144E, STR_ROLLER_COASTERS_TIP }, - { WWT_TAB, 1, 127, 157, 47, 73, 0x2000144E, STR_THRILL_RIDES_TIP }, - { WWT_TAB, 1, 158, 188, 47, 73, 0x2000144E, STR_WATER_RIDES_TIP }, - { WWT_TAB, 1, 189, 219, 47, 73, 0x2000144E, STR_SHOPS_STALLS_TIP }, + { WWT_TAB, 1, 3, 33, 47, 73, 0x20000000 | SPR_TAB, STR_OBJECT_FILTER_ALL_RIDES_TIP }, + { WWT_TAB, 1, 34, 64, 47, 73, 0x20000000 | SPR_TAB, STR_TRANSPORT_RIDES_TIP }, + { WWT_TAB, 1, 65, 95, 47, 73, 0x20000000 | SPR_TAB, STR_GENTLE_RIDES_TIP }, + { WWT_TAB, 1, 96, 126, 47, 73, 0x20000000 | SPR_TAB, STR_ROLLER_COASTERS_TIP }, + { WWT_TAB, 1, 127, 157, 47, 73, 0x20000000 | SPR_TAB, STR_THRILL_RIDES_TIP }, + { WWT_TAB, 1, 158, 188, 47, 73, 0x20000000 | SPR_TAB, STR_WATER_RIDES_TIP }, + { WWT_TAB, 1, 189, 219, 47, 73, 0x20000000 | SPR_TAB, STR_SHOPS_STALLS_TIP }, { WWT_13, 1, 4, 204, 80, 93, STR_NONE, STR_NONE }, { WWT_13, 1, 205, 291, 80, 93, STR_NONE, STR_NONE }, { WIDGETS_END } @@ -426,7 +441,7 @@ void window_editor_object_selection_open() WC_EDITOR_OBJECT_SELECTION, WF_10 | WF_RESIZABLE ); - window_editor_object_selection_widgets[WIDX_FILTER_STRING_BUTTON].image = (uint32)_filter_string; + window_editor_object_selection_widgets[WIDX_FILTER_STRING_BUTTON].string = _filter_string; window->widgets = window_editor_object_selection_widgets; window->enabled_widgets = @@ -830,7 +845,7 @@ static void window_editor_object_selection_mouseup(rct_window *w, int widgetInde window_loadsave_open(LOADSAVETYPE_LOAD | LOADSAVETYPE_TRACK, NULL); break; case WIDX_FILTER_STRING_BUTTON: - //window_text_input_open(w, widgetIndex, 5275, 5276, 1170, (uint32)_filter_string, 40); + //window_text_input_open(w, widgetIndex, STR_OBJECT_SEARCH, STR_OBJECT_SEARCH_DESC, STR_STRING, (uint32)_filter_string, 40); window_start_textbox(w, widgetIndex, STR_STRING, (uint32)_filter_string, 40); break; case WIDX_FILTER_CLEAR_BUTTON: @@ -876,10 +891,10 @@ void window_editor_object_selection_mousedown(int widgetIndex, rct_window*w, rct case WIDX_FILTER_DROPDOWN: num_items = 4; - gDropdownItemsFormat[DDIX_FILTER_RCT2] = 1156; - gDropdownItemsFormat[DDIX_FILTER_WW] = 1156; - gDropdownItemsFormat[DDIX_FILTER_TT] = 1156; - gDropdownItemsFormat[DDIX_FILTER_CUSTOM] = 1156; + gDropdownItemsFormat[DDIX_FILTER_RCT2] = STR_TOGGLE_OPTION; + gDropdownItemsFormat[DDIX_FILTER_WW] = STR_TOGGLE_OPTION; + gDropdownItemsFormat[DDIX_FILTER_TT] = STR_TOGGLE_OPTION; + gDropdownItemsFormat[DDIX_FILTER_CUSTOM] = STR_TOGGLE_OPTION; gDropdownItemsArgs[DDIX_FILTER_RCT2] = STR_ROLLERCOASTER_TYCOON_2_DROPDOWN; gDropdownItemsArgs[DDIX_FILTER_WW] = STR_OBJECT_FILTER_WW; gDropdownItemsArgs[DDIX_FILTER_TT] = STR_OBJECT_FILTER_TT; @@ -888,8 +903,8 @@ void window_editor_object_selection_mousedown(int widgetIndex, rct_window*w, rct if (!(gScreenFlags & SCREEN_FLAGS_TRACK_MANAGER)) { num_items = 7; gDropdownItemsFormat[DDIX_FILTER_SEPERATOR] = 0; - gDropdownItemsFormat[DDIX_FILTER_SELECTED] = 1156; - gDropdownItemsFormat[DDIX_FILTER_NONSELECTED] = 1156; + gDropdownItemsFormat[DDIX_FILTER_SELECTED] = STR_TOGGLE_OPTION; + gDropdownItemsFormat[DDIX_FILTER_NONSELECTED] = STR_TOGGLE_OPTION; gDropdownItemsArgs[DDIX_FILTER_SEPERATOR] = STR_NONE; gDropdownItemsArgs[DDIX_FILTER_SELECTED] = STR_SELECTED_ONLY; gDropdownItemsArgs[DDIX_FILTER_NONSELECTED] = STR_NON_SELECTED_ONLY; @@ -1066,7 +1081,7 @@ static void window_editor_object_selection_tooltip(rct_window* w, int widgetInde case WIDX_TAB_9: case WIDX_TAB_10: case WIDX_TAB_11: - set_format_arg(0, rct_string_id, STR_OBJECT_SELECTION_RIDE_VEHICLES_ATTRACTIONS + (widgetIndex - WIDX_TAB_1)); + set_format_arg(0, rct_string_id, ObjectSelectionPageNames[(widgetIndex - WIDX_TAB_1)]); break; default: set_format_arg(0, rct_string_id, STR_LIST); @@ -1113,15 +1128,15 @@ static void window_editor_object_selection_invalidate(rct_window *w) w->pressed_widgets &= ~(1 << WIDX_ADVANCED); // Set window title and buttons - set_format_arg(0, rct_string_id, STR_OBJECT_SELECTION_RIDE_VEHICLES_ATTRACTIONS + w->selected_tab); + set_format_arg(0, rct_string_id, ObjectSelectionPageNames[w->selected_tab]); if (gScreenFlags & SCREEN_FLAGS_TRACK_MANAGER) { - w->widgets[WIDX_TITLE].image = STR_TRACK_DESIGNS_MANAGER_SELECT_RIDE_TYPE; + w->widgets[WIDX_TITLE].text = STR_TRACK_DESIGNS_MANAGER_SELECT_RIDE_TYPE; w->widgets[WIDX_INSTALL_TRACK].type = WWT_DROPDOWN_BUTTON; } else if (gScreenFlags & SCREEN_FLAGS_TRACK_DESIGNER) { - w->widgets[WIDX_TITLE].image = STR_ROLLER_COASTER_DESIGNER_SELECT_RIDE_TYPES_VEHICLES; + w->widgets[WIDX_TITLE].text = STR_ROLLER_COASTER_DESIGNER_SELECT_RIDE_TYPES_VEHICLES; w->widgets[WIDX_INSTALL_TRACK].type = WWT_EMPTY; } else { - w->widgets[WIDX_TITLE].image = STR_OBJECT_SELECTION; + w->widgets[WIDX_TITLE].text = STR_OBJECT_SELECTION; w->widgets[WIDX_INSTALL_TRACK].type = WWT_EMPTY; } @@ -1238,10 +1253,10 @@ static void window_editor_object_selection_paint(rct_window *w, rct_drawpixelinf x = w->x + widget->left; y = w->y + widget->top; - gfx_draw_sprite(dpi, STR_ROTATE_CLOCKWISE + i, x, y, 0); + gfx_draw_sprite(dpi, SPR_TAB_RIDE_16 + i, x, y, 0); } - const int ride_tabs[] = { 5458, 0x200015A1, 5542, 0x200015AA, 5557, 5551, 5530, 5327 }; + const int ride_tabs[] = { SPR_TAB_RIDE_16, 0x20000000 | SPR_TAB_RIDES_TRANSPORT_0, SPR_TAB_RIDES_GENTLE_0, 0x20000000 | SPR_TAB_RIDES_ROLLER_COASTERS_0, SPR_TAB_RIDES_THRILL_0, SPR_TAB_RIDES_WATER_0, SPR_TAB_RIDES_SHOP_0, SPR_TAB_FINANCES_RESEARCH_0 }; const int ThrillRidesTabAnimationSequence[] = { 5, 6, 5, 4, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 0, 0, 0 }; @@ -1290,7 +1305,7 @@ static void window_editor_object_selection_paint(rct_window *w, rct_drawpixelinf set_format_arg(0, uint16, numSelected); set_format_arg(2, uint16, totalSelectable); - gfx_draw_string_left(dpi, 3164, gCommonFormatArgs, 0, x, y); + gfx_draw_string_left(dpi, STR_OBJECT_SELECTION_SELECTION_SIZE, gCommonFormatArgs, 0, x, y); } // Draw sort button text @@ -1344,7 +1359,7 @@ static void window_editor_object_selection_paint(rct_window *w, rct_drawpixelinf y += 15; int width = w->x + w->width - x - 4; if (type == OBJECT_TYPE_SCENARIO_TEXT) { - gfx_draw_string_left_wrapped(dpi, &stringId, x, y, width, 3168, 0); + gfx_draw_string_left_wrapped(dpi, &stringId, x, y, width, STR_OBJECT_SELECTION_DESCRIPTION_SCENARIO_TEXT, 0); } else { gfx_draw_string_left_wrapped(dpi, &stringId, x, y + 5, width, STR_BLACK_STRING, 0); } @@ -1549,7 +1564,7 @@ static int window_editor_object_selection_select_object(uint8 bh, int flags, con int numObjects = (int)object_repository_get_items_count(); const ObjectRepositoryItem * item = object_repository_find_object_by_entry(entry); if (item == NULL) { - set_object_selection_error(bh, 3169); + set_object_selection_error(bh, STR_OBJECT_SELECTION_ERR_OBJECT_DATA_NOT_FOUND); return 0; } @@ -1568,11 +1583,11 @@ static int window_editor_object_selection_select_object(uint8 bh, int flags, con return 1; } else if (*selectionFlags & OBJECT_SELECTION_FLAG_IN_USE) { - set_object_selection_error(bh, 3173); + set_object_selection_error(bh, STR_OBJECT_SELECTION_ERR_CURRENTLY_IN_USE); return 0; } else if (*selectionFlags & OBJECT_SELECTION_FLAG_ALWAYS_REQUIRED) { - set_object_selection_error(bh, 3175); + set_object_selection_error(bh, STR_OBJECT_SELECTION_ERR_ALWAYS_REQUIRED); return 0; } @@ -1603,7 +1618,7 @@ static int window_editor_object_selection_select_object(uint8 bh, int flags, con } if (maxObjects <= _numSelectedObjectsForType[objectType]) { - set_object_selection_error(bh, 3171); + set_object_selection_error(bh, STR_OBJECT_SELECTION_ERR_TOO_MANY_OF_TYPE_SELECTED); return 0; } @@ -1618,12 +1633,12 @@ static int window_editor_object_selection_select_object(uint8 bh, int flags, con if (bh != 0 && !(flags & (1 << 1))) { object_create_identifier_name((char*)0x009BC95A, &item->ObjectEntry); set_format_arg(0, uint32, 0x009BC95A); - set_object_selection_error(bh, 3172); + set_object_selection_error(bh, STR_OBJECT_SELECTION_ERR_SHOULD_SELECT_X_FIRST); return 0; } if (maxObjects <= _numSelectedObjectsForType[objectType]) { - set_object_selection_error(bh, 3171); + set_object_selection_error(bh, STR_OBJECT_SELECTION_ERR_TOO_MANY_OF_TYPE_SELECTED); return 0; } @@ -1888,7 +1903,7 @@ static rct_string_id get_ride_type_string_id(const ObjectRepositoryItem * item) for (int i = 0; i < 3; i++) { uint8 rideType = item->RideType[i]; if (rideType != 255) { - result = 2 + rideType; + result = STR_RIDE_NAME_SPIRAL_ROLLER_COASTER + rideType; break; } } diff --git a/src/windows/editor_objective_options.c b/src/windows/editor_objective_options.c index 92f7bf682b..c96901bc44 100644 --- a/src/windows/editor_objective_options.c +++ b/src/windows/editor_objective_options.c @@ -37,6 +37,28 @@ enum { WINDOW_EDITOR_OBJECTIVE_OPTIONS_PAGE_COUNT }; +static const rct_string_id ClimateNames[] = { + STR_CLIMATE_COOL_AND_WET, + STR_CLIMATE_WARM, + STR_CLIMATE_HOT_AND_DRY, + STR_CLIMATE_COLD, +}; + +static const rct_string_id ObjectiveDropdownOptionNames[] = { + STR_OBJECTIVE_DROPDOWN_NONE, + STR_OBJECTIVE_DROPDOWN_NUMBER_OF_GUESTS_AT_A_GIVEN_DATE, + STR_OBJECTIVE_DROPDOWN_PARK_VALUE_AT_A_GIVEN_DATE, + STR_OBJECTIVE_DROPDOWN_HAVE_FUN, + STR_OBJECTIVE_DROPDOWN_BUILD_THE_BEST_RIDE_YOU_CAN, + STR_OBJECTIVE_DROPDOWN_BUILD_10_ROLLER_COASTERS, + STR_OBJECTIVE_DROPDOWN_NUMBER_OF_GUESTS_IN_PARK, + STR_OBJECTIVE_DROPDOWN_MONTHLY_INCOME_FROM_RIDE_TICKETS, + STR_OBJECTIVE_DROPDOWN_BUILD_10_ROLLER_COASTERS_OF_A_GIVEN_LENGTH, + STR_OBJECTIVE_DROPDOWN_FINISH_BUILDING_5_ROLLER_COASTERS, + STR_OBJECTIVE_DROPDOWN_REPAY_LOAN_AND_ACHIEVE_A_GIVEN_PARK_VALUE, + STR_OBJECTIVE_DROPDOWN_MONTHLY_PROFIT_FROM_FOOD_MERCHANDISE, +}; + enum { WIDX_BACKGROUND, WIDX_TITLE, @@ -69,8 +91,8 @@ static rct_widget window_editor_objective_options_main_widgets[] = { { WWT_CAPTION, 0, 1, 448, 1, 14, STR_OBJECTIVE_SELECTION, STR_WINDOW_TITLE_TIP }, { WWT_CLOSEBOX, 0, 437, 447, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, { WWT_RESIZE, 1, 0, 279, 43, 148, STR_NONE, STR_NONE }, - { WWT_TAB, 1, 3, 33, 17, 43, 0x2000144E, STR_SELECT_OBJECTIVE_AND_PARK_NAME_TIP }, - { WWT_TAB, 1, 34, 64, 17, 46, 0x2000144E, STR_SELECT_RIDES_TO_BE_PRESERVED_TIP }, + { WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_SELECT_OBJECTIVE_AND_PARK_NAME_TIP }, + { WWT_TAB, 1, 34, 64, 17, 46, 0x20000000 | SPR_TAB, STR_SELECT_RIDES_TO_BE_PRESERVED_TIP }, { WWT_DROPDOWN, 1, 98, 441, 48, 59, STR_NONE, STR_SELECT_OBJECTIVE_FOR_THIS_SCENARIO_TIP }, { WWT_DROPDOWN_BUTTON, 1, 430, 440, 49, 58, STR_DROPDOWN_GLYPH, STR_SELECT_OBJECTIVE_FOR_THIS_SCENARIO_TIP }, { WWT_SPINNER, 1, 158, 237, 65, 76, STR_NONE, STR_NONE }, @@ -94,9 +116,9 @@ static rct_widget window_editor_objective_options_rides_widgets[] = { { WWT_CAPTION, 0, 1, 448, 1, 14, STR_OBJECTIVE_SELECTION, STR_WINDOW_TITLE_TIP }, { WWT_CLOSEBOX, 0, 437, 447, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, { WWT_RESIZE, 1, 0, 279, 43, 148, STR_NONE, STR_NONE }, - { WWT_TAB, 1, 3, 33, 17, 43, 0x2000144E, STR_SELECT_OBJECTIVE_AND_PARK_NAME_TIP }, - { WWT_TAB, 1, 34, 64, 17, 46, 0x2000144E, STR_SELECT_RIDES_TO_BE_PRESERVED_TIP }, - { WWT_SCROLL, 1, 3, 376, 60, 220, 2, STR_NONE }, + { WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_SELECT_OBJECTIVE_AND_PARK_NAME_TIP }, + { WWT_TAB, 1, 34, 64, 17, 46, 0x20000000 | SPR_TAB, STR_SELECT_RIDES_TO_BE_PRESERVED_TIP }, + { WWT_SCROLL, 1, 3, 376, 60, 220, SCROLL_VERTICAL, STR_NONE }, { WIDGETS_END } }; @@ -508,7 +530,7 @@ static void window_editor_objective_options_show_climate_dropdown(rct_window *w) for (i = 0; i < 4; i++) { gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL; - gDropdownItemsArgs[i] = STR_CLIMATE_COOL_AND_WET + i; + gDropdownItemsArgs[i] = ClimateNames[i]; } window_dropdown_show_text_custom_width( w->x + dropdownWidget->left, @@ -705,6 +727,7 @@ static void window_editor_objective_options_main_dropdown(rct_window *w, int wid switch (widgetIndex) { case WIDX_OBJECTIVE_DROPDOWN: + // TODO: Don't rely on string ID order newObjectiveType = (uint8)(gDropdownItemsArgs[dropdownIndex] - STR_OBJECTIVE_DROPDOWN_NONE); if (gScenarioObjectiveType != newObjectiveType) window_editor_objective_options_set_objective(w, newObjectiveType); @@ -892,8 +915,8 @@ static void window_editor_objective_options_main_paint(rct_window *w, rct_drawpi // Objective value x = w->x + w->widgets[WIDX_OBJECTIVE].left + 1; y = w->y + w->widgets[WIDX_OBJECTIVE].top; - stringId = STR_OBJECTIVE_DROPDOWN_NONE + gScenarioObjectiveType; - gfx_draw_string_left(dpi, STR_WINDOW_COLOUR_2_STRING, &stringId, 0, x, y); + stringId = ObjectiveDropdownOptionNames[gScenarioObjectiveType]; + gfx_draw_string_left(dpi, STR_WINDOW_COLOUR_2_STRINGID, &stringId, 0, x, y); if (w->widgets[WIDX_OBJECTIVE_ARG_1].type != WWT_EMPTY) { // Objective argument 1 label @@ -902,23 +925,23 @@ static void window_editor_objective_options_main_paint(rct_window *w, rct_drawpi switch (gScenarioObjectiveType) { case OBJECTIVE_GUESTS_BY: case OBJECTIVE_GUESTS_AND_RATING: - stringId = 3303; + stringId = STR_WINDOW_OBJECTIVE_GUEST_COUNT; break; case OBJECTIVE_PARK_VALUE_BY: case OBJECTIVE_REPLAY_LOAN_AND_PARK_VALUE: - stringId = 3304; + stringId = STR_WINDOW_OBJECTIVE_PARK_VALUE; break; case OBJECTIVE_MONTHLY_RIDE_INCOME: - stringId = 3305; + stringId = STR_WINDOW_OBJECTIVE_MONTHLY_INCOME; break; case OBJECTIVE_MONTHLY_FOOD_INCOME: - stringId = 3306; + stringId = STR_WINDOW_OBJECTIVE_MONTHLY_PROFIT; break; case OBJECTIVE_10_ROLLERCOASTERS_LENGTH: - stringId = 3307; + stringId = STR_WINDOW_OBJECTIVE_MINIMUM_LENGTH; break; default: - stringId = 3308; + stringId = STR_WINDOW_OBJECTIVE_EXCITEMENT_RATING; break; } gfx_draw_string_left(dpi, stringId, NULL, 0, x, y); @@ -929,7 +952,7 @@ static void window_editor_objective_options_main_paint(rct_window *w, rct_drawpi switch (gScenarioObjectiveType) { case OBJECTIVE_GUESTS_BY: case OBJECTIVE_GUESTS_AND_RATING: - stringId = 3309; + stringId = STR_WINDOW_OBJECTIVE_VALUE_GUEST_COUNT; arg = gScenarioObjectiveNumGuests; break; case OBJECTIVE_PARK_VALUE_BY: @@ -940,11 +963,11 @@ static void window_editor_objective_options_main_paint(rct_window *w, rct_drawpi arg = gScenarioObjectiveCurrency; break; case OBJECTIVE_10_ROLLERCOASTERS_LENGTH: - stringId = 3310; + stringId = STR_WINDOW_OBJECTIVE_VALUE_LENGTH; arg = gScenarioObjectiveNumGuests; break; default: - stringId = 3311; + stringId = STR_WINDOW_OBJECTIVE_VALUE_RATING; arg = gScenarioObjectiveCurrency; break; } @@ -955,13 +978,13 @@ static void window_editor_objective_options_main_paint(rct_window *w, rct_drawpi // Objective argument 2 label x = w->x + 28; y = w->y + w->widgets[WIDX_OBJECTIVE_ARG_2].top; - gfx_draw_string_left(dpi, 3301, NULL, 0, x, y); + gfx_draw_string_left(dpi, STR_WINDOW_OBJECTIVE_DATE, NULL, 0, x, y); // Objective argument 2 value x = w->x + w->widgets[WIDX_OBJECTIVE_ARG_2].left + 1; y = w->y + w->widgets[WIDX_OBJECTIVE_ARG_2].top; arg = (gScenarioObjectiveYear * MONTH_COUNT) - 1; - gfx_draw_string_left(dpi, 3302, &arg, 0, x, y); + gfx_draw_string_left(dpi, STR_WINDOW_OBJECTIVE_VALUE_DATE, &arg, 0, x, y); } // Climate label @@ -972,8 +995,8 @@ static void window_editor_objective_options_main_paint(rct_window *w, rct_drawpi // Climate value x = w->x + w->widgets[WIDX_CLIMATE].left + 1; y = w->y + w->widgets[WIDX_CLIMATE].top; - stringId = STR_CLIMATE_COOL_AND_WET + gClimate; - gfx_draw_string_left(dpi, STR_WINDOW_COLOUR_2_STRING, &stringId, 0, x, y); + stringId = ClimateNames[gClimate]; + gfx_draw_string_left(dpi, STR_WINDOW_COLOUR_2_STRINGID, &stringId, 0, x, y); // Park name x = w->x + 8; @@ -1000,7 +1023,7 @@ static void window_editor_objective_options_main_paint(rct_window *w, rct_drawpi set_format_arg(0, uint16, STR_PLACEHOLDER); } set_format_arg(2, uint32, gParkNameArgs); - gfx_draw_string_left_clipped(dpi, 3300, gCommonFormatArgs, 0, x, y, width); + gfx_draw_string_left_clipped(dpi, STR_WINDOW_SCENARIO_NAME, gCommonFormatArgs, 0, x, y, width); // Scenario details label x = w->x + 8; @@ -1030,7 +1053,7 @@ static void window_editor_objective_options_main_paint(rct_window *w, rct_drawpi x = w->x + w->widgets[WIDX_CATEGORY].left + 1; y = w->y + w->widgets[WIDX_CATEGORY].top; stringId = ScenarioCategoryStringIds[gS6Info->category]; - gfx_draw_string_left(dpi, STR_WINDOW_COLOUR_2_STRING, &stringId, 0, x, y); + gfx_draw_string_left(dpi, STR_WINDOW_COLOUR_2_STRINGID, &stringId, 0, x, y); } /** @@ -1165,7 +1188,7 @@ static void window_editor_objective_options_rides_paint(rct_window *w, rct_drawp window_draw_widgets(w, dpi); window_editor_objective_options_draw_tab_images(w, dpi); - gfx_draw_string_left(dpi, 3312, NULL, 0, w->x + 6, w->y + w->widgets[WIDX_PAGE_BACKGROUND].top + 3); + gfx_draw_string_left(dpi, STR_WINDOW_PRESERVATION_ORDER, NULL, 0, w->x + 6, w->y + w->widgets[WIDX_PAGE_BACKGROUND].top + 3); } /** @@ -1192,7 +1215,7 @@ static void window_editor_objective_options_rides_scrollpaint(rct_window *w, rct // Highlighted if (i == w->selected_list_item) { - stringId = STR_WINDOW_COLOUR_2_STRING; + stringId = STR_WINDOW_COLOUR_2_STRINGID; gfx_fill_rect(dpi, 0, y, w->width, y + 11, 0x2000031); } else { stringId = STR_BLACK_STRING; @@ -1201,7 +1224,7 @@ static void window_editor_objective_options_rides_scrollpaint(rct_window *w, rct // Checkbox mark ride = get_ride(i); if (ride->lifecycle_flags & RIDE_LIFECYCLE_INDESTRUCTIBLE) { - gCurrentFontSpriteBase = stringId == STR_WINDOW_COLOUR_2_STRING ? -2 : -1; + gCurrentFontSpriteBase = stringId == STR_WINDOW_COLOUR_2_STRINGID ? -2 : -1; gfx_draw_string(dpi, (char*)CheckBoxMarkString, w->colours[1] & 0x7F, 2, y); } diff --git a/src/windows/editor_scenario_options.c b/src/windows/editor_scenario_options.c index ece77c518e..438caae72c 100644 --- a/src/windows/editor_scenario_options.c +++ b/src/windows/editor_scenario_options.c @@ -95,9 +95,9 @@ static rct_widget window_editor_scenario_options_financial_widgets[] = { { WWT_CAPTION, 0, 1, 278, 1, 14, STR_SCENARIO_OPTIONS_FINANCIAL, STR_WINDOW_TITLE_TIP }, { WWT_CLOSEBOX, 0, 267, 277, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, { WWT_RESIZE, 1, 0, 279, 43, 148, STR_NONE, STR_NONE }, - { WWT_TAB, 1, 3, 33, 17, 43, 0x2000144E, STR_SCENARIO_OPTIONS_FINANCIAL_TIP }, - { WWT_TAB, 1, 34, 64, 17, 46, 0x2000144E, STR_SCENARIO_OPTIONS_GUESTS_TIP }, - { WWT_TAB, 1, 65, 95, 17, 43, 0x2000144E, STR_SCENARIO_OPTIONS_PARK_TIP }, + { WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_SCENARIO_OPTIONS_FINANCIAL_TIP }, + { WWT_TAB, 1, 34, 64, 17, 46, 0x20000000 | SPR_TAB, STR_SCENARIO_OPTIONS_GUESTS_TIP }, + { WWT_TAB, 1, 65, 95, 17, 43, 0x20000000 | SPR_TAB, STR_SCENARIO_OPTIONS_PARK_TIP }, { WWT_CHECKBOX, 1, 8, 271, 48, 59, STR_MAKE_PARK_NO_MONEY, STR_MAKE_PARK_NO_MONEY_TIP }, { WWT_SPINNER, 1, 168, 267, 65, 76, STR_NONE, STR_NONE }, @@ -121,9 +121,9 @@ static rct_widget window_editor_scenario_options_guests_widgets[] = { { WWT_CAPTION, 0, 1, 278, 1, 14, STR_SCENARIO_OPTIONS_GUESTS, STR_WINDOW_TITLE_TIP }, { WWT_CLOSEBOX, 0, 267, 277, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, { WWT_RESIZE, 1, 0, 279, 43, 148, STR_NONE, STR_NONE }, - { WWT_TAB, 1, 3, 33, 17, 43, 0x2000144E, STR_SCENARIO_OPTIONS_FINANCIAL_TIP }, - { WWT_TAB, 1, 34, 64, 17, 46, 0x2000144E, STR_SCENARIO_OPTIONS_GUESTS_TIP }, - { WWT_TAB, 1, 65, 95, 17, 43, 0x2000144E, STR_SCENARIO_OPTIONS_PARK_TIP }, + { WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_SCENARIO_OPTIONS_FINANCIAL_TIP }, + { WWT_TAB, 1, 34, 64, 17, 46, 0x20000000 | SPR_TAB, STR_SCENARIO_OPTIONS_GUESTS_TIP }, + { WWT_TAB, 1, 65, 95, 17, 43, 0x20000000 | SPR_TAB, STR_SCENARIO_OPTIONS_PARK_TIP }, { WWT_SPINNER, 1, 268, 337, 48, 59, STR_NONE, STR_NONE }, { WWT_DROPDOWN_BUTTON, 1, 326, 336, 49, 53, STR_NUMERIC_UP, STR_NONE }, @@ -147,9 +147,9 @@ static rct_widget window_editor_scenario_options_park_widgets[] = { { WWT_CAPTION, 0, 1, 278, 1, 14, STR_SCENARIO_OPTIONS_PARK, STR_WINDOW_TITLE_TIP }, { WWT_CLOSEBOX, 0, 267, 277, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, { WWT_RESIZE, 1, 0, 279, 43, 148, STR_NONE, STR_NONE }, - { WWT_TAB, 1, 3, 33, 17, 43, 0x2000144E, STR_SCENARIO_OPTIONS_FINANCIAL_TIP }, - { WWT_TAB, 1, 34, 64, 17, 46, 0x2000144E, STR_SCENARIO_OPTIONS_GUESTS_TIP }, - { WWT_TAB, 1, 65, 95, 17, 43, 0x2000144E, STR_SCENARIO_OPTIONS_PARK_TIP }, + { WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_SCENARIO_OPTIONS_FINANCIAL_TIP }, + { WWT_TAB, 1, 34, 64, 17, 46, 0x20000000 | SPR_TAB, STR_SCENARIO_OPTIONS_GUESTS_TIP }, + { WWT_TAB, 1, 65, 95, 17, 43, 0x20000000 | SPR_TAB, STR_SCENARIO_OPTIONS_PARK_TIP }, { WWT_SPINNER, 1, 188, 257, 48, 59, STR_NONE, STR_NONE }, { WWT_DROPDOWN_BUTTON, 1, 246, 256, 49, 53, STR_NUMERIC_UP, STR_NONE }, @@ -1212,7 +1212,7 @@ static void window_editor_scenario_options_park_paint(rct_window *w, rct_drawpix // Pay for park or rides value stringId = gParkFlags & PARK_FLAGS_PARK_FREE_ENTRY ? STR_FREE_PARK_ENTER : STR_PAY_PARK_ENTER; - gfx_draw_string_left(dpi, STR_WINDOW_COLOUR_2_STRING, &stringId, 0, x, y); + gfx_draw_string_left(dpi, STR_WINDOW_COLOUR_2_STRINGID, &stringId, 0, x, y); } if (w->widgets[WIDX_ENTRY_PRICE].type != WWT_EMPTY) { diff --git a/src/windows/finances.c b/src/windows/finances.c index 41c5bd50ed..6c2e46b350 100644 --- a/src/windows/finances.c +++ b/src/windows/finances.c @@ -81,19 +81,19 @@ enum { #pragma region Widgets static rct_widget window_finances_summary_widgets[] = { - { WWT_FRAME, 0, 0, 529, 0, 256, 0xFFFFFFFF, STR_NONE }, - { WWT_CAPTION, 0, 1, 528, 1, 14, STR_FINANCIAL_SUMMARY, STR_WINDOW_TITLE_TIP }, - { WWT_CLOSEBOX, 0, 517, 527, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, - { WWT_RESIZE, 1, 0, 529, 43, 256, 0xFFFFFFFF, STR_NONE }, - { WWT_TAB, 1, 3, 33, 17, 43, 0x2000144E, STR_FINANCES_SHOW_SUMMARY_TAB_TIP }, - { WWT_TAB, 1, 34, 64, 17, 43, 0x2000144E, STR_FINANCES_SHOW_CASH_TAB_TIP }, - { WWT_TAB, 1, 65, 95, 17, 43, 0x2000144E, STR_FINANCES_SHOW_PARK_VALUE_TAB_TIP }, - { WWT_TAB, 1, 96, 126, 17, 43, 0x2000144E, STR_FINANCES_SHOW_WEEKLY_PROFIT_TAB_TIP }, - { WWT_TAB, 1, 127, 157, 17, 43, 0x2000144E, STR_FINANCES_SHOW_MARKETING_TAB_TIP }, - { WWT_TAB, 1, 158, 188, 17, 43, 0x2000144E, STR_FINANCES_RESEARCH_TIP }, - { WWT_SPINNER, 1, 64, 153, 229, 240, 1917, STR_NONE }, - { WWT_DROPDOWN_BUTTON, 1, 142, 152, 230, 234, STR_NUMERIC_UP, STR_NONE }, - { WWT_DROPDOWN_BUTTON, 1, 142, 152, 235, 239, STR_NUMERIC_DOWN, STR_NONE }, + { WWT_FRAME, 0, 0, 529, 0, 256, 0xFFFFFFFF, STR_NONE }, + { WWT_CAPTION, 0, 1, 528, 1, 14, STR_FINANCIAL_SUMMARY, STR_WINDOW_TITLE_TIP }, + { WWT_CLOSEBOX, 0, 517, 527, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, + { WWT_RESIZE, 1, 0, 529, 43, 256, 0xFFFFFFFF, STR_NONE }, + { WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_FINANCES_SHOW_SUMMARY_TAB_TIP }, + { WWT_TAB, 1, 34, 64, 17, 43, 0x20000000 | SPR_TAB, STR_FINANCES_SHOW_CASH_TAB_TIP }, + { WWT_TAB, 1, 65, 95, 17, 43, 0x20000000 | SPR_TAB, STR_FINANCES_SHOW_PARK_VALUE_TAB_TIP }, + { WWT_TAB, 1, 96, 126, 17, 43, 0x20000000 | SPR_TAB, STR_FINANCES_SHOW_WEEKLY_PROFIT_TAB_TIP }, + { WWT_TAB, 1, 127, 157, 17, 43, 0x20000000 | SPR_TAB, STR_FINANCES_SHOW_MARKETING_TAB_TIP }, + { WWT_TAB, 1, 158, 188, 17, 43, 0x20000000 | SPR_TAB, STR_FINANCES_RESEARCH_TIP }, + { WWT_SPINNER, 1, 64, 153, 229, 240, STR_FINANCES_SUMMARY_LOAN_VALUE, STR_NONE }, + { WWT_DROPDOWN_BUTTON, 1, 142, 152, 230, 234, STR_NUMERIC_UP, STR_NONE }, + { WWT_DROPDOWN_BUTTON, 1, 142, 152, 235, 239, STR_NUMERIC_DOWN, STR_NONE }, { WIDGETS_END }, }; @@ -102,12 +102,12 @@ static rct_widget window_finances_cash_widgets[] = { { WWT_CAPTION, 0, 1, 528, 1, 14, STR_FINANCIAL_GRAPH, STR_WINDOW_TITLE_TIP }, { WWT_CLOSEBOX, 0, 517, 527, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, { WWT_RESIZE, 1, 0, 529, 43, 256, 0xFFFFFFFF, STR_NONE }, - { WWT_TAB, 1, 3, 33, 17, 43, 0x2000144E, STR_FINANCES_SHOW_SUMMARY_TAB_TIP }, - { WWT_TAB, 1, 34, 64, 17, 43, 0x2000144E, STR_FINANCES_SHOW_CASH_TAB_TIP }, - { WWT_TAB, 1, 65, 95, 17, 43, 0x2000144E, STR_FINANCES_SHOW_PARK_VALUE_TAB_TIP }, - { WWT_TAB, 1, 96, 126, 17, 43, 0x2000144E, STR_FINANCES_SHOW_WEEKLY_PROFIT_TAB_TIP }, - { WWT_TAB, 1, 127, 157, 17, 43, 0x2000144E, STR_FINANCES_SHOW_MARKETING_TAB_TIP }, - { WWT_TAB, 1, 158, 188, 17, 43, 0x2000144E, STR_FINANCES_RESEARCH_TIP }, + { WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_FINANCES_SHOW_SUMMARY_TAB_TIP }, + { WWT_TAB, 1, 34, 64, 17, 43, 0x20000000 | SPR_TAB, STR_FINANCES_SHOW_CASH_TAB_TIP }, + { WWT_TAB, 1, 65, 95, 17, 43, 0x20000000 | SPR_TAB, STR_FINANCES_SHOW_PARK_VALUE_TAB_TIP }, + { WWT_TAB, 1, 96, 126, 17, 43, 0x20000000 | SPR_TAB, STR_FINANCES_SHOW_WEEKLY_PROFIT_TAB_TIP }, + { WWT_TAB, 1, 127, 157, 17, 43, 0x20000000 | SPR_TAB, STR_FINANCES_SHOW_MARKETING_TAB_TIP }, + { WWT_TAB, 1, 158, 188, 17, 43, 0x20000000 | SPR_TAB, STR_FINANCES_RESEARCH_TIP }, { WIDGETS_END }, }; @@ -116,12 +116,12 @@ static rct_widget window_finances_park_value_widgets[] = { { WWT_CAPTION, 0, 1, 528, 1, 14, STR_PARK_VALUE_GRAPH, STR_WINDOW_TITLE_TIP }, { WWT_CLOSEBOX, 0, 517, 527, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, { WWT_RESIZE, 1, 0, 529, 43, 256, 0xFFFFFFFF, STR_NONE }, - { WWT_TAB, 1, 3, 33, 17, 43, 0x2000144E, STR_FINANCES_SHOW_SUMMARY_TAB_TIP }, - { WWT_TAB, 1, 34, 64, 17, 43, 0x2000144E, STR_FINANCES_SHOW_CASH_TAB_TIP }, - { WWT_TAB, 1, 65, 95, 17, 43, 0x2000144E, STR_FINANCES_SHOW_PARK_VALUE_TAB_TIP }, - { WWT_TAB, 1, 96, 126, 17, 43, 0x2000144E, STR_FINANCES_SHOW_WEEKLY_PROFIT_TAB_TIP }, - { WWT_TAB, 1, 127, 157, 17, 43, 0x2000144E, STR_FINANCES_SHOW_MARKETING_TAB_TIP }, - { WWT_TAB, 1, 158, 188, 17, 43, 0x2000144E, STR_FINANCES_RESEARCH_TIP }, + { WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_FINANCES_SHOW_SUMMARY_TAB_TIP }, + { WWT_TAB, 1, 34, 64, 17, 43, 0x20000000 | SPR_TAB, STR_FINANCES_SHOW_CASH_TAB_TIP }, + { WWT_TAB, 1, 65, 95, 17, 43, 0x20000000 | SPR_TAB, STR_FINANCES_SHOW_PARK_VALUE_TAB_TIP }, + { WWT_TAB, 1, 96, 126, 17, 43, 0x20000000 | SPR_TAB, STR_FINANCES_SHOW_WEEKLY_PROFIT_TAB_TIP }, + { WWT_TAB, 1, 127, 157, 17, 43, 0x20000000 | SPR_TAB, STR_FINANCES_SHOW_MARKETING_TAB_TIP }, + { WWT_TAB, 1, 158, 188, 17, 43, 0x20000000 | SPR_TAB, STR_FINANCES_RESEARCH_TIP }, { WIDGETS_END }, }; @@ -130,12 +130,12 @@ static rct_widget window_finances_profit_widgets[] = { { WWT_CAPTION, 0, 1, 528, 1, 14, STR_PROFIT_GRAPH, STR_WINDOW_TITLE_TIP }, { WWT_CLOSEBOX, 0, 517, 527, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, { WWT_RESIZE, 1, 0, 529, 43, 256, 0xFFFFFFFF, STR_NONE }, - { WWT_TAB, 1, 3, 33, 17, 43, 0x2000144E, STR_FINANCES_SHOW_SUMMARY_TAB_TIP }, - { WWT_TAB, 1, 34, 64, 17, 43, 0x2000144E, STR_FINANCES_SHOW_CASH_TAB_TIP }, - { WWT_TAB, 1, 65, 95, 17, 43, 0x2000144E, STR_FINANCES_SHOW_PARK_VALUE_TAB_TIP }, - { WWT_TAB, 1, 96, 126, 17, 43, 0x2000144E, STR_FINANCES_SHOW_WEEKLY_PROFIT_TAB_TIP }, - { WWT_TAB, 1, 127, 157, 17, 43, 0x2000144E, STR_FINANCES_SHOW_MARKETING_TAB_TIP }, - { WWT_TAB, 1, 158, 188, 17, 43, 0x2000144E, STR_FINANCES_RESEARCH_TIP }, + { WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_FINANCES_SHOW_SUMMARY_TAB_TIP }, + { WWT_TAB, 1, 34, 64, 17, 43, 0x20000000 | SPR_TAB, STR_FINANCES_SHOW_CASH_TAB_TIP }, + { WWT_TAB, 1, 65, 95, 17, 43, 0x20000000 | SPR_TAB, STR_FINANCES_SHOW_PARK_VALUE_TAB_TIP }, + { WWT_TAB, 1, 96, 126, 17, 43, 0x20000000 | SPR_TAB, STR_FINANCES_SHOW_WEEKLY_PROFIT_TAB_TIP }, + { WWT_TAB, 1, 127, 157, 17, 43, 0x20000000 | SPR_TAB, STR_FINANCES_SHOW_MARKETING_TAB_TIP }, + { WWT_TAB, 1, 158, 188, 17, 43, 0x20000000 | SPR_TAB, STR_FINANCES_RESEARCH_TIP }, { WIDGETS_END }, }; @@ -144,12 +144,12 @@ static rct_widget window_finances_marketing_widgets[] = { { WWT_CAPTION, 0, 1, 528, 1, 14, STR_MARKETING, STR_WINDOW_TITLE_TIP }, { WWT_CLOSEBOX, 0, 517, 527, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, { WWT_RESIZE, 1, 0, 529, 43, 256, 0xFFFFFFFF, STR_NONE }, - { WWT_TAB, 1, 3, 33, 17, 43, 0x2000144E, STR_FINANCES_SHOW_SUMMARY_TAB_TIP }, - { WWT_TAB, 1, 34, 64, 17, 43, 0x2000144E, STR_FINANCES_SHOW_CASH_TAB_TIP }, - { WWT_TAB, 1, 65, 95, 17, 43, 0x2000144E, STR_FINANCES_SHOW_PARK_VALUE_TAB_TIP }, - { WWT_TAB, 1, 96, 126, 17, 43, 0x2000144E, STR_FINANCES_SHOW_WEEKLY_PROFIT_TAB_TIP }, - { WWT_TAB, 1, 127, 157, 17, 43, 0x2000144E, STR_FINANCES_SHOW_MARKETING_TAB_TIP }, - { WWT_TAB, 1, 158, 188, 17, 43, 0x2000144E, STR_FINANCES_RESEARCH_TIP }, + { WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_FINANCES_SHOW_SUMMARY_TAB_TIP }, + { WWT_TAB, 1, 34, 64, 17, 43, 0x20000000 | SPR_TAB, STR_FINANCES_SHOW_CASH_TAB_TIP }, + { WWT_TAB, 1, 65, 95, 17, 43, 0x20000000 | SPR_TAB, STR_FINANCES_SHOW_PARK_VALUE_TAB_TIP }, + { WWT_TAB, 1, 96, 126, 17, 43, 0x20000000 | SPR_TAB, STR_FINANCES_SHOW_WEEKLY_PROFIT_TAB_TIP }, + { WWT_TAB, 1, 127, 157, 17, 43, 0x20000000 | SPR_TAB, STR_FINANCES_SHOW_MARKETING_TAB_TIP }, + { WWT_TAB, 1, 158, 188, 17, 43, 0x20000000 | SPR_TAB, STR_FINANCES_RESEARCH_TIP }, { WWT_GROUPBOX, 2, 3, 526, 47, 91, STR_MARKETING_CAMPAIGNS_IN_OPERATION, STR_NONE }, { WWT_GROUPBOX, 2, 3, 526, 47, 252, STR_MARKETING_CAMPAIGNS_AVAILABLE, STR_NONE }, { WWT_IMGBTN, 1, 8, 521, 0, 11, 0xFFFFFFFF, STR_START_THIS_MARKETING_CAMPAIGN }, @@ -166,23 +166,23 @@ static rct_widget window_finances_research_widgets[] = { { WWT_CAPTION, 0, 1, 318, 1, 14, STR_RESEARCH_FUNDING, STR_WINDOW_TITLE_TIP }, { WWT_CLOSEBOX, 0, 307, 317, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, { WWT_RESIZE, 1, 0, 319, 43, 206, 0xFFFFFFFF, STR_NONE }, - { WWT_TAB, 1, 3, 33, 17, 43, 0x2000144E, STR_FINANCES_SHOW_SUMMARY_TAB_TIP }, - { WWT_TAB, 1, 34, 64, 17, 43, 0x2000144E, STR_FINANCES_SHOW_CASH_TAB_TIP }, - { WWT_TAB, 1, 65, 95, 17, 43, 0x2000144E, STR_FINANCES_SHOW_PARK_VALUE_TAB_TIP }, - { WWT_TAB, 1, 96, 126, 17, 43, 0x2000144E, STR_FINANCES_SHOW_WEEKLY_PROFIT_TAB_TIP }, - { WWT_TAB, 1, 127, 157, 17, 43, 0x2000144E, STR_FINANCES_SHOW_MARKETING_TAB_TIP }, - { WWT_TAB, 1, 158, 188, 17, 43, 0x2000144E, STR_FINANCES_RESEARCH_TIP }, + { WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_FINANCES_SHOW_SUMMARY_TAB_TIP }, + { WWT_TAB, 1, 34, 64, 17, 43, 0x20000000 | SPR_TAB, STR_FINANCES_SHOW_CASH_TAB_TIP }, + { WWT_TAB, 1, 65, 95, 17, 43, 0x20000000 | SPR_TAB, STR_FINANCES_SHOW_PARK_VALUE_TAB_TIP }, + { WWT_TAB, 1, 96, 126, 17, 43, 0x20000000 | SPR_TAB, STR_FINANCES_SHOW_WEEKLY_PROFIT_TAB_TIP }, + { WWT_TAB, 1, 127, 157, 17, 43, 0x20000000 | SPR_TAB, STR_FINANCES_SHOW_MARKETING_TAB_TIP }, + { WWT_TAB, 1, 158, 188, 17, 43, 0x20000000 | SPR_TAB, STR_FINANCES_RESEARCH_TIP }, { WWT_GROUPBOX, 2, 3, 316, 47, 91, STR_RESEARCH_FUNDING_, STR_NONE }, { WWT_DROPDOWN, 2, 8, 167, 59, 70, 0xFFFFFFFF, STR_SELECT_LEVEL_OF_RESEARCH_AND_DEVELOPMENT }, - { WWT_DROPDOWN_BUTTON, 2, 156, 166, 60, 69, 876, STR_SELECT_LEVEL_OF_RESEARCH_AND_DEVELOPMENT }, + { WWT_DROPDOWN_BUTTON, 2, 156, 166, 60, 69, STR_DROPDOWN_GLYPH, STR_SELECT_LEVEL_OF_RESEARCH_AND_DEVELOPMENT }, { WWT_GROUPBOX, 2, 3, 316, 96, 202, STR_RESEARCH_PRIORITIES, STR_NONE }, - { WWT_CHECKBOX, 2, 8, 311, 108, 119, STR_RESEARCH_TRANSPORT_RIDES, STR_RESEARCH_NEW_TRANSPORT_RIDES }, - { WWT_CHECKBOX, 2, 8, 311, 121, 132, STR_RESEARCH_GENTLE_RIDES, STR_RESEARCH_NEW_GENTLE_RIDES }, - { WWT_CHECKBOX, 2, 8, 311, 134, 145, STR_RESEARCH_ROLLER_COASTERS, STR_RESEARCH_NEW_ROLLER_COASTERS }, - { WWT_CHECKBOX, 2, 8, 311, 147, 158, STR_RESEARCH_THRILL_RIDES, STR_RESEARCH_NEW_THRILL_RIDES }, - { WWT_CHECKBOX, 2, 8, 311, 160, 171, STR_RESEARCH_WATER_RIDES, STR_RESEARCH_NEW_WATER_RIDES }, - { WWT_CHECKBOX, 2, 8, 311, 173, 184, STR_RESEARCH_SHOPS_AND_STALLS, STR_RESEARCH_NEW_SHOPS_AND_STALLS }, - { WWT_CHECKBOX, 2, 8, 311, 186, 197, STR_RESEARCH_SCENERY_AND_THEMING, STR_RESEARCH_NEW_SCENERY_AND_THEMING }, + { WWT_CHECKBOX, 2, 8, 311, 108, 119, STR_RESEARCH_NEW_TRANSPORT_RIDES, STR_RESEARCH_NEW_TRANSPORT_RIDES_TIP }, + { WWT_CHECKBOX, 2, 8, 311, 121, 132, STR_RESEARCH_NEW_GENTLE_RIDES, STR_RESEARCH_NEW_GENTLE_RIDES_TIP }, + { WWT_CHECKBOX, 2, 8, 311, 134, 145, STR_RESEARCH_NEW_ROLLER_COASTERS, STR_RESEARCH_NEW_ROLLER_COASTERS_TIP }, + { WWT_CHECKBOX, 2, 8, 311, 147, 158, STR_RESEARCH_NEW_THRILL_RIDES, STR_RESEARCH_NEW_THRILL_RIDES_TIP }, + { WWT_CHECKBOX, 2, 8, 311, 160, 171, STR_RESEARCH_NEW_WATER_RIDES, STR_RESEARCH_NEW_WATER_RIDES_TIP }, + { WWT_CHECKBOX, 2, 8, 311, 173, 184, STR_RESEARCH_NEW_SHOPS_AND_STALLS, STR_RESEARCH_NEW_SHOPS_AND_STALLS_TIP }, + { WWT_CHECKBOX, 2, 8, 311, 186, 197, STR_RESEARCH_NEW_SCENERY_AND_THEMING, STR_RESEARCH_NEW_SCENERY_AND_THEMING_TIP }, { WIDGETS_END }, }; @@ -522,6 +522,23 @@ static uint32 window_finances_page_hold_down_widgets[] = { const int window_finances_tab_animation_loops[] = { 16, 32, 32, 32, 38, 16 }; +static const rct_string_id window_finances_summary_row_labels[RCT_EXPENDITURE_TYPE_COUNT] = { + STR_FINANCES_SUMMARY_RIDE_CONSTRUCTION, + STR_FINANCES_SUMMARY_RIDE_RUNNING_COSTS, + STR_FINANCES_SUMMARY_LAND_PURCHASE, + STR_FINANCES_SUMMARY_LANDSCAPING, + STR_FINANCES_SUMMARY_PARK_ENTRANCE_TICKETS, + STR_FINANCES_SUMMARY_RIDE_TICKETS, + STR_FINANCES_SUMMARY_SHOP_SALES, + STR_FINANCES_SUMMARY_SHOP_STOCK, + STR_FINANCES_SUMMARY_FOOD_DRINK_SALES, + STR_FINANCES_SUMMARY_FOOD_DRINK_STOCK, + STR_FINANCES_SUMMARY_STAFF_WAGES, + STR_FINANCES_SUMMARY_MARKETING, + STR_FINANCES_SUMMARY_RESEARCH, + STR_FINANCES_SUMMARY_LOAN_INTEREST, +}; + static void window_finances_set_page(rct_window *w, int page); static void window_finances_set_pressed_tab(rct_window *w); static void window_finances_draw_tab_images(rct_drawpixelinfo *dpi, rct_window *w); @@ -663,7 +680,7 @@ static void window_finances_summary_paint(rct_window *w, rct_drawpixelinfo *dpi) if (i % 2 == 0) gfx_fill_rect(dpi, x, y, x + 513 - 2, y + 9, ColourMapA[w->colours[1]].lighter | 0x1000000); - gfx_draw_string_left(dpi, STR_FINANCES_SUMMARY_RIDE_CONSTRUCTION + i, NULL, 0, x, y - 1); + gfx_draw_string_left(dpi, window_finances_summary_row_labels[i], NULL, 0, x, y - 1); y += 10; } @@ -682,7 +699,7 @@ static void window_finances_summary_paint(rct_window *w, rct_drawpixelinfo *dpi) set_format_arg(2, uint16, monthyear); draw_string_right_underline( dpi, - monthyear == currentMonthYear ? STR_WINDOW_COLOUR_2_STRING : STR_BLACK_STRING, + monthyear == currentMonthYear ? STR_WINDOW_COLOUR_2_STRINGID : STR_BLACK_STRING, gCommonFormatArgs, 0, x + 80, @@ -932,7 +949,7 @@ static void window_finances_park_value_graph_paint(rct_window *w, rct_drawpixeli money32 parkValue = gParkValue; gfx_draw_string_left( dpi, - STR_FINACNES_PARK_VALUE, + STR_FINANCES_PARK_VALUE, &parkValue, 0, graphLeft, @@ -1143,7 +1160,7 @@ static void window_finances_marketing_invalidate(rct_window *w) for (i = 0; i < ADVERTISING_CAMPAIGN_COUNT; i++) { rct_widget *campaginButton = &window_finances_marketing_widgets[WIDX_CAMPAIGN_1 + i]; - campaginButton->type = 0; + campaginButton->type = WWT_EMPTY; if (gMarketingCampaignDaysLeft[i] != 0) continue; @@ -1196,7 +1213,7 @@ static void window_finances_marketing_paint(rct_window *w, rct_drawpixelinfo *dp } // Advertisement - gfx_draw_string_left_clipped(dpi, STR_VOUCHERS_FOR_FREE_ENTRY_TO + i, gCommonFormatArgs, 0, x + 4, y, 296); + gfx_draw_string_left_clipped(dpi, MarketingCampaignNames[i][1], gCommonFormatArgs, 0, x + 4, y, 296); // Duration weeksRemaining = (gMarketingCampaignDaysLeft[i] % 128); @@ -1221,7 +1238,7 @@ static void window_finances_marketing_paint(rct_window *w, rct_drawpixelinfo *dp money32 pricePerWeek = AdvertisingCampaignPricePerWeek[i]; // Draw button text - gfx_draw_string_left(dpi, STR_MARKETING_VOUCHERS_FOR_FREE_ENTRY_TO_THE_PARK + i, NULL, 0, x + 4, y - 1); + gfx_draw_string_left(dpi, MarketingCampaignNames[i][0], NULL, 0, x + 4, y - 1); gfx_draw_string_left(dpi, STR_MARKETING_PER_WEEK, &pricePerWeek, 0, x + 310, y - 1); y += 12; @@ -1282,7 +1299,7 @@ static void window_finances_research_mousedown(int widgetIndex, rct_window *w, r for (i = 0; i < 4; i++) { gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL; - gDropdownItemsArgs[i] = STR_NO_FUNDING + i; + gDropdownItemsArgs[i] = ResearchFundingLevelNames[i]; } window_dropdown_show_text_custom_width( w->x + dropdownWidget->left, @@ -1343,7 +1360,7 @@ static void window_finances_research_invalidate(rct_window *w) int currentResearchLevel = gResearchFundingLevel; // Current funding - window_finances_research_widgets[WIDX_RESEARCH_FUNDING].image = STR_NO_FUNDING + currentResearchLevel; + window_finances_research_widgets[WIDX_RESEARCH_FUNDING].text = ResearchFundingLevelNames[currentResearchLevel]; // Checkboxes uint8 activeResearchTypes = gResearchPriorities; diff --git a/src/windows/footpath.c b/src/windows/footpath.c index 96a090a980..1b7e2d0ea5 100644 --- a/src/windows/footpath.c +++ b/src/windows/footpath.c @@ -68,34 +68,33 @@ enum WINDOW_FOOTPATH_WIDGET_IDX { }; static rct_widget window_footpath_widgets[] = { - { WWT_FRAME, 0, 0, 105, 0, 380, 0x0FFFFFFFF, STR_NONE }, - { WWT_CAPTION, 0, 1, 104, 1, 14, STR_FOOTPATHS, STR_WINDOW_TITLE_TIP }, - { WWT_CLOSEBOX, 0, 93, 103, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, - + { WWT_FRAME, 0, 0, 105, 0, 380, 0xFFFFFFFF, STR_NONE }, + { WWT_CAPTION, 0, 1, 104, 1, 14, STR_FOOTPATHS, STR_WINDOW_TITLE_TIP }, + { WWT_CLOSEBOX, 0, 93, 103, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // Type group - { WWT_GROUPBOX, 0, 3, 102, 17, 71, STR_TYPE, STR_NONE }, - { WWT_FLATBTN, 1, 6, 52, 30, 65, 0xFFFFFFFF, STR_FOOTPATH_TIP }, - { WWT_FLATBTN, 1, 53, 99, 30, 65, 0xFFFFFFFF, STR_QUEUE_LINE_PATH_TIP }, + { WWT_GROUPBOX, 0, 3, 102, 17, 71, STR_TYPE, STR_NONE }, + { WWT_FLATBTN, 1, 6, 52, 30, 65, 0xFFFFFFFF, STR_FOOTPATH_TIP }, + { WWT_FLATBTN, 1, 53, 99, 30, 65, 0xFFFFFFFF, STR_QUEUE_LINE_PATH_TIP }, // Direction group - { WWT_GROUPBOX, 0, 3, 102, 75, 151, STR_DIRECTION, STR_NONE }, - { WWT_FLATBTN, 1, 53, 97, 87, 115, 5635, STR_DIRECTION_TIP }, - { WWT_FLATBTN, 1, 53, 97, 116, 144, 5636, STR_DIRECTION_TIP }, - { WWT_FLATBTN, 1, 8, 52, 116, 144, 5637, STR_DIRECTION_TIP }, - { WWT_FLATBTN, 1, 8, 52, 87, 115, 5638, STR_DIRECTION_TIP }, + { WWT_GROUPBOX, 0, 3, 102, 75, 151, STR_DIRECTION, STR_NONE }, + { WWT_FLATBTN, 1, 53, 97, 87, 115, SPR_CONSTRUCTION_DIRECTION_NE, STR_DIRECTION_TIP }, + { WWT_FLATBTN, 1, 53, 97, 116, 144, SPR_CONSTRUCTION_DIRECTION_SE, STR_DIRECTION_TIP }, + { WWT_FLATBTN, 1, 8, 52, 116, 144, SPR_CONSTRUCTION_DIRECTION_SW, STR_DIRECTION_TIP }, + { WWT_FLATBTN, 1, 8, 52, 87, 115, SPR_CONSTRUCTION_DIRECTION_NW, STR_DIRECTION_TIP }, // Slope group - { WWT_GROUPBOX, 0, 3, 102, 155, 195, STR_SLOPE, STR_NONE }, - { WWT_FLATBTN, 1, 17, 40, 167, 190, 5145, STR_SLOPE_DOWN_TIP }, - { WWT_FLATBTN, 1, 41, 64, 167, 190, 5146, STR_LEVEL_TIP }, - { WWT_FLATBTN, 1, 65, 88, 167, 190, 5147, STR_SLOPE_UP_TIP }, - { WWT_FLATBTN, 1, 8, 97, 202, 291, 0xFFFFFFFF, STR_CONSTRUCT_THE_SELECTED_FOOTPATH_SECTION_TIP }, - { WWT_FLATBTN, 1, 30, 75, 295, 318, 5162, STR_REMOVE_PREVIOUS_FOOTPATH_SECTION_TIP }, + { WWT_GROUPBOX, 0, 3, 102, 155, 195, STR_SLOPE, STR_NONE }, + { WWT_FLATBTN, 1, 17, 40, 167, 190, SPR_RIDE_CONSTRUCTION_SLOPE_DOWN, STR_SLOPE_DOWN_TIP }, + { WWT_FLATBTN, 1, 41, 64, 167, 190, SPR_RIDE_CONSTRUCTION_SLOPE_LEVEL, STR_LEVEL_TIP }, + { WWT_FLATBTN, 1, 65, 88, 167, 190, SPR_RIDE_CONSTRUCTION_SLOPE_UP, STR_SLOPE_UP_TIP }, + { WWT_FLATBTN, 1, 8, 97, 202, 291, 0xFFFFFFFF, STR_CONSTRUCT_THE_SELECTED_FOOTPATH_SECTION_TIP }, + { WWT_FLATBTN, 1, 30, 75, 295, 318, SPR_DEMOLISH_CURRENT_SECTION, STR_REMOVE_PREVIOUS_FOOTPATH_SECTION_TIP }, // Mode group - { WWT_GROUPBOX, 0, 3, 102, 321, 374, 0xFFFFFFFF, STR_NONE }, - { WWT_FLATBTN, 1, 13, 48, 332, 367, 5639, STR_CONSTRUCT_FOOTPATH_ON_LAND_TIP }, - { WWT_FLATBTN, 1, 57, 92, 332, 367, 5640, STR_CONSTRUCT_BRIDGE_OR_TUNNEL_FOOTPATH_TIP }, + { WWT_GROUPBOX, 0, 3, 102, 321, 374, 0xFFFFFFFF, STR_NONE }, + { WWT_FLATBTN, 1, 13, 48, 332, 367, SPR_CONSTRUCTION_FOOTPATH_LAND, STR_CONSTRUCT_FOOTPATH_ON_LAND_TIP }, + { WWT_FLATBTN, 1, 57, 92, 332, 367, SPR_CONSTRUCTION_FOOTPATH_BRIDGE, STR_CONSTRUCT_BRIDGE_OR_TUNNEL_FOOTPATH_TIP }, { WIDGETS_END }, }; @@ -519,6 +518,7 @@ static void window_footpath_invalidate(rct_window *w) selectedPath = gFootpathSelectedId; pathType = get_footpath_entry(selectedPath); + // TODO: Should probably add constants for object sprites int pathImage = 71 + pathType->image; window_footpath_widgets[WIDX_FOOTPATH_TYPE].image = pathImage; @@ -846,7 +846,7 @@ static void window_footpath_construct() footpath_get_next_path_info(&type, &x, &y, &z, &slope); // Try to place the path at the desired location - gGameCommandErrorTitle = 0x498; + gGameCommandErrorTitle = STR_CANT_BUILD_FOOTPATH_HERE; money32 cost = footpath_place(type, x, y, z, slope, 0); if (cost != MONEY32_UNDEFINED) { @@ -861,7 +861,7 @@ static void window_footpath_construct() } // Actually place the path now - gGameCommandErrorTitle = 0x498; + gGameCommandErrorTitle = STR_CANT_BUILD_FOOTPATH_HERE; cost = footpath_place(type, x, y, z, slope, GAME_COMMAND_FLAG_APPLY); if (cost != MONEY32_UNDEFINED) { diff --git a/src/windows/game_bottom_toolbar.c b/src/windows/game_bottom_toolbar.c index 7dfdba5d5a..3c192bce95 100644 --- a/src/windows/game_bottom_toolbar.c +++ b/src/windows/game_bottom_toolbar.c @@ -224,11 +224,11 @@ static void window_game_bottom_toolbar_tooltip(rct_window* w, int widgetIndex, r set_format_arg(0, short, gParkRating); break; case WIDX_DATE: - month = gDateMonthsElapsed & 7; + month = gDateMonthsElapsed % 8; day = ((gDateMonthTicks * days_in_month[month]) >> 16) & 0xFF; - set_format_arg(0, short, STR_DATE_DAY_1 + day); - set_format_arg(2, short, STR_MONTH_MARCH + month); + set_format_arg(0, rct_string_id, DateDayNames[day]); + set_format_arg(2, rct_string_id, DateGameMonthNames[month]); break; } } @@ -382,7 +382,7 @@ static void window_game_bottom_toolbar_draw_left_panel(rct_drawpixelinfo *dpi, r set_format_arg(0, money32, cash); gfx_draw_string_centred( dpi, - (cash < 0 ? 1391 : 1390), + (cash < 0 ? STR_BOTTOM_TOOLBAR_CASH_NEGATIVE : STR_BOTTOM_TOOLBAR_CASH), x, y - 3, (gHoverWidget.window_classification == WC_BOTTOM_TOOLBAR && gHoverWidget.widget_index == WIDX_MONEY ? COLOUR_WHITE : w->colours[0] & 0x7F), gCommonFormatArgs @@ -390,10 +390,16 @@ static void window_game_bottom_toolbar_draw_left_panel(rct_drawpixelinfo *dpi, r y += 7; } + static const rct_string_id guestCountFormats[] = { + STR_BOTTOM_TOOLBAR_NUM_GUESTS_STABLE, + STR_BOTTOM_TOOLBAR_NUM_GUESTS_DECREASE, + STR_BOTTOM_TOOLBAR_NUM_GUESTS_INCREASE, + }; + // Draw guests gfx_draw_string_centred( dpi, - STR_NUM_GUESTS + gGuestChangeModifier, + guestCountFormats[gGuestChangeModifier], x, y, (gHoverWidget.window_classification == WC_BOTTOM_TOOLBAR && gHoverWidget.widget_index == WIDX_GUESTS ? COLOUR_WHITE : w->colours[0] & 0x7F), &gNumGuestsInPark @@ -454,7 +460,7 @@ static void window_game_bottom_toolbar_draw_right_panel(rct_drawpixelinfo *dpi, int day = ((gDateMonthTicks * days_in_month[month]) >> 16) & 0xFF; rct_string_id stringId = DateFormatStringFormatIds[gConfigGeneral.date_format]; - set_format_arg(0, short, STR_DATE_DAY_1 + day); + set_format_arg(0, short, DateDayNames[day]); set_format_arg(2, short, month); set_format_arg(4, short, year); gfx_draw_string_centred( @@ -499,7 +505,6 @@ static void window_game_bottom_toolbar_draw_right_panel(rct_drawpixelinfo *dpi, static void window_game_bottom_toolbar_draw_news_item(rct_drawpixelinfo *dpi, rct_window *w) { int x, y, width; - rct_string_id stringId; rct_news_item *newsItem; rct_widget *middleOutsetWidget; @@ -518,12 +523,11 @@ static void window_game_bottom_toolbar_draw_news_item(rct_drawpixelinfo *dpi, rc ); // Text - stringId = 5485; utf8 *newsItemText = newsItem->text; x = w->x + (middleOutsetWidget->left + middleOutsetWidget->right) / 2; y = w->y + middleOutsetWidget->top + 11; width = middleOutsetWidget->right - middleOutsetWidget->left - 62; - gfx_draw_string_centred_wrapped_partial(dpi, x, y, width, 14, stringId, &newsItemText, newsItem->ticks); + gfx_draw_string_centred_wrapped_partial(dpi, x, y, width, 14, STR_BOTTOM_TOOLBAR_NEWS_TEXT, &newsItemText, newsItem->ticks); x = w->x + window_game_bottom_toolbar_widgets[WIDX_NEWS_SUBJECT].left; y = w->y + window_game_bottom_toolbar_widgets[WIDX_NEWS_SUBJECT].top; @@ -582,7 +586,7 @@ static void window_game_bottom_toolbar_draw_news_item(rct_drawpixelinfo *dpi, rc gfx_draw_sprite(dpi, SPR_FINANCE, x, y, 0); break; case NEWS_ITEM_RESEARCH: - gfx_draw_sprite(dpi, (newsItem->assoc < 0x10000 ? SPR_NEW_RIDE : SPR_SCENERY), x, y, 0); + gfx_draw_sprite(dpi, (newsItem->assoc < 0x10000 ? SPR_NEW_SCENERY : SPR_NEW_RIDE), x, y, 0); break; case NEWS_ITEM_PEEPS: gfx_draw_sprite(dpi, SPR_GUESTS, x, y, 0); diff --git a/src/windows/guest.c b/src/windows/guest.c index 3d89e95998..fa5bc0f530 100644 --- a/src/windows/guest.c +++ b/src/windows/guest.c @@ -71,94 +71,94 @@ enum WINDOW_GUEST_WIDGET_IDX { }; rct_widget window_guest_overview_widgets[] = { - { WWT_FRAME, 0, 0, 191, 0, 156, 0x0FFFFFFFF, STR_NONE }, // Panel / Background - { WWT_CAPTION, 0, 1, 190, 1, 14, 865, STR_WINDOW_TITLE_TIP }, // Title - { WWT_CLOSEBOX, 0, 179, 189, 2, 13, 824, STR_CLOSE_WINDOW_TIP }, // Close x button - { WWT_RESIZE, 1, 0, 191, 43, 156, 0x0FFFFFFFF, STR_NONE }, // Resize - { WWT_TAB, 1, 3, 33, 17, 43, 0x2000144E, STR_SHOW_GUEST_VIEW_TIP }, // Tab 1 - { WWT_TAB, 1, 73, 64, 17, 43, 0x2000144E, STR_SHOW_GUEST_NEEDS_TIP}, // Tab 2 - { WWT_TAB, 1, 65, 95, 17, 43, 0x2000144E, STR_SHOW_GUEST_VISITED_RIDES_TIP}, // Tab 3 - { WWT_TAB, 1, 96, 126, 17, 43, 0x2000144E, STR_SHOW_GUEST_FINANCE_TIP}, // Tab 4 - { WWT_TAB, 1, 127, 157, 17, 43, 0x2000144E, STR_SHOW_GUEST_THOUGHTS_TIP}, // Tab 5 - { WWT_TAB, 1, 158, 188, 17, 43, 0x2000144E, STR_SHOW_GUEST_ITEMS_TIP}, // Tab 6 - { WWT_12, 1, 3, 166, 45, 56, 0x0FFFFFFFF, STR_NONE}, // Label Thought marquee - { WWT_VIEWPORT, 1, 3, 166, 57, 143, 0x0FFFFFFFF, STR_NONE }, // Viewport - { WWT_12, 1, 3, 166, 144, 154, 0x0FFFFFFFF, STR_NONE}, // Label Action - { WWT_FLATBTN, 1, 167, 190, 45, 68, SPR_PICKUP_BTN, STR_PICKUP_TIP}, // Pickup Button - { WWT_FLATBTN, 1, 167, 190, 69, 92, SPR_RENAME, STR_NAME_GUEST_TIP}, // Rename Button - { WWT_FLATBTN, 1, 167, 190, 93, 116, SPR_LOCATE, STR_LOCATE_SUBJECT_TIP}, // Locate Button - { WWT_FLATBTN, 1, 167, 190, 117, 140, SPR_TRACK_PEEP, STR_TOGGLE_GUEST_TRACKING_TIP}, // Track Button + {WWT_FRAME, 0, 0, 191, 0, 156, 0xFFFFFFFF, STR_NONE}, // Panel / Background + {WWT_CAPTION, 0, 1, 190, 1, 14, STR_STRINGID, STR_WINDOW_TITLE_TIP}, // Title + {WWT_CLOSEBOX, 0, 179, 189, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP}, // Close x button + {WWT_RESIZE, 1, 0, 191, 43, 156, 0xFFFFFFFF, STR_NONE}, // Resize + {WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_SHOW_GUEST_VIEW_TIP}, // Tab 1 + {WWT_TAB, 1, 73, 64, 17, 43, 0x20000000 | SPR_TAB, STR_SHOW_GUEST_NEEDS_TIP}, // Tab 2 + {WWT_TAB, 1, 65, 95, 17, 43, 0x20000000 | SPR_TAB, STR_SHOW_GUEST_VISITED_RIDES_TIP}, // Tab 3 + {WWT_TAB, 1, 96, 126, 17, 43, 0x20000000 | SPR_TAB, STR_SHOW_GUEST_FINANCE_TIP}, // Tab 4 + {WWT_TAB, 1, 127, 157, 17, 43, 0x20000000 | SPR_TAB, STR_SHOW_GUEST_THOUGHTS_TIP}, // Tab 5 + {WWT_TAB, 1, 158, 188, 17, 43, 0x20000000 | SPR_TAB, STR_SHOW_GUEST_ITEMS_TIP}, // Tab 6 + {WWT_12, 1, 3, 166, 45, 56, 0xFFFFFFFF, STR_NONE}, // Label Thought marquee + {WWT_VIEWPORT, 1, 3, 166, 57, 143, 0xFFFFFFFF, STR_NONE}, // Viewport + {WWT_12, 1, 3, 166, 144, 154, 0xFFFFFFFF, STR_NONE}, // Label Action + {WWT_FLATBTN, 1, 167, 190, 45, 68, SPR_PICKUP_BTN, STR_PICKUP_TIP}, // Pickup Button + {WWT_FLATBTN, 1, 167, 190, 69, 92, SPR_RENAME, STR_NAME_GUEST_TIP}, // Rename Button + {WWT_FLATBTN, 1, 167, 190, 93, 116, SPR_LOCATE, STR_LOCATE_SUBJECT_TIP}, // Locate Button + {WWT_FLATBTN, 1, 167, 190, 117, 140, SPR_TRACK_PEEP, STR_TOGGLE_GUEST_TRACKING_TIP}, // Track Button { WIDGETS_END }, }; rct_widget window_guest_stats_widgets[] = { - {WWT_FRAME, 0, 0, 191, 0, 156, STR_NONE, STR_NONE}, - {WWT_CAPTION, 0, 1, 190, 1, 14, 865, STR_WINDOW_TITLE_TIP}, - {WWT_CLOSEBOX, 0, 179, 189, 2, 13, 824, STR_CLOSE_WINDOW_TIP}, - {WWT_RESIZE, 1, 0, 191, 43, 156, STR_NONE, STR_NONE}, - {WWT_TAB, 1, 3, 33, 17, 43, 0x2000144E, STR_SHOW_GUEST_VIEW_TIP}, - {WWT_TAB, 1, 34, 64, 17, 43, 0x2000144E, STR_SHOW_GUEST_NEEDS_TIP}, - {WWT_TAB, 1, 65, 95, 17, 43, 0x2000144E, STR_SHOW_GUEST_VISITED_RIDES_TIP}, - {WWT_TAB, 1, 96, 126, 17, 43, 0x2000144E, STR_SHOW_GUEST_FINANCE_TIP}, - {WWT_TAB, 1, 127, 157, 17, 43, 0x2000144E, STR_SHOW_GUEST_THOUGHTS_TIP}, - {WWT_TAB, 1, 158, 188, 17, 43, 0x2000144E, STR_SHOW_GUEST_ITEMS_TIP}, + {WWT_FRAME, 0, 0, 191, 0, 156, STR_NONE, STR_NONE}, + {WWT_CAPTION, 0, 1, 190, 1, 14, STR_STRINGID, STR_WINDOW_TITLE_TIP}, + {WWT_CLOSEBOX, 0, 179, 189, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP}, + {WWT_RESIZE, 1, 0, 191, 43, 156, STR_NONE, STR_NONE}, + {WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_SHOW_GUEST_VIEW_TIP}, + {WWT_TAB, 1, 34, 64, 17, 43, 0x20000000 | SPR_TAB, STR_SHOW_GUEST_NEEDS_TIP}, + {WWT_TAB, 1, 65, 95, 17, 43, 0x20000000 | SPR_TAB, STR_SHOW_GUEST_VISITED_RIDES_TIP}, + {WWT_TAB, 1, 96, 126, 17, 43, 0x20000000 | SPR_TAB, STR_SHOW_GUEST_FINANCE_TIP}, + {WWT_TAB, 1, 127, 157, 17, 43, 0x20000000 | SPR_TAB, STR_SHOW_GUEST_THOUGHTS_TIP}, + {WWT_TAB, 1, 158, 188, 17, 43, 0x20000000 | SPR_TAB, STR_SHOW_GUEST_ITEMS_TIP}, {WIDGETS_END}, }; rct_widget window_guest_rides_widgets[] = { - {WWT_FRAME, 0, 0, 191, 0, 156, STR_NONE, STR_NONE}, - {WWT_CAPTION, 0, 1, 190, 1, 14, 865, STR_WINDOW_TITLE_TIP}, - {WWT_CLOSEBOX, 0, 179, 189, 2, 13, 824, STR_CLOSE_WINDOW_TIP}, - {WWT_RESIZE, 1, 0, 191, 43, 156, STR_NONE, STR_NONE}, - {WWT_TAB, 1, 3, 33, 17, 43, 0x2000144E, STR_SHOW_GUEST_VIEW_TIP}, - {WWT_TAB, 1, 34, 64, 17, 43, 0x2000144E, STR_SHOW_GUEST_NEEDS_TIP}, - {WWT_TAB, 1, 65, 95, 17, 43, 0x2000144E, STR_SHOW_GUEST_VISITED_RIDES_TIP}, - {WWT_TAB, 1, 96, 126, 17, 43, 0x2000144E, STR_SHOW_GUEST_FINANCE_TIP}, - {WWT_TAB, 1, 127, 157, 17, 43, 0x2000144E, STR_SHOW_GUEST_THOUGHTS_TIP}, - {WWT_TAB, 1, 158, 188, 17, 43, 0x2000144E, STR_SHOW_GUEST_ITEMS_TIP}, - {WWT_SCROLL, 1, 3, 188, 57, 143, 2, STR_NONE}, + {WWT_FRAME, 0, 0, 191, 0, 156, STR_NONE, STR_NONE}, + {WWT_CAPTION, 0, 1, 190, 1, 14, STR_STRINGID, STR_WINDOW_TITLE_TIP}, + {WWT_CLOSEBOX, 0, 179, 189, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP}, + {WWT_RESIZE, 1, 0, 191, 43, 156, STR_NONE, STR_NONE}, + {WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_SHOW_GUEST_VIEW_TIP}, + {WWT_TAB, 1, 34, 64, 17, 43, 0x20000000 | SPR_TAB, STR_SHOW_GUEST_NEEDS_TIP}, + {WWT_TAB, 1, 65, 95, 17, 43, 0x20000000 | SPR_TAB, STR_SHOW_GUEST_VISITED_RIDES_TIP}, + {WWT_TAB, 1, 96, 126, 17, 43, 0x20000000 | SPR_TAB, STR_SHOW_GUEST_FINANCE_TIP}, + {WWT_TAB, 1, 127, 157, 17, 43, 0x20000000 | SPR_TAB, STR_SHOW_GUEST_THOUGHTS_TIP}, + {WWT_TAB, 1, 158, 188, 17, 43, 0x20000000 | SPR_TAB, STR_SHOW_GUEST_ITEMS_TIP}, + {WWT_SCROLL, 1, 3, 188, 57, 143, SCROLL_VERTICAL, STR_NONE}, {WIDGETS_END}, }; rct_widget window_guest_finance_widgets[] = { - {WWT_FRAME, 0, 0, 191, 0, 156, STR_NONE, STR_NONE}, - {WWT_CAPTION, 0, 1, 190, 1, 14, 865, STR_WINDOW_TITLE_TIP}, - {WWT_CLOSEBOX, 0, 179, 189, 2, 13, 824, STR_CLOSE_WINDOW_TIP}, - {WWT_RESIZE, 1, 0, 191, 43, 156, STR_NONE, STR_NONE}, - {WWT_TAB, 1, 3, 33, 17, 43, 0x2000144E, STR_SHOW_GUEST_VIEW_TIP}, - {WWT_TAB, 1, 34, 64, 17, 43, 0x2000144E, STR_SHOW_GUEST_NEEDS_TIP}, - {WWT_TAB, 1, 65, 95, 17, 43, 0x2000144E, STR_SHOW_GUEST_VISITED_RIDES_TIP}, - {WWT_TAB, 1, 96, 126, 17, 43, 0x2000144E, STR_SHOW_GUEST_FINANCE_TIP}, - {WWT_TAB, 1, 127, 157, 17, 43, 0x2000144E, STR_SHOW_GUEST_THOUGHTS_TIP}, - {WWT_TAB, 1, 158, 188, 17, 43, 0x2000144E, STR_SHOW_GUEST_ITEMS_TIP}, + {WWT_FRAME, 0, 0, 191, 0, 156, STR_NONE, STR_NONE}, + {WWT_CAPTION, 0, 1, 190, 1, 14, STR_STRINGID, STR_WINDOW_TITLE_TIP}, + {WWT_CLOSEBOX, 0, 179, 189, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP}, + {WWT_RESIZE, 1, 0, 191, 43, 156, STR_NONE, STR_NONE}, + {WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_SHOW_GUEST_VIEW_TIP}, + {WWT_TAB, 1, 34, 64, 17, 43, 0x20000000 | SPR_TAB, STR_SHOW_GUEST_NEEDS_TIP}, + {WWT_TAB, 1, 65, 95, 17, 43, 0x20000000 | SPR_TAB, STR_SHOW_GUEST_VISITED_RIDES_TIP}, + {WWT_TAB, 1, 96, 126, 17, 43, 0x20000000 | SPR_TAB, STR_SHOW_GUEST_FINANCE_TIP}, + {WWT_TAB, 1, 127, 157, 17, 43, 0x20000000 | SPR_TAB, STR_SHOW_GUEST_THOUGHTS_TIP}, + {WWT_TAB, 1, 158, 188, 17, 43, 0x20000000 | SPR_TAB, STR_SHOW_GUEST_ITEMS_TIP}, {WIDGETS_END}, }; rct_widget window_guest_thoughts_widgets[] = { - {WWT_FRAME, 0, 0, 191, 0, 156, STR_NONE, STR_NONE}, - {WWT_CAPTION, 0, 1, 190, 1, 14, 865, STR_WINDOW_TITLE_TIP}, - {WWT_CLOSEBOX, 0, 179, 189, 2, 13, 824, STR_CLOSE_WINDOW_TIP}, - {WWT_RESIZE, 1, 0, 191, 43, 156, STR_NONE, STR_NONE}, - {WWT_TAB, 1, 3, 33, 17, 43, 0x2000144E, STR_SHOW_GUEST_VIEW_TIP}, - {WWT_TAB, 1, 34, 64, 17, 43, 0x2000144E, STR_SHOW_GUEST_NEEDS_TIP}, - {WWT_TAB, 1, 65, 95, 17, 43, 0x2000144E, STR_SHOW_GUEST_VISITED_RIDES_TIP}, - {WWT_TAB, 1, 96, 126, 17, 43, 0x2000144E, STR_SHOW_GUEST_FINANCE_TIP}, - {WWT_TAB, 1, 127, 157, 17, 43, 0x2000144E, STR_SHOW_GUEST_THOUGHTS_TIP}, - {WWT_TAB, 1, 158, 188, 17, 43, 0x2000144E, STR_SHOW_GUEST_ITEMS_TIP}, + {WWT_FRAME, 0, 0, 191, 0, 156, STR_NONE, STR_NONE}, + {WWT_CAPTION, 0, 1, 190, 1, 14, STR_STRINGID, STR_WINDOW_TITLE_TIP}, + {WWT_CLOSEBOX, 0, 179, 189, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP}, + {WWT_RESIZE, 1, 0, 191, 43, 156, STR_NONE, STR_NONE}, + {WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_SHOW_GUEST_VIEW_TIP}, + {WWT_TAB, 1, 34, 64, 17, 43, 0x20000000 | SPR_TAB, STR_SHOW_GUEST_NEEDS_TIP}, + {WWT_TAB, 1, 65, 95, 17, 43, 0x20000000 | SPR_TAB, STR_SHOW_GUEST_VISITED_RIDES_TIP}, + {WWT_TAB, 1, 96, 126, 17, 43, 0x20000000 | SPR_TAB, STR_SHOW_GUEST_FINANCE_TIP}, + {WWT_TAB, 1, 127, 157, 17, 43, 0x20000000 | SPR_TAB, STR_SHOW_GUEST_THOUGHTS_TIP}, + {WWT_TAB, 1, 158, 188, 17, 43, 0x20000000 | SPR_TAB, STR_SHOW_GUEST_ITEMS_TIP}, {WIDGETS_END}, }; rct_widget window_guest_inventory_widgets[] = { - {WWT_FRAME, 0, 0, 191, 0, 156, STR_NONE, STR_NONE}, - {WWT_CAPTION, 0, 1, 190, 1, 14, 865, STR_WINDOW_TITLE_TIP}, - {WWT_CLOSEBOX, 0, 179, 189, 2, 13, 824, STR_CLOSE_WINDOW_TIP}, - {WWT_RESIZE, 1, 0, 191, 43, 156, STR_NONE, STR_NONE}, - {WWT_TAB, 1, 3, 33, 17, 43, 0x2000144E, STR_SHOW_GUEST_VIEW_TIP}, - {WWT_TAB, 1, 34, 64, 17, 43, 0x2000144E, STR_SHOW_GUEST_NEEDS_TIP}, - {WWT_TAB, 1, 65, 95, 17, 43, 0x2000144E, STR_SHOW_GUEST_VISITED_RIDES_TIP}, - {WWT_TAB, 1, 96, 126, 17, 43, 0x2000144E, STR_SHOW_GUEST_FINANCE_TIP}, - {WWT_TAB, 1, 127, 157, 17, 43, 0x2000144E, STR_SHOW_GUEST_THOUGHTS_TIP}, - {WWT_TAB, 1, 158, 188, 17, 43, 0x2000144E, STR_SHOW_GUEST_ITEMS_TIP}, + {WWT_FRAME, 0, 0, 191, 0, 156, STR_NONE, STR_NONE}, + {WWT_CAPTION, 0, 1, 190, 1, 14, STR_STRINGID, STR_WINDOW_TITLE_TIP}, + {WWT_CLOSEBOX, 0, 179, 189, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP}, + {WWT_RESIZE, 1, 0, 191, 43, 156, STR_NONE, STR_NONE}, + {WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_SHOW_GUEST_VIEW_TIP}, + {WWT_TAB, 1, 34, 64, 17, 43, 0x20000000 | SPR_TAB, STR_SHOW_GUEST_NEEDS_TIP}, + {WWT_TAB, 1, 65, 95, 17, 43, 0x20000000 | SPR_TAB, STR_SHOW_GUEST_VISITED_RIDES_TIP}, + {WWT_TAB, 1, 96, 126, 17, 43, 0x20000000 | SPR_TAB, STR_SHOW_GUEST_FINANCE_TIP}, + {WWT_TAB, 1, 127, 157, 17, 43, 0x20000000 | SPR_TAB, STR_SHOW_GUEST_THOUGHTS_TIP}, + {WWT_TAB, 1, 158, 188, 17, 43, 0x20000000 | SPR_TAB, STR_SHOW_GUEST_ITEMS_TIP}, {WIDGETS_END}, }; @@ -642,7 +642,7 @@ void window_guest_overview_mouse_up(rct_window *w, int widgetIndex) peep_window_state_update(peep); break; case WIDX_RENAME: - window_text_input_open(w, widgetIndex, 0x5AC, 0x5AD, peep->name_string_idx, peep->id, 32); + window_text_input_open(w, widgetIndex, STR_GUEST_RENAME_TITLE, STR_GUEST_RENAME_PROMPT, peep->name_string_idx, peep->id, 32); break; case WIDX_LOCATE: window_scroll_to_viewport(w); @@ -890,13 +890,13 @@ void window_guest_stats_tab_paint(rct_window* w, rct_drawpixelinfo* dpi){ // If currently viewing this tab animate tab // if it is very sick or angry. switch (image_id){ - case SPR_PEEP_LARGE_FACE_VERY_VERY_SICK: + case SPR_PEEP_LARGE_FACE_VERY_VERY_SICK_0: image_id += (w->frame_no / 4) & 0xF; break; - case SPR_PEEP_LARGE_FACE_VERY_SICK: + case SPR_PEEP_LARGE_FACE_VERY_SICK_0: image_id += (w->frame_no / 8) & 0x3; break; - case SPR_PEEP_LARGE_FACE_ANGRY: + case SPR_PEEP_LARGE_FACE_ANGRY_0: image_id += (w->frame_no / 8) & 0x3; break; } @@ -955,7 +955,7 @@ void window_guest_thoughts_tab_paint(rct_window* w, rct_drawpixelinfo* dpi){ int x = widget->left + w->x; int y = widget->top + w->y; - int image_id = 5269; + int image_id = SPR_TAB_THOUGHTS_0; if ( w->page == WINDOW_GUEST_THOUGHTS ){ image_id += (w->frame_no / 2) & 0x7; @@ -975,7 +975,7 @@ void window_guest_inventory_tab_paint(rct_window* w, rct_drawpixelinfo* dpi){ int x = widget->left + w->x; int y = widget->top + w->y; - int image_id = 5326; + int image_id = SPR_TAB_GUEST_INVENTORY; gfx_draw_sprite(dpi, image_id, x, y, 0); } @@ -1048,7 +1048,7 @@ void window_guest_overview_paint(rct_window *w, rct_drawpixelinfo *dpi) set_format_arg(8, uint16, 0); x = widget->right - widget->left - w->list_information_type; - gfx_draw_string_left(&dpi_marquee, STR_WINDOW_COLOUR_2_STRING, gCommonFormatArgs, 0, x, 0); + gfx_draw_string_left(&dpi_marquee, STR_WINDOW_COLOUR_2_STRINGID, gCommonFormatArgs, 0, x, 0); } /** @@ -1237,14 +1237,14 @@ void window_guest_overview_tool_down(rct_window* w, int widgetIndex, int x, int int dest_z = mapElement->base_height * 8 + 16; if (!map_is_location_owned(tile_x, tile_y, dest_z)){ - window_error_open(0x785,-1); + window_error_open(STR_ERR_CANT_PLACE_PERSON_HERE, STR_NONE); return; } if (!map_can_construct_at(tile_x, tile_y, dest_z / 8, (dest_z / 8) + 1, 15)){ - if (gGameCommandErrorText != 0x3A5 ){ - if (gGameCommandErrorText != 0x49B){ - window_error_open(0x785, -1); + if (gGameCommandErrorText != STR_RAISE_OR_LOWER_LAND_FIRST) { + if (gGameCommandErrorText != STR_FOOTPATH_IN_THE_WAY) { + window_error_open(STR_ERR_CANT_PLACE_PERSON_HERE, STR_NONE); return; } } @@ -1433,7 +1433,7 @@ void window_guest_stats_paint(rct_window *w, rct_drawpixelinfo *dpi) int y = w->y + window_guest_rides_widgets[WIDX_PAGE_BACKGROUND].top + 4; //Happiness - gfx_draw_string_left(dpi, 1662, gCommonFormatArgs, 0, x, y); + gfx_draw_string_left(dpi, STR_GUEST_STAT_HAPPINESS_LABEL, gCommonFormatArgs, 0, x, y); int happiness = peep->happiness; if (happiness < 10)happiness = 10; @@ -1445,7 +1445,7 @@ void window_guest_stats_paint(rct_window *w, rct_drawpixelinfo *dpi) //Energy y += 10; - gfx_draw_string_left(dpi, 1664, gCommonFormatArgs, 0, x, y); + gfx_draw_string_left(dpi, STR_GUEST_STAT_ENERGY_LABEL, gCommonFormatArgs, 0, x, y); int energy = ((peep->energy - 32) * 85) / 32; ebp = 14; @@ -1457,7 +1457,7 @@ void window_guest_stats_paint(rct_window *w, rct_drawpixelinfo *dpi) //Hunger y += 10; - gfx_draw_string_left(dpi, 1665, gCommonFormatArgs, 0, x, y); + gfx_draw_string_left(dpi, STR_GUEST_STAT_HUNGER_LABEL, gCommonFormatArgs, 0, x, y); int hunger = peep->hunger; if (hunger > 190) hunger = 190; @@ -1476,7 +1476,7 @@ void window_guest_stats_paint(rct_window *w, rct_drawpixelinfo *dpi) //Thirst y += 10; - gfx_draw_string_left(dpi, 1666, gCommonFormatArgs, 0, x, y); + gfx_draw_string_left(dpi, STR_GUEST_STAT_THIRST_LABEL, gCommonFormatArgs, 0, x, y); int thirst = peep->thirst; if (thirst > 190) thirst = 190; @@ -1495,7 +1495,7 @@ void window_guest_stats_paint(rct_window *w, rct_drawpixelinfo *dpi) //Nausea y += 10; - gfx_draw_string_left(dpi, 1663, gCommonFormatArgs, 0, x, y); + gfx_draw_string_left(dpi, STR_GUEST_STAT_NAUSEA_LABEL, gCommonFormatArgs, 0, x, y); int nausea = peep->nausea - 32; @@ -1511,7 +1511,7 @@ void window_guest_stats_paint(rct_window *w, rct_drawpixelinfo *dpi) //Bathroom y += 10; - gfx_draw_string_left(dpi, 1667, gCommonFormatArgs, 0, x, y); + gfx_draw_string_left(dpi, STR_GUEST_STAT_TOILET_LABEL, gCommonFormatArgs, 0, x, y); int bathroom = peep->bathroom - 32; if (bathroom > 210) bathroom = 210; @@ -1534,34 +1534,40 @@ void window_guest_stats_paint(rct_window *w, rct_drawpixelinfo *dpi) eax -= peep->time_in_park; eax >>= 11; set_format_arg(0, uint16, eax & 0xFFFF); - gfx_draw_string_left(dpi, 1458, gCommonFormatArgs, 0, x, y); + gfx_draw_string_left(dpi, STR_GUEST_STAT_TIME_IN_PARK, gCommonFormatArgs, 0, x, y); } y += 19; gfx_fill_rect_inset(dpi, x, y - 6, x + 179, y - 5, w->colours[1], 32); // Preferred Ride - gfx_draw_string_left(dpi, 1657, (void*)0, 0, x, y); + gfx_draw_string_left(dpi, STR_GUEST_STAT_PREFERRED_RIDE, (void *) 0, 0, x, y); y += 10; // Intensity int intensity = peep->intensity / 16; set_format_arg(0, uint16, intensity); - int string_id = 1658; + int string_id = STR_GUEST_STAT_PREFERRED_INTESITY_BELOW; if (peep->intensity & 0xF){ set_format_arg(0, uint16, peep->intensity & 0xF); set_format_arg(2, uint16, intensity); - string_id = 1659; - if (intensity == 15) string_id = 1660; + string_id = STR_GUEST_STAT_PREFERRED_INTESITY_BETWEEN; + if (intensity == 15) string_id = STR_GUEST_STAT_PREFERRED_INTESITY_ABOVE; } gfx_draw_string_left(dpi, string_id, gCommonFormatArgs, 0, x + 4, y); // Nausea tolerance + static const rct_string_id nauseaTolerances[] = { + STR_PEEP_STAT_NAUSEA_TOLERANCE_NONE, + STR_PEEP_STAT_NAUSEA_TOLERANCE_LOW, + STR_PEEP_STAT_NAUSEA_TOLERANCE_AVERAGE, + STR_PEEP_STAT_NAUSEA_TOLERANCE_HIGH, + }; y += 10; int nausea_tolerance = peep->nausea_tolerance & 0x3; - set_format_arg(0, uint16, nausea_tolerance + 2368); - gfx_draw_string_left(dpi, 1661, gCommonFormatArgs, 0, x, y); + set_format_arg(0, uint16, nauseaTolerances[nausea_tolerance]); + gfx_draw_string_left(dpi, STR_GUEST_STAT_NAUSEA_TOLERANCE, gCommonFormatArgs, 0, x, y); } /** @@ -1733,11 +1739,11 @@ void window_guest_rides_paint(rct_window *w, rct_drawpixelinfo *dpi) //dx int y = w->y + window_guest_rides_widgets[WIDX_PAGE_BACKGROUND].top + 2; - gfx_draw_string_left(dpi, 2292, (void*)0, 0, x, y); + gfx_draw_string_left(dpi, STR_GUEST_LABEL_RIDES_BEEN_ON, (void*)0, 0, x, y); y = w->y + window_guest_rides_widgets[WIDX_PAGE_BACKGROUND].bottom - 12; - int ride_string_id = 3094; + int ride_string_id = STR_PEEP_FAVOURITE_RIDE_NOT_AVAILABLE; int ride_string_arguments = 0; if (peep->favourite_ride != 0xFF){ rct_ride* ride = get_ride(peep->favourite_ride); @@ -1747,7 +1753,7 @@ void window_guest_rides_paint(rct_window *w, rct_drawpixelinfo *dpi) set_format_arg(0, uint16, ride_string_id); set_format_arg(2, uint32, ride_string_arguments); - gfx_draw_string_left_clipped(dpi, 3093, gCommonFormatArgs, 0, x, y, w->width - 14); + gfx_draw_string_left_clipped(dpi, STR_FAVOURITE_RIDE, gCommonFormatArgs, 0, x, y, w->width - 14); } /** @@ -1773,7 +1779,7 @@ void window_guest_rides_scroll_paint(rct_window *w, rct_drawpixelinfo *dpi, int int string_format = STR_BLACK_STRING; if (list_index == w->selected_list_item){ gfx_fill_rect(dpi, 0, y, 800, y + 9, 0x2000031); - string_format = STR_WINDOW_COLOUR_2_STRING; + string_format = STR_WINDOW_COLOUR_2_STRINGID; } rct_ride* ride = get_ride(w->list_item_positions[list_index]); @@ -1859,29 +1865,29 @@ void window_guest_finance_paint(rct_window *w, rct_drawpixelinfo *dpi) // Cash in pocket set_format_arg(0, money32, peep->cash_in_pocket); - gfx_draw_string_left(dpi, 1457, gCommonFormatArgs, 0, x, y); + gfx_draw_string_left(dpi, STR_GUEST_STAT_CASH_IN_POCKET, gCommonFormatArgs, 0, x, y); // Cash spent y += 10; set_format_arg(0, money32, peep->cash_spent); - gfx_draw_string_left(dpi, 1456, gCommonFormatArgs, 0, x, y); + gfx_draw_string_left(dpi, STR_GUEST_STAT_CASH_SPENT, gCommonFormatArgs, 0, x, y); y += 20; gfx_fill_rect_inset(dpi, x, y - 6, x + 179, y - 5, w->colours[1], 32); // Paid to enter set_format_arg(0, money32, peep->paid_to_enter); - gfx_draw_string_left(dpi, 2296, gCommonFormatArgs, 0, x, y); + gfx_draw_string_left(dpi, STR_GUEST_EXPENSES_ENTRANCE_FEE, gCommonFormatArgs, 0, x, y); // Paid on rides y += 10; set_format_arg(0, money32, peep->paid_on_rides); set_format_arg(4, uint16, peep->no_of_rides); if (peep->no_of_rides != 1){ - gfx_draw_string_left(dpi, 2298, gCommonFormatArgs, 0, x, y); + gfx_draw_string_left(dpi, STR_GUEST_EXPENSES_RIDE_PLURAL, gCommonFormatArgs, 0, x, y); } else{ - gfx_draw_string_left(dpi, 2297, gCommonFormatArgs, 0, x, y); + gfx_draw_string_left(dpi, STR_GUEST_EXPENSES_RIDE, gCommonFormatArgs, 0, x, y); } // Paid on food @@ -1889,10 +1895,10 @@ void window_guest_finance_paint(rct_window *w, rct_drawpixelinfo *dpi) set_format_arg(0, money32, peep->paid_on_food); set_format_arg(4, uint16, peep->no_of_food); if (peep->no_of_food != 1){ - gfx_draw_string_left(dpi, 2300, gCommonFormatArgs, 0, x, y); + gfx_draw_string_left(dpi, STR_GUEST_EXPENSES_FOOD_PLURAL, gCommonFormatArgs, 0, x, y); } else{ - gfx_draw_string_left(dpi, 2299, gCommonFormatArgs, 0, x, y); + gfx_draw_string_left(dpi, STR_GUEST_EXPENSES_FOOD, gCommonFormatArgs, 0, x, y); } // Paid on drinks @@ -1900,10 +1906,10 @@ void window_guest_finance_paint(rct_window *w, rct_drawpixelinfo *dpi) set_format_arg(0, money32, peep->paid_on_drink); set_format_arg(4, uint16, peep->no_of_drinks); if (peep->no_of_drinks != 1){ - gfx_draw_string_left(dpi, 2302, gCommonFormatArgs, 0, x, y); + gfx_draw_string_left(dpi, STR_GUEST_EXPENSES_DRINK_PLURAL, gCommonFormatArgs, 0, x, y); } else{ - gfx_draw_string_left(dpi, 2301, gCommonFormatArgs, 0, x, y); + gfx_draw_string_left(dpi, STR_GUEST_EXPENSES_DRINK, gCommonFormatArgs, 0, x, y); } // Paid on souvenirs @@ -1911,10 +1917,10 @@ void window_guest_finance_paint(rct_window *w, rct_drawpixelinfo *dpi) set_format_arg(0, money32, peep->paid_on_souvenirs); set_format_arg(4, uint16, peep->no_of_souvenirs); if (peep->no_of_souvenirs != 1){ - gfx_draw_string_left(dpi, 2304, gCommonFormatArgs, 0, x, y); + gfx_draw_string_left(dpi, STR_GUEST_EXPENSES_SOUVENIR_PLURAL, gCommonFormatArgs, 0, x, y); } else{ - gfx_draw_string_left(dpi, 2303, gCommonFormatArgs, 0, x, y); + gfx_draw_string_left(dpi, STR_GUEST_EXPENSES_SOUVENIR, gCommonFormatArgs, 0, x, y); } } @@ -2000,7 +2006,7 @@ void window_guest_thoughts_paint(rct_window *w, rct_drawpixelinfo *dpi) //dx int y = w->y + window_guest_thoughts_widgets[WIDX_PAGE_BACKGROUND].top + 4; - gfx_draw_string_left(dpi, 1654, (void*)0, 0, x, y); + gfx_draw_string_left(dpi, STR_GUEST_RECENT_THOUGHTS_LABEL, (void*)0, 0, x, y); y += 10; for (rct_peep_thought* thought = peep->thoughts; thought < &peep->thoughts[PEEP_MAX_THOUGHTS]; ++thought){ @@ -2111,23 +2117,23 @@ static rct_string_id window_guest_inventory_format_item(rct_peep *peep, int item case SHOP_ITEM_VOUCHER: switch (peep->voucher_type) { case VOUCHER_TYPE_PARK_ENTRY_FREE: - set_format_arg(6, uint16, 2418); + set_format_arg(6, uint16, STR_PEEP_INVENTORY_VOUCHER_PARK_ENTRY_FREE); set_format_arg(8, uint16, gParkName); set_format_arg(10, uint32, gParkNameArgs); break; case VOUCHER_TYPE_RIDE_FREE: ride = get_ride(peep->voucher_arguments); - set_format_arg(6, uint16, 2419); + set_format_arg(6, uint16, STR_PEEP_INVENTORY_VOUCHER_RIDE_FREE); set_format_arg(8, uint16, ride->name); set_format_arg(10, uint32, ride->name_arguments); break; case VOUCHER_TYPE_PARK_ENTRY_HALF_PRICE: - set_format_arg(6, uint16, 2420); + set_format_arg(6, uint16, STR_PEEP_INVENTORY_VOUCHER_PARK_ENTRY_HALF_PRICE); set_format_arg(8, uint16, gParkName); set_format_arg(10, uint32, gParkNameArgs); break; case VOUCHER_TYPE_FOOD_OR_DRINK_FREE: - set_format_arg(6, uint16, 2421); + set_format_arg(6, uint16, STR_PEEP_INVENTORY_VOUCHER_FOOD_OR_DRINK_FREE); set_format_arg(8, uint16, ShopItemStringIds[peep->voucher_arguments].singular); break; } diff --git a/src/windows/guest_list.c b/src/windows/guest_list.c index 0292d5fed8..8d1e8d7627 100644 --- a/src/windows/guest_list.c +++ b/src/windows/guest_list.c @@ -50,23 +50,43 @@ enum WINDOW_GUEST_LIST_WIDGET_IDX { enum { VIEW_ACTIONS, - VIEW_THOUGHTS + VIEW_THOUGHTS, + VIEW_COUNT +}; + +static const rct_string_id pageNames[] = { + STR_PAGE_1, + STR_PAGE_2, + STR_PAGE_3, + STR_PAGE_4, + STR_PAGE_5, +}; + +static const rct_string_id filterNames[] = { + STR_GUESTS_FILTER, + STR_GUESTS_FILTER_THINKING, + STR_GUESTS_FILTER_THINKING_ABOUT, +}; + +static const rct_string_id viewNames[VIEW_COUNT] = { + STR_ACTIONS, + STR_THOUGHTS, }; static rct_widget window_guest_list_widgets[] = { - { WWT_FRAME, 0, 0, 349, 0, 329, 0x0FFFFFFFF, STR_NONE }, // panel / background - { WWT_CAPTION, 0, 1, 348, 1, 14, STR_GUESTS, STR_WINDOW_TITLE_TIP }, // title bar - { WWT_CLOSEBOX, 0, 337, 347, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // close x button - { WWT_RESIZE, 1, 0, 349, 43, 329, 0x0FFFFFFFF, STR_NONE }, // tab content panel - { WWT_DROPDOWN, 1, 5, 84, 59, 70, STR_PAGE_1, STR_NONE }, // page dropdown - { WWT_DROPDOWN_BUTTON, 1, 73, 83, 60, 69, 876, STR_NONE }, // page dropdown button - { WWT_DROPDOWN, 1, 120, 295, 59, 70, 0x0FFFFFFFF, STR_INFORMATION_TYPE_TIP }, // information type dropdown - { WWT_DROPDOWN_BUTTON, 1, 284, 294, 60, 69, 876, STR_INFORMATION_TYPE_TIP }, // information type dropdown button - { WWT_FLATBTN, 1, 297, 320, 46, 69, SPR_MAP, STR_SHOW_GUESTS_ON_MAP_TIP }, // map - { WWT_FLATBTN, 1, 321, 344, 46, 69, SPR_TRACK_PEEP, STR_TRACKED_GUESTS_ONLY_TIP }, // tracking - { WWT_TAB, 1, 3, 33, 17, 43, 0x02000144E, STR_INDIVIDUAL_GUESTS_TIP }, // tab 1 - { WWT_TAB, 1, 34, 64, 17, 43, 0x02000144E, STR_SUMMARISED_GUESTS_TIP }, // tab 2 - { WWT_SCROLL, 1, 3, 346, 72, 326, 3, STR_NONE }, // guest list + { WWT_FRAME, 0, 0, 349, 0, 329, 0xFFFFFFFF, STR_NONE }, // panel / background + { WWT_CAPTION, 0, 1, 348, 1, 14, STR_GUESTS, STR_WINDOW_TITLE_TIP }, // title bar + { WWT_CLOSEBOX, 0, 337, 347, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // close x button + { WWT_RESIZE, 1, 0, 349, 43, 329, 0xFFFFFFFF, STR_NONE }, // tab content panel + { WWT_DROPDOWN, 1, 5, 84, 59, 70, STR_PAGE_1, STR_NONE }, // page dropdown + { WWT_DROPDOWN_BUTTON, 1, 73, 83, 60, 69, STR_DROPDOWN_GLYPH, STR_NONE }, // page dropdown button + { WWT_DROPDOWN, 1, 120, 295, 59, 70, 0xFFFFFFFF, STR_INFORMATION_TYPE_TIP }, // information type dropdown + { WWT_DROPDOWN_BUTTON, 1, 284, 294, 60, 69, STR_DROPDOWN_GLYPH, STR_INFORMATION_TYPE_TIP }, // information type dropdown button + { WWT_FLATBTN, 1, 297, 320, 46, 69, SPR_MAP, STR_SHOW_GUESTS_ON_MAP_TIP }, // map + { WWT_FLATBTN, 1, 321, 344, 46, 69, SPR_TRACK_PEEP, STR_TRACKED_GUESTS_ONLY_TIP }, // tracking + { WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_INDIVIDUAL_GUESTS_TIP }, // tab 1 + { WWT_TAB, 1, 34, 64, 17, 43, 0x20000000 | SPR_TAB, STR_SUMMARISED_GUESTS_TIP }, // tab 2 + { WWT_SCROLL, 1, 3, 346, 72, 326, SCROLL_BOTH, STR_NONE }, // guest list { WIDGETS_END }, }; @@ -211,10 +231,10 @@ void window_guest_list_open_with_filter(int type, int index) case 0: _window_guest_list_selected_filter = 0; - eax = (eax << 16) + 1435; + eax = (eax << 16) + STR_ON_RIDE; if (ride_type_has_flag(ride->type, RIDE_TYPE_FLAG_IN_RIDE)) - eax++; + eax = (eax << 16) + STR_IN_RIDE; RCT2_GLOBAL(0x00F1EDF6, uint32) = eax; RCT2_GLOBAL(0x00F1EDFA, uint32) = edx; @@ -226,7 +246,7 @@ void window_guest_list_open_with_filter(int type, int index) case 1: _window_guest_list_selected_filter = 0; - eax = (eax << 16) + 1433; + eax = (eax << 16) + STR_QUEUING_FOR; RCT2_GLOBAL(0x00F1EDF6, uint32) = eax; RCT2_GLOBAL(0x00F1EDFA, uint32) = edx; @@ -238,7 +258,7 @@ void window_guest_list_open_with_filter(int type, int index) case 2: _window_guest_list_selected_filter = 1; - eax = (eax << 16) + 0xFFFF; + eax = (eax << 16) + STR_NONE; RCT2_GLOBAL(0x00F1EDF6, uint32) = eax; RCT2_GLOBAL(0x00F1EDFA, uint32) = edx; @@ -250,7 +270,7 @@ void window_guest_list_open_with_filter(int type, int index) case 3: _window_guest_list_selected_filter = 1; - index = (index & 0x000000FF) + 1480; + index = PeepThoughts[(index & 0x000000FF)]; RCT2_GLOBAL(0x00F1EDF6, uint32) = index; RCT2_GLOBAL(0x00F1EDFA, uint32) = 0; @@ -346,16 +366,16 @@ static void window_guest_list_mousedown(int widgetIndex, rct_window*w, rct_widge for (i = 0; i < _window_guest_list_num_pages; i++) { gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL; - gDropdownItemsArgs[i] = STR_PAGE_1 + i; + gDropdownItemsArgs[i] = pageNames[i]; } dropdown_set_checked(_window_guest_list_selected_page, true); break; case WIDX_INFO_TYPE_DROPDOWN_BUTTON: widget = &w->widgets[widgetIndex - 1]; - for (i = 0; i < 2; i++) { + for (i = 0; i < VIEW_COUNT; i++) { gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL; - gDropdownItemsArgs[i] = STR_ACTIONS + i; + gDropdownItemsArgs[i] = viewNames[i]; } window_dropdown_show_text_custom_width( @@ -561,7 +581,7 @@ static void window_guest_list_invalidate(rct_window *w) w->pressed_widgets &= ~(1 << WIDX_TAB_2); w->pressed_widgets |= (1LL << (_window_guest_list_selected_tab + WIDX_TAB_1)); - window_guest_list_widgets[WIDX_INFO_TYPE_DROPDOWN].image = STR_ACTIONS + _window_guest_list_selected_view; + window_guest_list_widgets[WIDX_INFO_TYPE_DROPDOWN].text = viewNames[_window_guest_list_selected_view]; window_guest_list_widgets[WIDX_MAP].type = WWT_EMPTY; if (_window_guest_list_selected_tab == PAGE_INDIVIDUAL && _window_guest_list_selected_filter != -1) window_guest_list_widgets[WIDX_MAP].type = WWT_FLATBTN; @@ -575,7 +595,7 @@ static void window_guest_list_invalidate(rct_window *w) window_guest_list_widgets[WIDX_CLOSE].right = w->width - 3; window_guest_list_widgets[WIDX_GUEST_LIST].right = w->width - 4; window_guest_list_widgets[WIDX_GUEST_LIST].bottom = w->height - 15; - window_guest_list_widgets[WIDX_PAGE_DROPDOWN].image = _window_guest_list_selected_page + 3440; + window_guest_list_widgets[WIDX_PAGE_DROPDOWN].text = pageNames[_window_guest_list_selected_page]; window_guest_list_widgets[WIDX_TRACKING].left = 321 - 350 + w->width; window_guest_list_widgets[WIDX_TRACKING].right = 344 - 350 + w->width; @@ -594,7 +614,8 @@ static void window_guest_list_invalidate(rct_window *w) */ static void window_guest_list_paint(rct_window *w, rct_drawpixelinfo *dpi) { - int i, x, y, format; + int i, x, y; + rct_string_id format; // Widgets window_draw_widgets(w, dpi); @@ -624,7 +645,7 @@ static void window_guest_list_paint(rct_window *w, rct_drawpixelinfo *dpi) if (_window_guest_list_selected_tab == PAGE_INDIVIDUAL) { if (_window_guest_list_selected_filter != -1) { if (RCT2_GLOBAL(0x00F1EDF6, sint16) != -1) - format = STR_GUESTS_FILTER + _window_guest_list_selected_filter; + format = filterNames[_window_guest_list_selected_filter]; // Not sure whether the index will ever be 2 else format = STR_GUESTS_FILTER_THINKING_ABOUT; } else { @@ -650,7 +671,8 @@ static void window_guest_list_paint(rct_window *w, rct_drawpixelinfo *dpi) */ static void window_guest_list_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex) { - int spriteIndex, format, numGuests, i, j, y; + int spriteIndex, numGuests, i, j, y; + rct_string_id format; rct_peep *peep; rct_peep_thought *thought; uint32 argument_1, argument_2; @@ -687,7 +709,7 @@ static void window_guest_list_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, format = STR_BLACK_STRING; if (i == _window_guest_list_highlighted_index) { gfx_fill_rect(dpi, 0, y, 800, y + 9, 0x02000031); - format = STR_WINDOW_COLOUR_2_STRING; + format = STR_WINDOW_COLOUR_2_STRINGID; } // Guest name @@ -754,7 +776,7 @@ static void window_guest_list_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, format = STR_BLACK_STRING; if (i == _window_guest_list_highlighted_index) { gfx_fill_rect(dpi, 0, y, 800, y + 20, 0x02000031); - format = STR_WINDOW_COLOUR_2_STRING; + format = STR_WINDOW_COLOUR_2_STRINGID; } // Draw guest faces diff --git a/src/windows/install_track.c b/src/windows/install_track.c index 8d5da61a57..3838bc4583 100644 --- a/src/windows/install_track.c +++ b/src/windows/install_track.c @@ -41,14 +41,14 @@ enum { }; static rct_widget window_install_track_widgets[] = { - { WWT_FRAME, 0, 0, 401, 0, 399, 0xFFFFFFFF, STR_NONE }, - { WWT_CAPTION, 0, 1, 400, 1, 14, 2309, STR_WINDOW_TITLE_TIP }, - { WWT_CLOSEBOX, 0, 389, 399, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, - { WWT_FLATBTN, 0, 15, 386, 18, 236, 0xFFFFFFFF, STR_NONE }, - { WWT_FLATBTN, 0, 376, 399, 374, 397, 5169, STR_ROTATE_90_TIP }, - { WWT_FLATBTN, 0, 376, 399, 350, 373, 5171, STR_TOGGLE_SCENERY_TIP }, - { WWT_DROPDOWN_BUTTON, 0, 303, 397, 241, 252, 3378, STR_NONE }, - { WWT_DROPDOWN_BUTTON, 0, 303, 397, 256, 267, 3379, STR_NONE }, + { WWT_FRAME, 0, 0, 401, 0, 399, 0xFFFFFFFF, STR_NONE }, + { WWT_CAPTION, 0, 1, 400, 1, 14, STR_TRACK_DESIGN_INSTALL_WINDOW_TITLE, STR_WINDOW_TITLE_TIP }, + { WWT_CLOSEBOX, 0, 389, 399, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, + { WWT_FLATBTN, 0, 15, 386, 18, 236, 0xFFFFFFFF, STR_NONE }, + { WWT_FLATBTN, 0, 376, 399, 374, 397, SPR_ROTATE_ARROW, STR_ROTATE_90_TIP }, + { WWT_FLATBTN, 0, 376, 399, 350, 373, SPR_SCENERY, STR_TOGGLE_SCENERY_TIP }, + { WWT_DROPDOWN_BUTTON, 0, 303, 397, 241, 252, STR_INSTALL_NEW_TRACK_DESIGN_INSTALL, STR_NONE }, + { WWT_DROPDOWN_BUTTON, 0, 303, 397, 256, 267, STR_INSTALL_NEW_TRACK_DESIGN_CANCEL, STR_NONE }, { WIDGETS_END }, }; @@ -105,7 +105,7 @@ void window_install_track_open(const utf8 *path) { _trackDesign = track_design_open(path); if (_trackDesign == NULL) { - window_error_open(3010, STR_NONE); + window_error_open(STR_UNABLE_TO_LOAD_FILE, STR_NONE); return; } diff --git a/src/windows/land.c b/src/windows/land.c index d995b59eff..6e973653da 100644 --- a/src/windows/land.c +++ b/src/windows/land.c @@ -41,14 +41,14 @@ enum WINDOW_LAND_WIDGET_IDX { }; static rct_widget window_land_widgets[] = { - { WWT_FRAME, 0, 0, 97, 0, 159, -1, STR_NONE }, // panel / background + { WWT_FRAME, 0, 0, 97, 0, 159, 0xFFFFFFFF, STR_NONE }, // panel / background { WWT_CAPTION, 0, 1, 96, 1, 14, STR_LAND, STR_WINDOW_TITLE_TIP }, // title bar - { WWT_CLOSEBOX, 0, 85, 95, 2, 13, 824, STR_CLOSE_WINDOW_TIP }, // close x button + { WWT_CLOSEBOX, 0, 85, 95, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // close x button - { WWT_FLATBTN, 1, 19, 42, 19, 42, 5147, STR_ENABLE_MOUNTAIN_TOOL_TIP }, // mountain mode - { WWT_FLATBTN, 1, 55, 78, 19, 42, 5173, 5127 }, // paint mode + { WWT_FLATBTN, 1, 19, 42, 19, 42, SPR_RIDE_CONSTRUCTION_SLOPE_UP, STR_ENABLE_MOUNTAIN_TOOL_TIP }, // mountain mode + { WWT_FLATBTN, 1, 55, 78, 19, 42, SPR_PAINTBRUSH, STR_DISABLE_ELEVATION }, // paint mode - { WWT_IMGBTN, 0, 27, 70, 48, 79, 5503, STR_NONE }, // preview box + { WWT_IMGBTN, 0, 27, 70, 48, 79, SPR_LAND_TOOL_SIZE_0, STR_NONE }, // preview box { WWT_TRNBTN, 1, 28, 43, 49, 64, 0x20000000 | SPR_LAND_TOOL_DECREASE, STR_ADJUST_SMALLER_LAND_TIP }, // decrement size { WWT_TRNBTN, 1, 54, 69, 63, 78, 0x20000000 | SPR_LAND_TOOL_INCREASE, STR_ADJUST_LARGER_LAND_TIP }, // increment size @@ -321,7 +321,7 @@ static void window_land_inputsize(rct_window *w) { TextInputDescriptionArgs[0] = MINIMUM_TOOL_SIZE; TextInputDescriptionArgs[1] = MAXIMUM_TOOL_SIZE; - window_text_input_open(w, WIDX_PREVIEW, 5128, 5129, STR_NONE, STR_NONE, 3); + window_text_input_open(w, WIDX_PREVIEW, STR_SELECTION_SIZE, STR_ENTER_SELECTION_SIZE, STR_NONE, STR_NONE, 3); } /** @@ -388,12 +388,12 @@ static void window_land_paint(rct_window *w, rct_drawpixelinfo *dpi) // Draw raise cost amount if (gLandToolRaiseCost != MONEY32_UNDEFINED && gLandToolRaiseCost != 0) - gfx_draw_string_centred(dpi, 984, x, y, 0, &gLandToolRaiseCost); + gfx_draw_string_centred(dpi, STR_RAISE_COST_AMOUNT, x, y, 0, &gLandToolRaiseCost); y += 10; // Draw lower cost amount if (gLandToolLowerCost != MONEY32_UNDEFINED && gLandToolLowerCost != 0) - gfx_draw_string_centred(dpi, 985, x, y, 0, &gLandToolLowerCost); + gfx_draw_string_centred(dpi, STR_LOWER_COST_AMOUNT, x, y, 0, &gLandToolLowerCost); y += 50; // Draw paint price @@ -406,6 +406,6 @@ static void window_land_paint(rct_window *w, rct_drawpixelinfo *dpi) if (price != 0 && !(gParkFlags & PARK_FLAGS_NO_MONEY)) { set_format_arg(0, sint32, price); - gfx_draw_string_centred(dpi, 986, x, y, 0, gCommonFormatArgs); + gfx_draw_string_centred(dpi, STR_COST_AMOUNT, x, y, 0, gCommonFormatArgs); } } diff --git a/src/windows/land_rights.c b/src/windows/land_rights.c index e1ec078665..06b8252f99 100644 --- a/src/windows/land_rights.c +++ b/src/windows/land_rights.c @@ -40,14 +40,14 @@ enum WINDOW_WATER_WIDGET_IDX { }; static rct_widget window_land_rights_widgets[] = { - { WWT_FRAME, 0, 0, 97, 0, 93, -1, STR_NONE }, // panel / background - { WWT_CAPTION, 0, 1, 96, 1, 14, 5136, STR_WINDOW_TITLE_TIP }, // title bar - { WWT_CLOSEBOX, 0, 85, 95, 2, 13, 824, STR_CLOSE_WINDOW_TIP }, // close x button - { WWT_IMGBTN, 0, 27, 70, 17, 48, SPR_LAND_TOOL_SIZE_0, STR_NONE }, // preview box - { WWT_TRNBTN, 2, 28, 43, 18, 33, 0x20000000 | SPR_LAND_TOOL_DECREASE, 5133 }, // decrement size - { WWT_TRNBTN, 2, 54, 69, 32, 47, 0x20000000 | SPR_LAND_TOOL_INCREASE, 5134 }, // increment size - { WWT_FLATBTN, 2, 22, 45, 53, 76, 0x20000000 | SPR_BUY_LAND_RIGHTS, SPR_BUY_LAND_RIGHTS_TIP }, // land rights - { WWT_FLATBTN, 2, 52, 75, 53, 76, 0x20000000 | SPR_BUY_CONSTRUCTION_RIGHTS, SPR_BUY_CONSTRUCTION_RIGHTS_TIP }, // construction rights + { WWT_FRAME, 0, 0, 97, 0, 93, 0xFFFFFFFF, STR_NONE }, // panel / background + { WWT_CAPTION, 0, 1, 96, 1, 14, STR_LAND_RIGHTS, STR_WINDOW_TITLE_TIP }, // title bar + { WWT_CLOSEBOX, 0, 85, 95, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // close x button + { WWT_IMGBTN, 0, 27, 70, 17, 48, SPR_LAND_TOOL_SIZE_0, STR_NONE }, // preview box + { WWT_TRNBTN, 2, 28, 43, 18, 33, 0x20000000 | SPR_LAND_TOOL_DECREASE, STR_ADJUST_SMALLER_LAND_RIGHTS_TIP }, // decrement size + { WWT_TRNBTN, 2, 54, 69, 32, 47, 0x20000000 | SPR_LAND_TOOL_INCREASE, STR_ADJUST_LARGER_LAND_RIGHTS_TIP }, // increment size + { WWT_FLATBTN, 2, 22, 45, 53, 76, 0x20000000 | SPR_BUY_LAND_RIGHTS, STR_BUY_LAND_RIGHTS_TIP }, // land rights + { WWT_FLATBTN, 2, 52, 75, 53, 76, 0x20000000 | SPR_BUY_CONSTRUCTION_RIGHTS, STR_BUY_CONSTRUCTION_RIGHTS_TIP }, // construction rights { WIDGETS_END }, }; @@ -186,7 +186,7 @@ static void window_land_rights_inputsize(rct_window *w) { TextInputDescriptionArgs[0] = MINIMUM_TOOL_SIZE; TextInputDescriptionArgs[1] = MAXIMUM_TOOL_SIZE; - window_text_input_open(w, WIDX_PREVIEW, 5128, 5129, STR_NONE, STR_NONE, 3); + window_text_input_open(w, WIDX_PREVIEW, STR_SELECTION_SIZE, STR_ENTER_SELECTION_SIZE, STR_NONE, STR_NONE, 3); } static void window_land_rights_update(rct_window *w) @@ -205,6 +205,7 @@ static void window_land_rights_invalidate(rct_window *w) w->pressed_widgets &= ~(1 << (!LandRightsMode ? WIDX_BUY_LAND_RIGHTS : WIDX_BUY_CONSTRUCTION_RIGHTS)); // Update the preview image + // TODO: Don't apply addition to images window_land_rights_widgets[WIDX_PREVIEW].image = gLandToolSize <= 7 ? SPR_LAND_TOOL_SIZE_0 + gLandToolSize : 0xFFFFFFFF; @@ -228,7 +229,7 @@ static void window_land_rights_paint(rct_window *w, rct_drawpixelinfo *dpi) x = (window_land_rights_widgets[WIDX_PREVIEW].left + window_land_rights_widgets[WIDX_PREVIEW].right) / 2 + w->x; y = window_land_rights_widgets[WIDX_PREVIEW].bottom + w->y + 32; if (RCT2_GLOBAL(0x00F1AD62, uint32) != MONEY32_UNDEFINED && RCT2_GLOBAL(0x00F1AD62, uint32) != 0) - gfx_draw_string_centred(dpi, 986, x, y, 0, (void*)0x00F1AD62); + gfx_draw_string_centred(dpi, STR_COST_AMOUNT, x, y, 0, (void*)0x00F1AD62); } static int window_land_rights_should_close() diff --git a/src/windows/loadsave.c b/src/windows/loadsave.c index 20b2e297d4..5f996285e1 100644 --- a/src/windows/loadsave.c +++ b/src/windows/loadsave.c @@ -50,16 +50,16 @@ enum { // 0x9DE48C static rct_widget window_loadsave_widgets[] = { - { WWT_FRAME, 0, 0, WW - 1, 0, WH - 1, STR_NONE, STR_NONE }, - { WWT_CAPTION, 0, 1, WW - 2, 1, 14, STR_NONE, STR_WINDOW_TITLE_TIP }, - { WWT_CLOSEBOX, 0, WW - 13, WW - 3, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, //Window close button - { WWT_CLOSEBOX, 0, 105, 205, 36, 47, 2718, STR_NONE }, // Up - { WWT_CLOSEBOX, 0, 206, 307, 36, 47, 2719, STR_NONE }, // New - { WWT_CLOSEBOX, 0, 4, (WW - 5) / 2, 50, 61, STR_NONE, STR_NONE }, // Name - { WWT_CLOSEBOX, 0, (WW - 5) / 2 + 1, WW - 5 - 1, 50, 61, STR_NONE, STR_NONE }, // Date - { WWT_SCROLL, 0, 4, WW - 5, 61, WH - 40, 2, STR_NONE }, // File list - { WWT_CLOSEBOX, 0, 4, 200, WH - 36, WH - 18, 2707, STR_NONE }, // Use native browser - { WWT_CLOSEBOX, 0, 4, 104, 36, 47, STR_LOADSAVE_DEFAULT, STR_LOADSAVE_DEFAULT_TIP }, // Go to default directory + { WWT_FRAME, 0, 0, WW - 1, 0, WH - 1, STR_NONE, STR_NONE }, + { WWT_CAPTION, 0, 1, WW - 2, 1, 14, STR_NONE, STR_WINDOW_TITLE_TIP }, + { WWT_CLOSEBOX, 0, WW - 13, WW - 3, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, //Window close button + { WWT_CLOSEBOX, 0, 105, 205, 36, 47, STR_FILEBROWSER_ACTION_UP, STR_NONE}, // Up + { WWT_CLOSEBOX, 0, 206, 307, 36, 47, STR_FILEBROWSER_ACTION_NEW_FILE, STR_NONE}, // New + { WWT_CLOSEBOX, 0, 4, (WW - 5) / 2, 50, 61, STR_NONE, STR_NONE }, // Name + { WWT_CLOSEBOX, 0, (WW - 5) / 2 + 1, WW - 5 - 1, 50, 61, STR_NONE, STR_NONE }, // Date + { WWT_SCROLL, 0, 4, WW - 5, 61, WH - 40, SCROLL_VERTICAL, STR_NONE }, // File list + { WWT_CLOSEBOX, 0, 4, 200, WH - 36, WH - 18, STR_FILEBROWSER_USE_SYSTEM_WINDOW, STR_NONE }, // Use native browser + { WWT_CLOSEBOX, 0, 4, 104, 36, 47, STR_LOADSAVE_DEFAULT, STR_LOADSAVE_DEFAULT_TIP }, // Go to default directory { WIDGETS_END } }; @@ -170,22 +170,22 @@ rct_window *window_loadsave_open(int type, char *defaultName) _loadsaveType = type; switch (type & 0x0F) { case (LOADSAVETYPE_LOAD | LOADSAVETYPE_GAME): - w->widgets[WIDX_TITLE].image = STR_FILE_DIALOG_TITLE_LOAD_GAME; + w->widgets[WIDX_TITLE].text = STR_FILE_DIALOG_TITLE_LOAD_GAME; break; case (LOADSAVETYPE_SAVE | LOADSAVETYPE_GAME) : - w->widgets[WIDX_TITLE].image = STR_FILE_DIALOG_TITLE_SAVE_GAME; + w->widgets[WIDX_TITLE].text = STR_FILE_DIALOG_TITLE_SAVE_GAME; break; case (LOADSAVETYPE_LOAD | LOADSAVETYPE_LANDSCAPE) : - w->widgets[WIDX_TITLE].image = STR_FILE_DIALOG_TITLE_LOAD_LANDSCAPE; + w->widgets[WIDX_TITLE].text = STR_FILE_DIALOG_TITLE_LOAD_LANDSCAPE; break; case (LOADSAVETYPE_SAVE | LOADSAVETYPE_LANDSCAPE) : - w->widgets[WIDX_TITLE].image = STR_FILE_DIALOG_TITLE_SAVE_LANDSCAPE; + w->widgets[WIDX_TITLE].text = STR_FILE_DIALOG_TITLE_SAVE_LANDSCAPE; break; case (LOADSAVETYPE_SAVE | LOADSAVETYPE_SCENARIO) : - w->widgets[WIDX_TITLE].image = STR_FILE_DIALOG_TITLE_SAVE_SCENARIO; + w->widgets[WIDX_TITLE].text = STR_FILE_DIALOG_TITLE_SAVE_SCENARIO; break; case (LOADSAVETYPE_LOAD | LOADSAVETYPE_TRACK) : - w->widgets[WIDX_TITLE].image = STR_FILE_DIALOG_TITLE_INSTALL_NEW_TRACK_DESIGN; + w->widgets[WIDX_TITLE].text = STR_FILE_DIALOG_TITLE_INSTALL_NEW_TRACK_DESIGN; break; case (LOADSAVETYPE_SAVE | LOADSAVETYPE_TRACK) : w->widgets[WIDX_TITLE].image = STR_FILE_DIALOG_TITLE_SAVE_TRACK; @@ -299,7 +299,7 @@ static void window_loadsave_mouseup(rct_window *w, int widgetIndex) templateString = (char *)language_get_string(templateStringId); strcpy(templateString, _defaultName); - window_text_input_open(w, WIDX_NEW, STR_NONE, 2710, templateStringId, 0, 64); + window_text_input_open(w, WIDX_NEW, STR_NONE, STR_FILEBROWSER_NAME_PROMPT, templateStringId, 0, 64); break; } case WIDX_BROWSE: @@ -497,11 +497,11 @@ static void window_loadsave_textinput(rct_window *w, int widgetIndex, char *text title_sequence_add_save(gCurrentTitleSequence, path, text); } else { - window_error_open(5404, STR_NONE); + window_error_open(STR_ERROR_EXISTING_NAME, STR_NONE); } } else { - window_error_open(5243, STR_NONE); + window_error_open(STR_ERROR_INVALID_CHARACTERS, STR_NONE); } return; } @@ -588,7 +588,7 @@ static void window_loadsave_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, i stringId = STR_BLACK_STRING; if (i == w->selected_list_item) { - stringId = STR_WINDOW_COLOUR_2_STRING; + stringId = STR_WINDOW_COLOUR_2_STRINGID; gfx_fill_rect(dpi, 0, y, 800, y + 9, 0x2000031); } @@ -775,7 +775,7 @@ static void window_loadsave_select(rct_window *w, const char *path) strcat(newName, ".sv6"); if (title_sequence_save_exists(gCurrentTitleSequence, newName)) { set_format_arg(0, uint32, (uint32)&_listItems[w->selected_list_item].name); - window_text_input_open(w, WIDX_SCROLL, 5435, 5404, 1170, (uint32)_listItems[w->selected_list_item].name, TITLE_SEQUENCE_MAX_SAVE_LENGTH - 1); + window_text_input_open(w, WIDX_SCROLL, STR_FILEBROWSER_RENAME_SAVE_TITLE, STR_ERROR_EXISTING_NAME, STR_STRING, (uint32)_listItems[w->selected_list_item].name, TITLE_SEQUENCE_MAX_SAVE_LENGTH - 1); } else { title_sequence_add_save(gCurrentTitleSequence, path, newName); @@ -790,8 +790,8 @@ static void window_loadsave_select(rct_window *w, const char *path) gfx_invalidate_screen(); window_loadsave_invoke_callback(MODAL_RESULT_OK); } else { - // 1050, not the best message... - window_error_open(STR_LOAD_GAME, 1050); + // Not the best message... + window_error_open(STR_LOAD_GAME, STR_FAILED_TO_LOAD_FILE_CONTAINS_INVALID_DATA); window_loadsave_invoke_callback(MODAL_RESULT_FAIL); } break; @@ -810,11 +810,11 @@ static void window_loadsave_select(rct_window *w, const char *path) window_loadsave_invoke_callback(MODAL_RESULT_OK); } else { - window_error_open(STR_SAVE_GAME, 1047); + window_error_open(STR_SAVE_GAME, STR_GAME_SAVE_FAILED); window_loadsave_invoke_callback(MODAL_RESULT_FAIL); } } else { - window_error_open(STR_SAVE_GAME, 1047); + window_error_open(STR_SAVE_GAME, STR_GAME_SAVE_FAILED); window_loadsave_invoke_callback(MODAL_RESULT_FAIL); } break; @@ -824,8 +824,8 @@ static void window_loadsave_select(rct_window *w, const char *path) gfx_invalidate_screen(); window_loadsave_invoke_callback(MODAL_RESULT_OK); } else { - // 1050, not the best message... - window_error_open(STR_LOAD_LANDSCAPE, 1050); + // Not the best message... + window_error_open(STR_LOAD_LANDSCAPE, STR_FAILED_TO_LOAD_FILE_CONTAINS_INVALID_DATA); window_loadsave_invoke_callback(MODAL_RESULT_FAIL); } break; @@ -841,11 +841,11 @@ static void window_loadsave_select(rct_window *w, const char *path) gfx_invalidate_screen(); window_loadsave_invoke_callback(MODAL_RESULT_OK); } else { - window_error_open(STR_SAVE_LANDSCAPE, 1049); + window_error_open(STR_SAVE_LANDSCAPE, STR_LANDSCAPE_SAVE_FAILED); window_loadsave_invoke_callback(MODAL_RESULT_FAIL); } } else { - window_error_open(STR_SAVE_LANDSCAPE, 1049); + window_error_open(STR_SAVE_LANDSCAPE, STR_LANDSCAPE_SAVE_FAILED); window_loadsave_invoke_callback(MODAL_RESULT_FAIL); } break; @@ -914,11 +914,11 @@ enum { }; static rct_widget window_overwrite_prompt_widgets[] = { - { WWT_FRAME, 0, 0, OVERWRITE_WW - 1, 0, OVERWRITE_WH - 1, STR_NONE, STR_NONE }, - { WWT_CAPTION, 0, 1, OVERWRITE_WW - 2, 1, 14, 2709, STR_WINDOW_TITLE_TIP }, - { WWT_CLOSEBOX, 0, OVERWRITE_WW - 13, OVERWRITE_WW - 3, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, - { WWT_DROPDOWN_BUTTON, 0, 10, 94, OVERWRITE_WH - 20, OVERWRITE_WH - 9, 2709, STR_NONE }, - { WWT_DROPDOWN_BUTTON, 0, OVERWRITE_WW - 95, OVERWRITE_WW - 11, OVERWRITE_WH - 20, OVERWRITE_WH - 9, STR_SAVE_PROMPT_CANCEL, STR_NONE }, + { WWT_FRAME, 0, 0, OVERWRITE_WW - 1, 0, OVERWRITE_WH - 1, STR_NONE, STR_NONE }, + { WWT_CAPTION, 0, 1, OVERWRITE_WW - 2, 1, 14, STR_FILEBROWSER_OVERWRITE_TITLE, STR_WINDOW_TITLE_TIP }, + { WWT_CLOSEBOX, 0, OVERWRITE_WW - 13, OVERWRITE_WW - 3, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, + { WWT_DROPDOWN_BUTTON, 0, 10, 94, OVERWRITE_WH - 20, OVERWRITE_WH - 9, STR_FILEBROWSER_OVERWRITE_TITLE, STR_NONE }, + { WWT_DROPDOWN_BUTTON, 0, OVERWRITE_WW - 95, OVERWRITE_WW - 11, OVERWRITE_WH - 20, OVERWRITE_WH - 9, STR_SAVE_PROMPT_CANCEL, STR_NONE }, { WIDGETS_END } }; @@ -1016,7 +1016,7 @@ static void window_overwrite_prompt_paint(rct_window *w, rct_drawpixelinfo *dpi) int x = w->x + w->width / 2; int y = w->y + (w->height / 2) - 3; - gfx_draw_string_centred_wrapped(dpi, &templateStringId, x, y, w->width - 4, 2708, 0); + gfx_draw_string_centred_wrapped(dpi, &templateStringId, x, y, w->width - 4, STR_FILEBROWSER_OVERWRITE_PROMPT, 0); } diff --git a/src/windows/map.c b/src/windows/map.c index d832159120..107b8690da 100644 --- a/src/windows/map.c +++ b/src/windows/map.c @@ -67,27 +67,27 @@ enum WINDOW_MAP_WIDGET_IDX { }; static rct_widget window_map_widgets[] = { - { WWT_FRAME, 0, 0, 244, 0, 258, STR_NONE, STR_NONE }, - { WWT_CAPTION, 0, 1, 243, 1, 14, STR_MAP_LABEL, STR_WINDOW_TITLE_TIP }, - { WWT_CLOSEBOX, 0, 232, 242, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, - { WWT_RESIZE, 1, 0, 244, 43, 257, STR_NONE, STR_NONE }, - { WWT_COLOURBTN, 1, 3, 33, 17, 43, 0x02000144E, STR_SHOW_PEOPLE_ON_MAP_TIP }, - { WWT_COLOURBTN, 1, 34, 64, 17, 43, 0x02000144E, STR_SHOW_RIDES_STALLS_ON_MAP_TIP }, - { WWT_SCROLL, 1, 3, 241, 46, 225, 0x3, STR_NONE }, - { WWT_SPINNER, 1, 104, 198, 229, 240, 0xC8C, STR_NONE }, - { WWT_DROPDOWN_BUTTON, 1, 187, 197, 230, 234, STR_NUMERIC_UP, STR_NONE }, - { WWT_DROPDOWN_BUTTON, 1, 187, 197, 235, 239, STR_NUMERIC_DOWN, STR_NONE }, - { WWT_FLATBTN, 1, 4, 27, 1, 24, SPR_BUY_LAND_RIGHTS, STR_SELECT_PARK_OWNED_LAND_TIP }, - { WWT_FLATBTN, 1, 4, 27, 1, 24, SPR_PARK_ENTRANCE, STR_BUILD_PARK_ENTRANCE_TIP }, - { WWT_FLATBTN, 1, 28, 51, 1, 24, SPR_NONE, STR_SET_STARTING_POSITIONS_TIP }, - { WWT_IMGBTN, 1, 4, 47, 17, 48, SPR_LAND_TOOL_SIZE_0, STR_NONE }, - { WWT_TRNBTN, 1, 5, 20, 18, 33, 0x02000157B, STR_ADJUST_SMALLER_LAND_TIP }, - { WWT_TRNBTN, 1, 31, 46, 32, 47, 0x02000157D, STR_ADJUST_LARGER_LAND_TIP }, - { WWT_CHECKBOX, 1, 58, 241, 197, 208, STR_LAND_OWNED, STR_SET_LAND_TO_BE_OWNED_TIP }, - { WWT_CHECKBOX, 1, 58, 241, 197, 208, STR_CONSTRUCTION_RIGHTS_OWNED, STR_SET_CONSTRUCTION_RIGHTS_TO_BE_OWNED_TIP }, - { WWT_CHECKBOX, 1, 58, 241, 197, 208, STR_LAND_SALE, STR_SET_LAND_TO_BE_AVAILABLE_TIP }, - { WWT_CHECKBOX, 1, 58, 231, 197, 208, STR_CONSTRUCTION_RIGHTS_SALE, STR_SET_CONSTRUCTION_RIGHTS_TO_BE_AVAILABLE_TIP }, - { WWT_FLATBTN, 1, 218, 241, 45, 68, SPR_ROTATE_ARROW, STR_ROTATE_OBJECTS_90 }, + { WWT_FRAME, 0, 0, 244, 0, 258, STR_NONE, STR_NONE }, + { WWT_CAPTION, 0, 1, 243, 1, 14, STR_MAP_LABEL, STR_WINDOW_TITLE_TIP }, + { WWT_CLOSEBOX, 0, 232, 242, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, + { WWT_RESIZE, 1, 0, 244, 43, 257, STR_NONE, STR_NONE }, + { WWT_COLOURBTN, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_SHOW_PEOPLE_ON_MAP_TIP }, + { WWT_COLOURBTN, 1, 34, 64, 17, 43, 0x20000000 | SPR_TAB, STR_SHOW_RIDES_STALLS_ON_MAP_TIP }, + { WWT_SCROLL, 1, 3, 241, 46, 225, SCROLL_BOTH, STR_NONE }, + { WWT_SPINNER, 1, 104, 198, 229, 240, STR_MAP_SIZE_VALUE, STR_NONE }, + { WWT_DROPDOWN_BUTTON, 1, 187, 197, 230, 234, STR_NUMERIC_UP, STR_NONE }, + { WWT_DROPDOWN_BUTTON, 1, 187, 197, 235, 239, STR_NUMERIC_DOWN, STR_NONE }, + { WWT_FLATBTN, 1, 4, 27, 1, 24, SPR_BUY_LAND_RIGHTS, STR_SELECT_PARK_OWNED_LAND_TIP }, + { WWT_FLATBTN, 1, 4, 27, 1, 24, SPR_PARK_ENTRANCE, STR_BUILD_PARK_ENTRANCE_TIP }, + { WWT_FLATBTN, 1, 28, 51, 1, 24, SPR_NONE, STR_SET_STARTING_POSITIONS_TIP }, + { WWT_IMGBTN, 1, 4, 47, 17, 48, SPR_LAND_TOOL_SIZE_0, STR_NONE }, + { WWT_TRNBTN, 1, 5, 20, 18, 33, 0x20000000 | SPR_LAND_TOOL_DECREASE, STR_ADJUST_SMALLER_LAND_TIP }, + { WWT_TRNBTN, 1, 31, 46, 32, 47, 0x20000000 | SPR_LAND_TOOL_INCREASE, STR_ADJUST_LARGER_LAND_TIP }, + { WWT_CHECKBOX, 1, 58, 241, 197, 208, STR_LAND_OWNED, STR_SET_LAND_TO_BE_OWNED_TIP }, + { WWT_CHECKBOX, 1, 58, 241, 197, 208, STR_CONSTRUCTION_RIGHTS_OWNED, STR_SET_CONSTRUCTION_RIGHTS_TO_BE_OWNED_TIP }, + { WWT_CHECKBOX, 1, 58, 241, 197, 208, STR_LAND_SALE, STR_SET_LAND_TO_BE_AVAILABLE_TIP }, + { WWT_CHECKBOX, 1, 58, 231, 197, 208, STR_CONSTRUCTION_RIGHTS_SALE, STR_SET_CONSTRUCTION_RIGHTS_TO_BE_AVAILABLE_TIP }, + { WWT_FLATBTN, 1, 218, 241, 45, 68, SPR_ROTATE_ARROW, STR_ROTATE_OBJECTS_90 }, { WIDGETS_END }, }; @@ -795,7 +795,7 @@ static void window_map_paint(rct_window *w, rct_drawpixelinfo *dpi) y = w->y + window_map_widgets[WIDX_LAND_TOOL].bottom + 5; // People starting position (scenario editor only) - if (w->widgets[WIDX_PEOPLE_STARTING_POSITION].type != 0) { + if (w->widgets[WIDX_PEOPLE_STARTING_POSITION].type != WWT_EMPTY) { x = w->x + w->widgets[WIDX_PEOPLE_STARTING_POSITION].left + 12; y = w->y + w->widgets[WIDX_PEOPLE_STARTING_POSITION].top + 18; gfx_draw_sprite(dpi, 0x0B6E0190A, x, y, 0); @@ -807,9 +807,20 @@ static void window_map_paint(rct_window *w, rct_drawpixelinfo *dpi) x = w->x + 4; y = w->y + w->widgets[WIDX_MAP].bottom + 2; + static rct_string_id mapLabels[] = { + STR_MAP_RIDE, + STR_MAP_FOOD_STALL, + STR_MAP_DRINK_STALL, + STR_MAP_SOUVENIR_STALL, + STR_MAP_INFO_KIOSK, + STR_MAP_FIRST_AID, + STR_MAP_CASH_MACHINE, + STR_MAP_TOILET, + }; + for (i = 0; i < 8; i++) { gfx_fill_rect(dpi, x, y + 2, x + 6, y + 8, RCT2_GLOBAL(0x00981BCC + (i * 2), uint8)); - gfx_draw_string_left(dpi, STR_MAP_RIDE + i, w, 0, x + 10, y); + gfx_draw_string_left(dpi, mapLabels[i], w, 0, x + 10, y); y += 10; if (i == 3) { x += 118; diff --git a/src/windows/map_tooltip.c b/src/windows/map_tooltip.c index 3c86e00ac3..de8ff9cbfd 100644 --- a/src/windows/map_tooltip.c +++ b/src/windows/map_tooltip.c @@ -21,7 +21,7 @@ #include "../interface/window.h" static rct_widget window_map_tooltip_widgets[] = { - { WWT_IMGBTN, 0, 0, 199, 0, 29, 0x0FFFFFFFF, STR_NONE }, + { WWT_IMGBTN, 0, 0, 199, 0, 29, 0xFFFFFFFF, STR_NONE }, { WIDGETS_END } }; @@ -152,5 +152,5 @@ static void window_map_tooltip_paint(rct_window *w, rct_drawpixelinfo *dpi) return; } - gfx_draw_string_centred_wrapped(dpi, gMapTooltipFormatArgs, w->x + (w->width / 2), w->y + (w->height / 2), w->width, 1162, 0); + gfx_draw_string_centred_wrapped(dpi, gMapTooltipFormatArgs, w->x + (w->width / 2), w->y + (w->height / 2), w->width, STR_MAP_TOOLTIP_STRINGID, 0); } diff --git a/src/windows/mapgen.c b/src/windows/mapgen.c index a92181b6ec..5ca04e18ba 100644 --- a/src/windows/mapgen.c +++ b/src/windows/mapgen.c @@ -86,85 +86,85 @@ enum { #pragma region Widgets static rct_widget window_mapgen_base_widgets[] = { - { WWT_FRAME, 0, 0, 299, 0, 195, 0xFFFFFFFF, STR_NONE }, - { WWT_CAPTION, 0, 1, 298, 1, 14, 2690, STR_WINDOW_TITLE_TIP }, - { WWT_CLOSEBOX, 0, 287, 297, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, - { WWT_RESIZE, 1, 0, 299, 43, 195, 0xFFFFFFFF, STR_NONE }, - { WWT_TAB, 1, 3, 33, 17, 43, 0x2000144E, STR_NONE }, - { WWT_TAB, 1, 34, 64, 17, 43, 0x2000144E, STR_NONE }, - { WWT_TAB, 1, 65, 95, 17, 43, 0x2000144E, STR_NONE }, + { WWT_FRAME, 0, 0, 299, 0, 195, 0xFFFFFFFF, STR_NONE }, + { WWT_CAPTION, 0, 1, 298, 1, 14, STR_MAPGEN_WINDOW_TITLE, STR_WINDOW_TITLE_TIP }, + { WWT_CLOSEBOX, 0, 287, 297, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, + { WWT_RESIZE, 1, 0, 299, 43, 195, 0xFFFFFFFF, STR_NONE }, + { WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_NONE }, + { WWT_TAB, 1, 34, 64, 17, 43, 0x20000000 | SPR_TAB, STR_NONE }, + { WWT_TAB, 1, 65, 95, 17, 43, 0x20000000 | SPR_TAB, STR_NONE }, - { WWT_DROPDOWN_BUTTON, 1, 104, 198, 52, 63, 2694, STR_NONE }, - - { WWT_SPINNER, 1, 104, 198, 52, 63, STR_NONE, STR_NONE }, - { WWT_DROPDOWN_BUTTON, 1, 187, 197, 53, 57, STR_NUMERIC_UP, STR_NONE }, - { WWT_DROPDOWN_BUTTON, 1, 187, 197, 58, 62, STR_NUMERIC_DOWN, STR_NONE }, - { WWT_SPINNER, 1, 104, 198, 70, 81, STR_NONE, STR_NONE }, - { WWT_DROPDOWN_BUTTON, 1, 187, 197, 71, 75, STR_NUMERIC_UP, STR_NONE }, - { WWT_DROPDOWN_BUTTON, 1, 187, 197, 76, 80, STR_NUMERIC_DOWN, STR_NONE }, - { WWT_SPINNER, 1, 104, 198, 88, 99, STR_NONE, STR_NONE }, - { WWT_DROPDOWN_BUTTON, 1, 187, 197, 89, 93, STR_NUMERIC_UP, STR_NONE }, - { WWT_DROPDOWN_BUTTON, 1, 187, 197, 94, 98, STR_NUMERIC_DOWN, STR_NONE }, - { WWT_FLATBTN, 1, 104, 150, 106, 141, 0xFFFFFFFF, STR_CHANGE_BASE_LAND_TIP }, - { WWT_FLATBTN, 1, 151, 197, 106, 141, 0xFFFFFFFF, STR_CHANGE_VERTICAL_LAND_TIP }, + { WWT_DROPDOWN_BUTTON, 1, 104, 198, 52, 63, STR_MAPGEN_ACTION_GENERATE, STR_NONE }, + + { WWT_SPINNER, 1, 104, 198, 52, 63, STR_NONE, STR_NONE }, + { WWT_DROPDOWN_BUTTON, 1, 187, 197, 53, 57, STR_NUMERIC_UP, STR_NONE }, + { WWT_DROPDOWN_BUTTON, 1, 187, 197, 58, 62, STR_NUMERIC_DOWN, STR_NONE }, + { WWT_SPINNER, 1, 104, 198, 70, 81, STR_NONE, STR_NONE }, + { WWT_DROPDOWN_BUTTON, 1, 187, 197, 71, 75, STR_NUMERIC_UP, STR_NONE }, + { WWT_DROPDOWN_BUTTON, 1, 187, 197, 76, 80, STR_NUMERIC_DOWN, STR_NONE }, + { WWT_SPINNER, 1, 104, 198, 88, 99, STR_NONE, STR_NONE }, + { WWT_DROPDOWN_BUTTON, 1, 187, 197, 89, 93, STR_NUMERIC_UP, STR_NONE }, + { WWT_DROPDOWN_BUTTON, 1, 187, 197, 94, 98, STR_NUMERIC_DOWN, STR_NONE }, + { WWT_FLATBTN, 1, 104, 150, 106, 141, 0xFFFFFFFF, STR_CHANGE_BASE_LAND_TIP }, + { WWT_FLATBTN, 1, 151, 197, 106, 141, 0xFFFFFFFF, STR_CHANGE_VERTICAL_LAND_TIP }, { WIDGETS_END }, }; static rct_widget window_mapgen_random_widgets[] = { - { WWT_FRAME, 0, 0, 299, 0, 195, 0xFFFFFFFF, STR_NONE }, - { WWT_CAPTION, 0, 1, 298, 1, 14, 2690, STR_WINDOW_TITLE_TIP }, - { WWT_CLOSEBOX, 0, 287, 297, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, - { WWT_RESIZE, 1, 0, 299, 43, 195, 0xFFFFFFFF, STR_NONE }, - { WWT_TAB, 1, 3, 33, 17, 43, 0x2000144E, STR_NONE }, - { WWT_TAB, 1, 34, 64, 17, 43, 0x2000144E, STR_NONE }, - { WWT_TAB, 1, 65, 95, 17, 43, 0x2000144E, STR_NONE }, + { WWT_FRAME, 0, 0, 299, 0, 195, 0xFFFFFFFF, STR_NONE }, + { WWT_CAPTION, 0, 1, 298, 1, 14, STR_MAPGEN_WINDOW_TITLE, STR_WINDOW_TITLE_TIP }, + { WWT_CLOSEBOX, 0, 287, 297, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, + { WWT_RESIZE, 1, 0, 299, 43, 195, 0xFFFFFFFF, STR_NONE }, + { WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_NONE }, + { WWT_TAB, 1, 34, 64, 17, 43, 0x20000000 | SPR_TAB, STR_NONE }, + { WWT_TAB, 1, 65, 95, 17, 43, 0x20000000 | SPR_TAB, STR_NONE }, - { WWT_DROPDOWN_BUTTON, 1, 104, 198, 52, 63, 2694, STR_NONE }, - - { WWT_CHECKBOX, 1, 4, 198, 52, 63, 2695, STR_NONE }, - { WWT_CHECKBOX, 1, 4, 198, 70, 81, 2696, STR_NONE }, + { WWT_DROPDOWN_BUTTON, 1, 104, 198, 52, 63, STR_MAPGEN_ACTION_GENERATE, STR_NONE }, + + { WWT_CHECKBOX, 1, 4, 198, 52, 63, STR_MAPGEN_OPTION_RANDOM_TERRAIN, STR_NONE }, + { WWT_CHECKBOX, 1, 4, 198, 70, 81, STR_MAPGEN_OPTION_PLACE_TREES, STR_NONE }, { WIDGETS_END }, }; static rct_widget window_mapgen_simplex_widgets[] = { - { WWT_FRAME, 0, 0, 299, 0, 195, 0xFFFFFFFF, STR_NONE }, - { WWT_CAPTION, 0, 1, 298, 1, 14, 2690, STR_WINDOW_TITLE_TIP }, - { WWT_CLOSEBOX, 0, 287, 297, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, - { WWT_RESIZE, 1, 0, 299, 43, 195, 0xFFFFFFFF, STR_NONE }, - { WWT_TAB, 1, 3, 33, 17, 43, 0x2000144E, STR_NONE }, - { WWT_TAB, 1, 34, 64, 17, 43, 0x2000144E, STR_NONE }, - { WWT_TAB, 1, 65, 95, 17, 43, 0x2000144E, STR_NONE }, + { WWT_FRAME, 0, 0, 299, 0, 195, 0xFFFFFFFF, STR_NONE }, + { WWT_CAPTION, 0, 1, 298, 1, 14, STR_MAPGEN_WINDOW_TITLE, STR_WINDOW_TITLE_TIP }, + { WWT_CLOSEBOX, 0, 287, 297, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, + { WWT_RESIZE, 1, 0, 299, 43, 195, 0xFFFFFFFF, STR_NONE }, + { WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_NONE }, + { WWT_TAB, 1, 34, 64, 17, 43, 0x20000000 | SPR_TAB, STR_NONE }, + { WWT_TAB, 1, 65, 95, 17, 43, 0x20000000 | SPR_TAB, STR_NONE }, - { WWT_DROPDOWN_BUTTON, 1, 104, 198, 52, 63, 2694, STR_NONE }, - - { WWT_12, 1, 4, 198, 52, 63, 2685, STR_NONE }, - - { WWT_SPINNER, 1, 104, 198, 70, 81, STR_NONE, STR_NONE }, - { WWT_DROPDOWN_BUTTON, 1, 187, 197, 71, 75, STR_NUMERIC_UP, STR_NONE }, - { WWT_DROPDOWN_BUTTON, 1, 187, 197, 76, 80, STR_NUMERIC_DOWN, STR_NONE }, - - { WWT_SPINNER, 1, 104, 198, 88, 99, STR_NONE, STR_NONE }, - { WWT_DROPDOWN_BUTTON, 1, 187, 197, 89, 93, STR_NUMERIC_UP, STR_NONE }, - { WWT_DROPDOWN_BUTTON, 1, 187, 197, 94, 98, STR_NUMERIC_DOWN, STR_NONE }, - - { WWT_SPINNER, 1, 104, 198, 106, 117, STR_NONE, STR_NONE }, - { WWT_DROPDOWN_BUTTON, 1, 187, 197, 107, 111, STR_NUMERIC_UP, STR_NONE }, - { WWT_DROPDOWN_BUTTON, 1, 187, 197, 112, 116, STR_NUMERIC_DOWN, STR_NONE }, - - { WWT_SPINNER, 1, 104, 198, 124, 135, STR_NONE, STR_NONE }, - { WWT_DROPDOWN_BUTTON, 1, 187, 197, 125, 129, STR_NUMERIC_UP, STR_NONE }, - { WWT_DROPDOWN_BUTTON, 1, 187, 197, 130, 134, STR_NUMERIC_DOWN, STR_NONE }, - - { WWT_SPINNER, 1, 104, 198, 148, 159, STR_NONE, STR_NONE }, - { WWT_DROPDOWN_BUTTON, 1, 187, 197, 149, 153, STR_NUMERIC_UP, STR_NONE }, - { WWT_DROPDOWN_BUTTON, 1, 187, 197, 154, 158, STR_NUMERIC_DOWN, STR_NONE }, - - { WWT_SPINNER, 1, 104, 198, 166, 177, STR_NONE, STR_NONE }, - { WWT_DROPDOWN_BUTTON, 1, 187, 197, 167, 171, STR_NUMERIC_UP, STR_NONE }, - { WWT_DROPDOWN_BUTTON, 1, 187, 197, 172, 176, STR_NUMERIC_DOWN, STR_NONE }, - - { WWT_FLATBTN, 1, 225, 271, 68, 103, 0xFFFFFFFF, STR_CHANGE_BASE_LAND_TIP }, - { WWT_FLATBTN, 1, 225, 271, 104, 139, 0xFFFFFFFF, STR_CHANGE_VERTICAL_LAND_TIP }, + { WWT_DROPDOWN_BUTTON, 1, 104, 198, 52, 63, STR_MAPGEN_ACTION_GENERATE, STR_NONE }, + + { WWT_12, 1, 4, 198, 52, 63, STR_MAPGEN_SIMPLEX_NOISE, STR_NONE }, + + { WWT_SPINNER, 1, 104, 198, 70, 81, STR_NONE, STR_NONE }, + { WWT_DROPDOWN_BUTTON, 1, 187, 197, 71, 75, STR_NUMERIC_UP, STR_NONE }, + { WWT_DROPDOWN_BUTTON, 1, 187, 197, 76, 80, STR_NUMERIC_DOWN, STR_NONE }, + + { WWT_SPINNER, 1, 104, 198, 88, 99, STR_NONE, STR_NONE }, + { WWT_DROPDOWN_BUTTON, 1, 187, 197, 89, 93, STR_NUMERIC_UP, STR_NONE }, + { WWT_DROPDOWN_BUTTON, 1, 187, 197, 94, 98, STR_NUMERIC_DOWN, STR_NONE }, + + { WWT_SPINNER, 1, 104, 198, 106, 117, STR_NONE, STR_NONE }, + { WWT_DROPDOWN_BUTTON, 1, 187, 197, 107, 111, STR_NUMERIC_UP, STR_NONE }, + { WWT_DROPDOWN_BUTTON, 1, 187, 197, 112, 116, STR_NUMERIC_DOWN, STR_NONE }, + + { WWT_SPINNER, 1, 104, 198, 124, 135, STR_NONE, STR_NONE }, + { WWT_DROPDOWN_BUTTON, 1, 187, 197, 125, 129, STR_NUMERIC_UP, STR_NONE }, + { WWT_DROPDOWN_BUTTON, 1, 187, 197, 130, 134, STR_NUMERIC_DOWN, STR_NONE }, + + { WWT_SPINNER, 1, 104, 198, 148, 159, STR_NONE, STR_NONE }, + { WWT_DROPDOWN_BUTTON, 1, 187, 197, 149, 153, STR_NUMERIC_UP, STR_NONE }, + { WWT_DROPDOWN_BUTTON, 1, 187, 197, 154, 158, STR_NUMERIC_DOWN, STR_NONE }, + + { WWT_SPINNER, 1, 104, 198, 166, 177, STR_NONE, STR_NONE }, + { WWT_DROPDOWN_BUTTON, 1, 187, 197, 167, 171, STR_NUMERIC_UP, STR_NONE }, + { WWT_DROPDOWN_BUTTON, 1, 187, 197, 172, 176, STR_NUMERIC_DOWN, STR_NONE }, + + { WWT_FLATBTN, 1, 225, 271, 68, 103, 0xFFFFFFFF, STR_CHANGE_BASE_LAND_TIP }, + { WWT_FLATBTN, 1, 225, 271, 104, 139, 0xFFFFFFFF, STR_CHANGE_VERTICAL_LAND_TIP }, { WIDGETS_END }, }; @@ -487,17 +487,17 @@ static void window_mapgen_base_mouseup(rct_window *w, int widgetIndex) TextInputDescriptionArgs[0] = MINIMUM_MAP_SIZE_PRACTICAL; TextInputDescriptionArgs[1] = MAXIMUM_MAP_SIZE_PRACTICAL; // Practical map size is 2 lower than the technical map size - window_text_input_open(w, WIDX_MAP_SIZE, STR_MAP_SIZE_2, STR_ENTER_MAP_SIZE, 5182, _mapSize - 2, 4); + window_text_input_open(w, WIDX_MAP_SIZE, STR_MAP_SIZE_2, STR_ENTER_MAP_SIZE, STR_FORMAT_INTEGER, _mapSize - 2, 4); break; case WIDX_BASE_HEIGHT: TextInputDescriptionArgs[0] = (BASESIZE_MIN - 12) / 2; TextInputDescriptionArgs[1] = (BASESIZE_MAX - 12) / 2; - window_text_input_open(w, WIDX_BASE_HEIGHT, STR_BASE_HEIGHT, STR_ENTER_BASE_HEIGHT, 5182, (_baseHeight - 12) / 2, 3); + window_text_input_open(w, WIDX_BASE_HEIGHT, STR_BASE_HEIGHT, STR_ENTER_BASE_HEIGHT, STR_FORMAT_INTEGER, (_baseHeight - 12) / 2, 3); break; case WIDX_WATER_LEVEL: TextInputDescriptionArgs[0] = (WATERLEVEL_MIN - 12) / 2; TextInputDescriptionArgs[1] = (WATERLEVEL_MAX - 12) / 2; - window_text_input_open(w, WIDX_WATER_LEVEL, STR_WATER_LEVEL, STR_ENTER_WATER_LEVEL, 5182, (_waterLevel - 12) / 2, 3); + window_text_input_open(w, WIDX_WATER_LEVEL, STR_WATER_LEVEL, STR_ENTER_WATER_LEVEL, STR_FORMAT_INTEGER, (_waterLevel - 12) / 2, 3); break; } } @@ -681,13 +681,13 @@ static void window_mapgen_base_paint(rct_window *w, rct_drawpixelinfo *dpi) // The practical map size is 2 lower than the technical map size uint16 mapSizeArgs[2] = { _mapSize - 2, _mapSize -2 }; - gfx_draw_string_left(dpi, 839, mapSizeArgs, w->colours[1], w->x + w->widgets[WIDX_MAP_SIZE].left + 1, w->y + w->widgets[WIDX_MAP_SIZE].top + 1); + gfx_draw_string_left(dpi, STR_RESOLUTION_X_BY_Y, mapSizeArgs, w->colours[1], w->x + w->widgets[WIDX_MAP_SIZE].left + 1, w->y + w->widgets[WIDX_MAP_SIZE].top + 1); arg = (_baseHeight - 12) / 2; - gfx_draw_string_left(dpi, 1737, &arg, w->colours[1], w->x + w->widgets[WIDX_BASE_HEIGHT].left + 1, w->y + w->widgets[WIDX_BASE_HEIGHT].top + 1); + gfx_draw_string_left(dpi, STR_MAPGEN_COMMA16, &arg, w->colours[1], w->x + w->widgets[WIDX_BASE_HEIGHT].left + 1, w->y + w->widgets[WIDX_BASE_HEIGHT].top + 1); arg = (_waterLevel - 12) / 2; - gfx_draw_string_left(dpi, 1737, &arg, w->colours[1], w->x + w->widgets[WIDX_WATER_LEVEL].left + 1, w->y + w->widgets[WIDX_WATER_LEVEL].top + 1); + gfx_draw_string_left(dpi, STR_MAPGEN_COMMA16, &arg, w->colours[1], w->x + w->widgets[WIDX_WATER_LEVEL].left + 1, w->y + w->widgets[WIDX_WATER_LEVEL].top + 1); } #pragma endregion @@ -791,7 +791,7 @@ static void window_mapgen_simplex_mouseup(rct_window *w, int widgetIndex) TextInputDescriptionArgs[0] = MINIMUM_MAP_SIZE_PRACTICAL; TextInputDescriptionArgs[1] = MAXIMUM_MAP_SIZE_PRACTICAL; // Practical map size is 2 lower than the technical map size - window_text_input_open(w, WIDX_SIMPLEX_MAP_SIZE, STR_MAP_SIZE_2, STR_ENTER_MAP_SIZE, 5182, _mapSize - 2, 4); + window_text_input_open(w, WIDX_SIMPLEX_MAP_SIZE, STR_MAP_SIZE_2, STR_ENTER_MAP_SIZE, STR_FORMAT_INTEGER, _mapSize - 2, 4); break; case WIDX_GENERATE: mapgenSettings.mapSize = _mapSize; @@ -978,24 +978,24 @@ static void window_mapgen_simplex_paint(rct_window *w, rct_drawpixelinfo *dpi) window_draw_widgets(w, dpi); window_mapgen_draw_tab_images(dpi, w); - gfx_draw_string_left(dpi, 2686, 0, 0, w->x + 5, w->y + w->widgets[WIDX_SIMPLEX_LOW].top + 1); - gfx_draw_string_left(dpi, 2687, 0, 0, w->x + 5, w->y + w->widgets[WIDX_SIMPLEX_HIGH].top + 1); - gfx_draw_string_left(dpi, 2688, 0, 0, w->x + 5, w->y + w->widgets[WIDX_SIMPLEX_BASE_FREQ].top + 1); - gfx_draw_string_left(dpi, 2689, 0, 0, w->x + 5, w->y + w->widgets[WIDX_SIMPLEX_OCTAVES].top + 1); + gfx_draw_string_left(dpi, STR_MAPGEN_SIMPLEX_NOISE_LOW_, 0, 0, w->x + 5, w->y + w->widgets[WIDX_SIMPLEX_LOW].top + 1); + gfx_draw_string_left(dpi, STR_MAPGEN_SIMPLEX_NOISE_HIGH, 0, 0, w->x + 5, w->y + w->widgets[WIDX_SIMPLEX_HIGH].top + 1); + gfx_draw_string_left(dpi, STR_MAPGEN_SIMPLEX_NOISE_BASE_FREQUENCY, 0, 0, w->x + 5, w->y + w->widgets[WIDX_SIMPLEX_BASE_FREQ].top + 1); + gfx_draw_string_left(dpi, STR_MAPGEN_SIMPLEX_NOISE_OCTAVES, 0, 0, w->x + 5, w->y + w->widgets[WIDX_SIMPLEX_OCTAVES].top + 1); gfx_draw_string_left(dpi, STR_MAP_SIZE, 0, 0, w->x + 5, w->y + w->widgets[WIDX_SIMPLEX_MAP_SIZE].top + 1); - gfx_draw_string_left(dpi, 2692, 0, 0, w->x + 5, w->y + w->widgets[WIDX_SIMPLEX_WATER_LEVEL].top + 1); + gfx_draw_string_left(dpi, STR_WATER_LEVEL_LABEL, 0, 0, w->x + 5, w->y + w->widgets[WIDX_SIMPLEX_WATER_LEVEL].top + 1); - gfx_draw_string_left(dpi, 1737, &_simplex_low, w->colours[1], w->x + w->widgets[WIDX_SIMPLEX_LOW].left + 1, w->y + w->widgets[WIDX_SIMPLEX_LOW].top + 1); - gfx_draw_string_left(dpi, 1737, &_simplex_high, w->colours[1], w->x + w->widgets[WIDX_SIMPLEX_HIGH].left + 1, w->y + w->widgets[WIDX_SIMPLEX_HIGH].top + 1); - gfx_draw_string_left(dpi, 3311, &_simplex_base_freq, w->colours[1], w->x + w->widgets[WIDX_SIMPLEX_BASE_FREQ].left + 1, w->y + w->widgets[WIDX_SIMPLEX_BASE_FREQ].top + 1); - gfx_draw_string_left(dpi, 1737, &_simplex_octaves, w->colours[1], w->x + w->widgets[WIDX_SIMPLEX_OCTAVES].left + 1, w->y + w->widgets[WIDX_SIMPLEX_OCTAVES].top + 1); + gfx_draw_string_left(dpi, STR_MAPGEN_COMMA16, &_simplex_low, w->colours[1], w->x + w->widgets[WIDX_SIMPLEX_LOW].left + 1, w->y + w->widgets[WIDX_SIMPLEX_LOW].top + 1); + gfx_draw_string_left(dpi, STR_MAPGEN_COMMA16, &_simplex_high, w->colours[1], w->x + w->widgets[WIDX_SIMPLEX_HIGH].left + 1, w->y + w->widgets[WIDX_SIMPLEX_HIGH].top + 1); + gfx_draw_string_left(dpi, STR_WINDOW_OBJECTIVE_VALUE_RATING, &_simplex_base_freq, w->colours[1], w->x + w->widgets[WIDX_SIMPLEX_BASE_FREQ].left + 1, w->y + w->widgets[WIDX_SIMPLEX_BASE_FREQ].top + 1); + gfx_draw_string_left(dpi, STR_MAPGEN_COMMA16, &_simplex_octaves, w->colours[1], w->x + w->widgets[WIDX_SIMPLEX_OCTAVES].left + 1, w->y + w->widgets[WIDX_SIMPLEX_OCTAVES].top + 1); // The practical map size is 2 lower than the technical map size uint16 mapSizeArgs[2] = { _mapSize - 2, _mapSize - 2 }; - gfx_draw_string_left(dpi, 839, mapSizeArgs, w->colours[1], w->x + w->widgets[WIDX_SIMPLEX_MAP_SIZE].left + 1, w->y + w->widgets[WIDX_SIMPLEX_MAP_SIZE].top + 1); + gfx_draw_string_left(dpi, STR_RESOLUTION_X_BY_Y, mapSizeArgs, w->colours[1], w->x + w->widgets[WIDX_SIMPLEX_MAP_SIZE].left + 1, w->y + w->widgets[WIDX_SIMPLEX_MAP_SIZE].top + 1); arg = (_waterLevel - 12) / 2; - gfx_draw_string_left(dpi, 1737, &arg, w->colours[1], w->x + w->widgets[WIDX_SIMPLEX_WATER_LEVEL].left + 1, w->y + w->widgets[WIDX_SIMPLEX_WATER_LEVEL].top + 1); + gfx_draw_string_left(dpi, STR_MAPGEN_COMMA16, &arg, w->colours[1], w->x + w->widgets[WIDX_SIMPLEX_WATER_LEVEL].left + 1, w->y + w->widgets[WIDX_SIMPLEX_WATER_LEVEL].top + 1); } #pragma endregion diff --git a/src/windows/maze_construction.c b/src/windows/maze_construction.c index 030b948a4d..dcdc3d9d4e 100644 --- a/src/windows/maze_construction.c +++ b/src/windows/maze_construction.c @@ -26,6 +26,7 @@ #include "../localisation/localisation.h" #include "../ride/track.h" #include "dropdown.h" +#include "../sprites.h" #pragma region Widgets @@ -48,14 +49,14 @@ enum { static rct_widget window_maze_construction_widgets[] = { { WWT_FRAME, 0, 0, 165, 0, 199, 0xFFFFFFFF, STR_NONE }, - { WWT_CAPTION, 0, 1, 164, 1, 14, 896, STR_WINDOW_TITLE_TIP }, + { WWT_CAPTION, 0, 1, 164, 1, 14, STR_RIDE_CONSTRUCTION_WINDOW_TITLE, STR_WINDOW_TITLE_TIP }, { WWT_CLOSEBOX, 0, 153, 163, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, { WWT_GROUPBOX, 0, 3, 162, 17, 71, STR_RIDE_CONSTRUCTION_MODE, STR_NONE }, { WWT_EMPTY, 0, 0, 0, 0, 0, 0xFFFFFFFF, STR_NONE }, { WWT_EMPTY, 0, 0, 0, 0, 0, 0xFFFFFFFF, STR_NONE }, - { WWT_FLATBTN, 1, 35, 66, 29, 60, 0x15C8, STR_RIDE_CONSTRUCTION_BUILD_MODE }, - { WWT_FLATBTN, 1, 67, 98, 29, 60, 0x15C9, STR_RIDE_CONSTRUCTION_MOVE_MODE }, - { WWT_FLATBTN, 1, 99, 130, 29, 60, 0x15CA, STR_RIDE_CONSTRUCTION_FILL_IN_MODE }, + { WWT_FLATBTN, 1, 35, 66, 29, 60, SPR_MAZE_CONSTRUCTION_BUILD, STR_RIDE_CONSTRUCTION_BUILD_MODE }, + { WWT_FLATBTN, 1, 67, 98, 29, 60, SPR_MAZE_CONSTRUCTION_MOVE, STR_RIDE_CONSTRUCTION_MOVE_MODE }, + { WWT_FLATBTN, 1, 99, 130, 29, 60, SPR_MAZE_CONSTRUCTION_FILL_IN, STR_RIDE_CONSTRUCTION_FILL_IN_MODE }, { WWT_EMPTY, 0, 0, 0, 0, 0, 0xFFFFFFFF, STR_NONE }, { WWT_EMPTY, 0, 0, 0, 0, 0, 0xFFFFFFFF, STR_NONE }, { WWT_EMPTY, 0, 0, 0, 0, 0, 0xFFFFFFFF, STR_NONE }, @@ -71,10 +72,10 @@ static rct_widget window_maze_construction_widgets[] = { { WWT_EMPTY, 0, 0, 0, 0, 0, 0xFFFFFFFF, STR_NONE }, { WWT_EMPTY, 0, 0, 0, 0, 0, 0xFFFFFFFF, STR_NONE }, { WWT_GROUPBOX, 0, 3, 162, 80, 166, STR_RIDE_CONSTRUCTION_BUILD, STR_NONE }, - { WWT_FLATBTN, 1, 83, 127, 96, 124, 0x1603, STR_RIDE_CONSTRUCTION_BUILD_MAZE_IN_THIS_DIRECTION_TIP }, - { WWT_FLATBTN, 1, 83, 127, 125, 153, 0x1604, STR_RIDE_CONSTRUCTION_BUILD_MAZE_IN_THIS_DIRECTION_TIP }, - { WWT_FLATBTN, 1, 38, 82, 125, 153, 0x1605, STR_RIDE_CONSTRUCTION_BUILD_MAZE_IN_THIS_DIRECTION_TIP }, - { WWT_FLATBTN, 1, 38, 82, 96, 124, 0x1606, STR_RIDE_CONSTRUCTION_BUILD_MAZE_IN_THIS_DIRECTION_TIP }, + { WWT_FLATBTN, 1, 83, 127, 96, 124, SPR_CONSTRUCTION_DIRECTION_NE, STR_RIDE_CONSTRUCTION_BUILD_MAZE_IN_THIS_DIRECTION_TIP }, + { WWT_FLATBTN, 1, 83, 127, 125, 153, SPR_CONSTRUCTION_DIRECTION_SE, STR_RIDE_CONSTRUCTION_BUILD_MAZE_IN_THIS_DIRECTION_TIP }, + { WWT_FLATBTN, 1, 38, 82, 125, 153, SPR_CONSTRUCTION_DIRECTION_SW, STR_RIDE_CONSTRUCTION_BUILD_MAZE_IN_THIS_DIRECTION_TIP }, + { WWT_FLATBTN, 1, 38, 82, 96, 124, SPR_CONSTRUCTION_DIRECTION_NW, STR_RIDE_CONSTRUCTION_BUILD_MAZE_IN_THIS_DIRECTION_TIP }, { WWT_GROUPBOX, 0, 3, 162, 168, 195, 0xFFFFFFFF, STR_NONE }, { WWT_DROPDOWN_BUTTON, 1, 9, 78, 178, 189, STR_RIDE_CONSTRUCTION_ENTRANCE, STR_RIDE_CONSTRUCTION_ENTRANCE_TIP }, { WWT_DROPDOWN_BUTTON, 1, 87, 156, 178, 189, STR_RIDE_CONSTRUCTION_EXIT, STR_RIDE_CONSTRUCTION_EXIT_TIP }, @@ -360,7 +361,7 @@ static void window_maze_construction_entrance_tooldown(int x, int y, rct_window* uint8 rideIndex = gRideEntranceExitPlaceRideIndex; uint8 entranceExitType = gRideEntranceExitPlaceType; - gGameCommandErrorTitle = entranceExitType ? 1144 : 1145; + gGameCommandErrorTitle = entranceExitType ? STR_CANT_BUILD_MOVE_ENTRANCE_FOR_THIS_RIDE_ATTRACTION : STR_CANT_BUILD_MOVE_EXIT_FOR_THIS_RIDE_ATTRACTION; money32 cost = game_do_command( x, diff --git a/src/windows/multiplayer.c b/src/windows/multiplayer.c index 06d5abeb9d..f440afbbec 100644 --- a/src/windows/multiplayer.c +++ b/src/windows/multiplayer.c @@ -57,14 +57,14 @@ enum WINDOW_MULTIPLAYER_WIDGET_IDX { }; #define MAIN_MULTIPLAYER_WIDGETS \ - { WWT_FRAME, 0, 0, 339, 0, 239, 0x0FFFFFFFF, STR_NONE }, /* panel / background */ \ + { WWT_FRAME, 0, 0, 339, 0, 239, 0xFFFFFFFF, STR_NONE }, /* panel / background */ \ { WWT_CAPTION, 0, 1, 338, 1, 14, STR_MULTIPLAYER, STR_WINDOW_TITLE_TIP }, /* title bar */ \ { WWT_CLOSEBOX, 0, 327, 337, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, /* close x button */ \ - { WWT_RESIZE, 1, 0, 339, 43, 239, 0x0FFFFFFFF, STR_NONE }, /* content panel */ \ - { WWT_TAB, 1, 3, 33, 17, 43, 0x02000144E, STR_SHOW_SERVER_INFO_TIP }, /* tab */ \ - { WWT_TAB, 1, 3, 33, 17, 43, 0x02000144E, STR_PLAYERS_TIP }, /* tab */ \ - { WWT_TAB, 1, 3, 33, 17, 43, 0x02000144E, STR_GROUPS_TIP }, /* tab */ \ - { WWT_TAB, 1, 3, 33, 17, 43, 0x02000144E, STR_OPTIONS_TIP } /* tab */ \ + { WWT_RESIZE, 1, 0, 339, 43, 239, 0xFFFFFFFF, STR_NONE }, /* content panel */ \ + { WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_SHOW_SERVER_INFO_TIP }, /* tab */ \ + { WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_PLAYERS_TIP }, /* tab */ \ + { WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_GROUPS_TIP }, /* tab */ \ + { WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_OPTIONS_TIP } /* tab */ \ static rct_widget window_multiplayer_information_widgets[] = { MAIN_MULTIPLAYER_WIDGETS, @@ -73,20 +73,20 @@ static rct_widget window_multiplayer_information_widgets[] = { static rct_widget window_multiplayer_players_widgets[] = { MAIN_MULTIPLAYER_WIDGETS, - { WWT_SCROLL, 1, 3, 336, 60, 236, 2, STR_NONE }, // list + { WWT_SCROLL, 1, 3, 336, 60, 236, SCROLL_VERTICAL, STR_NONE }, // list { WIDGETS_END } }; static rct_widget window_multiplayer_groups_widgets[] = { MAIN_MULTIPLAYER_WIDGETS, - { WWT_DROPDOWN, 1, 141, 315, 46, 57, 0x0FFFFFFFF, STR_NONE }, // default group - { WWT_DROPDOWN_BUTTON, 1, 305, 315, 47, 56, 876, STR_NONE }, // + { WWT_DROPDOWN, 1, 141, 315, 46, 57, 0xFFFFFFFF, STR_NONE }, // default group + { WWT_DROPDOWN_BUTTON, 1, 305, 315, 47, 56, STR_DROPDOWN_GLYPH, STR_NONE }, // { WWT_DROPDOWN_BUTTON, 1, 11, 102, 65, 76, STR_ADD_GROUP, STR_NONE }, // add group button { WWT_DROPDOWN_BUTTON, 1, 113, 204, 65, 76, STR_REMOVE_GROUP, STR_NONE }, // remove group button { WWT_DROPDOWN_BUTTON, 1, 215, 306, 65, 76, STR_RENAME_GROUP, STR_NONE }, // rename group button - { WWT_DROPDOWN, 1, 72, 246, 80, 91, 0x0FFFFFFFF, STR_NONE }, // selected group - { WWT_DROPDOWN_BUTTON, 1, 236, 246, 81, 90, 876, STR_NONE }, // - { WWT_SCROLL, 1, 3, 316, 94, 300, 2, STR_NONE }, // permissions list + { WWT_DROPDOWN, 1, 72, 246, 80, 91, 0xFFFFFFFF, STR_NONE }, // selected group + { WWT_DROPDOWN_BUTTON, 1, 236, 246, 81, 90, STR_DROPDOWN_GLYPH, STR_NONE }, // + { WWT_SCROLL, 1, 3, 316, 94, 300, SCROLL_VERTICAL, STR_NONE }, // permissions list { WIDGETS_END } }; @@ -358,7 +358,7 @@ static void window_multiplayer_groups_show_group_dropdown(rct_window *w, rct_wid ); for (i = 0; i < network_get_num_groups(); i++) { - gDropdownItemsFormat[i] = 2777; + gDropdownItemsFormat[i] = STR_OPTIONS_DROPDOWN_ITEM; gDropdownItemsArgs[i] = (int)network_get_group_name(i); } if (widget == &window_multiplayer_groups_widgets[WIDX_DEFAULT_GROUP_DROPDOWN]) { @@ -586,7 +586,7 @@ static void window_multiplayer_players_paint(rct_window *w, rct_drawpixelinfo *d gfx_draw_string_left(dpi, STR_PING, NULL, w->colours[2], w->x + 363, 58 - 12 + w->y + 1); // Number of players - stringId = w->no_list_items == 1 ? STR_X_PLAYER : STR_X_PLAYERS; + stringId = w->no_list_items == 1 ? STR_RIDE_COMPONENT_PLAYER_COUNT : STR_RIDE_COMPONENT_PLAYER_COUNT_PLURAL; x = w->x + 4; y = w->y + w->widgets[WIDX_LIST].bottom + 2; gfx_draw_string_left(dpi, stringId, &w->no_list_items, w->colours[2], x, y); @@ -895,7 +895,7 @@ static void window_multiplayer_groups_scrollpaint(rct_window *w, rct_drawpixelin // Draw action name set_format_arg(0, uint16, network_get_action_name_string_id(i)); - gfx_draw_string_left(dpi, STR_WINDOW_COLOUR_2_STRING, gCommonFormatArgs, 0, 10, y - 1); + gfx_draw_string_left(dpi, STR_WINDOW_COLOUR_2_STRINGID, gCommonFormatArgs, 0, 10, y - 1); } y += 10; } diff --git a/src/windows/music_credits.c b/src/windows/music_credits.c index 536efd955c..fdb11cafeb 100644 --- a/src/windows/music_credits.c +++ b/src/windows/music_credits.c @@ -27,10 +27,10 @@ enum WINDOW_MUSIC_CREDITS_WIDGET_IDX { }; rct_widget window_music_credits_widgets[] = { - { WWT_FRAME, 0, 0, 509, 0, 313, 0x0FFFFFFFF, STR_NONE }, // panel / background + { WWT_FRAME, 0, 0, 509, 0, 313, 0xFFFFFFFF, STR_NONE }, // panel / background { WWT_CAPTION, 0, 1, 508, 1, 14, STR_MUSIC_ACKNOWLEDGEMENTS, STR_WINDOW_TITLE_TIP }, // title bar { WWT_CLOSEBOX, 0, 497, 507, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // close x button - { WWT_SCROLL, 0, 4, 505, 18, 309, 2, STR_NONE }, // scroll + { WWT_SCROLL, 0, 4, 505, 18, 309, SCROLL_VERTICAL, STR_NONE }, // scroll { WIDGETS_END }, }; @@ -138,10 +138,11 @@ static void window_music_credits_paint(rct_window *w, rct_drawpixelinfo *dpi) */ static void window_music_credits_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex) { + // TODO: Clean up string addition int x = 245; int y = 2; - int string = 0xB30; + int string = STR_MUSIC_ACKNOWLEDGEMENTS_LINE_0; for (int i = 0; i < 12; i++) { gfx_draw_string_centred(dpi, string, x, y, 0, 0); y += 10; diff --git a/src/windows/network_status.c b/src/windows/network_status.c index 75f8f14cf0..92cf59be6b 100644 --- a/src/windows/network_status.c +++ b/src/windows/network_status.c @@ -31,7 +31,7 @@ enum WINDOW_NETWORK_STATUS_WIDGET_IDX { }; static rct_widget window_network_status_widgets[] = { - { WWT_FRAME, 0, 0, 440, 0, 90, 0x0FFFFFFFF, STR_NONE }, // panel / background + { WWT_FRAME, 0, 0, 440, 0, 90, 0xFFFFFFFF, STR_NONE }, // panel / background { WWT_CAPTION, 0, 1, 438, 1, 14, STR_NONE, STR_WINDOW_TITLE_TIP }, // title bar { WWT_CLOSEBOX, 0, 427, 437, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // close x button { WIDGETS_END }, diff --git a/src/windows/new_campaign.c b/src/windows/new_campaign.c index af023edfa8..0ebe9517d3 100644 --- a/src/windows/new_campaign.c +++ b/src/windows/new_campaign.c @@ -48,7 +48,7 @@ static rct_widget window_new_campaign_widgets[] = { { WWT_CLOSEBOX, 0, 337, 347, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // close x button { WWT_24, 0, 0, 139, 24, 35, 0, STR_NONE }, // ride label { WWT_DROPDOWN, 0, 100, 341, 24, 35, 0, STR_NONE }, // ride dropdown - { WWT_DROPDOWN_BUTTON, 0, 330, 340, 25, 34, 876, STR_NONE }, // ride dropdown button + { WWT_DROPDOWN_BUTTON, 0, 330, 340, 25, 34, STR_DROPDOWN_GLYPH, STR_NONE }, // ride dropdown button { WWT_24, 0, 0, 139, 41, 52, STR_LENGTH_OF_TIME, STR_NONE }, // weeks label { WWT_SPINNER, 0, 120, 219, 41, 52, 0, STR_NONE }, // weeks { WWT_DROPDOWN_BUTTON, 0, 208, 218, 42, 46, STR_NUMERIC_UP, STR_NONE }, // weeks + @@ -153,7 +153,7 @@ void window_new_campaign_open(sint16 campaignType) (1 << WIDX_WEEKS_DECREASE_BUTTON); window_init_scroll_widgets(w); - window_new_campaign_widgets[WIDX_TITLE].image = STR_MARKETING_VOUCHERS_FOR_FREE_ENTRY_TO_THE_PARK + campaignType; + window_new_campaign_widgets[WIDX_TITLE].text = MarketingCampaignNames[campaignType][0]; // Campaign type w->campaign.campaign_type = campaignType; @@ -334,17 +334,17 @@ static void window_new_campaign_invalidate(rct_window *w) window_new_campaign_widgets[WIDX_RIDE_LABEL].type = WWT_EMPTY; window_new_campaign_widgets[WIDX_RIDE_DROPDOWN].type = WWT_EMPTY; window_new_campaign_widgets[WIDX_RIDE_DROPDOWN_BUTTON].type = WWT_EMPTY; - window_new_campaign_widgets[WIDX_RIDE_DROPDOWN].image = STR_MARKETING_NOT_SELECTED; + window_new_campaign_widgets[WIDX_RIDE_DROPDOWN].text = STR_MARKETING_NOT_SELECTED; switch (w->campaign.campaign_type) { case ADVERTISING_CAMPAIGN_RIDE_FREE: case ADVERTISING_CAMPAIGN_RIDE: window_new_campaign_widgets[WIDX_RIDE_LABEL].type = WWT_24; window_new_campaign_widgets[WIDX_RIDE_DROPDOWN].type = WWT_DROPDOWN; window_new_campaign_widgets[WIDX_RIDE_DROPDOWN_BUTTON].type = WWT_DROPDOWN_BUTTON; - window_new_campaign_widgets[WIDX_RIDE_LABEL].image = STR_MARKETING_RIDE; + window_new_campaign_widgets[WIDX_RIDE_LABEL].text = STR_MARKETING_RIDE; if (w->campaign.ride_id != SELECTED_RIDE_UNDEFINED) { rct_ride *ride = get_ride(w->campaign.ride_id); - window_new_campaign_widgets[WIDX_RIDE_DROPDOWN].image = ride->name; + window_new_campaign_widgets[WIDX_RIDE_DROPDOWN].text = ride->name; set_format_arg(0, uint32, ride->name_arguments); } break; @@ -352,15 +352,15 @@ static void window_new_campaign_invalidate(rct_window *w) window_new_campaign_widgets[WIDX_RIDE_LABEL].type = WWT_24; window_new_campaign_widgets[WIDX_RIDE_DROPDOWN].type = WWT_DROPDOWN; window_new_campaign_widgets[WIDX_RIDE_DROPDOWN_BUTTON].type = WWT_DROPDOWN_BUTTON; - window_new_campaign_widgets[WIDX_RIDE_LABEL].image = STR_MARKETING_ITEM; + window_new_campaign_widgets[WIDX_RIDE_LABEL].text = STR_MARKETING_ITEM; if (w->campaign.ride_id != SELECTED_RIDE_UNDEFINED) { - window_new_campaign_widgets[WIDX_RIDE_DROPDOWN].image = ShopItemStringIds[w->campaign.ride_id].plural; + window_new_campaign_widgets[WIDX_RIDE_DROPDOWN].text = ShopItemStringIds[w->campaign.ride_id].plural; } break; } // Set current number of weeks spinner (moved to paint due to required parameter) - window_new_campaign_widgets[WIDX_WEEKS_SPINNER].image = STR_NONE; + window_new_campaign_widgets[WIDX_WEEKS_SPINNER].text = STR_NONE; // Enable / disable start button based on ride dropdown w->disabled_widgets &= ~(1 << WIDX_START_BUTTON); diff --git a/src/windows/new_ride.c b/src/windows/new_ride.c index 8c0897000d..42c90a8e0f 100644 --- a/src/windows/new_ride.c +++ b/src/windows/new_ride.c @@ -32,6 +32,7 @@ #include "../ride/track_design.h" #include "../world/scenery.h" #include "../ride/ride_data.h" +#include "../sprites.h" #define _window_new_ride_current_tab RCT2_GLOBAL(RCT2_ADDRESS_WINDOW_RIDE_LIST_SELECTED_TAB, uint8) @@ -177,18 +178,18 @@ static rct_widget window_new_ride_widgets[] = { { WWT_CAPTION, 0, 1, 599, 1, 14, 0xFFFFFFFF, STR_WINDOW_TITLE_TIP }, { WWT_CLOSEBOX, 0, 588, 598, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, { WWT_RESIZE, 1, 0, 600, 43, 369, 0xFFFFFFFF, STR_NONE }, - { WWT_TAB, 1, 3, 33, 17, 43, 0x2000144E, STR_TRANSPORT_RIDES_TIP }, - { WWT_TAB, 1, 34, 64, 17, 43, 0x2000144E, STR_GENTLE_RIDES_TIP }, - { WWT_TAB, 1, 65, 95, 17, 43, 0x2000144E, STR_ROLLER_COASTERS_TIP }, - { WWT_TAB, 1, 96, 126, 17, 43, 0x2000144E, STR_THRILL_RIDES_TIP }, - { WWT_TAB, 1, 127, 157, 17, 43, 0x2000144E, STR_WATER_RIDES_TIP }, - { WWT_TAB, 1, 158, 188, 17, 43, 0x2000144E, STR_SHOPS_STALLS_TIP }, - { WWT_TAB, 1, 189, 219, 17, 43, 0x2000144E, STR_RESEARCH_AND_DEVELOPMENT_TIP }, - { WWT_SCROLL, 1, 3, 597, 46, 317, 2, STR_NONE }, + { WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_TRANSPORT_RIDES_TIP }, + { WWT_TAB, 1, 34, 64, 17, 43, 0x20000000 | SPR_TAB, STR_GENTLE_RIDES_TIP }, + { WWT_TAB, 1, 65, 95, 17, 43, 0x20000000 | SPR_TAB, STR_ROLLER_COASTERS_TIP }, + { WWT_TAB, 1, 96, 126, 17, 43, 0x20000000 | SPR_TAB, STR_THRILL_RIDES_TIP }, + { WWT_TAB, 1, 127, 157, 17, 43, 0x20000000 | SPR_TAB, STR_WATER_RIDES_TIP }, + { WWT_TAB, 1, 158, 188, 17, 43, 0x20000000 | SPR_TAB, STR_SHOPS_STALLS_TIP }, + { WWT_TAB, 1, 189, 219, 17, 43, 0x20000000 | SPR_TAB, STR_RESEARCH_AND_DEVELOPMENT_TIP }, + { WWT_SCROLL, 1, 3, 597, 46, 317, SCROLL_VERTICAL, STR_NONE }, { WWT_GROUPBOX, 2, 3, 292, 47, 116, STR_CURRENTLY_IN_DEVELOPMENT, STR_NONE }, { WWT_GROUPBOX, 2, 3, 292, 124, 188, STR_LAST_DEVELOPMENT, STR_NONE }, { WWT_FLATBTN, 2, 265, 288, 161, 184, 0xFFFFFFFF, STR_RESEARCH_SHOW_DETAILS_TIP }, - { WWT_FLATBTN, 2, 265, 288, 68, 91, 5190, STR_FINANCES_RESEARCH_TIP }, + { WWT_FLATBTN, 2, 265, 288, 68, 91, SPR_FINANCE, STR_FINANCES_RESEARCH_TIP }, { WIDGETS_END }, }; @@ -241,6 +242,16 @@ static rct_window_event_list window_new_ride_events = { #pragma endregion +static const rct_string_id window_new_ride_titles[WINDOW_NEW_RIDE_PAGE_COUNT] = { + STR_NEW_TRANSPORT_RIDES, + STR_NEW_GENTLE_RIDES, + STR_NEW_ROLLER_COASTERS, + STR_NEW_THRILL_RIDES, + STR_NEW_WATER_RIDES, + STR_NEW_SHOPS_STALLS, + STR_RESEARCH_AND_DEVELOPMENT, +}; + const int window_new_ride_tab_animation_loops[] = { 20, 32, 10, 72, 24, 28, 16 }; const int window_new_ride_tab_animation_divisor[] = { 4, 8, 2, 4, 4, 4, 2 }; @@ -591,13 +602,13 @@ static void window_new_ride_draw_tab_image(rct_drawpixelinfo *dpi, rct_window *w static void window_new_ride_draw_tab_images(rct_drawpixelinfo *dpi, rct_window *w) { - window_new_ride_draw_tab_image(dpi, w, WINDOW_NEW_RIDE_PAGE_TRANSPORT, 0x200015A1); - window_new_ride_draw_tab_image(dpi, w, WINDOW_NEW_RIDE_PAGE_GENTLE, 5542); - window_new_ride_draw_tab_image(dpi, w, WINDOW_NEW_RIDE_PAGE_ROLLER_COASTER, 0x200015AA); - window_new_ride_draw_tab_image(dpi, w, WINDOW_NEW_RIDE_PAGE_THRILL, 5557); - window_new_ride_draw_tab_image(dpi, w, WINDOW_NEW_RIDE_PAGE_WATER, 5551); - window_new_ride_draw_tab_image(dpi, w, WINDOW_NEW_RIDE_PAGE_SHOP, 5530); - window_new_ride_draw_tab_image(dpi, w, WINDOW_NEW_RIDE_PAGE_RESEARCH, 5327); + window_new_ride_draw_tab_image(dpi, w, WINDOW_NEW_RIDE_PAGE_TRANSPORT, 0x20000000 | SPR_TAB_RIDES_TRANSPORT_0); + window_new_ride_draw_tab_image(dpi, w, WINDOW_NEW_RIDE_PAGE_GENTLE, SPR_TAB_RIDES_GENTLE_0); + window_new_ride_draw_tab_image(dpi, w, WINDOW_NEW_RIDE_PAGE_ROLLER_COASTER, 0x20000000 | SPR_TAB_RIDES_ROLLER_COASTERS_0); + window_new_ride_draw_tab_image(dpi, w, WINDOW_NEW_RIDE_PAGE_THRILL, SPR_TAB_RIDES_THRILL_0); + window_new_ride_draw_tab_image(dpi, w, WINDOW_NEW_RIDE_PAGE_WATER, SPR_TAB_RIDES_WATER_0); + window_new_ride_draw_tab_image(dpi, w, WINDOW_NEW_RIDE_PAGE_SHOP, SPR_TAB_RIDES_SHOP_0); + window_new_ride_draw_tab_image(dpi, w, WINDOW_NEW_RIDE_PAGE_RESEARCH, SPR_TAB_FINANCES_RESEARCH_0); } /** @@ -713,7 +724,7 @@ static void window_new_ride_scrollmouseover(rct_window *w, int scrollIndex, int */ static void window_new_ride_tooltip(rct_window* w, int widgetIndex, rct_string_id *stringId) { - set_format_arg(0, uint16, 3159); + set_format_arg(0, uint16, STR_LIST); } /** @@ -726,9 +737,9 @@ static void window_new_ride_invalidate(rct_window *w) window_new_ride_set_pressed_tab(w); - window_new_ride_widgets[WIDX_TITLE].image = STR_NEW_TRANSPORT_RIDES + _window_new_ride_current_tab; + window_new_ride_widgets[WIDX_TITLE].text = window_new_ride_titles[_window_new_ride_current_tab]; window_new_ride_widgets[WIDX_TAB_7].type = WWT_TAB; - if (gScreenFlags & 4) + if (gScreenFlags & SCREEN_FLAGS_TRACK_DESIGNER) window_new_ride_widgets[WIDX_TAB_7].type = WWT_EMPTY; if (_window_new_ride_current_tab == WINDOW_NEW_RIDE_PAGE_RESEARCH) { @@ -736,7 +747,7 @@ static void window_new_ride_invalidate(rct_window *w) uint32 typeId = gResearchLastItemSubject; if (typeId != 0xFFFFFFFF) { window_new_ride_widgets[WIDX_LAST_DEVELOPMENT_BUTTON].type = WWT_FLATBTN; - window_new_ride_widgets[WIDX_LAST_DEVELOPMENT_BUTTON].image = typeId >= 0x10000 ? 5189 : 5191; + window_new_ride_widgets[WIDX_LAST_DEVELOPMENT_BUTTON].image = typeId >= 0x10000 ? SPR_NEW_RIDE : SPR_NEW_SCENERY; } } } @@ -790,7 +801,7 @@ static void window_new_ride_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, i if (listItem->type != rideEntry->ride_type[1]) image_id++; } - gfx_draw_sprite_raw_masked(dpi, x + 2, y + 2, 29013, image_id); + gfx_draw_sprite_raw_masked(dpi, x + 2, y + 2, SPR_NEW_RIDE_MASK, image_id); // Next position x += 116; @@ -867,7 +878,7 @@ static void window_new_ride_paint_ride_information(rct_window *w, rct_drawpixeli set_format_arg(0, rct_string_id, rideName); set_format_arg(2, rct_string_id, rideDescription); - gfx_draw_string_left_wrapped(dpi, gCommonFormatArgs, x, y, width, 1690, 0); + gfx_draw_string_left_wrapped(dpi, gCommonFormatArgs, x, y, width, STR_NEW_RIDE_NAME_AND_DESCRIPTION, 0); // Number of designs available if (ride_type_has_flag(item.type, RIDE_TYPE_FLAG_HAS_TRACK)) { @@ -908,9 +919,9 @@ static void window_new_ride_paint_ride_information(rct_window *w, rct_drawpixeli price = (price >> 17) * 10 * RideData5[item.type].price; // - rct_string_id stringId = 1691; + rct_string_id stringId = STR_NEW_RIDE_COST; if (!ride_type_has_flag(item.type, RIDE_TYPE_FLAG_HAS_NO_TRACK)) - stringId++; + stringId = STR_NEW_RIDE_COST_FROM; gfx_draw_string_right(dpi, stringId, &price, 0, x + width, y + 39); } diff --git a/src/windows/news.c b/src/windows/news.c index c0b6d762ce..a497db93df 100644 --- a/src/windows/news.c +++ b/src/windows/news.c @@ -34,11 +34,11 @@ enum WINDOW_NEWS_WIDGET_IDX { }; static rct_widget window_news_widgets[] = { - { WWT_FRAME, 0, 0, 399, 0, 299, 0x0FFFFFFFF, STR_NONE }, // panel / background + { WWT_FRAME, 0, 0, 399, 0, 299, 0xFFFFFFFF, STR_NONE }, // panel / background { WWT_CAPTION, 0, 1, 398, 1, 14, STR_RECENT_MESSAGES, STR_WINDOW_TITLE_TIP }, // title bar { WWT_CLOSEBOX, 0, 387, 397, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // close x button - { WWT_FLATBTN, 0, 372, 395, 18, 41, 5201, STR_NONE }, // settings - { WWT_SCROLL, 0, 4, 395, 44, 295, 2, STR_NONE }, // scroll + { WWT_FLATBTN, 0, 372, 395, 18, 41, SPR_TAB_GEARS_0, STR_NONE }, // settings + { WWT_SCROLL, 0, 4, 395, 44, 295, SCROLL_VERTICAL, STR_NONE }, // scroll { WIDGETS_END }, }; @@ -250,7 +250,7 @@ static void window_news_scrollmousedown(rct_window *w, int scrollIndex, int x, i */ static void window_news_tooltip(rct_window* w, int widgetIndex, rct_string_id *stringId) { - set_format_arg(0, uint16, 3159); + set_format_arg(0, uint16, STR_LIST); } /** @@ -291,9 +291,9 @@ static void window_news_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int s gfx_fill_rect_inset(dpi, -1, y, 383, y + 41, w->colours[1], 0x24); // Date text - set_format_arg(0, uint16, STR_DATE_DAY_1 + newsItem->day - 1); - set_format_arg(2, uint16, STR_MONTH_MARCH + (newsItem->month_year % 8)); - gfx_draw_string_left(dpi, 2235, gCommonFormatArgs, 2, 4, y); + set_format_arg(0, uint16, DateDayNames[newsItem->day - 1]); + set_format_arg(2, uint16, DateGameMonthNames[(newsItem->month_year % 8)]); + gfx_draw_string_left(dpi, STR_NEWS_DATE_FORMAT, gCommonFormatArgs, 2, 4, y); // Item text utf8 buffer[400]; @@ -301,7 +301,7 @@ static void window_news_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int s ch = utf8_write_codepoint(ch, FORMAT_SMALLFONT); memcpy(ch, newsItem->text, 256); ch = buffer; - gfx_draw_string_left_wrapped(dpi, &ch, 2, y + 10, 325, 1170, 14); + gfx_draw_string_left_wrapped(dpi, &ch, 2, y + 10, 325, STR_STRING, 14); // Subject button if ((RCT2_ADDRESS(0x0097BE7C, uint8)[newsItem->type] & 2) && !(newsItem->flags & 1)) { @@ -353,7 +353,7 @@ static void window_news_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int s gfx_draw_sprite(dpi, SPR_FINANCE, x, yy, 0); break; case NEWS_ITEM_RESEARCH: - gfx_draw_sprite(dpi, newsItem->assoc < 0x10000 ? SPR_NEW_RIDE : SPR_SCENERY, x, yy, 0); + gfx_draw_sprite(dpi, newsItem->assoc < 0x10000 ? SPR_NEW_SCENERY : SPR_NEW_RIDE, x, yy, 0); break; case NEWS_ITEM_PEEPS: gfx_draw_sprite(dpi, SPR_GUESTS, x, yy, 0); diff --git a/src/windows/news_options.c b/src/windows/news_options.c index 8e11301e87..c745269749 100644 --- a/src/windows/news_options.c +++ b/src/windows/news_options.c @@ -64,13 +64,13 @@ enum WINDOW_NEWS_WIDGET_IDX { }; static rct_widget window_news_options_widgets[] = { - { WWT_FRAME, 0, 0, 399, 0, 299, 0x0FFFFFFFF, STR_NONE }, // panel / background + { WWT_FRAME, 0, 0, 399, 0, 299, 0xFFFFFFFF, STR_NONE }, // panel / background { WWT_CAPTION, 0, 1, 398, 1, 14, STR_NOTIFICATION_SETTINGS, STR_WINDOW_TITLE_TIP }, // title bar { WWT_CLOSEBOX, 0, 387, 397, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // close x button - { WWT_RESIZE, 1, 0, 399, 43, 299, 0x0FFFFFFFF, STR_NONE }, // tab content panel - { WWT_TAB, 1, 3, 33, 17, 43, 0x02000144E, STR_NONE }, // tab 1 - { WWT_TAB, 1, 34, 64, 17, 43, 0x02000144E, STR_NONE }, // tab 2 - { WWT_TAB, 1, 65, 95, 17, 43, 0x02000144E, STR_NONE }, // tab 2 + { WWT_RESIZE, 1, 0, 399, 43, 299, 0xFFFFFFFF, STR_NONE }, // tab content panel + { WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_NONE }, // tab 1 + { WWT_TAB, 1, 34, 64, 17, 43, 0x20000000 | SPR_TAB, STR_NONE }, // tab 2 + { WWT_TAB, 1, 65, 95, 17, 43, 0x20000000 | SPR_TAB, STR_NONE }, // tab 2 { WWT_CHECKBOX, 2, 3, 349, 46, 59, STR_NONE, STR_NONE }, { WWT_CHECKBOX, 2, 0, 0, 0, 0, STR_NONE, STR_NONE }, @@ -223,7 +223,7 @@ static void window_news_options_invalidate(rct_window *w) checkboxWidget->right = baseCheckBox->right; checkboxWidget->top = y; checkboxWidget->bottom = checkboxWidget->top + 13; - checkboxWidget->image = ndef->caption; + checkboxWidget->text = ndef->caption; const bool *configValue = get_notification_value_ptr(ndef); widget_set_checkbox_value(w, checkboxWidgetIndex, *configValue); diff --git a/src/windows/options.c b/src/windows/options.c index 6371f05282..b434d41524 100644 --- a/src/windows/options.c +++ b/src/windows/options.c @@ -175,26 +175,26 @@ enum WINDOW_OPTIONS_WIDGET_IDX { #define WH 332 #define MAIN_OPTIONS_WIDGETS \ - { WWT_FRAME, 0, 0, WW-1, 0, WH-1, STR_NONE, STR_NONE }, \ - { WWT_CAPTION, 0, 1, WW-2, 1, 14, STR_OPTIONS_TITLE, STR_WINDOW_TITLE_TIP }, \ - { WWT_CLOSEBOX, 0, WW-13, WW-3, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, \ - { WWT_RESIZE, 1, 0, WW-1, 43, WH-1, 0xFFFFFFFF, STR_NONE }, \ - { WWT_TAB, 1, 3, 33, 17, 43, 0x2000144E, STR_OPTIONS_DISPLAY_TIP }, \ - { WWT_TAB, 1, 34, 64, 17, 43, 0x2000144E, STR_OPTIONS_RENDERING_TIP }, \ - { WWT_TAB, 1, 65, 95, 17, 43, 0x2000144E, STR_OPTIONS_CULTURE_TIP }, \ - { WWT_TAB, 1, 96, 126, 17, 43, 0x2000144E, STR_OPTIONS_AUDIO_TIP }, \ - { WWT_TAB, 1, 127, 157, 17, 43, 0x2000144E, STR_OPTIONS_CONTROLS_AND_INTERFACE_TIP }, \ - { WWT_TAB, 1, 158, 188, 17, 43, 0x2000144E, STR_OPTIONS_MISCELLANEOUS_TIP }, \ - { WWT_TAB, 1, 189, 209, 17, 43, 0x2000144E, STR_OPTIONS_TWITCH_TIP } + { WWT_FRAME, 0, 0, WW-1, 0, WH-1, STR_NONE, STR_NONE }, \ + { WWT_CAPTION, 0, 1, WW-2, 1, 14, STR_OPTIONS_TITLE, STR_WINDOW_TITLE_TIP }, \ + { WWT_CLOSEBOX, 0, WW-13, WW-3, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, \ + { WWT_RESIZE, 1, 0, WW-1, 43, WH-1, 0xFFFFFFFF, STR_NONE }, \ + { WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_OPTIONS_DISPLAY_TIP }, \ + { WWT_TAB, 1, 34, 64, 17, 43, 0x20000000 | SPR_TAB, STR_OPTIONS_RENDERING_TIP }, \ + { WWT_TAB, 1, 65, 95, 17, 43, 0x20000000 | SPR_TAB, STR_OPTIONS_CULTURE_TIP }, \ + { WWT_TAB, 1, 96, 126, 17, 43, 0x20000000 | SPR_TAB, STR_OPTIONS_AUDIO_TIP }, \ + { WWT_TAB, 1, 127, 157, 17, 43, 0x20000000 | SPR_TAB, STR_OPTIONS_CONTROLS_AND_INTERFACE_TIP }, \ + { WWT_TAB, 1, 158, 188, 17, 43, 0x20000000 | SPR_TAB, STR_OPTIONS_MISCELLANEOUS_TIP }, \ + { WWT_TAB, 1, 189, 219, 17, 43, 0x20000000 | SPR_TAB, STR_OPTIONS_TWITCH_TIP } static rct_widget window_options_display_widgets[] = { MAIN_OPTIONS_WIDGETS, { WWT_GROUPBOX, 1, 5, 304, 53, 205, STR_HARDWARE_GROUP, STR_NONE }, // Hardware group - { WWT_DROPDOWN, 1, 155, 299, 68, 79, 871, STR_NONE }, // Fullscreen + { WWT_DROPDOWN, 1, 155, 299, 68, 79, STR_ARG_12_STRINGID, STR_NONE }, // Fullscreen { WWT_DROPDOWN_BUTTON, 1, 288, 298, 69, 78, STR_DROPDOWN_GLYPH, STR_FULLSCREEN_MODE_TIP }, - { WWT_DROPDOWN, 1, 155, 299, 83, 94, STR_RESOLUTION_X_BY_Y, STR_NONE }, // Resolution + { WWT_DROPDOWN, 1, 155, 299, 83, 94, STR_ARG_16_RESOLUTION_X_BY_Y, STR_NONE }, // Resolution { WWT_DROPDOWN_BUTTON, 1, 288, 298, 84, 93, STR_DROPDOWN_GLYPH, STR_DISPLAY_RESOLUTION_TIP }, { WWT_SPINNER, 1, 155, 299, 98, 109, STR_NONE, STR_WINDOW_SCALE_TIP }, // Scale spinner @@ -237,13 +237,13 @@ static rct_widget window_options_culture_widgets[] = { MAIN_OPTIONS_WIDGETS, { WWT_DROPDOWN, 1, 155, 299, 53, 64, STR_NONE, STR_NONE }, // language { WWT_DROPDOWN_BUTTON, 1, 288, 298, 54, 63, STR_DROPDOWN_GLYPH, STR_LANGUAGE_TIP }, - { WWT_DROPDOWN, 1, 155, 299, 68, 79, 871, STR_NONE }, // Currency + { WWT_DROPDOWN, 1, 155, 299, 68, 79, STR_ARG_12_STRINGID, STR_NONE }, // Currency { WWT_DROPDOWN_BUTTON, 1, 288, 298, 69, 78, STR_DROPDOWN_GLYPH, STR_CURRENCY_TIP }, - { WWT_DROPDOWN, 1, 155, 299, 83, 94, 872, STR_NONE }, // Distance and speed + { WWT_DROPDOWN, 1, 155, 299, 83, 94, STR_ARG_14_STRINGID, STR_NONE }, // Distance and speed { WWT_DROPDOWN_BUTTON, 1, 288, 298, 84, 93, STR_DROPDOWN_GLYPH, STR_DISTANCE_AND_SPEED_TIP }, - { WWT_DROPDOWN, 1, 155, 299, 98, 110, 875, STR_NONE }, // Temperature + { WWT_DROPDOWN, 1, 155, 299, 98, 110, STR_ARG_20_STRINGID, STR_NONE }, // Temperature { WWT_DROPDOWN_BUTTON, 1, 288, 298, 99, 108, STR_DROPDOWN_GLYPH, STR_TEMPERATURE_FORMAT_TIP }, - { WWT_DROPDOWN, 1, 155, 299, 113, 124, 868, STR_NONE }, // Height labels + { WWT_DROPDOWN, 1, 155, 299, 113, 124, STR_ARG_6_STRINGID, STR_NONE }, // Height labels { WWT_DROPDOWN_BUTTON, 1, 288, 298, 114, 123, STR_DROPDOWN_GLYPH, STR_HEIGHT_LABELS_UNITS_TIP }, { WWT_DROPDOWN, 1, 155, 299, 128, 139, STR_NONE, STR_NONE }, // Date format { WWT_DROPDOWN_BUTTON, 1, 288, 298, 129, 138, STR_DROPDOWN_GLYPH, STR_DATE_FORMAT_TIP }, @@ -252,15 +252,15 @@ static rct_widget window_options_culture_widgets[] = { static rct_widget window_options_audio_widgets[] = { MAIN_OPTIONS_WIDGETS, - { WWT_DROPDOWN, 1, 10, 299, 53, 64, 865, STR_NONE }, // Audio device + { WWT_DROPDOWN, 1, 10, 299, 53, 64, STR_STRINGID, STR_NONE }, // Audio device { WWT_DROPDOWN_BUTTON, 1, 288, 298, 54, 63, STR_DROPDOWN_GLYPH, STR_AUDIO_DEVICE_TIP }, { WWT_CHECKBOX, 1, 10, 229, 69, 80, STR_SOUND_EFFECTS, STR_SOUND_EFFECTS_TIP }, // Enable / disable sound effects { WWT_CHECKBOX, 1, 10, 229, 84, 95, STR_RIDE_MUSIC, STR_RIDE_MUSIC_TIP }, // Enable / disable ride music { WWT_CHECKBOX, 1, 10, 229, 98, 110, STR_AUDIO_FOCUS, STR_AUDIO_FOCUS_TIP }, // Enable / disable audio disabled on focus lost { WWT_DROPDOWN, 1, 155, 299, 112, 124, STR_NONE, STR_NONE }, // Title music { WWT_DROPDOWN_BUTTON, 1, 288, 298, 113, 123, STR_DROPDOWN_GLYPH, STR_TITLE_MUSIC_TIP }, - { WWT_SCROLL, 1, 155, 299, 68, 80, 1, STR_NONE }, // Sound effect volume - { WWT_SCROLL, 1, 155, 299, 83, 95, 1, STR_NONE }, // Music volume + { WWT_SCROLL, 1, 155, 299, 68, 80, SCROLL_HORIZONTAL, STR_NONE }, // Sound effect volume + { WWT_SCROLL, 1, 155, 299, 83, 95, SCROLL_HORIZONTAL, STR_NONE }, // Music volume { WIDGETS_END }, }; @@ -334,6 +334,34 @@ rct_widget *window_options_page_widgets[] = { #pragma endregion +static const rct_string_id window_options_autosave_names[6] = { + STR_SAVE_EVERY_MINUTE, + STR_SAVE_EVERY_5MINUTES, + STR_SAVE_EVERY_15MINUTES, + STR_SAVE_EVERY_30MINUTES, + STR_SAVE_EVERY_HOUR, + STR_SAVE_NEVER, +}; + +static const rct_string_id window_options_title_music_names[] = { + STR_OPTIONS_MUSIC_VALUE_NONE , + STR_ROLLERCOASTER_TYCOON_1_DROPDOWN , + STR_ROLLERCOASTER_TYCOON_2_DROPDOWN , + STR_OPTIONS_MUSIC_VALUE_RANDOM, +}; + +static const rct_string_id window_options_scale_quality_names[] = { + STR_SCALING_QUALITY_NN, + STR_SCALING_QUALITY_LINEAR, + STR_SCALING_QUALITY_ANISOTROPIC, +}; + +static const rct_string_id window_options_fullscreen_mode_names[] = { + STR_OPTIONS_DISPLAY_WINDOWED, + STR_OPTIONS_DISPLAY_FULLSCREEN, + STR_OPTIONS_DISPLAY_FULLSCREEN_BORDERLESS, +}; + const int window_options_tab_animation_divisor[] = { 4, 4, 8, 2, 2, 2, 1 }; const int window_options_tab_animation_frames[] = { 16, 8, 8, 16, 4, 16, 1 }; @@ -815,7 +843,7 @@ static void window_options_mousedown(int widgetIndex, rct_window*w, rct_widget* gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL; uint16 *args = (uint16*)&gDropdownItemsArgs[i]; - args[0] = 839; + args[0] = STR_RESOLUTION_X_BY_Y; args[1] = resolution->width; args[2] = resolution->height; @@ -835,9 +863,9 @@ static void window_options_mousedown(int widgetIndex, rct_window*w, rct_widget* gDropdownItemsFormat[0] = STR_DROPDOWN_MENU_LABEL; gDropdownItemsFormat[1] = STR_DROPDOWN_MENU_LABEL; gDropdownItemsFormat[2] = STR_DROPDOWN_MENU_LABEL; - gDropdownItemsArgs[0] = 2773; - gDropdownItemsArgs[1] = 2774; - gDropdownItemsArgs[2] = 2775; + gDropdownItemsArgs[0] = STR_OPTIONS_DISPLAY_WINDOWED; + gDropdownItemsArgs[1] = STR_OPTIONS_DISPLAY_FULLSCREEN; + gDropdownItemsArgs[2] = STR_OPTIONS_DISPLAY_FULLSCREEN_BORDERLESS; window_options_show_dropdown(w, widget, 3); @@ -891,8 +919,8 @@ static void window_options_mousedown(int widgetIndex, rct_window*w, rct_widget* case WIDX_CONSTRUCTION_MARKER_DROPDOWN: gDropdownItemsFormat[0] = STR_DROPDOWN_MENU_LABEL; gDropdownItemsFormat[1] = STR_DROPDOWN_MENU_LABEL; - gDropdownItemsArgs[0] = STR_WHITE; - gDropdownItemsArgs[1] = STR_TRANSLUCENT; + gDropdownItemsArgs[0] = STR_CONSTRUCTION_MARKER_COLOUR_WHITE; + gDropdownItemsArgs[1] = STR_CONSTRUCTION_MARKER_COLOUR_TRANSLUCENT; window_options_show_dropdown(w, widget, 2); @@ -960,7 +988,7 @@ static void window_options_mousedown(int widgetIndex, rct_window*w, rct_widget* break; case WIDX_LANGUAGE_DROPDOWN: for (i = 1; i < LANGUAGE_COUNT; i++) { - gDropdownItemsFormat[i - 1] = 2777; + gDropdownItemsFormat[i - 1] = STR_OPTIONS_DROPDOWN_ITEM; gDropdownItemsArgs[i - 1] = (sint32)LanguagesDescriptors[i].native_name; } window_options_show_dropdown(w, widget, LANGUAGE_COUNT - 1); @@ -985,7 +1013,7 @@ static void window_options_mousedown(int widgetIndex, rct_window*w, rct_widget* // populate the list with the sound devices for (i = 0; i < gAudioDeviceCount; i++) { gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL; - gDropdownItemsArgs[i] = 1170 | ((uint64)(intptr_t)gAudioDevices[i].name << 16); + gDropdownItemsArgs[i] = STR_STRING | ((uint64)(intptr_t)gAudioDevices[i].name << 16); } window_options_show_dropdown(w, widget, gAudioDeviceCount); @@ -995,13 +1023,10 @@ static void window_options_mousedown(int widgetIndex, rct_window*w, rct_widget* case WIDX_TITLE_MUSIC_DROPDOWN: num_items = 4; - for (i = 0; i < num_items - 1; i++) { + for (i = 0; i < num_items ; i++) { gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL; - gDropdownItemsArgs[i] = 2739 + i; + gDropdownItemsArgs[i] = window_options_title_music_names[i]; } - // Random title music - gDropdownItemsFormat[3] = STR_DROPDOWN_MENU_LABEL; - gDropdownItemsArgs[3] = 5126; window_options_show_dropdown(w, widget, num_items); @@ -1016,7 +1041,7 @@ static void window_options_mousedown(int widgetIndex, rct_window*w, rct_widget* num_items = (int)theme_manager_get_num_available_themes(); for (int i = 0; i < num_items; i++) { - gDropdownItemsFormat[i] = 2777; + gDropdownItemsFormat[i] = STR_OPTIONS_DROPDOWN_ITEM; gDropdownItemsArgs[i] = (uint32)theme_manager_get_available_theme_name(i); } @@ -1062,7 +1087,7 @@ static void window_options_mousedown(int widgetIndex, rct_window*w, rct_widget* case WIDX_AUTOSAVE_DROPDOWN: for (i = AUTOSAVE_EVERY_MINUTE; i <= AUTOSAVE_NEVER; i++) { gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL; - gDropdownItemsArgs[i] = STR_SAVE_EVERY_MINUTE + i; + gDropdownItemsArgs[i] = window_options_autosave_names[i]; } window_options_show_dropdown(w, widget, AUTOSAVE_NEVER + 1); @@ -1072,7 +1097,7 @@ static void window_options_mousedown(int widgetIndex, rct_window*w, rct_widget* num_items = gConfigTitleSequences.num_presets; for (i = 0; i < num_items; i++) { - gDropdownItemsFormat[i] = 2777; + gDropdownItemsFormat[i] = STR_OPTIONS_DROPDOWN_ITEM; gDropdownItemsArgs[i] = (uint32)&gConfigTitleSequences.presets[i].name; } @@ -1090,7 +1115,7 @@ static void window_options_mousedown(int widgetIndex, rct_window*w, rct_widget* case WIDX_DEFAULT_INSPECTION_INTERVAL_DROPDOWN: for (i = 0; i < 7; i++) { gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL; - gDropdownItemsArgs[i] = STR_EVERY_10_MINUTES + i; + gDropdownItemsArgs[i] = RideInspectionIntervalNames[i]; } window_options_show_dropdown(w, widget, 7); @@ -1268,7 +1293,7 @@ static void window_options_dropdown(rct_window *w, int widgetIndex, int dropdown break; case WIDX_TITLE_MUSIC_DROPDOWN: if ((dropdownIndex == 1 || dropdownIndex == 3) && !platform_file_exists(get_file_path(PATH_ID_CSS50))) { - window_error_open(2742, 2743); + window_error_open(STR_OPTIONS_MUSIC_ERR_CSS50_NOT_FOUND, STR_OPTIONS_MUSIC_ERR_CSS50_NOT_FOUND_HINT); } else { gConfigSound.title_music = (sint8)dropdownIndex; @@ -1355,7 +1380,7 @@ static void window_options_invalidate(rct_window *w) case WINDOW_OPTIONS_PAGE_DISPLAY: set_format_arg(16, uint16, (uint16)gConfigGeneral.fullscreen_width); set_format_arg(18, uint16, (uint16)gConfigGeneral.fullscreen_height); - set_format_arg(12, uint16, 2773 + gConfigGeneral.fullscreen_mode); + set_format_arg(12, uint16, window_options_fullscreen_mode_names[gConfigGeneral.fullscreen_mode]); // disable resolution dropdown on "Fullscreen (desktop)" if (gConfigGeneral.fullscreen_mode == 2){ @@ -1385,7 +1410,7 @@ static void window_options_invalidate(rct_window *w) widget_set_checkbox_value(w, WIDX_STEAM_OVERLAY_PAUSE, gConfigGeneral.steam_overlay_pause); widget_set_checkbox_value(w, WIDX_SCALE_USE_NN_AT_INTEGER_SCALES_CHECKBOX, gConfigGeneral.use_nn_at_integer_scales); - window_options_display_widgets[WIDX_SCALE_QUALITY].image = STR_SCALING_QUALITY_NN + gConfigGeneral.scale_quality; + window_options_display_widgets[WIDX_SCALE_QUALITY].text = window_options_scale_quality_names[gConfigGeneral.scale_quality]; window_options_display_widgets[WIDX_RESOLUTION].type = WWT_DROPDOWN; window_options_display_widgets[WIDX_RESOLUTION_DROPDOWN].type = WWT_DROPDOWN_BUTTON; @@ -1407,7 +1432,11 @@ static void window_options_invalidate(rct_window *w) widget_set_checkbox_value(w, WIDX_DISABLE_LIGHTNING_EFFECT_CHECKBOX, gConfigGeneral.disable_lightning_effect); // construction marker: white/translucent - window_options_rendering_widgets[WIDX_CONSTRUCTION_MARKER].image = STR_WHITE + gConfigGeneral.construction_marker_colour; + static const rct_string_id construction_marker_colours[] = { + STR_CONSTRUCTION_MARKER_COLOUR_WHITE, + STR_CONSTRUCTION_MARKER_COLOUR_TRANSLUCENT, + }; + window_options_rendering_widgets[WIDX_CONSTRUCTION_MARKER].text = construction_marker_colours[gConfigGeneral.construction_marker_colour]; window_options_rendering_widgets[WIDX_TILE_SMOOTHING_CHECKBOX].type = WWT_CHECKBOX; window_options_rendering_widgets[WIDX_GRIDLINES_CHECKBOX].type = WWT_CHECKBOX; @@ -1435,10 +1464,10 @@ static void window_options_invalidate(rct_window *w) } // temperature: celsius/fahrenheit - set_format_arg(20, uint16, STR_CELSIUS + gConfigGeneral.temperature_format); + set_format_arg(20, rct_string_id, (gConfigGeneral.temperature_format == TEMPERATURE_FORMAT_F) ? STR_FAHRENHEIT : STR_CELSIUS); // height: units/real values - set_format_arg(6, uint16, gConfigGeneral.show_height_as_units ? STR_UNITS : STR_REAL_VALUES); + set_format_arg(6, rct_string_id, gConfigGeneral.show_height_as_units ? STR_UNITS : STR_REAL_VALUES); window_options_culture_widgets[WIDX_LANGUAGE].type = WWT_DROPDOWN; window_options_culture_widgets[WIDX_LANGUAGE_DROPDOWN].type = WWT_DROPDOWN_BUTTON; @@ -1462,16 +1491,16 @@ static void window_options_invalidate(rct_window *w) else { #ifndef __LINUX__ if (gAudioCurrentDevice == 0) - set_format_arg(0, uint16, 5510); + set_format_arg(0, uint16, STR_OPTIONS_SOUND_VALUE_DEFAULT); else #endif // __LINUX__ - set_format_arg(0, uint16, 1170); + set_format_arg(0, uint16, STR_STRING); set_format_arg(2, uint32, (uint32)gAudioDevices[gAudioCurrentDevice].name); } // music: on/off - set_format_arg(8, uint16, STR_OFF + gConfigSound.ride_music_enabled); + set_format_arg(8, rct_string_id, gConfigSound.ride_music_enabled ? STR_OPTIONS_RIDE_MUSIC_ON : STR_OPTIONS_RIDE_MUSIC_OFF); widget_set_checkbox_value(w, WIDX_SOUND_CHECKBOX, gConfigSound.sound_enabled); widget_set_checkbox_value(w, WIDX_MUSIC_CHECKBOX, gConfigSound.ride_music_enabled); @@ -1651,7 +1680,7 @@ static void window_options_paint(rct_window *w, rct_drawpixelinfo *dpi) ); int scale = (int)(gConfigGeneral.window_scale * 100); - gfx_draw_string_left(dpi, 3311, &scale, w->colours[1], w->x + w->widgets[WIDX_SCALE].left + 1, w->y + w->widgets[WIDX_SCALE].top + 1); + gfx_draw_string_left(dpi, STR_WINDOW_OBJECTIVE_VALUE_RATING, &scale, w->colours[1], w->x + w->widgets[WIDX_SCALE].left + 1, w->y + w->widgets[WIDX_SCALE].top + 1); colour = w->colours[1]; if (gConfigGeneral.drawing_engine == DRAWING_ENGINE_SOFTWARE) { @@ -1663,7 +1692,7 @@ static void window_options_paint(rct_window *w, rct_drawpixelinfo *dpi) gfx_draw_string_left(dpi, STR_CONSTRUCTION_MARKER, w, w->colours[1], w->x + 10, w->y + window_options_rendering_widgets[WIDX_CONSTRUCTION_MARKER].top + 1); break; case WINDOW_OPTIONS_PAGE_CULTURE: - gfx_draw_string_left(dpi, 2776, w, w->colours[1], w->x + 10, w->y + window_options_culture_widgets[WIDX_LANGUAGE].top + 1); + gfx_draw_string_left(dpi, STR_OPTIONS_LANGUAGE, w, w->colours[1], w->x + 10, w->y + window_options_culture_widgets[WIDX_LANGUAGE].top + 1); gCurrentFontSpriteBase = FONT_SPRITE_BASE_MEDIUM; gfx_draw_string( @@ -1689,10 +1718,10 @@ static void window_options_paint(rct_window *w, rct_drawpixelinfo *dpi) ); break; case WINDOW_OPTIONS_PAGE_AUDIO: - gfx_draw_string_left(dpi, 2738, w, w->colours[1], w->x + 10, w->y + window_options_audio_widgets[WIDX_TITLE_MUSIC].top + 1); + gfx_draw_string_left(dpi, STR_OPTIONS_MUSIC_LABEL, w, w->colours[1], w->x + 10, w->y + window_options_audio_widgets[WIDX_TITLE_MUSIC].top + 1); gfx_draw_string_left( dpi, - (gConfigSound.title_music == 3 ? 5126 : 2739 + gConfigSound.title_music), + window_options_title_music_names[gConfigSound.title_music], NULL, w->colours[1], w->x + window_options_audio_widgets[WIDX_TITLE_MUSIC].left + 1, @@ -1706,10 +1735,10 @@ static void window_options_paint(rct_window *w, rct_drawpixelinfo *dpi) const utf8 * activeThemeName = theme_manager_get_available_theme_name(activeAvailableThemeIndex); set_format_arg(0, uint32, (uint32)activeThemeName); - gfx_draw_string_left(dpi, 5238, NULL, w->colours[1], w->x + 10, w->y + window_options_controls_and_interface_widgets[WIDX_THEMES].top + 1); + gfx_draw_string_left(dpi, STR_THEMES_LABEL_CURRENT_THEME, NULL, w->colours[1], w->x + 10, w->y + window_options_controls_and_interface_widgets[WIDX_THEMES].top + 1); gfx_draw_string_left_clipped( dpi, - 1170, + STR_STRING, gCommonFormatArgs, w->colours[1], w->x + window_options_controls_and_interface_widgets[WIDX_THEMES].left + 1, @@ -1730,10 +1759,10 @@ static void window_options_paint(rct_window *w, rct_drawpixelinfo *dpi) ); break; case WINDOW_OPTIONS_PAGE_MISC: - gfx_draw_string_left(dpi, 2700, w, w->colours[1], w->x + 10, w->y + window_options_misc_widgets[WIDX_AUTOSAVE].top + 1); + gfx_draw_string_left(dpi, STR_OPTIONS_AUTOSAVE_FREQUENCY_LABEL, w, w->colours[1], w->x + 10, w->y + window_options_misc_widgets[WIDX_AUTOSAVE].top + 1); gfx_draw_string_left( dpi, - STR_SAVE_EVERY_MINUTE + gConfigGeneral.autosave_frequency, + window_options_autosave_names[gConfigGeneral.autosave_frequency], NULL, w->colours[1], w->x + window_options_misc_widgets[WIDX_AUTOSAVE].left + 1, @@ -1744,7 +1773,7 @@ static void window_options_paint(rct_window *w, rct_drawpixelinfo *dpi) gfx_draw_string_left(dpi, STR_TITLE_SEQUENCE, w, w->colours[1], w->x + 10, w->y + window_options_misc_widgets[WIDX_TITLE_SEQUENCE].top + 1); gfx_draw_string_left_clipped( dpi, - 1170, + STR_STRING, gCommonFormatArgs, w->colours[1], w->x + window_options_misc_widgets[WIDX_TITLE_SEQUENCE].left + 1, @@ -1755,7 +1784,7 @@ static void window_options_paint(rct_window *w, rct_drawpixelinfo *dpi) gfx_draw_string_left(dpi, STR_DEFAULT_INSPECTION_INTERVAL, w, w->colours[1], w->x + 10, w->y + window_options_misc_widgets[WIDX_DEFAULT_INSPECTION_INTERVAL].top + 1); gfx_draw_string_left( dpi, - STR_EVERY_10_MINUTES + gConfigGeneral.default_inspection_interval, + RideInspectionIntervalNames[gConfigGeneral.default_inspection_interval], NULL, w->colours[1], w->x + window_options_misc_widgets[WIDX_DEFAULT_INSPECTION_INTERVAL].left + 1, @@ -1846,12 +1875,12 @@ static void window_options_draw_tab_image(rct_drawpixelinfo *dpi, rct_window *w, static void window_options_draw_tab_images(rct_drawpixelinfo *dpi, rct_window *w) { - window_options_draw_tab_image(dpi, w, WINDOW_OPTIONS_PAGE_DISPLAY, 5442); - window_options_draw_tab_image(dpi, w, WINDOW_OPTIONS_PAGE_RENDERING, 5221); - window_options_draw_tab_image(dpi, w, WINDOW_OPTIONS_PAGE_CULTURE, 5229); - window_options_draw_tab_image(dpi, w, WINDOW_OPTIONS_PAGE_AUDIO, 5335); - window_options_draw_tab_image(dpi, w, WINDOW_OPTIONS_PAGE_CONTROLS_AND_INTERFACE, 5201); - window_options_draw_tab_image(dpi, w, WINDOW_OPTIONS_PAGE_MISC, 5205); + window_options_draw_tab_image(dpi, w, WINDOW_OPTIONS_PAGE_DISPLAY, SPR_TAB_RIDE_0); + window_options_draw_tab_image(dpi, w, WINDOW_OPTIONS_PAGE_RENDERING, SPR_TAB_PAINT_0); + window_options_draw_tab_image(dpi, w, WINDOW_OPTIONS_PAGE_CULTURE, SPR_TAB_TIMER_0); + window_options_draw_tab_image(dpi, w, WINDOW_OPTIONS_PAGE_AUDIO, SPR_TAB_MUSIC_0); + window_options_draw_tab_image(dpi, w, WINDOW_OPTIONS_PAGE_CONTROLS_AND_INTERFACE, SPR_TAB_GEARS_0); + window_options_draw_tab_image(dpi, w, WINDOW_OPTIONS_PAGE_MISC, SPR_TAB_WRENCH_0); window_options_draw_tab_image(dpi, w, WINDOW_OPTIONS_PAGE_TWITCH, SPR_G2_TAB_TWITCH); } diff --git a/src/windows/park.c b/src/windows/park.c index 5a5b644be9..9011badc7a 100644 --- a/src/windows/park.c +++ b/src/windows/park.c @@ -81,29 +81,29 @@ enum WINDOW_PARK_WIDGET_IDX { #pragma region Widgets #define MAIN_PARK_WIDGETS \ - { WWT_FRAME, 0, 0, 229, 0, 223, 0x0FFFFFFFF, STR_NONE }, /* panel / background */ \ - { WWT_CAPTION, 0, 1, 228, 1, 14, 0x361, STR_WINDOW_TITLE_TIP }, /* title bar */ \ + { WWT_FRAME, 0, 0, 229, 0, 223, 0xFFFFFFFF, STR_NONE }, /* panel / background */ \ + { WWT_CAPTION, 0, 1, 228, 1, 14, STR_STRINGID, STR_WINDOW_TITLE_TIP }, /* title bar */ \ { WWT_CLOSEBOX, 0, 217, 227, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, /* close x button */ \ - { WWT_RESIZE, 1, 0, 229, 43, 173, 0x0FFFFFFFF, STR_NONE }, /* tab content panel */ \ - { WWT_TAB, 1, 3, 33, 17, 43, 0x2000144E, STR_PARK_ENTRANCE_TAB_TIP }, /* tab 1 */ \ - { WWT_TAB, 1, 34, 64, 17, 43, 0x2000144E, STR_PARK_RATING_TAB_TIP }, /* tab 2 */ \ - { WWT_TAB, 1, 65, 95, 17, 43, 0x2000144E, STR_PARK_GUESTS_TAB_TIP }, /* tab 3 */ \ - { WWT_TAB, 1, 96, 126, 17, 43, 0x2000144E, STR_PARK_PRICE_TAB_TIP }, /* tab 4 */ \ - { WWT_TAB, 1, 127, 157, 17, 43, 0x2000144E, STR_PARK_STATS_TAB_TIP }, /* tab 5 */ \ - { WWT_TAB, 1, 158, 188, 17, 43, 0x2000144E, STR_PARK_OBJECTIVE_TAB_TIP }, /* tab 6 */ \ - { WWT_TAB, 1, 189, 219, 17, 43, 0x2000144E, STR_PARK_AWARDS_TAB_TIP } /* tab 7 */ + { WWT_RESIZE, 1, 0, 229, 43, 173, 0xFFFFFFFF, STR_NONE }, /* tab content panel */ \ + { WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_PARK_ENTRANCE_TAB_TIP }, /* tab 1 */ \ + { WWT_TAB, 1, 34, 64, 17, 43, 0x20000000 | SPR_TAB, STR_PARK_RATING_TAB_TIP }, /* tab 2 */ \ + { WWT_TAB, 1, 65, 95, 17, 43, 0x20000000 | SPR_TAB, STR_PARK_GUESTS_TAB_TIP }, /* tab 3 */ \ + { WWT_TAB, 1, 96, 126, 17, 43, 0x20000000 | SPR_TAB, STR_PARK_PRICE_TAB_TIP }, /* tab 4 */ \ + { WWT_TAB, 1, 127, 157, 17, 43, 0x20000000 | SPR_TAB, STR_PARK_STATS_TAB_TIP }, /* tab 5 */ \ + { WWT_TAB, 1, 158, 188, 17, 43, 0x20000000 | SPR_TAB, STR_PARK_OBJECTIVE_TAB_TIP }, /* tab 6 */ \ + { WWT_TAB, 1, 189, 219, 17, 43, 0x20000000 | SPR_TAB, STR_PARK_AWARDS_TAB_TIP } /* tab 7 */ static rct_widget window_park_entrance_widgets[] = { MAIN_PARK_WIDGETS, - { WWT_VIEWPORT, 1, 3, 204, 46, 160, 0x0FFFFFFFF, STR_NONE }, // viewport - { WWT_12, 1, 3, 204, 161, 171, 0x0FFFFFFFF, STR_NONE }, // status - { WWT_FLATBTN, 1, 205, 228, 49, 72, 0x0FFFFFFFF, STR_OPEN_OR_CLOSE_PARK_TIP }, // open / close - { WWT_FLATBTN, 1, 205, 228, 73, 96, SPR_BUY_LAND_RIGHTS, 5135 }, // buy land rights - //{ WWT_FLATBTN, 1, 205, 228, 97, 120, SPR_BUY_CONSTRUCTION_RIGHTS, SPR_BUY_CONSTRUCTION_RIGHTS_TIP }, // buy construction rights + { WWT_VIEWPORT, 1, 3, 204, 46, 160, 0xFFFFFFFF, STR_NONE }, // viewport + { WWT_12, 1, 3, 204, 161, 171, 0xFFFFFFFF, STR_NONE }, // status + { WWT_FLATBTN, 1, 205, 228, 49, 72, 0xFFFFFFFF, STR_OPEN_OR_CLOSE_PARK_TIP }, // open / close + { WWT_FLATBTN, 1, 205, 228, 73, 96, SPR_BUY_LAND_RIGHTS, STR_BUY_LAND_AND_CONSTRUCTION_RIGHTS_TIP }, // buy land rights + //{ WWT_FLATBTN, 1, 205, 228, 97, 120, SPR_BUY_CONSTRUCTION_RIGHTS, STR_BUY_CONSTRUCTION_RIGHTS_TIP }, // buy construction rights { WWT_FLATBTN, 1, 205, 228, 97, 120, SPR_LOCATE, STR_LOCATE_SUBJECT_TIP }, // locate { WWT_FLATBTN, 1, 205, 228, 121, 144, SPR_RENAME, STR_NAME_PARK_TIP }, // rename - { WWT_IMGBTN, 1, 210, 223, 51, 65, SPR_G2_RCT1_CLOSE_BUTTON_0, 5296 }, - { WWT_IMGBTN, 1, 210, 223, 66, 79, SPR_G2_RCT1_OPEN_BUTTON_0, 5297 }, + { WWT_IMGBTN, 1, 210, 223, 51, 65, SPR_G2_RCT1_CLOSE_BUTTON_0, STR_CLOSE_PARK_TIP }, + { WWT_IMGBTN, 1, 210, 223, 66, 79, SPR_G2_RCT1_OPEN_BUTTON_0, STR_OPEN_PARK_TIP }, { WIDGETS_END }, }; @@ -120,7 +120,7 @@ static rct_widget window_park_guests_widgets[] = { static rct_widget window_park_price_widgets[] = { MAIN_PARK_WIDGETS, { WWT_24, 1, 7, 146, 50, 61, STR_ADMISSION_PRICE, STR_NONE }, // - { WWT_SPINNER, 1, 147, 222, 50, 61, 0x595, STR_NONE }, // price + { WWT_SPINNER, 1, 147, 222, 50, 61, STR_ARG_6_CURRENCY2DP, STR_NONE }, // price { WWT_DROPDOWN_BUTTON, 1, 211, 221, 51, 55, STR_NUMERIC_UP, STR_NONE }, // increase price { WWT_DROPDOWN_BUTTON, 1, 211, 221, 56, 60, STR_NUMERIC_DOWN, STR_NONE }, // decrease price { WIDGETS_END }, @@ -530,6 +530,31 @@ static uint32 window_park_page_hold_down_widgets[] = { #pragma endregion +typedef struct window_park_award { + rct_string_id text; + uint32 sprite; +} window_park_award; + +static const window_park_award ParkAwards[] = { + { STR_AWARD_MOST_UNTIDY, SPR_AWARD_MOST_UNTIDY }, + { STR_AWARD_MOST_TIDY, SPR_AWARD_MOST_TIDY }, + { STR_AWARD_BEST_ROLLERCOASTERS, SPR_AWARD_BEST_ROLLERCOASTERS }, + { STR_AWARD_BEST_VALUE, SPR_AWARD_BEST_VALUE }, + { STR_AWARD_MOST_BEAUTIFUL, SPR_AWARD_MOST_BEAUTIFUL }, + { STR_AWARD_WORST_VALUE, SPR_AWARD_WORST_VALUE }, + { STR_AWARD_SAFEST, SPR_AWARD_SAFEST }, + { STR_AWARD_BEST_STAFF, SPR_AWARD_BEST_STAFF }, + { STR_AWARD_BEST_FOOD, SPR_AWARD_BEST_FOOD }, + { STR_AWARD_WORST_FOOD, SPR_AWARD_WORST_FOOD }, + { STR_AWARD_BEST_RESTROOMS, SPR_AWARD_BEST_RESTROOMS }, + { STR_AWARD_MOST_DISAPPOINTING, SPR_AWARD_MOST_DISAPPOINTING }, + { STR_AWARD_BEST_WATER_RIDES, SPR_AWARD_BEST_WATER_RIDES }, + { STR_AWARD_BEST_CUSTOM_DESIGNED_RIDES, SPR_AWARD_BEST_CUSTOM_DESIGNED_RIDES }, + { STR_AWARD_MOST_DAZZLING_RIDE_COLOURS, SPR_AWARD_MOST_DAZZLING_RIDE_COLOURS }, + { STR_AWARD_MOST_CONFUSING_LAYOUT, SPR_AWARD_MOST_CONFUSING_LAYOUT }, + { STR_AWARD_BEST_GENTLE_RIDES, SPR_AWARD_BEST_GENTLE_RIDES }, +}; + static void window_park_init_viewport(rct_window *w); static void window_park_set_page(rct_window *w, int page); static void window_park_anchor_border_widgets(rct_window *w); @@ -706,10 +731,10 @@ static void window_park_entrance_dropdown(rct_window *w, int widgetIndex, int dr dropdownIndex = gDropdownHighlightedIndex; if (dropdownIndex != 0) { - gGameCommandErrorTitle = 1724; + gGameCommandErrorTitle = STR_CANT_CLOSE_PARK; park_set_open(1); } else { - gGameCommandErrorTitle = 1723; + gGameCommandErrorTitle = STR_CANT_OPEN_PARK; park_set_open(0); } } @@ -827,7 +852,7 @@ static void window_park_entrance_tooldown(rct_window* w, int widgetIndex, int x, case WIDX_BUY_LAND_RIGHTS: if (LandRightsMode) { if (x != (sint16)0x8000) { - gGameCommandErrorTitle = 0x6BD; // Can't buy land... + gGameCommandErrorTitle = STR_CANT_BUY_LAND; game_do_command( gMapSelectPositionA.x, 1, @@ -841,7 +866,7 @@ static void window_park_entrance_tooldown(rct_window* w, int widgetIndex, int x, } else { if (x != (sint16)0x8000) { - gGameCommandErrorTitle = 0x6C0; // Can't buy construction rights here... + gGameCommandErrorTitle = STR_CANT_BUY_CONSTRUCTION_RIGHTS_HERE; game_do_command( gMapSelectPositionA.x, 1, @@ -870,7 +895,7 @@ static void window_park_entrance_tooldrag(rct_window* w, int widgetIndex, int x, case WIDX_BUY_LAND_RIGHTS: if (LandRightsMode) { if (x != (sint16)0x8000) { - gGameCommandErrorTitle = 0x6BD; // Can't buy land... + gGameCommandErrorTitle = STR_CANT_BUY_LAND; game_do_command( gMapSelectPositionA.x, 1, @@ -884,7 +909,7 @@ static void window_park_entrance_tooldrag(rct_window* w, int widgetIndex, int x, } else { if (x != (sint16)0x8000) { - gGameCommandErrorTitle = 0x6C0; // Can't buy construction rights here... + gGameCommandErrorTitle = STR_CANT_BUY_CONSTRUCTION_RIGHTS_HERE; game_do_command( gMapSelectPositionA.x, 1, @@ -1469,7 +1494,7 @@ static void window_park_price_invalidate(rct_window *w) money16 parkEntranceFee = park_get_entrance_fee(); set_format_arg(6, uint32, parkEntranceFee); - window_park_price_widgets[WIDX_PRICE].image = parkEntranceFee == 0 ? STR_FREE : 1429; + window_park_price_widgets[WIDX_PRICE].text = parkEntranceFee == 0 ? STR_FREE : STR_ARG_6_CURRENCY2DP; window_align_tabs(w, WIDX_TAB_1, WIDX_TAB_7); window_park_anchor_border_widgets(w); @@ -1752,7 +1777,7 @@ static void window_park_objective_paint(rct_window *w, rct_drawpixelinfo *dpi) y += 5; // Your objective: - gfx_draw_string_left(dpi, 2384, NULL, 0, x, y); + gfx_draw_string_left(dpi, STR_OBJECTIVE_LABEL, NULL, 0, x, y); y += 10; // Objective @@ -1760,18 +1785,18 @@ static void window_park_objective_paint(rct_window *w, rct_drawpixelinfo *dpi) set_format_arg(2, short, date_get_total_months(MONTH_OCTOBER, gScenarioObjectiveYear)); set_format_arg(4, int, gScenarioObjectiveCurrency); - y += gfx_draw_string_left_wrapped(dpi, gCommonFormatArgs, x, y, 221, 2385 + gScenarioObjectiveType, 0); + y += gfx_draw_string_left_wrapped(dpi, gCommonFormatArgs, x, y, 221, ObjectiveNames[gScenarioObjectiveType], 0); y += 5; // Objective outcome if (gScenarioCompletedCompanyValue != MONEY32_UNDEFINED) { if (gScenarioCompletedCompanyValue == 0x80000001) { // Objective failed - gfx_draw_string_left_wrapped(dpi, NULL, x, y, 222, 2789, 0); + gfx_draw_string_left_wrapped(dpi, NULL, x, y, 222, STR_OBJECTIVE_FAILED, 0); } else { // Objective completed set_format_arg(0, int, gScenarioCompletedCompanyValue); - gfx_draw_string_left_wrapped(dpi, gCommonFormatArgs, x, y, 222, 2788, 0); + gfx_draw_string_left_wrapped(dpi, gCommonFormatArgs, x, y, 222, STR_OBJECTIVE_ACHIEVED, 0); } } } @@ -1884,8 +1909,8 @@ static void window_park_awards_paint(rct_window *w, rct_drawpixelinfo *dpi) if (award->time == 0) continue; - gfx_draw_sprite(dpi, SPR_AWARD_MOST_UNTIDY + award->type, x, y, 0); - gfx_draw_string_left_wrapped(dpi, NULL, x + 34, y + 6, 180, STR_AWARD_MOST_UNTIDY + award->type, 0); + gfx_draw_sprite(dpi, ParkAwards[award->type].sprite, x, y, 0); + gfx_draw_string_left_wrapped(dpi, NULL, x + 34, y + 6, 180, ParkAwards[award->type].text, 0); y += 32; count++; @@ -1963,7 +1988,7 @@ static void window_park_draw_tab_images(rct_drawpixelinfo *dpi, rct_window *w) // Entrance tab if (!(w->disabled_widgets & (1 << WIDX_TAB_1))) - gfx_draw_sprite(dpi, 5200, w->x + w->widgets[WIDX_TAB_1].left, w->y + w->widgets[WIDX_TAB_1].top, 0); + gfx_draw_sprite(dpi, SPR_TAB_PARK_ENTRANCE, w->x + w->widgets[WIDX_TAB_1].left, w->y + w->widgets[WIDX_TAB_1].top, 0); // Rating tab if (!(w->disabled_widgets & (1 << WIDX_TAB_2))) { diff --git a/src/windows/player.c b/src/windows/player.c index f1e109ff99..dd5f7fde1d 100644 --- a/src/windows/player.c +++ b/src/windows/player.c @@ -61,20 +61,20 @@ enum WINDOW_PLAYER_WIDGET_IDX { }; #define WINDOW_PLAYER_COMMON_WIDGETS \ - { WWT_FRAME, 0, 0, 191, 0, 156, 0x0FFFFFFFF, STR_NONE }, /* Panel / Background */ \ - { WWT_CAPTION, 0, 1, 190, 1, 14, STR_STRING, STR_WINDOW_TITLE_TIP }, /* Title */ \ - { WWT_CLOSEBOX, 0, 179, 189, 2, 13, 824, STR_CLOSE_WINDOW_TIP }, /* Close x button */ \ - { WWT_RESIZE, 1, 0, 191, 43, 156, 0x0FFFFFFFF, STR_NONE }, /* Resize */ \ - { WWT_TAB, 1, 3, 33, 17, 43, 0x2000144E, STR_NONE }, /* Tab 1 */ \ - { WWT_TAB, 1, 34, 64, 17, 43, 0x2000144E, STR_NONE } /* Tab 2 */ + { WWT_FRAME, 0, 0, 191, 0, 156, 0xFFFFFFFF, STR_NONE }, /* Panel / Background */ \ + { WWT_CAPTION, 0, 1, 190, 1, 14, STR_STRING, STR_WINDOW_TITLE_TIP }, /* Title */ \ + { WWT_CLOSEBOX, 0, 179, 189, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, /* Close x button */ \ + { WWT_RESIZE, 1, 0, 191, 43, 156, 0xFFFFFFFF, STR_NONE }, /* Resize */ \ + { WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_NONE }, /* Tab 1 */ \ + { WWT_TAB, 1, 34, 64, 17, 43, 0x20000000 | SPR_TAB, STR_NONE } /* Tab 2 */ rct_widget window_player_overview_widgets[] = { WINDOW_PLAYER_COMMON_WIDGETS, - { WWT_DROPDOWN, 1, 3, 177, 46, 57, 0x0FFFFFFFF, STR_NONE }, // Permission group - { WWT_DROPDOWN_BUTTON, 1, 167, 177, 47, 56, 876, STR_NONE }, // - { WWT_FLATBTN, 1, 179, 190, 45, 68, SPR_LOCATE, STR_LOCATE_PLAYER_TIP }, // Locate button - { WWT_FLATBTN, 1, 179, 190, 69, 92, SPR_DEMOLISH, STR_KICK_PLAYER_TIP }, // Kick button - { WWT_VIEWPORT, 1, 3, 177, 60, 120, 0x0FFFFFFFF, STR_NONE }, // Viewport + { WWT_DROPDOWN, 1, 3, 177, 46, 57, 0xFFFFFFFF, STR_NONE }, // Permission group + { WWT_DROPDOWN_BUTTON, 1, 167, 177, 47, 56, STR_DROPDOWN_GLYPH, STR_NONE }, // + { WWT_FLATBTN, 1, 179, 190, 45, 68, SPR_LOCATE, STR_LOCATE_PLAYER_TIP }, // Locate button + { WWT_FLATBTN, 1, 179, 190, 69, 92, SPR_DEMOLISH, STR_KICK_PLAYER_TIP }, // Kick button + { WWT_VIEWPORT, 1, 3, 177, 60, 120, 0xFFFFFFFF, STR_NONE }, // Viewport { WIDGETS_END }, }; @@ -257,7 +257,7 @@ void window_player_overview_show_group_dropdown(rct_window *w, rct_widget *widge ); for (i = 0; i < network_get_num_groups(); i++) { - gDropdownItemsFormat[i] = 2777; + gDropdownItemsFormat[i] = STR_OPTIONS_DROPDOWN_ITEM; gDropdownItemsArgs[i] = (int)network_get_group_name(i); } @@ -384,7 +384,7 @@ void window_player_overview_paint(rct_window *w, rct_drawpixelinfo *dpi) int y = w->y + 24; set_format_arg(0, uint16, STR_PING); - gfx_draw_string_left(dpi, STR_WINDOW_COLOUR_2_STRING, gCommonFormatArgs, 0, x, y); + gfx_draw_string_left(dpi, STR_WINDOW_COLOUR_2_STRINGID, gCommonFormatArgs, 0, x, y); char ping[64]; sprintf(ping, "%d ms", network_get_player_ping(player)); gfx_draw_string(dpi, ping, w->colours[2], x + 30, y); diff --git a/src/windows/publisher_credits.c b/src/windows/publisher_credits.c index 2d9ec4b707..228f9d8b1f 100644 --- a/src/windows/publisher_credits.c +++ b/src/windows/publisher_credits.c @@ -27,10 +27,10 @@ enum WINDOW_PUBLISHER_CREDITS_WIDGET_IDX { }; rct_widget window_publisher_credits_widgets[] = { - { WWT_FRAME, 0, 0, 419, 0, 383, 0x0FFFFFFFF, STR_NONE }, // panel / background - { WWT_CAPTION, 0, 1, 418, 1, 14, STR_ROLLERCOASTER_TYCOON_2, STR_WINDOW_TITLE_TIP }, // title bar - { WWT_CLOSEBOX, 0, 407, 417, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // close x button - { WWT_SCROLL, 0, 4, 415, 18, 379, 2, STR_NONE }, // scroll + {WWT_FRAME, 0, 0, 419, 0, 383, 0xFFFFFFFF, STR_NONE}, // panel / background + {WWT_CAPTION, 0, 1, 418, 1, 14, STR_ROLLERCOASTER_TYCOON_2, STR_WINDOW_TITLE_TIP }, // title bar + {WWT_CLOSEBOX, 0, 407, 417, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // close x button + {WWT_SCROLL, 0, 4, 415, 18, 379, SCROLL_VERTICAL, STR_NONE }, // scroll { WIDGETS_END }, }; @@ -95,9 +95,9 @@ void window_publisher_credits_open() window->enabled_widgets = 1 << WIDX_CLOSE; window_init_scroll_widgets(window); - window->colours[0] = 7; - window->colours[1] = 7; - window->colours[2] = 7; + window->colours[0] = COLOUR_LIGHT_BLUE; + window->colours[1] = COLOUR_LIGHT_BLUE; + window->colours[2] = COLOUR_LIGHT_BLUE; } @@ -133,28 +133,28 @@ static void window_publisher_credits_paint(rct_window *w, rct_drawpixelinfo *dpi } int credits_order[] = { - 0xB5D, - 0xB5E, - 0xB5F, - 0xB60, - 0xB61, - 0xB62, - 0xB63, - 0xB64, - 0xB72, - 0xB71, - 0xB65, - 0xB66, - 0xB6F, - 0xB70, - 0xB67, - 0xB68, - 0xB69, - 0xB6A, - 0xB6B, - 0xB6D, - 0xB6E, - 0xB6C, + STR_CREDITS_PUBLISHER_LINE_0, + STR_CREDITS_PUBLISHER_LINE_1, + STR_CREDITS_PUBLISHER_LINE_2, + STR_CREDITS_PUBLISHER_LINE_3, + STR_CREDITS_PUBLISHER_LINE_4, + STR_CREDITS_PUBLISHER_LINE_5, + STR_CREDITS_PUBLISHER_LINE_6, + STR_CREDITS_PUBLISHER_LINE_7, + STR_CREDITS_PUBLISHER_LINE_8, + STR_CREDITS_PUBLISHER_LINE_9, + STR_CREDITS_PUBLISHER_LINE_10, + STR_CREDITS_PUBLISHER_LINE_11, + STR_CREDITS_PUBLISHER_LINE_12, + STR_CREDITS_PUBLISHER_LINE_13, + STR_CREDITS_PUBLISHER_LINE_14, + STR_CREDITS_PUBLISHER_LINE_15, + STR_CREDITS_PUBLISHER_LINE_16, + STR_CREDITS_PUBLISHER_LINE_17, + STR_CREDITS_PUBLISHER_LINE_18, + STR_CREDITS_PUBLISHER_LINE_19, + STR_CREDITS_PUBLISHER_LINE_20, + STR_CREDITS_PUBLISHER_LINE_21, }; /** @@ -170,7 +170,7 @@ static void window_publisher_credits_scrollpaint(rct_window *w, rct_drawpixelinf y += 86; - draw_string_centred_underline(dpi, 0xB5C, 0, 0, x, y); + draw_string_centred_underline(dpi, STR_CREDITS_PUBLISHER_TILE, 0, 0, x, y); y += 14; diff --git a/src/windows/research.c b/src/windows/research.c index 32893af72d..fa5eb57b96 100644 --- a/src/windows/research.c +++ b/src/windows/research.c @@ -67,8 +67,8 @@ static rct_widget window_research_development_widgets[] = { { WWT_CAPTION, 0, 1, 298, 1, 14, STR_RESEARCH_AND_DEVELOPMENT, STR_WINDOW_TITLE_TIP }, { WWT_CLOSEBOX, 0, 287, 297, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, { WWT_RESIZE, 1, 0, 299, 43, 195, 0xFFFFFFFF, STR_NONE }, - { WWT_TAB, 1, 3, 33, 17, 43, 0x2000144E, STR_RESEARCH_AND_DEVELOPMENT_TIP }, - { WWT_TAB, 1, 34, 64, 17, 43, 0x2000144E, STR_FINANCES_RESEARCH_TIP }, + { WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_RESEARCH_AND_DEVELOPMENT_TIP }, + { WWT_TAB, 1, 34, 64, 17, 43, 0x20000000 | SPR_TAB, STR_FINANCES_RESEARCH_TIP }, { WWT_GROUPBOX, 2, 3, 292, 47, 116, STR_CURRENTLY_IN_DEVELOPMENT, STR_NONE }, { WWT_GROUPBOX, 2, 3, 292, 124, 188, STR_LAST_DEVELOPMENT, STR_NONE }, { WWT_FLATBTN, 2, 265, 288, 161, 184, 0xFFFFFFFF, STR_RESEARCH_SHOW_DETAILS_TIP }, @@ -80,19 +80,19 @@ static rct_widget window_research_funding_widgets[] = { { WWT_CAPTION, 0, 1, 318, 1, 14, STR_RESEARCH_FUNDING, STR_WINDOW_TITLE_TIP }, { WWT_CLOSEBOX, 0, 307, 317, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, { WWT_RESIZE, 1, 0, 319, 43, 206, 0xFFFFFFFF, STR_NONE }, - { WWT_TAB, 1, 3, 33, 17, 43, 0x2000144E, STR_RESEARCH_AND_DEVELOPMENT_TIP }, - { WWT_TAB, 1, 34, 64, 17, 43, 0x2000144E, STR_FINANCES_RESEARCH_TIP }, + { WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_RESEARCH_AND_DEVELOPMENT_TIP }, + { WWT_TAB, 1, 34, 64, 17, 43, 0x20000000 | SPR_TAB, STR_FINANCES_RESEARCH_TIP }, { WWT_GROUPBOX, 2, 3, 316, 47, 91, STR_RESEARCH_FUNDING_, STR_NONE }, { WWT_DROPDOWN, 2, 8, 167, 59, 70, 0xFFFFFFFF, STR_SELECT_LEVEL_OF_RESEARCH_AND_DEVELOPMENT }, - { WWT_DROPDOWN_BUTTON, 2, 156, 166, 60, 69, 876, STR_SELECT_LEVEL_OF_RESEARCH_AND_DEVELOPMENT }, + { WWT_DROPDOWN_BUTTON, 2, 156, 166, 60, 69, STR_DROPDOWN_GLYPH, STR_SELECT_LEVEL_OF_RESEARCH_AND_DEVELOPMENT }, { WWT_GROUPBOX, 2, 3, 316, 96, 202, STR_RESEARCH_PRIORITIES, STR_NONE }, - { WWT_CHECKBOX, 2, 8, 311, 108, 119, STR_RESEARCH_TRANSPORT_RIDES, STR_RESEARCH_NEW_TRANSPORT_RIDES }, - { WWT_CHECKBOX, 2, 8, 311, 121, 132, STR_RESEARCH_GENTLE_RIDES, STR_RESEARCH_NEW_GENTLE_RIDES }, - { WWT_CHECKBOX, 2, 8, 311, 134, 145, STR_RESEARCH_ROLLER_COASTERS, STR_RESEARCH_NEW_ROLLER_COASTERS }, - { WWT_CHECKBOX, 2, 8, 311, 147, 158, STR_RESEARCH_THRILL_RIDES, STR_RESEARCH_NEW_THRILL_RIDES }, - { WWT_CHECKBOX, 2, 8, 311, 160, 171, STR_RESEARCH_WATER_RIDES, STR_RESEARCH_NEW_WATER_RIDES }, - { WWT_CHECKBOX, 2, 8, 311, 173, 184, STR_RESEARCH_SHOPS_AND_STALLS, STR_RESEARCH_NEW_SHOPS_AND_STALLS }, - { WWT_CHECKBOX, 2, 8, 311, 186, 197, STR_RESEARCH_SCENERY_AND_THEMING, STR_RESEARCH_NEW_SCENERY_AND_THEMING }, + { WWT_CHECKBOX, 2, 8, 311, 108, 119, STR_RESEARCH_NEW_TRANSPORT_RIDES, STR_RESEARCH_NEW_TRANSPORT_RIDES_TIP }, + { WWT_CHECKBOX, 2, 8, 311, 121, 132, STR_RESEARCH_NEW_GENTLE_RIDES, STR_RESEARCH_NEW_GENTLE_RIDES_TIP }, + { WWT_CHECKBOX, 2, 8, 311, 134, 145, STR_RESEARCH_NEW_ROLLER_COASTERS, STR_RESEARCH_NEW_ROLLER_COASTERS_TIP }, + { WWT_CHECKBOX, 2, 8, 311, 147, 158, STR_RESEARCH_NEW_THRILL_RIDES, STR_RESEARCH_NEW_THRILL_RIDES_TIP }, + { WWT_CHECKBOX, 2, 8, 311, 160, 171, STR_RESEARCH_NEW_WATER_RIDES, STR_RESEARCH_NEW_WATER_RIDES_TIP }, + { WWT_CHECKBOX, 2, 8, 311, 173, 184, STR_RESEARCH_NEW_SHOPS_AND_STALLS, STR_RESEARCH_NEW_SHOPS_AND_STALLS_TIP }, + { WWT_CHECKBOX, 2, 8, 311, 186, 197, STR_RESEARCH_NEW_SCENERY_AND_THEMING, STR_RESEARCH_NEW_SCENERY_AND_THEMING_TIP }, { WIDGETS_END }, }; @@ -214,6 +214,23 @@ static uint32 window_research_page_enabled_widgets[] = { const int window_research_tab_animation_loops[] = { 16, 16 }; +static const rct_string_id ResearchCategoryNames[] = { + STR_RESEARCH_CATEGORY_TRANSPORT, + STR_RESEARCH_CATEGORY_GENTLE, + STR_RESEARCH_CATEGORY_ROLLERCOASTER, + STR_RESEARCH_CATEGORY_THRILL, + STR_RESEARCH_CATEGORY_WATER, + STR_RESEARCH_CATEGORY_SHOP, + STR_RESEARCH_CATEGORY_SCENERYSET, +}; + +static const rct_string_id ResearchStageNames[] = { + STR_RESEARCH_STAGE_INITIAL_RESEARCH, + STR_RESEARCH_STAGE_DESIGNING, + STR_RESEARCH_STAGE_COMPLETING_DESIGN, + STR_RESEARCH_STAGE_UNKNOWN, +}; + static void window_research_set_page(rct_window *w, int page); static void window_research_set_pressed_tab(rct_window *w); static void window_research_draw_tab_images(rct_drawpixelinfo *dpi, rct_window *w); @@ -302,7 +319,7 @@ static void window_research_development_invalidate(rct_window *w) uint32 typeId = gResearchLastItemSubject; if (typeId != 0xFFFFFFFF) { window_research_development_widgets[WIDX_LAST_DEVELOPMENT_BUTTON].type = WWT_FLATBTN; - window_research_development_widgets[WIDX_LAST_DEVELOPMENT_BUTTON].image = typeId >= 0x10000 ? 5189 : 5191; + window_research_development_widgets[WIDX_LAST_DEVELOPMENT_BUTTON].image = typeId >= 0x10000 ? SPR_NEW_RIDE : SPR_NEW_SCENERY; } } @@ -332,17 +349,17 @@ void window_research_development_page_paint(rct_window *w, rct_drawpixelinfo *dp y += 25; // Progress - stringId = 2680; + stringId = STR_RESEARCH_COMPLETED_AL; gfx_draw_string_left_wrapped(dpi, &stringId, x, y, 296, STR_RESEARCH_PROGRESS_LABEL, 0); y += 15; - set_format_arg(0, uint16, STR_UNKNOWN); + set_format_arg(0, uint16, STR_RESEARCH_STAGE_UNKNOWN); gfx_draw_string_left(dpi, STR_RESEARCH_EXPECTED_LABEL, gCommonFormatArgs, 0, x, y); } else { // Research type stringId = STR_RESEARCH_UNKNOWN; if (gResearchProgressStage != RESEARCH_STAGE_INITIAL_RESEARCH) { - stringId = STR_TRANSPORT_RIDE + gResearchNextCategory; + stringId = ResearchCategoryNames[gResearchNextCategory]; if (gResearchProgressStage != RESEARCH_STAGE_DESIGNING) { uint32 typeId = gResearchNextItem; if (typeId >= 0x10000) { @@ -359,18 +376,19 @@ void window_research_development_page_paint(rct_window *w, rct_drawpixelinfo *dp y += 25; // Progress - stringId = 2285 + gResearchProgressStage; + stringId = ResearchStageNames[gResearchProgressStage]; gfx_draw_string_left_wrapped(dpi, &stringId, x, y, 296, STR_RESEARCH_PROGRESS_LABEL, 0); y += 15; // Expected - set_format_arg(0, uint16, STR_UNKNOWN); + set_format_arg(0, uint16, STR_RESEARCH_STAGE_UNKNOWN); if (gResearchProgressStage != 0) { uint16 expectedDay = gResearchExpectedDay; if (expectedDay != 255) { - set_format_arg(0, uint16, 2289); - set_format_arg(2, uint16, STR_DATE_DAY_1 + expectedDay); - set_format_arg(4, uint16, STR_MONTH_MARCH + gResearchExpectedMonth); + // TODO: Should probably use game date format setting + set_format_arg(0, rct_string_id, STR_RESEARCH_EXPECTED_FORMAT); + set_format_arg(2, rct_string_id, DateDayNames[expectedDay]); + set_format_arg(4, rct_string_id, DateGameMonthNames[gResearchExpectedMonth]); } } gfx_draw_string_left(dpi, STR_RESEARCH_EXPECTED_LABEL, gCommonFormatArgs, 0, x, y); @@ -381,7 +399,7 @@ void window_research_development_page_paint(rct_window *w, rct_drawpixelinfo *dp y = w->y + w->widgets[WIDX_LAST_DEVELOPMENT_GROUP + baseWidgetIndex].top + 12; uint32 typeId = gResearchLastItemSubject; - int lastDevelopmentFormat; + rct_string_id lastDevelopmentFormat; if (typeId != 0xFFFFFFFF) { if (typeId >= 0x10000) { rct_ride_entry *rideEntry = get_ride_entry(typeId & 0xFF); @@ -448,7 +466,7 @@ static void window_research_funding_mousedown(int widgetIndex, rct_window *w, rc for (i = 0; i < 4; i++) { gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL; - gDropdownItemsArgs[i] = STR_NO_FUNDING + i; + gDropdownItemsArgs[i] = ResearchFundingLevelNames[i]; } window_dropdown_show_text_custom_width( w->x + dropdownWidget->left, @@ -516,7 +534,7 @@ static void window_research_funding_invalidate(rct_window *w) // Current funding int currentResearchLevel = gResearchFundingLevel; - window_research_funding_widgets[WIDX_RESEARCH_FUNDING].image = STR_NO_FUNDING + currentResearchLevel; + window_research_funding_widgets[WIDX_RESEARCH_FUNDING].text = ResearchFundingLevelNames[currentResearchLevel]; } // Checkboxes diff --git a/src/windows/ride.c b/src/windows/ride.c index d7512c97e9..6be4a24bfd 100644 --- a/src/windows/ride.c +++ b/src/windows/ride.c @@ -187,26 +187,26 @@ enum { // 0x009ADC34 static rct_widget window_ride_main_widgets[] = { - { WWT_FRAME, 0, 0, 315, 0, 206, 0x0FFFFFFFF, STR_NONE }, - { WWT_CAPTION, 0, 1, 314, 1, 14, 0x3DD, STR_WINDOW_TITLE_TIP }, + { WWT_FRAME, 0, 0, 315, 0, 206, 0xFFFFFFFF, STR_NONE }, + { WWT_CAPTION, 0, 1, 314, 1, 14, STR_RIDE_WINDOW_TITLE, STR_WINDOW_TITLE_TIP }, { WWT_CLOSEBOX, 0, 303, 313, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, - { WWT_RESIZE, 1, 0, 315, 43, 179, 0x0FFFFFFFF, STR_NONE }, - { WWT_TAB, 1, 3, 33, 17, 43, 0x2000144E, STR_VIEW_OF_RIDE_ATTRACTION_TIP }, - { WWT_TAB, 1, 34, 64, 17, 46, 0x2000144E, STR_VEHICLE_DETAILS_AND_OPTIONS_TIP }, - { WWT_TAB, 1, 65, 95, 17, 43, 0x2000144E, STR_OPERATING_OPTIONS_TIP }, - { WWT_TAB, 1, 96, 126, 17, 43, 0x2000144E, STR_MAINTENANCE_OPTIONS_TIP }, - { WWT_TAB, 1, 127, 157, 17, 43, 0x2000144E, STR_COLOUR_SCHEME_OPTIONS_TIP }, - { WWT_TAB, 1, 158, 188, 17, 43, 0x2000144E, STR_SOUND_AND_MUSIC_OPTIONS_TIP }, - { WWT_TAB, 1, 189, 219, 17, 43, 0x2000144E, STR_MEASUREMENTS_AND_TEST_DATA_TIP }, - { WWT_TAB, 1, 220, 250, 17, 43, 0x2000144E, STR_GRAPHS_TIP }, - { WWT_TAB, 1, 251, 281, 17, 43, 0x2000144E, STR_INCOME_AND_COSTS_TIP }, - { WWT_TAB, 1, 282, 312, 17, 43, 0x2000144E, STR_CUSTOMER_INFORMATION_TIP }, + { WWT_RESIZE, 1, 0, 315, 43, 179, 0xFFFFFFFF, STR_NONE }, + { WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_VIEW_OF_RIDE_ATTRACTION_TIP }, + { WWT_TAB, 1, 34, 64, 17, 46, 0x20000000 | SPR_TAB, STR_VEHICLE_DETAILS_AND_OPTIONS_TIP }, + { WWT_TAB, 1, 65, 95, 17, 43, 0x20000000 | SPR_TAB, STR_OPERATING_OPTIONS_TIP }, + { WWT_TAB, 1, 96, 126, 17, 43, 0x20000000 | SPR_TAB, STR_MAINTENANCE_OPTIONS_TIP }, + { WWT_TAB, 1, 127, 157, 17, 43, 0x20000000 | SPR_TAB, STR_COLOUR_SCHEME_OPTIONS_TIP }, + { WWT_TAB, 1, 158, 188, 17, 43, 0x20000000 | SPR_TAB, STR_SOUND_AND_MUSIC_OPTIONS_TIP }, + { WWT_TAB, 1, 189, 219, 17, 43, 0x20000000 | SPR_TAB, STR_MEASUREMENTS_AND_TEST_DATA_TIP }, + { WWT_TAB, 1, 220, 250, 17, 43, 0x20000000 | SPR_TAB, STR_GRAPHS_TIP }, + { WWT_TAB, 1, 251, 281, 17, 43, 0x20000000 | SPR_TAB, STR_INCOME_AND_COSTS_TIP }, + { WWT_TAB, 1, 282, 312, 17, 43, 0x20000000 | SPR_TAB, STR_CUSTOMER_INFORMATION_TIP }, - { WWT_VIEWPORT, 1, 3, 290, 60, 166, 0x0FFFFFFFE, STR_NONE }, - { WWT_DROPDOWN, 1, 35, 256, 46, 57, 0x0FFFFFFFF, STR_VIEW_SELECTION }, + { WWT_VIEWPORT, 1, 3, 290, 60, 166, 0xFFFFFFFE, STR_NONE }, + { WWT_DROPDOWN, 1, 35, 256, 46, 57, 0xFFFFFFFF, STR_VIEW_SELECTION }, { WWT_DROPDOWN_BUTTON, 1, 245, 255, 47, 56, STR_DROPDOWN_GLYPH, STR_VIEW_SELECTION }, - { WWT_12, 1, 3, 290, 167, 177, 0x0FFFFFFFF, STR_NONE }, - { WWT_FLATBTN, 1, 291, 314, 46, 69, 0x0FFFFFFFF, STR_OPEN_CLOSE_OR_TEST_RIDE }, + { WWT_12, 1, 3, 290, 167, 177, 0xFFFFFFFF, STR_NONE }, + { WWT_FLATBTN, 1, 291, 314, 46, 69, 0xFFFFFFFF, STR_OPEN_CLOSE_OR_TEST_RIDE }, { WWT_FLATBTN, 1, 291, 314, 70, 93, SPR_CONSTRUCTION, STR_CONSTRUCTION }, { WWT_FLATBTN, 1, 291, 314, 94, 117, SPR_RENAME, STR_NAME_RIDE_TIP }, { WWT_FLATBTN, 1, 291, 314, 118, 141, SPR_LOCATE, STR_LOCATE_SUBJECT_TIP }, @@ -219,25 +219,25 @@ static rct_widget window_ride_main_widgets[] = { // 0x009ADDA8 static rct_widget window_ride_vehicle_widgets[] = { - { WWT_FRAME, 0, 0, 315, 0, 206, 0x0FFFFFFFF, STR_NONE }, - { WWT_CAPTION, 0, 1, 314, 1, 14, 0x3DD, STR_WINDOW_TITLE_TIP }, + { WWT_FRAME, 0, 0, 315, 0, 206, 0xFFFFFFFF, STR_NONE }, + { WWT_CAPTION, 0, 1, 314, 1, 14, STR_RIDE_WINDOW_TITLE, STR_WINDOW_TITLE_TIP }, { WWT_CLOSEBOX, 0, 303, 313, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, - { WWT_RESIZE, 1, 0, 315, 43, 179, 0x0FFFFFFFF, STR_NONE }, - { WWT_TAB, 1, 3, 33, 17, 43, 0x2000144E, STR_VIEW_OF_RIDE_ATTRACTION_TIP }, - { WWT_TAB, 1, 34, 64, 17, 46, 0x2000144E, STR_VEHICLE_DETAILS_AND_OPTIONS_TIP }, - { WWT_TAB, 1, 65, 95, 17, 43, 0x2000144E, STR_OPERATING_OPTIONS_TIP }, - { WWT_TAB, 1, 96, 126, 17, 43, 0x2000144E, STR_MAINTENANCE_OPTIONS_TIP }, - { WWT_TAB, 1, 127, 157, 17, 43, 0x2000144E, STR_COLOUR_SCHEME_OPTIONS_TIP }, - { WWT_TAB, 1, 158, 188, 17, 43, 0x2000144E, STR_SOUND_AND_MUSIC_OPTIONS_TIP }, - { WWT_TAB, 1, 189, 219, 17, 43, 0x2000144E, STR_MEASUREMENTS_AND_TEST_DATA_TIP }, - { WWT_TAB, 1, 220, 250, 17, 43, 0x2000144E, STR_GRAPHS_TIP }, - { WWT_TAB, 1, 251, 281, 17, 43, 0x2000144E, STR_INCOME_AND_COSTS_TIP }, - { WWT_TAB, 1, 282, 312, 17, 43, 0x2000144E, STR_CUSTOMER_INFORMATION_TIP }, + { WWT_RESIZE, 1, 0, 315, 43, 179, 0xFFFFFFFF, STR_NONE }, + { WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_VIEW_OF_RIDE_ATTRACTION_TIP }, + { WWT_TAB, 1, 34, 64, 17, 46, 0x20000000 | SPR_TAB, STR_VEHICLE_DETAILS_AND_OPTIONS_TIP }, + { WWT_TAB, 1, 65, 95, 17, 43, 0x20000000 | SPR_TAB, STR_OPERATING_OPTIONS_TIP }, + { WWT_TAB, 1, 96, 126, 17, 43, 0x20000000 | SPR_TAB, STR_MAINTENANCE_OPTIONS_TIP }, + { WWT_TAB, 1, 127, 157, 17, 43, 0x20000000 | SPR_TAB, STR_COLOUR_SCHEME_OPTIONS_TIP }, + { WWT_TAB, 1, 158, 188, 17, 43, 0x20000000 | SPR_TAB, STR_SOUND_AND_MUSIC_OPTIONS_TIP }, + { WWT_TAB, 1, 189, 219, 17, 43, 0x20000000 | SPR_TAB, STR_MEASUREMENTS_AND_TEST_DATA_TIP }, + { WWT_TAB, 1, 220, 250, 17, 43, 0x20000000 | SPR_TAB, STR_GRAPHS_TIP }, + { WWT_TAB, 1, 251, 281, 17, 43, 0x20000000 | SPR_TAB, STR_INCOME_AND_COSTS_TIP }, + { WWT_TAB, 1, 282, 312, 17, 43, 0x20000000 | SPR_TAB, STR_CUSTOMER_INFORMATION_TIP }, { WWT_DROPDOWN, 1, 7, 308, 50, 61, 0xFFFFFFFF, STR_NONE }, { WWT_DROPDOWN_BUTTON, 1, 297, 307, 51, 60, STR_DROPDOWN_GLYPH, STR_NONE }, { WWT_SCROLL, 1, 7, 308, 141, 183, 0, STR_NONE }, - { WWT_SPINNER, 1, 7, 151, 190, 201, 1021, STR_NONE }, + { WWT_SPINNER, 1, 7, 151, 190, 201, STR_RIDE_VEHICLE_COUNT, STR_NONE }, { WWT_DROPDOWN_BUTTON, 1, 140, 150, 191, 195, STR_NUMERIC_UP, STR_NONE }, { WWT_DROPDOWN_BUTTON, 1, 140, 150, 196, 200, STR_NUMERIC_DOWN, STR_NONE }, { WWT_SPINNER, 1, 164, 308, 190, 201, STR_1_CAR_PER_TRAIN, STR_NONE }, @@ -248,35 +248,35 @@ static rct_widget window_ride_vehicle_widgets[] = { // 0x009ADEFC static rct_widget window_ride_operating_widgets[] = { - { WWT_FRAME, 0, 0, 315, 0, 206, 0x0FFFFFFFF, STR_NONE }, - { WWT_CAPTION, 0, 1, 314, 1, 14, 0x3DD, STR_WINDOW_TITLE_TIP }, + { WWT_FRAME, 0, 0, 315, 0, 206, 0xFFFFFFFF, STR_NONE }, + { WWT_CAPTION, 0, 1, 314, 1, 14, STR_RIDE_WINDOW_TITLE, STR_WINDOW_TITLE_TIP }, { WWT_CLOSEBOX, 0, 303, 313, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, - { WWT_RESIZE, 1, 0, 315, 43, 179, 0x0FFFFFFFF, STR_NONE }, - { WWT_TAB, 1, 3, 33, 17, 43, 0x2000144E, STR_VIEW_OF_RIDE_ATTRACTION_TIP }, - { WWT_TAB, 1, 34, 64, 17, 46, 0x2000144E, STR_VEHICLE_DETAILS_AND_OPTIONS_TIP }, - { WWT_TAB, 1, 65, 95, 17, 43, 0x2000144E, STR_OPERATING_OPTIONS_TIP }, - { WWT_TAB, 1, 96, 126, 17, 43, 0x2000144E, STR_MAINTENANCE_OPTIONS_TIP }, - { WWT_TAB, 1, 127, 157, 17, 43, 0x2000144E, STR_COLOUR_SCHEME_OPTIONS_TIP }, - { WWT_TAB, 1, 158, 188, 17, 43, 0x2000144E, STR_SOUND_AND_MUSIC_OPTIONS_TIP }, - { WWT_TAB, 1, 189, 219, 17, 43, 0x2000144E, STR_MEASUREMENTS_AND_TEST_DATA_TIP }, - { WWT_TAB, 1, 220, 250, 17, 43, 0x2000144E, STR_GRAPHS_TIP }, - { WWT_TAB, 1, 251, 281, 17, 43, 0x2000144E, STR_INCOME_AND_COSTS_TIP }, - { WWT_TAB, 1, 282, 312, 17, 43, 0x2000144E, STR_CUSTOMER_INFORMATION_TIP }, + { WWT_RESIZE, 1, 0, 315, 43, 179, 0xFFFFFFFF, STR_NONE }, + { WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_VIEW_OF_RIDE_ATTRACTION_TIP }, + { WWT_TAB, 1, 34, 64, 17, 46, 0x20000000 | SPR_TAB, STR_VEHICLE_DETAILS_AND_OPTIONS_TIP }, + { WWT_TAB, 1, 65, 95, 17, 43, 0x20000000 | SPR_TAB, STR_OPERATING_OPTIONS_TIP }, + { WWT_TAB, 1, 96, 126, 17, 43, 0x20000000 | SPR_TAB, STR_MAINTENANCE_OPTIONS_TIP }, + { WWT_TAB, 1, 127, 157, 17, 43, 0x20000000 | SPR_TAB, STR_COLOUR_SCHEME_OPTIONS_TIP }, + { WWT_TAB, 1, 158, 188, 17, 43, 0x20000000 | SPR_TAB, STR_SOUND_AND_MUSIC_OPTIONS_TIP }, + { WWT_TAB, 1, 189, 219, 17, 43, 0x20000000 | SPR_TAB, STR_MEASUREMENTS_AND_TEST_DATA_TIP }, + { WWT_TAB, 1, 220, 250, 17, 43, 0x20000000 | SPR_TAB, STR_GRAPHS_TIP }, + { WWT_TAB, 1, 251, 281, 17, 43, 0x20000000 | SPR_TAB, STR_INCOME_AND_COSTS_TIP }, + { WWT_TAB, 1, 282, 312, 17, 43, 0x20000000 | SPR_TAB, STR_CUSTOMER_INFORMATION_TIP }, - { WWT_SPINNER, 1, 157, 308, 61, 72, 874, STR_NONE }, + { WWT_SPINNER, 1, 157, 308, 61, 72, STR_ARG_18_STRINGID, STR_NONE }, { WWT_DROPDOWN_BUTTON, 1, 297, 307, 62, 66, STR_NUMERIC_UP, STR_NONE }, { WWT_DROPDOWN_BUTTON, 1, 297, 307, 67, 71, STR_NUMERIC_DOWN, STR_NONE }, - { WWT_SPINNER, 1, 157, 308, 75, 86, 3096, STR_NONE }, + { WWT_SPINNER, 1, 157, 308, 75, 86, STR_LIFT_HILL_CHAIN_SPEED_VALUE, STR_NONE }, { WWT_DROPDOWN_BUTTON, 1, 297, 307, 76, 80, STR_NUMERIC_UP, STR_SELECT_LIFT_HILL_CHAIN_SPEED_TIP }, { WWT_DROPDOWN_BUTTON, 1, 297, 307, 81, 85, STR_NUMERIC_DOWN, STR_SELECT_LIFT_HILL_CHAIN_SPEED_TIP }, { WWT_CHECKBOX, 1, 7, 86, 109, 120, STR_WAIT_FOR, STR_WAIT_FOR_PASSENGERS_BEFORE_DEPARTING_TIP }, { WWT_CHECKBOX, 1, 7, 308, 124, 135, 0xFFFFFFFF, STR_NONE }, { WWT_CHECKBOX, 1, 7, 156, 139, 150, STR_MINIMUM_WAITING_TIME, STR_MINIMUM_LENGTH_BEFORE_DEPARTING_TIP }, - { WWT_SPINNER, 1, 157, 308, 139, 150, 870, STR_NONE }, + { WWT_SPINNER, 1, 157, 308, 139, 150, STR_ARG_10_STRINGID, STR_NONE }, { WWT_DROPDOWN_BUTTON, 1, 297, 307, 140, 144, STR_NUMERIC_UP, STR_NONE }, { WWT_DROPDOWN_BUTTON, 1, 297, 307, 145, 149, STR_NUMERIC_DOWN, STR_NONE }, { WWT_CHECKBOX, 1, 7, 156, 154, 165, STR_MAXIMUM_WAITING_TIME, STR_MAXIMUM_LENGTH_BEFORE_DEPARTING_TIP }, - { WWT_SPINNER, 1, 157, 308, 154, 165, 872, STR_NONE }, + { WWT_SPINNER, 1, 157, 308, 154, 165, STR_ARG_14_STRINGID, STR_NONE }, { WWT_DROPDOWN_BUTTON, 1, 297, 307, 155, 159, STR_NUMERIC_UP, STR_NONE }, { WWT_DROPDOWN_BUTTON, 1, 297, 307, 160, 164, STR_NUMERIC_DOWN, STR_NONE }, { WWT_CHECKBOX, 1, 7, 308, 169, 180, STR_SYNCHRONISE_WITH_ADJACENT_STATIONS, STR_SYNCHRONISE_WITH_ADJACENT_STATIONS_TIP }, @@ -287,7 +287,7 @@ static rct_widget window_ride_operating_widgets[] = { { WWT_DROPDOWN, 1, 87, 308, 109, 120, 0xFFFFFFFF, STR_NONE }, { WWT_DROPDOWN_BUTTON, 1, 297, 307, 110, 119, STR_DROPDOWN_GLYPH, STR_NONE }, { WWT_24, 1, 7, 149, 89, 100, STR_NUMBER_OF_CIRCUITS, STR_NUMBER_OF_CIRCUITS_TIP }, - { WWT_SPINNER, 1, 157, 308, 89, 100, 1957, STR_NONE }, + { WWT_SPINNER, 1, 157, 308, 89, 100, STR_NUMBER_OF_CIRCUITS_VALUE, STR_NONE }, { WWT_DROPDOWN_BUTTON, 1, 297, 307, 90, 94, STR_NUMERIC_UP, STR_SELECT_NUMBER_OF_CIRCUITS_TIP }, { WWT_DROPDOWN_BUTTON, 1, 297, 307, 95, 99, STR_NUMERIC_DOWN, STR_SELECT_NUMBER_OF_CIRCUITS_TIP }, { WIDGETS_END }, @@ -295,20 +295,20 @@ static rct_widget window_ride_operating_widgets[] = { // 0x009AE190 static rct_widget window_ride_maintenance_widgets[] = { - { WWT_FRAME, 0, 0, 315, 0, 206, 0x0FFFFFFFF, STR_NONE }, - { WWT_CAPTION, 0, 1, 314, 1, 14, 0x3DD, STR_WINDOW_TITLE_TIP }, + { WWT_FRAME, 0, 0, 315, 0, 206, 0xFFFFFFFF, STR_NONE }, + { WWT_CAPTION, 0, 1, 314, 1, 14, STR_RIDE_WINDOW_TITLE, STR_WINDOW_TITLE_TIP }, { WWT_CLOSEBOX, 0, 303, 313, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, - { WWT_RESIZE, 1, 0, 315, 43, 179, 0x0FFFFFFFF, STR_NONE }, - { WWT_TAB, 1, 3, 33, 17, 43, 0x2000144E, STR_VIEW_OF_RIDE_ATTRACTION_TIP }, - { WWT_TAB, 1, 34, 64, 17, 46, 0x2000144E, STR_VEHICLE_DETAILS_AND_OPTIONS_TIP }, - { WWT_TAB, 1, 65, 95, 17, 43, 0x2000144E, STR_OPERATING_OPTIONS_TIP }, - { WWT_TAB, 1, 96, 126, 17, 43, 0x2000144E, STR_MAINTENANCE_OPTIONS_TIP }, - { WWT_TAB, 1, 127, 157, 17, 43, 0x2000144E, STR_COLOUR_SCHEME_OPTIONS_TIP }, - { WWT_TAB, 1, 158, 188, 17, 43, 0x2000144E, STR_SOUND_AND_MUSIC_OPTIONS_TIP }, - { WWT_TAB, 1, 189, 219, 17, 43, 0x2000144E, STR_MEASUREMENTS_AND_TEST_DATA_TIP }, - { WWT_TAB, 1, 220, 250, 17, 43, 0x2000144E, STR_GRAPHS_TIP }, - { WWT_TAB, 1, 251, 281, 17, 43, 0x2000144E, STR_INCOME_AND_COSTS_TIP }, - { WWT_TAB, 1, 282, 312, 17, 43, 0x2000144E, STR_CUSTOMER_INFORMATION_TIP }, + { WWT_RESIZE, 1, 0, 315, 43, 179, 0xFFFFFFFF, STR_NONE }, + { WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_VIEW_OF_RIDE_ATTRACTION_TIP }, + { WWT_TAB, 1, 34, 64, 17, 46, 0x20000000 | SPR_TAB, STR_VEHICLE_DETAILS_AND_OPTIONS_TIP }, + { WWT_TAB, 1, 65, 95, 17, 43, 0x20000000 | SPR_TAB, STR_OPERATING_OPTIONS_TIP }, + { WWT_TAB, 1, 96, 126, 17, 43, 0x20000000 | SPR_TAB, STR_MAINTENANCE_OPTIONS_TIP }, + { WWT_TAB, 1, 127, 157, 17, 43, 0x20000000 | SPR_TAB, STR_COLOUR_SCHEME_OPTIONS_TIP }, + { WWT_TAB, 1, 158, 188, 17, 43, 0x20000000 | SPR_TAB, STR_SOUND_AND_MUSIC_OPTIONS_TIP }, + { WWT_TAB, 1, 189, 219, 17, 43, 0x20000000 | SPR_TAB, STR_MEASUREMENTS_AND_TEST_DATA_TIP }, + { WWT_TAB, 1, 220, 250, 17, 43, 0x20000000 | SPR_TAB, STR_GRAPHS_TIP }, + { WWT_TAB, 1, 251, 281, 17, 43, 0x20000000 | SPR_TAB, STR_INCOME_AND_COSTS_TIP }, + { WWT_TAB, 1, 282, 312, 17, 43, 0x20000000 | SPR_TAB, STR_CUSTOMER_INFORMATION_TIP }, { WWT_DROPDOWN, 1, 107, 308, 71, 82, 0, STR_SELECT_HOW_OFTEN_A_MECHANIC_SHOULD_CHECK_THIS_RIDE }, { WWT_DROPDOWN_BUTTON, 1, 297, 307, 72, 81, STR_DROPDOWN_GLYPH, STR_SELECT_HOW_OFTEN_A_MECHANIC_SHOULD_CHECK_THIS_RIDE }, @@ -319,23 +319,23 @@ static rct_widget window_ride_maintenance_widgets[] = { // 0x009AE2A4 static rct_widget window_ride_colour_widgets[] = { - { WWT_FRAME, 0, 0, 315, 0, 206, 0x0FFFFFFFF, STR_NONE }, - { WWT_CAPTION, 0, 1, 314, 1, 14, 0x3DD, STR_WINDOW_TITLE_TIP }, + { WWT_FRAME, 0, 0, 315, 0, 206, 0xFFFFFFFF, STR_NONE }, + { WWT_CAPTION, 0, 1, 314, 1, 14, STR_RIDE_WINDOW_TITLE, STR_WINDOW_TITLE_TIP }, { WWT_CLOSEBOX, 0, 303, 313, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, - { WWT_RESIZE, 1, 0, 315, 43, 179, 0x0FFFFFFFF, STR_NONE }, - { WWT_TAB, 1, 3, 33, 17, 43, 0x2000144E, STR_VIEW_OF_RIDE_ATTRACTION_TIP }, - { WWT_TAB, 1, 34, 64, 17, 46, 0x2000144E, STR_VEHICLE_DETAILS_AND_OPTIONS_TIP }, - { WWT_TAB, 1, 65, 95, 17, 43, 0x2000144E, STR_OPERATING_OPTIONS_TIP }, - { WWT_TAB, 1, 96, 126, 17, 43, 0x2000144E, STR_MAINTENANCE_OPTIONS_TIP }, - { WWT_TAB, 1, 127, 157, 17, 43, 0x2000144E, STR_COLOUR_SCHEME_OPTIONS_TIP }, - { WWT_TAB, 1, 158, 188, 17, 43, 0x2000144E, STR_SOUND_AND_MUSIC_OPTIONS_TIP }, - { WWT_TAB, 1, 189, 219, 17, 43, 0x2000144E, STR_MEASUREMENTS_AND_TEST_DATA_TIP }, - { WWT_TAB, 1, 220, 250, 17, 43, 0x2000144E, STR_GRAPHS_TIP }, - { WWT_TAB, 1, 251, 281, 17, 43, 0x2000144E, STR_INCOME_AND_COSTS_TIP }, - { WWT_TAB, 1, 282, 312, 17, 43, 0x2000144E, STR_CUSTOMER_INFORMATION_TIP }, + { WWT_RESIZE, 1, 0, 315, 43, 179, 0xFFFFFFFF, STR_NONE }, + { WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_VIEW_OF_RIDE_ATTRACTION_TIP }, + { WWT_TAB, 1, 34, 64, 17, 46, 0x20000000 | SPR_TAB, STR_VEHICLE_DETAILS_AND_OPTIONS_TIP }, + { WWT_TAB, 1, 65, 95, 17, 43, 0x20000000 | SPR_TAB, STR_OPERATING_OPTIONS_TIP }, + { WWT_TAB, 1, 96, 126, 17, 43, 0x20000000 | SPR_TAB, STR_MAINTENANCE_OPTIONS_TIP }, + { WWT_TAB, 1, 127, 157, 17, 43, 0x20000000 | SPR_TAB, STR_COLOUR_SCHEME_OPTIONS_TIP }, + { WWT_TAB, 1, 158, 188, 17, 43, 0x20000000 | SPR_TAB, STR_SOUND_AND_MUSIC_OPTIONS_TIP }, + { WWT_TAB, 1, 189, 219, 17, 43, 0x20000000 | SPR_TAB, STR_MEASUREMENTS_AND_TEST_DATA_TIP }, + { WWT_TAB, 1, 220, 250, 17, 43, 0x20000000 | SPR_TAB, STR_GRAPHS_TIP }, + { WWT_TAB, 1, 251, 281, 17, 43, 0x20000000 | SPR_TAB, STR_INCOME_AND_COSTS_TIP }, + { WWT_TAB, 1, 282, 312, 17, 43, 0x20000000 | SPR_TAB, STR_CUSTOMER_INFORMATION_TIP }, { WWT_SPINNER, 1, 3, 70, 47, 93, 0xFFFFFFFF, STR_NONE }, - { WWT_DROPDOWN, 1, 74, 312, 49, 60, 872, STR_NONE }, + { WWT_DROPDOWN, 1, 74, 312, 49, 60, STR_ARG_14_STRINGID, STR_NONE }, { WWT_DROPDOWN_BUTTON, 1, 301, 311, 50, 59, STR_DROPDOWN_GLYPH, STR_COLOUR_SCHEME_TO_CHANGE_TIP }, { WWT_COLOURBTN, 1, 79, 90, 74, 85, 0xFFFFFFFF, STR_SELECT_MAIN_COLOUR_TIP }, { WWT_COLOURBTN, 1, 99, 110, 74, 85, 0xFFFFFFFF, STR_SELECT_ADDITIONAL_COLOUR_1_TIP }, @@ -347,7 +347,7 @@ static rct_widget window_ride_colour_widgets[] = { { WWT_DROPDOWN, 1, 3, 241, 103, 114, 0, STR_NONE }, { WWT_DROPDOWN_BUTTON, 1, 230, 240, 104, 113, STR_DROPDOWN_GLYPH, STR_SELECT_STYLE_OF_ENTRANCE_EXIT_STATION_TIP }, { WWT_SCROLL, 1, 3, 70, 157, 203, 0, STR_NONE }, - { WWT_DROPDOWN, 1, 74, 312, 157, 168, 868, STR_NONE }, + { WWT_DROPDOWN, 1, 74, 312, 157, 168, STR_ARG_6_STRINGID, STR_NONE }, { WWT_DROPDOWN_BUTTON, 1, 301, 311, 158, 167, STR_DROPDOWN_GLYPH, STR_SELECT_VEHICLE_COLOUR_SCHEME_TIP }, { WWT_DROPDOWN, 1, 74, 312, 173, 184, 0xFFFFFFFF, STR_NONE }, { WWT_DROPDOWN_BUTTON, 1, 301, 311, 174, 183, STR_DROPDOWN_GLYPH, STR_SELECT_VEHICLE_TO_MODIFY_TIP }, @@ -359,20 +359,20 @@ static rct_widget window_ride_colour_widgets[] = { // 0x009AE4C8 static rct_widget window_ride_music_widgets[] = { - { WWT_FRAME, 0, 0, 315, 0, 206, 0x0FFFFFFFF, STR_NONE }, - { WWT_CAPTION, 0, 1, 314, 1, 14, 0x3DD, STR_WINDOW_TITLE_TIP }, + { WWT_FRAME, 0, 0, 315, 0, 206, 0xFFFFFFFF, STR_NONE }, + { WWT_CAPTION, 0, 1, 314, 1, 14, STR_RIDE_WINDOW_TITLE, STR_WINDOW_TITLE_TIP }, { WWT_CLOSEBOX, 0, 303, 313, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, - { WWT_RESIZE, 1, 0, 315, 43, 179, 0x0FFFFFFFF, STR_NONE }, - { WWT_TAB, 1, 3, 33, 17, 43, 0x2000144E, STR_VIEW_OF_RIDE_ATTRACTION_TIP }, - { WWT_TAB, 1, 34, 64, 17, 46, 0x2000144E, STR_VEHICLE_DETAILS_AND_OPTIONS_TIP }, - { WWT_TAB, 1, 65, 95, 17, 43, 0x2000144E, STR_OPERATING_OPTIONS_TIP }, - { WWT_TAB, 1, 96, 126, 17, 43, 0x2000144E, STR_MAINTENANCE_OPTIONS_TIP }, - { WWT_TAB, 1, 127, 157, 17, 43, 0x2000144E, STR_COLOUR_SCHEME_OPTIONS_TIP }, - { WWT_TAB, 1, 158, 188, 17, 43, 0x2000144E, STR_SOUND_AND_MUSIC_OPTIONS_TIP }, - { WWT_TAB, 1, 189, 219, 17, 43, 0x2000144E, STR_MEASUREMENTS_AND_TEST_DATA_TIP }, - { WWT_TAB, 1, 220, 250, 17, 43, 0x2000144E, STR_GRAPHS_TIP }, - { WWT_TAB, 1, 251, 281, 17, 43, 0x2000144E, STR_INCOME_AND_COSTS_TIP }, - { WWT_TAB, 1, 282, 312, 17, 43, 0x2000144E, STR_CUSTOMER_INFORMATION_TIP }, + { WWT_RESIZE, 1, 0, 315, 43, 179, 0xFFFFFFFF, STR_NONE }, + { WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_VIEW_OF_RIDE_ATTRACTION_TIP }, + { WWT_TAB, 1, 34, 64, 17, 46, 0x20000000 | SPR_TAB, STR_VEHICLE_DETAILS_AND_OPTIONS_TIP }, + { WWT_TAB, 1, 65, 95, 17, 43, 0x20000000 | SPR_TAB, STR_OPERATING_OPTIONS_TIP }, + { WWT_TAB, 1, 96, 126, 17, 43, 0x20000000 | SPR_TAB, STR_MAINTENANCE_OPTIONS_TIP }, + { WWT_TAB, 1, 127, 157, 17, 43, 0x20000000 | SPR_TAB, STR_COLOUR_SCHEME_OPTIONS_TIP }, + { WWT_TAB, 1, 158, 188, 17, 43, 0x20000000 | SPR_TAB, STR_SOUND_AND_MUSIC_OPTIONS_TIP }, + { WWT_TAB, 1, 189, 219, 17, 43, 0x20000000 | SPR_TAB, STR_MEASUREMENTS_AND_TEST_DATA_TIP }, + { WWT_TAB, 1, 220, 250, 17, 43, 0x20000000 | SPR_TAB, STR_GRAPHS_TIP }, + { WWT_TAB, 1, 251, 281, 17, 43, 0x20000000 | SPR_TAB, STR_INCOME_AND_COSTS_TIP }, + { WWT_TAB, 1, 282, 312, 17, 43, 0x20000000 | SPR_TAB, STR_CUSTOMER_INFORMATION_TIP }, { WWT_CHECKBOX, 1, 7, 308, 47, 58, STR_PLAY_MUSIC, STR_SELECT_MUSIC_TIP }, { WWT_DROPDOWN, 1, 7, 308, 62, 73, 0, STR_NONE }, @@ -382,20 +382,20 @@ static rct_widget window_ride_music_widgets[] = { // 0x009AE5DC static rct_widget window_ride_measurements_widgets[] = { - { WWT_FRAME, 0, 0, 315, 0, 206, 0x0FFFFFFFF, STR_NONE }, - { WWT_CAPTION, 0, 1, 314, 1, 14, 0x3DD, STR_WINDOW_TITLE_TIP }, + { WWT_FRAME, 0, 0, 315, 0, 206, 0xFFFFFFFF, STR_NONE }, + { WWT_CAPTION, 0, 1, 314, 1, 14, STR_RIDE_WINDOW_TITLE, STR_WINDOW_TITLE_TIP }, { WWT_CLOSEBOX, 0, 303, 313, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, - { WWT_RESIZE, 1, 0, 315, 43, 179, 0x0FFFFFFFF, STR_NONE }, - { WWT_TAB, 1, 3, 33, 17, 43, 0x2000144E, STR_VIEW_OF_RIDE_ATTRACTION_TIP }, - { WWT_TAB, 1, 34, 64, 17, 46, 0x2000144E, STR_VEHICLE_DETAILS_AND_OPTIONS_TIP }, - { WWT_TAB, 1, 65, 95, 17, 43, 0x2000144E, STR_OPERATING_OPTIONS_TIP }, - { WWT_TAB, 1, 96, 126, 17, 43, 0x2000144E, STR_MAINTENANCE_OPTIONS_TIP }, - { WWT_TAB, 1, 127, 157, 17, 43, 0x2000144E, STR_COLOUR_SCHEME_OPTIONS_TIP }, - { WWT_TAB, 1, 158, 188, 17, 43, 0x2000144E, STR_SOUND_AND_MUSIC_OPTIONS_TIP }, - { WWT_TAB, 1, 189, 219, 17, 43, 0x2000144E, STR_MEASUREMENTS_AND_TEST_DATA_TIP }, - { WWT_TAB, 1, 220, 250, 17, 43, 0x2000144E, STR_GRAPHS_TIP }, - { WWT_TAB, 1, 251, 281, 17, 43, 0x2000144E, STR_INCOME_AND_COSTS_TIP }, - { WWT_TAB, 1, 282, 312, 17, 43, 0x2000144E, STR_CUSTOMER_INFORMATION_TIP }, + { WWT_RESIZE, 1, 0, 315, 43, 179, 0xFFFFFFFF, STR_NONE }, + { WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_VIEW_OF_RIDE_ATTRACTION_TIP }, + { WWT_TAB, 1, 34, 64, 17, 46, 0x20000000 | SPR_TAB, STR_VEHICLE_DETAILS_AND_OPTIONS_TIP }, + { WWT_TAB, 1, 65, 95, 17, 43, 0x20000000 | SPR_TAB, STR_OPERATING_OPTIONS_TIP }, + { WWT_TAB, 1, 96, 126, 17, 43, 0x20000000 | SPR_TAB, STR_MAINTENANCE_OPTIONS_TIP }, + { WWT_TAB, 1, 127, 157, 17, 43, 0x20000000 | SPR_TAB, STR_COLOUR_SCHEME_OPTIONS_TIP }, + { WWT_TAB, 1, 158, 188, 17, 43, 0x20000000 | SPR_TAB, STR_SOUND_AND_MUSIC_OPTIONS_TIP }, + { WWT_TAB, 1, 189, 219, 17, 43, 0x20000000 | SPR_TAB, STR_MEASUREMENTS_AND_TEST_DATA_TIP }, + { WWT_TAB, 1, 220, 250, 17, 43, 0x20000000 | SPR_TAB, STR_GRAPHS_TIP }, + { WWT_TAB, 1, 251, 281, 17, 43, 0x20000000 | SPR_TAB, STR_INCOME_AND_COSTS_TIP }, + { WWT_TAB, 1, 282, 312, 17, 43, 0x20000000 | SPR_TAB, STR_CUSTOMER_INFORMATION_TIP }, { WWT_FLATBTN, 1, 288, 311, 164, 187, SPR_FLOPPY, STR_SAVE_TRACK_DESIGN }, { WWT_DROPDOWN_BUTTON, 1, 4, 157, 128, 139, STR_SELECT_NEARBY_SCENERY, STR_NONE }, @@ -407,22 +407,22 @@ static rct_widget window_ride_measurements_widgets[] = { // 0x009AE710 static rct_widget window_ride_graphs_widgets[] = { - { WWT_FRAME, 0, 0, 315, 0, 206, 0x0FFFFFFFF, STR_NONE }, - { WWT_CAPTION, 0, 1, 314, 1, 14, 0x3DD, STR_WINDOW_TITLE_TIP }, + { WWT_FRAME, 0, 0, 315, 0, 206, 0xFFFFFFFF, STR_NONE }, + { WWT_CAPTION, 0, 1, 314, 1, 14, STR_RIDE_WINDOW_TITLE, STR_WINDOW_TITLE_TIP }, { WWT_CLOSEBOX, 0, 303, 313, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, - { WWT_RESIZE, 1, 0, 315, 43, 179, 0x0FFFFFFFF, STR_NONE }, - { WWT_TAB, 1, 3, 33, 17, 43, 0x2000144E, STR_VIEW_OF_RIDE_ATTRACTION_TIP }, - { WWT_TAB, 1, 34, 64, 17, 46, 0x2000144E, STR_VEHICLE_DETAILS_AND_OPTIONS_TIP }, - { WWT_TAB, 1, 65, 95, 17, 43, 0x2000144E, STR_OPERATING_OPTIONS_TIP }, - { WWT_TAB, 1, 96, 126, 17, 43, 0x2000144E, STR_MAINTENANCE_OPTIONS_TIP }, - { WWT_TAB, 1, 127, 157, 17, 43, 0x2000144E, STR_COLOUR_SCHEME_OPTIONS_TIP }, - { WWT_TAB, 1, 158, 188, 17, 43, 0x2000144E, STR_SOUND_AND_MUSIC_OPTIONS_TIP }, - { WWT_TAB, 1, 189, 219, 17, 43, 0x2000144E, STR_MEASUREMENTS_AND_TEST_DATA_TIP }, - { WWT_TAB, 1, 220, 250, 17, 43, 0x2000144E, STR_GRAPHS_TIP }, - { WWT_TAB, 1, 251, 281, 17, 43, 0x2000144E, STR_INCOME_AND_COSTS_TIP }, - { WWT_TAB, 1, 282, 312, 17, 43, 0x2000144E, STR_CUSTOMER_INFORMATION_TIP }, + { WWT_RESIZE, 1, 0, 315, 43, 179, 0xFFFFFFFF, STR_NONE }, + { WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_VIEW_OF_RIDE_ATTRACTION_TIP }, + { WWT_TAB, 1, 34, 64, 17, 46, 0x20000000 | SPR_TAB, STR_VEHICLE_DETAILS_AND_OPTIONS_TIP }, + { WWT_TAB, 1, 65, 95, 17, 43, 0x20000000 | SPR_TAB, STR_OPERATING_OPTIONS_TIP }, + { WWT_TAB, 1, 96, 126, 17, 43, 0x20000000 | SPR_TAB, STR_MAINTENANCE_OPTIONS_TIP }, + { WWT_TAB, 1, 127, 157, 17, 43, 0x20000000 | SPR_TAB, STR_COLOUR_SCHEME_OPTIONS_TIP }, + { WWT_TAB, 1, 158, 188, 17, 43, 0x20000000 | SPR_TAB, STR_SOUND_AND_MUSIC_OPTIONS_TIP }, + { WWT_TAB, 1, 189, 219, 17, 43, 0x20000000 | SPR_TAB, STR_MEASUREMENTS_AND_TEST_DATA_TIP }, + { WWT_TAB, 1, 220, 250, 17, 43, 0x20000000 | SPR_TAB, STR_GRAPHS_TIP }, + { WWT_TAB, 1, 251, 281, 17, 43, 0x20000000 | SPR_TAB, STR_INCOME_AND_COSTS_TIP }, + { WWT_TAB, 1, 282, 312, 17, 43, 0x20000000 | SPR_TAB, STR_CUSTOMER_INFORMATION_TIP }, - { WWT_SCROLL, 1, 3, 308, 46, 157, 1, STR_LOGGING_DATA_FROM_TIP }, + { WWT_SCROLL, 1, 3, 308, 46, 157, SCROLL_HORIZONTAL, STR_LOGGING_DATA_FROM_TIP }, { WWT_DROPDOWN_BUTTON, 1, 3, 75, 163, 176, STR_RIDE_STATS_VELOCITY, STR_SHOW_GRAPH_OF_VELOCITY_AGAINST_TIME_TIP }, { WWT_DROPDOWN_BUTTON, 1, 76, 148, 163, 176, STR_RIDE_STATS_ALTITUDE, STR_SHOW_GRAPH_OF_ALTITUDE_AGAINST_TIME_TIP }, { WWT_DROPDOWN_BUTTON, 1, 149, 221, 163, 176, STR_RIDE_STATS_VERT_G, STR_SHOW_GRAPH_OF_VERTICAL_ACCELERATION_AGAINST_TIME_TIP }, @@ -432,50 +432,50 @@ static rct_widget window_ride_graphs_widgets[] = { // 0x009AE844 static rct_widget window_ride_income_widgets[] = { - { WWT_FRAME, 0, 0, 315, 0, 206, 0x0FFFFFFFF, STR_NONE }, - { WWT_CAPTION, 0, 1, 314, 1, 14, 0x3DD, STR_WINDOW_TITLE_TIP }, + { WWT_FRAME, 0, 0, 315, 0, 206, 0xFFFFFFFF, STR_NONE }, + { WWT_CAPTION, 0, 1, 314, 1, 14, STR_RIDE_WINDOW_TITLE, STR_WINDOW_TITLE_TIP }, { WWT_CLOSEBOX, 0, 303, 313, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, - { WWT_RESIZE, 1, 0, 315, 43, 179, 0x0FFFFFFFF, STR_NONE }, - { WWT_TAB, 1, 3, 33, 17, 43, 0x2000144E, STR_VIEW_OF_RIDE_ATTRACTION_TIP }, - { WWT_TAB, 1, 34, 64, 17, 46, 0x2000144E, STR_VEHICLE_DETAILS_AND_OPTIONS_TIP }, - { WWT_TAB, 1, 65, 95, 17, 43, 0x2000144E, STR_OPERATING_OPTIONS_TIP }, - { WWT_TAB, 1, 96, 126, 17, 43, 0x2000144E, STR_MAINTENANCE_OPTIONS_TIP }, - { WWT_TAB, 1, 127, 157, 17, 43, 0x2000144E, STR_COLOUR_SCHEME_OPTIONS_TIP }, - { WWT_TAB, 1, 158, 188, 17, 43, 0x2000144E, STR_SOUND_AND_MUSIC_OPTIONS_TIP }, - { WWT_TAB, 1, 189, 219, 17, 43, 0x2000144E, STR_MEASUREMENTS_AND_TEST_DATA_TIP }, - { WWT_TAB, 1, 220, 250, 17, 43, 0x2000144E, STR_GRAPHS_TIP }, - { WWT_TAB, 1, 251, 281, 17, 43, 0x2000144E, STR_INCOME_AND_COSTS_TIP }, - { WWT_TAB, 1, 282, 312, 17, 43, 0x2000144E, STR_CUSTOMER_INFORMATION_TIP }, + { WWT_RESIZE, 1, 0, 315, 43, 179, 0xFFFFFFFF, STR_NONE }, + { WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_VIEW_OF_RIDE_ATTRACTION_TIP }, + { WWT_TAB, 1, 34, 64, 17, 46, 0x20000000 | SPR_TAB, STR_VEHICLE_DETAILS_AND_OPTIONS_TIP }, + { WWT_TAB, 1, 65, 95, 17, 43, 0x20000000 | SPR_TAB, STR_OPERATING_OPTIONS_TIP }, + { WWT_TAB, 1, 96, 126, 17, 43, 0x20000000 | SPR_TAB, STR_MAINTENANCE_OPTIONS_TIP }, + { WWT_TAB, 1, 127, 157, 17, 43, 0x20000000 | SPR_TAB, STR_COLOUR_SCHEME_OPTIONS_TIP }, + { WWT_TAB, 1, 158, 188, 17, 43, 0x20000000 | SPR_TAB, STR_SOUND_AND_MUSIC_OPTIONS_TIP }, + { WWT_TAB, 1, 189, 219, 17, 43, 0x20000000 | SPR_TAB, STR_MEASUREMENTS_AND_TEST_DATA_TIP }, + { WWT_TAB, 1, 220, 250, 17, 43, 0x20000000 | SPR_TAB, STR_GRAPHS_TIP }, + { WWT_TAB, 1, 251, 281, 17, 43, 0x20000000 | SPR_TAB, STR_INCOME_AND_COSTS_TIP }, + { WWT_TAB, 1, 282, 312, 17, 43, 0x20000000 | SPR_TAB, STR_CUSTOMER_INFORMATION_TIP }, - { WWT_24, 1, 5, 144, 50, 61, 0xFFFFFFFF, STR_NONE }, - { WWT_SPINNER, 1, 147, 308, 50, 61, 1429, STR_NONE }, - { WWT_DROPDOWN_BUTTON, 1, 297, 307, 51, 55, STR_NUMERIC_UP, STR_NONE }, - { WWT_DROPDOWN_BUTTON, 1, 297, 307, 56, 60, STR_NUMERIC_DOWN, STR_NONE }, - { WWT_CHECKBOX, 1, 5, 310, 61, 72, STR_SAME_PRICE_THROUGHOUT_PARK, STR_SAME_PRICE_THROUGHOUT_PARK_TIP }, - { WWT_24, 1, 5, 144, 89, 100, 0xFFFFFFFF, STR_NONE }, - { WWT_SPINNER, 1, 147, 308, 89, 100, 1799, STR_NONE }, - { WWT_DROPDOWN_BUTTON, 1, 297, 307, 90, 94, STR_NUMERIC_UP, STR_NONE }, - { WWT_DROPDOWN_BUTTON, 1, 297, 307, 95, 99, STR_NUMERIC_DOWN, STR_NONE }, - { WWT_CHECKBOX, 1, 5, 310, 100, 111, STR_SAME_PRICE_THROUGHOUT_PARK, STR_SAME_PRICE_THROUGHOUT_PARK_TIP }, + { WWT_24, 1, 5, 144, 50, 61, 0xFFFFFFFF, STR_NONE }, + { WWT_SPINNER, 1, 147, 308, 50, 61, STR_ARG_6_CURRENCY2DP, STR_NONE }, + { WWT_DROPDOWN_BUTTON, 1, 297, 307, 51, 55, STR_NUMERIC_UP, STR_NONE }, + { WWT_DROPDOWN_BUTTON, 1, 297, 307, 56, 60, STR_NUMERIC_DOWN, STR_NONE }, + { WWT_CHECKBOX, 1, 5, 310, 61, 72, STR_SAME_PRICE_THROUGHOUT_PARK, STR_SAME_PRICE_THROUGHOUT_PARK_TIP }, + { WWT_24, 1, 5, 144, 89, 100, 0xFFFFFFFF, STR_NONE }, + { WWT_SPINNER, 1, 147, 308, 89, 100, STR_RIDE_SECONDARY_PRICE_VALUE, STR_NONE }, + { WWT_DROPDOWN_BUTTON, 1, 297, 307, 90, 94, STR_NUMERIC_UP, STR_NONE }, + { WWT_DROPDOWN_BUTTON, 1, 297, 307, 95, 99, STR_NUMERIC_DOWN, STR_NONE }, + { WWT_CHECKBOX, 1, 5, 310, 100, 111, STR_SAME_PRICE_THROUGHOUT_PARK, STR_SAME_PRICE_THROUGHOUT_PARK_TIP }, { WIDGETS_END }, }; // 0x009AE9C8 static rct_widget window_ride_customer_widgets[] = { - { WWT_FRAME, 0, 0, 315, 0, 206, 0x0FFFFFFFF, STR_NONE }, - { WWT_CAPTION, 0, 1, 314, 1, 14, 0x3DD, STR_WINDOW_TITLE_TIP }, - { WWT_CLOSEBOX, 0, 303, 313, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, - { WWT_RESIZE, 1, 0, 315, 43, 179, 0x0FFFFFFFF, STR_NONE }, - { WWT_TAB, 1, 3, 33, 17, 43, 0x2000144E, STR_VIEW_OF_RIDE_ATTRACTION_TIP }, - { WWT_TAB, 1, 34, 64, 17, 46, 0x2000144E, STR_VEHICLE_DETAILS_AND_OPTIONS_TIP }, - { WWT_TAB, 1, 65, 95, 17, 43, 0x2000144E, STR_OPERATING_OPTIONS_TIP }, - { WWT_TAB, 1, 96, 126, 17, 43, 0x2000144E, STR_MAINTENANCE_OPTIONS_TIP }, - { WWT_TAB, 1, 127, 157, 17, 43, 0x2000144E, STR_COLOUR_SCHEME_OPTIONS_TIP }, - { WWT_TAB, 1, 158, 188, 17, 43, 0x2000144E, STR_SOUND_AND_MUSIC_OPTIONS_TIP }, - { WWT_TAB, 1, 189, 219, 17, 43, 0x2000144E, STR_MEASUREMENTS_AND_TEST_DATA_TIP }, - { WWT_TAB, 1, 220, 250, 17, 43, 0x2000144E, STR_GRAPHS_TIP }, - { WWT_TAB, 1, 251, 281, 17, 43, 0x2000144E, STR_INCOME_AND_COSTS_TIP }, - { WWT_TAB, 1, 282, 312, 17, 43, 0x2000144E, STR_CUSTOMER_INFORMATION_TIP }, + { WWT_FRAME, 0, 0, 315, 0, 206, 0xFFFFFFFF, STR_NONE }, + { WWT_CAPTION, 0, 1, 314, 1, 14, STR_RIDE_WINDOW_TITLE, STR_WINDOW_TITLE_TIP }, + { WWT_CLOSEBOX, 0, 303, 313, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, + { WWT_RESIZE, 1, 0, 315, 43, 179, 0xFFFFFFFF, STR_NONE }, + { WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_VIEW_OF_RIDE_ATTRACTION_TIP }, + { WWT_TAB, 1, 34, 64, 17, 46, 0x20000000 | SPR_TAB, STR_VEHICLE_DETAILS_AND_OPTIONS_TIP }, + { WWT_TAB, 1, 65, 95, 17, 43, 0x20000000 | SPR_TAB, STR_OPERATING_OPTIONS_TIP }, + { WWT_TAB, 1, 96, 126, 17, 43, 0x20000000 | SPR_TAB, STR_MAINTENANCE_OPTIONS_TIP }, + { WWT_TAB, 1, 127, 157, 17, 43, 0x20000000 | SPR_TAB, STR_COLOUR_SCHEME_OPTIONS_TIP }, + { WWT_TAB, 1, 158, 188, 17, 43, 0x20000000 | SPR_TAB, STR_SOUND_AND_MUSIC_OPTIONS_TIP }, + { WWT_TAB, 1, 189, 219, 17, 43, 0x20000000 | SPR_TAB, STR_MEASUREMENTS_AND_TEST_DATA_TIP }, + { WWT_TAB, 1, 220, 250, 17, 43, 0x20000000 | SPR_TAB, STR_GRAPHS_TIP }, + { WWT_TAB, 1, 251, 281, 17, 43, 0x20000000 | SPR_TAB, STR_INCOME_AND_COSTS_TIP }, + { WWT_TAB, 1, 282, 312, 17, 43, 0x20000000 | SPR_TAB, STR_CUSTOMER_INFORMATION_TIP }, { WWT_FLATBTN, 1, 289, 312, 54, 77, SPR_SHOW_GUESTS_THOUGHTS_ABOUT_THIS_RIDE_ATTRACTION, STR_SHOW_GUESTS_THOUGHTS_ABOUT_THIS_RIDE_ATTRACTION_TIP }, { WWT_FLATBTN, 1, 289, 312, 78, 101, SPR_SHOW_GUESTS_ON_THIS_RIDE_ATTRACTION, STR_SHOW_GUESTS_ON_THIS_RIDE_ATTRACTION_TIP }, @@ -967,6 +967,179 @@ ride_overall_view ride_overall_views[MAX_RIDES] = {0}; const int window_ride_tab_animation_divisor[] = { 0, 0, 2, 2, 4, 2, 8, 8, 2, 0 }; const int window_ride_tab_animation_frames[] = { 0, 0, 4, 16, 8, 16, 8, 8, 8, 0 }; +static const rct_string_id RatingNames[] = { + STR_RATING_LOW, + STR_RATING_MEDIUM, + STR_RATING_HIGH, + STR_RATING_VERY_HIGH, + STR_RATING_EXTREME, + STR_RATING_ULTRA_EXTREME, +}; + +static const rct_string_id RideBreakdownReasonNames[] = { + STR_RIDE_BREAKDOWN_SAFETY_CUT_OUT , + STR_RIDE_BREAKDOWN_RESTRAINTS_STUCK_CLOSED, + STR_RIDE_BREAKDOWN_RESTRAINTS_STUCK_OPEN, + STR_RIDE_BREAKDOWN_DOORS_STUCK_CLOSED, + STR_RIDE_BREAKDOWN_DOORS_STUCK_OPEN, + STR_RIDE_BREAKDOWN_VEHICLE_MALFUNCTION, + STR_RIDE_BREAKDOWN_BRAKES_FAILURE, + STR_RIDE_BREAKDOWN_CONTROL_FAILURE +}; + +static const rct_string_id ColourSchemeNames[] = { + STR_MAIN_COLOUR_SCHEME, + STR_ALTERNATIVE_COLOUR_SCHEME_1, + STR_ALTERNATIVE_COLOUR_SCHEME_2, + STR_ALTERNATIVE_COLOUR_SCHEME_3, +}; + +static const rct_string_id VehicleLoadNames[] = { + STR_QUARTER_LOAD, + STR_HALF_LOAD, + STR_THREE_QUARTER_LOAD, + STR_FULL_LOAD, + STR_ANY_LOAD, +}; + +static const rct_string_id VehicleColourSchemeNames[] = { + STR_ALL_VEHICLES_IN_SAME_COLOURS , + STR_DIFFERENT_COLOURS_PER , + STR_DIFFERENT_COLOURS_PER_VEHICLE , +}; + +static const rct_string_id VehicleStatusNames[] = { + STR_MOVING_TO_END_OF, // VEHICLE_STATUS_MOVING_TO_END_OF_STATION + STR_WAITING_FOR_PASSENGERS_AT, // VEHICLE_STATUS_WAITING_FOR_PASSENGERS + STR_WAITING_TO_DEPART, // VEHICLE_STATUS_WAITING_TO_DEPART + STR_DEPARTING, // VEHICLE_STATUS_DEPARTING + STR_TRAVELLING_AT_0, // VEHICLE_STATUS_TRAVELLING + STR_ARRIVING_AT, // VEHICLE_STATUS_ARRIVING + STR_UNLOADING_PASSENGERS_AT, // VEHICLE_STATUS_UNLOADING_PASSENGERS + STR_TRAVELLING_AT_1, // VEHICLE_STATUS_TRAVELLING_BOAT + STR_CRASHING, // VEHICLE_STATUS_CRASHING + STR_CRASHED_0, // VEHICLE_STATUS_CRASHED + STR_TRAVELLING_AT_2, // VEHICLE_STATUS_TRAVELLING_BUMPER_CARS + STR_SWINGING, // VEHICLE_STATUS_SWINGING + STR_ROTATING_0, // VEHICLE_STATUS_ROTATING + STR_ROTATING_1, // VEHICLE_STATUS_FERRIS_WHEEL_ROTATING + STR_OPERATING_0, // VEHICLE_STATUS_SIMULATOR_OPERATING + STR_SHOWING_FILM, // VEHICLE_STATUS_SHOWING_FILM + STR_ROTATING_2, // VEHICLE_STATUS_SPACE_RINGS_OPERATING + STR_OPERATING_1, // VEHICLE_STATUS_TOP_SPIN_OPERATING + STR_OPERATING_2, // VEHICLE_STATUS_HAUNTED_HOUSE_OPERATING + STR_DOING_CIRCUS_SHOW, // VEHICLE_STATUS_DOING_CIRCUS_SHOW + STR_OPERATING_3, // VEHICLE_STATUS_CROOKED_HOUSE_OPERATING + STR_WAITING_FOR_CABLE_LIFT, // VEHICLE_STATUS_WAITING_FOR_CABLE_LIFT + STR_TRAVELLING_AT_3, // VEHICLE_STATUS_TRAVELLING_CABLE_LIFT + STR_STOPPING_0, // VEHICLE_STATUS_STOPPING + STR_WAITING_FOR_PASSENGERS, // VEHICLE_STATUS_WAITING_FOR_PASSENGERS_17 + STR_WAITING_TO_START, // VEHICLE_STATUS_WAITING_TO_START + STR_STARTING, // VEHICLE_STATUS_STARTING + STR_OPERATING, // VEHICLE_STATUS_OPERATING_1A + STR_STOPPING_1, // VEHICLE_STATUS_STOPPING_1B + STR_UNLOADING_PASSENGERS, // VEHICLE_STATUS_UNLOADING_PASSENGERS_1C + STR_STOPPED_BY_BLOCK_BRAKES, // VEHICLE_STATUS_STOPPED_BY_BLOCK_BRAKES +}; + +static const rct_string_id SingleSessionVehicleStatusNames[] = { + STR_STOPPING_0, // VEHICLE_STATUS_MOVING_TO_END_OF_STATION + STR_WAITING_FOR_PASSENGERS, // VEHICLE_STATUS_WAITING_FOR_PASSENGERS + STR_WAITING_TO_START, // VEHICLE_STATUS_WAITING_TO_DEPART + STR_STARTING, // VEHICLE_STATUS_DEPARTING + STR_OPERATING, // VEHICLE_STATUS_TRAVELLING + STR_STOPPING_1, // VEHICLE_STATUS_ARRIVING + STR_UNLOADING_PASSENGERS, // VEHICLE_STATUS_UNLOADING_PASSENGERS +}; + +static const rct_string_id MusicStyleNames[] = { + STR_MUSIC_STYLE_DODGEMS_BEAT, + STR_MUSIC_STYLE_FAIRGROUND_ORGAN, + STR_MUSIC_STYLE_ROMAN_FANFARE, + STR_MUSIC_STYLE_ORIENTAL, + STR_MUSIC_STYLE_MARTIAN, + STR_MUSIC_STYLE_JUNGLE_DRUMS, + STR_MUSIC_STYLE_EGYPTIAN, + STR_MUSIC_STYLE_TOYLAND, + STR_MUSIC_STYLE_CIRCUS_SHOW, + STR_MUSIC_STYLE_SPACE, + STR_MUSIC_STYLE_HORROR, + STR_MUSIC_STYLE_TECHNO, + STR_MUSIC_STYLE_GENTLE, + STR_MUSIC_STYLE_SUMMER, + STR_MUSIC_STYLE_WATER, + STR_MUSIC_STYLE_WILD_WEST, + STR_MUSIC_STYLE_JURASSIC, + STR_MUSIC_STYLE_ROCK, + STR_MUSIC_STYLE_RAGTIME, + STR_MUSIC_STYLE_FANTASY, + STR_MUSIC_STYLE_ROCK_STYLE_2, + STR_MUSIC_STYLE_ICE, + STR_MUSIC_STYLE_SNOW, + STR_MUSIC_STYLE_CUSTOM_MUSIC_1, + STR_MUSIC_STYLE_CUSTOM_MUSIC_2, + STR_MUSIC_STYLE_MEDIEVAL, + STR_MUSIC_STYLE_URBAN, + STR_MUSIC_STYLE_ORGAN, + STR_MUSIC_STYLE_MECHANICAL, + STR_MUSIC_STYLE_MODERN, + STR_MUSIC_STYLE_PIRATES, + STR_MUSIC_STYLE_ROCK_STYLE_3, + STR_MUSIC_STYLE_CANDY_STYLE, +}; + +static const rct_string_id RideModeNames[] = { + STR_RIDE_MODE_NORMAL, + STR_RIDE_MODE_CONTINUOUS_CIRCUIT, + STR_RIDE_MODE_REVERSE_INCLINE_LAUNCHED_SHUTTLE, + STR_RIDE_MODE_POWERED_LAUNCH_PASSTROUGH, + STR_RIDE_MODE_SHUTTLE, + STR_RIDE_MODE_BOAT_HIRE, + STR_RIDE_MODE_UPWARD_LAUNCH, + STR_RIDE_MODE_ROTATING_LIFT, + STR_RIDE_MODE_STATION_TO_STATION, + STR_RIDE_MODE_SINGLE_RIDE_PER_ADMISSION, + STR_RIDE_MODE_UNLIMITED_RIDES_PER_ADMISSION, + STR_RIDE_MODE_MAZE, + STR_RIDE_MODE_RACE, + STR_RIDE_MODE_BUMPER_CAR, + STR_RIDE_MODE_SWING, + STR_RIDE_MODE_SHOP_STALL, + STR_RIDE_MODE_ROTATION, + STR_RIDE_MODE_FORWARD_ROTATION, + STR_RIDE_MODE_BACKWARD_ROTATION, + STR_RIDE_MODE_FILM_AVENGING_AVIATORS, + STR_RIDE_MODE_3D_FILM_MOUSE_TAILS, + STR_RIDE_MODE_SPACE_RINGS, + STR_RIDE_MODE_BEGINNERS, + STR_RIDE_MODE_LIM_POWERED_LAUNCH, + STR_RIDE_MODE_FILM_THRILL_RIDERS, + STR_RIDE_MODE_3D_FILM_STORM_CHASERS, + STR_RIDE_MODE_3D_FILM_SPACE_RAIDERS, + STR_RIDE_MODE_INTENSE, + STR_RIDE_MODE_BERSERK, + STR_RIDE_MODE_HAUNTED_HOUSE, + STR_RIDE_MODE_CIRCUS_SHOW, + STR_RIDE_MODE_DOWNWARD_LAUNCH, + STR_RIDE_MODE_CROOKED_HOUSE, + STR_RIDE_MODE_FREEFALL_DROP, + STR_RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED, + STR_RIDE_MODE_POWERED_LAUNCH, + STR_RIDE_MODE_POWERED_LAUNCH_BLOCK_SECTIONED_MODE, +}; + +typedef struct window_ride_maze_design_option { + rct_string_id text; + uint32 sprite; +} window_ride_maze_design_option; + +static const window_ride_maze_design_option MazeOptions[] = { + { STR_RIDE_DESIGN_MAZE_BRICK_WALLS, SPR_RIDE_DESIGN_PREVIEW_MAZE_BRICK_WALLS }, + { STR_RIDE_DESIGN_MAZE_HEDGES, SPR_RIDE_DESIGN_PREVIEW_MAZE_HEDGES }, + { STR_RIDE_DESIGN_MAZE_ICE_BLOCKS, SPR_RIDE_DESIGN_PREVIEW_MAZE_ICE_BLOCKS }, + { STR_RIDE_DESIGN_MAZE_WOODEN_FENCES, SPR_RIDE_DESIGN_PREVIEW_MAZE_WOODEN_FENCES }, +}; + static void window_ride_draw_tab_image(rct_drawpixelinfo *dpi, rct_window *w, int page, int spriteIndex) { int widgetIndex = WIDX_TAB_1 + page; @@ -1112,15 +1285,15 @@ static void window_ride_draw_tab_customer(rct_drawpixelinfo *dpi, rct_window *w) static void window_ride_draw_tab_images(rct_drawpixelinfo *dpi, rct_window *w) { window_ride_draw_tab_vehicle(dpi, w); - window_ride_draw_tab_image(dpi, w, WINDOW_RIDE_PAGE_OPERATING, 5201); - window_ride_draw_tab_image(dpi, w, WINDOW_RIDE_PAGE_MAINTENANCE, 5205); + window_ride_draw_tab_image(dpi, w, WINDOW_RIDE_PAGE_OPERATING, SPR_TAB_GEARS_0); + window_ride_draw_tab_image(dpi, w, WINDOW_RIDE_PAGE_MAINTENANCE, SPR_TAB_WRENCH_0); window_ride_draw_tab_image(dpi, w, WINDOW_RIDE_PAGE_INCOME, SPR_TAB_ADMISSION_0); window_ride_draw_tab_main(dpi, w); - window_ride_draw_tab_image(dpi, w, WINDOW_RIDE_PAGE_MEASUREMENTS, 5229); - window_ride_draw_tab_image(dpi, w, WINDOW_RIDE_PAGE_COLOUR, 5221); - window_ride_draw_tab_image(dpi, w, WINDOW_RIDE_PAGE_GRAPHS, 5237); + window_ride_draw_tab_image(dpi, w, WINDOW_RIDE_PAGE_MEASUREMENTS, SPR_TAB_TIMER_0); + window_ride_draw_tab_image(dpi, w, WINDOW_RIDE_PAGE_COLOUR, SPR_TAB_PAINT_0); + window_ride_draw_tab_image(dpi, w, WINDOW_RIDE_PAGE_GRAPHS, SPR_TAB_GRAPH_A_0); window_ride_draw_tab_customer(dpi, w); - window_ride_draw_tab_image(dpi, w, WINDOW_RIDE_PAGE_MUSIC, 5335); + window_ride_draw_tab_image(dpi, w, WINDOW_RIDE_PAGE_MUSIC, SPR_TAB_MUSIC_0); } /** @@ -1807,7 +1980,7 @@ static void window_ride_show_view_dropdown(rct_window *w, rct_widget *widget) currentItem = 1; // Vehicles - name = RideNameConvention[ride->type].vehicle_name + 6; + name = RideComponentNames[RideNameConvention[ride->type].vehicle].number; for (i = 1; i <= ride->num_vehicles; i++) { gDropdownItemsFormat[currentItem] = STR_DROPDOWN_MENU_LABEL; gDropdownItemsArgs[currentItem] = name | (currentItem << 16); @@ -1815,7 +1988,7 @@ static void window_ride_show_view_dropdown(rct_window *w, rct_widget *widget) } // Stations - name = RideNameConvention[ride->type].station_name + 6; + name = RideComponentNames[RideNameConvention[ride->type].station].number; for (i = 1; i <= ride->num_stations; i++) { gDropdownItemsFormat[currentItem] = STR_DROPDOWN_MENU_LABEL; gDropdownItemsArgs[currentItem] = name | (i << 16); @@ -2074,7 +2247,12 @@ static void window_ride_main_invalidate(rct_window *w) set_format_arg(0, uint16, ride->name); set_format_arg(2, uint32, ride->name_arguments); - window_ride_main_widgets[WIDX_OPEN].image = SPR_CLOSED + ride->status; + uint32 spriteIds[] = { + SPR_CLOSED, + SPR_OPEN, + SPR_TESTING, + }; + window_ride_main_widgets[WIDX_OPEN].image = spriteIds[ride->status]; window_ride_main_widgets[WIDX_CLOSE_LIGHT].image = SPR_G2_RCT1_CLOSE_BUTTON_0 + (ride->status == RIDE_STATUS_CLOSED) * 2 + widget_is_pressed(w, WIDX_CLOSE_LIGHT); window_ride_main_widgets[WIDX_TEST_LIGHT].image = SPR_G2_RCT1_TEST_BUTTON_0 + (ride->status == RIDE_STATUS_TESTING) * 2 + widget_is_pressed(w, WIDX_TEST_LIGHT); @@ -2145,7 +2323,7 @@ static rct_string_id window_ride_get_status_overall_view(rct_window *w, void *ar ride_get_status(w->number, &formatSecondary, &argument); RCT2_GLOBAL((int)arguments + 0, uint16) = formatSecondary; RCT2_GLOBAL((int)arguments + 2, uint32) = argument; - stringId = STR_LOSS; + stringId = STR_RED_OUTLINED_STRING; if (formatSecondary != STR_BROKEN_DOWN && formatSecondary != STR_CRASHED) stringId = STR_BLACK_STRING; @@ -2181,13 +2359,13 @@ static rct_string_id window_ride_get_status_vehicle(rct_window *w, void *argumen trackType == TRACK_ELEM_DIAG_25_DEG_UP_TO_FLAT || trackType == TRACK_ELEM_DIAG_60_DEG_UP_TO_FLAT) { if (track_type_is_invented(ride->type, TRACK_BLOCK_BRAKES) && vehicle->velocity == 0) { - RCT2_GLOBAL((int)arguments + 0, uint16) = STR_STOPPED_BY_BLOCK_BRAKES; + RCT2_GLOBAL((int)arguments + 0, rct_string_id) = STR_STOPPED_BY_BLOCK_BRAKES; return STR_BLACK_STRING; } } } - stringId = STR_MOVING_TO_END_OF + vehicle->status; + stringId = VehicleStatusNames[vehicle->status]; // Get speed in mph RCT2_GLOBAL((int)arguments + 2, uint16) = (abs(vehicle->velocity) * 9) >> 18; @@ -2195,16 +2373,15 @@ static rct_string_id window_ride_get_status_vehicle(rct_window *w, void *argumen if (ride->type == RIDE_TYPE_MINI_GOLF) return 0; - if ((RideData4[ride->type].flags & RIDE_TYPE_FLAG4_SINGLE_SESSION) && stringId <= STR_UNLOADING_PASSENGERS_AT) - stringId += 23; + if ((RideData4[ride->type].flags & RIDE_TYPE_FLAG4_SINGLE_SESSION) && vehicle->status <= VEHICLE_STATUS_UNLOADING_PASSENGERS) { + stringId = SingleSessionVehicleStatusNames[vehicle->status]; + } - RCT2_GLOBAL((int)arguments + 4, uint16) = RideNameConvention[ride->type].station_name; + const ride_component_name stationName = RideComponentNames[RideNameConvention[ride->type].station]; + RCT2_GLOBAL((int)arguments + 4, rct_string_id) = (ride->num_stations > 1) ? stationName.number : stationName.singular; RCT2_GLOBAL((int)arguments + 6, uint16) = vehicle->current_station + 1; - if (ride->num_stations > 1) - RCT2_GLOBAL((int)arguments + 4, uint16) += 6; - - RCT2_GLOBAL((int)arguments + 0, uint16) = stringId; - return stringId != STR_CRASHING && stringId != STR_CRASHED_0 ? STR_BLACK_STRING : STR_LOSS; + RCT2_GLOBAL((int)arguments + 0, rct_string_id) = stringId; + return stringId != STR_CRASHING && stringId != STR_CRASHED_0 ? STR_BLACK_STRING : STR_RED_OUTLINED_STRING; } /** @@ -2246,12 +2423,12 @@ static rct_string_id window_ride_get_status_station(rct_window *w, void *argumen RCT2_GLOBAL((int)arguments + 2, uint16) = queueLength; stringId = STR_QUEUE_EMPTY; if (queueLength == 1) - stringId++; + stringId++; // TODO: String calculation else if (queueLength > 1) - stringId += 2; + stringId += 2;// TODO: String calculation } - RCT2_GLOBAL((int)arguments + 0, uint16) = stringId; + RCT2_GLOBAL((int)arguments + 0, rct_string_id) = stringId; return STR_BLACK_STRING; } @@ -2296,10 +2473,10 @@ static void window_ride_main_paint(rct_window *w, rct_drawpixelinfo *dpi) ride = get_ride(w->number); stringId = STR_OVERALL_VIEW; if (w->ride.view != 0) { - stringId = RideNameConvention[ride->type].vehicle_name + 6; + stringId = RideComponentNames[RideNameConvention[ride->type].vehicle].number; if (w->ride.view > ride->num_vehicles) { set_format_arg(2, uint16, w->ride.view - ride->num_vehicles); - stringId = RideNameConvention[ride->type].station_name + 6; + stringId = RideComponentNames[RideNameConvention[ride->type].station].number; } else { set_format_arg(2, uint16, w->ride.view); } @@ -2309,7 +2486,7 @@ static void window_ride_main_paint(rct_window *w, rct_drawpixelinfo *dpi) widget = &window_ride_main_widgets[WIDX_VIEW]; gfx_draw_string_centred( dpi, - STR_WINDOW_COLOUR_2_STRING, + STR_WINDOW_COLOUR_2_STRINGID, w->x + (widget->left + widget->right - 11) / 2, w->y + widget->top, 0, @@ -2531,7 +2708,7 @@ static void window_ride_vehicle_invalidate(rct_window *w) carsPerTrain = ride->num_cars_per_train - rideEntry->zero_cars; // Vehicle type - window_ride_vehicle_widgets[WIDX_VEHICLE_TYPE].image = rideEntry->name; + window_ride_vehicle_widgets[WIDX_VEHICLE_TYPE].text = rideEntry->name; // Always show a dropdown button when changing subtypes is allowed if ((var_496(w) <= 1 || (rideEntry->flags & RIDE_ENTRY_FLAG_SEPARATE_RIDE)) && !(gConfigInterface.select_by_track_type || gCheatsShowVehiclesFromOtherTrackTypes)) { window_ride_vehicle_widgets[WIDX_VEHICLE_TYPE].type = WWT_14; @@ -2568,9 +2745,11 @@ static void window_ride_vehicle_invalidate(rct_window *w) } set_format_arg(6, uint16, carsPerTrain); - stringId = RideNameConvention[ride->type].vehicle_name + 4; - if (ride->num_vehicles > 1) - stringId++; + ride_component_type vehicleType = RideNameConvention[ride->type].vehicle; + stringId = RideComponentNames[vehicleType].count; + if (ride->num_vehicles > 1) { + stringId = RideComponentNames[vehicleType].count_plural; + } set_format_arg(8, uint16, stringId); set_format_arg(10, uint16, ride->num_vehicles); @@ -2578,9 +2757,9 @@ static void window_ride_vehicle_invalidate(rct_window *w) window_align_tabs(w, WIDX_TAB_1, WIDX_TAB_10); if (ride->num_cars_per_train > (rideEntry->zero_cars + 1)) { - window_ride_vehicle_widgets[WIDX_VEHICLE_CARS_PER_TRAIN].image = STR_X_CARS_PER_TRAIN; + window_ride_vehicle_widgets[WIDX_VEHICLE_CARS_PER_TRAIN].text = STR_X_CARS_PER_TRAIN; } else { - window_ride_vehicle_widgets[WIDX_VEHICLE_CARS_PER_TRAIN].image = STR_1_CAR_PER_TRAIN; + window_ride_vehicle_widgets[WIDX_VEHICLE_CARS_PER_TRAIN].text = STR_1_CAR_PER_TRAIN; } } @@ -2858,7 +3037,7 @@ static void window_ride_mode_dropdown(rct_window *w, rct_widget *widget) // Create dropdown list for (i = 0; i < numAvailableModes; i++) { gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL; - gDropdownItemsArgs[i] = STR_RIDE_MODE_START + availableModes[i]; + gDropdownItemsArgs[i] = RideModeNames[availableModes[i]]; } window_dropdown_show_text_custom_width( w->x + dropdownWidget->left, @@ -2892,7 +3071,7 @@ static void window_ride_load_dropdown(rct_window *w, rct_widget *widget) for (i = 0; i < 5; i++) { gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL; - gDropdownItemsArgs[i] = STR_QUARTER_LOAD + i; + gDropdownItemsArgs[i] = VehicleLoadNames[i]; } window_dropdown_show_text_custom_width( w->x + dropdownWidget->left, @@ -3139,7 +3318,7 @@ static void window_ride_operating_invalidate(rct_window *w) ) { window_ride_operating_widgets[WIDX_LEAVE_WHEN_ANOTHER_ARRIVES_CHECKBOX].type = WWT_CHECKBOX; window_ride_operating_widgets[WIDX_LEAVE_WHEN_ANOTHER_ARRIVES_CHECKBOX].tooltip = STR_LEAVE_IF_ANOTHER_VEHICLE_ARRIVES_TIP; - window_ride_operating_widgets[WIDX_LEAVE_WHEN_ANOTHER_ARRIVES_CHECKBOX].image = RideNameConvention[ride->type].vehicle_name == STR_VEHICLE_LOWERCASE_BOAT ? + window_ride_operating_widgets[WIDX_LEAVE_WHEN_ANOTHER_ARRIVES_CHECKBOX].text = RideNameConvention[ride->type].vehicle == RIDE_COMPONENT_TYPE_BOAT ? STR_LEAVE_IF_ANOTHER_BOAT_ARRIVES : STR_LEAVE_IF_ANOTHER_TRAIN_ARRIVES; } else { @@ -3156,10 +3335,10 @@ static void window_ride_operating_invalidate(rct_window *w) } // Mode - window_ride_operating_widgets[WIDX_MODE].image = STR_RIDE_MODE_START + ride->mode; + window_ride_operating_widgets[WIDX_MODE].text = RideModeNames[ride->mode]; // Waiting - window_ride_operating_widgets[WIDX_LOAD].image = STR_QUARTER_LOAD + (ride->depart_flags & RIDE_DEPART_WAIT_FOR_LOAD_MASK); + window_ride_operating_widgets[WIDX_LOAD].text = VehicleLoadNames[(ride->depart_flags & RIDE_DEPART_WAIT_FOR_LOAD_MASK)]; if (ride_type_has_flag(ride->type, RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS)) { window_ride_operating_widgets[WIDX_LOAD_CHECKBOX].type = WWT_CHECKBOX; window_ride_operating_widgets[WIDX_LOAD].type = WWT_DROPDOWN; @@ -3215,41 +3394,42 @@ static void window_ride_operating_invalidate(rct_window *w) case RIDE_MODE_UPWARD_LAUNCH: case RIDE_MODE_POWERED_LAUNCH_BLOCK_SECTIONED: set_format_arg(18, uint16, (ride->launch_speed * 9) / 4); - format = 1331; + format = STR_RIDE_MODE_SPEED_VALUE; caption = STR_LAUNCH_SPEED; tooltip = STR_LAUNCH_SPEED_TIP; break; case RIDE_MODE_STATION_TO_STATION: set_format_arg(18, uint16, (ride->speed * 9) / 4); - format = 1331; + format = STR_RIDE_MODE_SPEED_VALUE; caption = STR_SPEED; tooltip = STR_SPEED_TIP; break; case RIDE_MODE_RACE: set_format_arg(18, uint16, ride->num_laps); - format = 1736; + format = STR_RIDE_MODE_COUNT_VALUE; caption = STR_NUMBER_OF_LAPS; tooltip = STR_NUMBER_OF_LAPS_TIP; break; case RIDE_MODE_BUMPERCAR: - format = 1749; + format = STR_RIDE_MODE_TIME_LIMIT_VALUE; caption = STR_TIME_LIMIT; tooltip = STR_TIME_LIMIT_TIP; break; case RIDE_MODE_SWING: - format = 1771; + format = STR_RIDE_MODE_NUMBER_OF_SWINGS_VALUE; caption = STR_NUMBER_OF_SWINGS; tooltip = STR_NUMBER_OF_SWINGS_TIP; break; case RIDE_MODE_ROTATION: case RIDE_MODE_FORWARD_ROTATION: case RIDE_MODE_BACKWARD_ROTATION: - format = 1871; + format = STR_ARG18_COMMA16; caption = STR_NUMBER_OF_ROTATIONS; tooltip = STR_NUMBER_OF_ROTATIONS_TIP; break; default: - format = 1736; + // TODO: should likely be `1744` instead of `1736`, + format = STR_RIDE_MODE_COUNT_VALUE; caption = STR_MAX_PEOPLE_ON_RIDE; tooltip = STR_MAX_PEOPLE_ON_RIDE_TIP; if (!ride_type_has_flag(ride->type, RIDE_TYPE_FLAG_13)) @@ -3265,10 +3445,10 @@ static void window_ride_operating_invalidate(rct_window *w) } window_ride_operating_widgets[WIDX_MODE_TWEAK_LABEL].type = WWT_24; - window_ride_operating_widgets[WIDX_MODE_TWEAK_LABEL].image = caption; + window_ride_operating_widgets[WIDX_MODE_TWEAK_LABEL].text = caption; window_ride_operating_widgets[WIDX_MODE_TWEAK_LABEL].tooltip = tooltip; window_ride_operating_widgets[WIDX_MODE_TWEAK].type = WWT_SPINNER; - window_ride_operating_widgets[WIDX_MODE_TWEAK].image = format; + window_ride_operating_widgets[WIDX_MODE_TWEAK].text = format; window_ride_operating_widgets[WIDX_MODE_TWEAK_INCREASE].type = WWT_DROPDOWN_BUTTON; window_ride_operating_widgets[WIDX_MODE_TWEAK_DECREASE].type = WWT_DROPDOWN_BUTTON; w->pressed_widgets &= ~(1 << WIDX_LEAVE_WHEN_ANOTHER_ARRIVES_CHECKBOX); @@ -3425,7 +3605,7 @@ static void window_ride_maintenance_mousedown(int widgetIndex, rct_window *w, rc dropdownWidget--; for (i = 0; i < 7; i++) { gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL; - gDropdownItemsArgs[i] = STR_EVERY_10_MINUTES + i; + gDropdownItemsArgs[i] = RideInspectionIntervalNames[i]; } window_dropdown_show_text_custom_width( w->x + dropdownWidget->left, @@ -3455,7 +3635,7 @@ static void window_ride_maintenance_mousedown(int widgetIndex, rct_window *w, rc continue; } gDropdownItemsFormat[num_items] = STR_DROPDOWN_MENU_LABEL; - gDropdownItemsArgs[num_items] = STR_SAFETY_CUT_OUT + i; + gDropdownItemsArgs[num_items] = RideBreakdownReasonNames[i]; num_items++; } } @@ -3486,7 +3666,7 @@ static void window_ride_maintenance_mousedown(int widgetIndex, rct_window *w, rc break; } gDropdownItemsFormat[num_items] = STR_DROPDOWN_MENU_LABEL; - gDropdownItemsArgs[num_items] = STR_SAFETY_CUT_OUT + i; + gDropdownItemsArgs[num_items] = RideBreakdownReasonNames[i]; num_items++; } } @@ -3626,10 +3806,10 @@ static void window_ride_maintenance_invalidate(rct_window *w) window_ride_set_pressed_tab(w); rct_ride *ride = get_ride(w->number); - set_format_arg(0, uint16, ride->name); + set_format_arg(0, rct_string_id, ride->name); set_format_arg(2, uint32, ride->name_arguments); - window_ride_maintenance_widgets[WIDX_INSPECTION_INTERVAL].image = STR_EVERY_10_MINUTES + ride->inspection_interval; + window_ride_maintenance_widgets[WIDX_INSPECTION_INTERVAL].text = RideInspectionIntervalNames[ride->inspection_interval]; window_ride_anchor_border_widgets(w); window_align_tabs(w, WIDX_TAB_1, WIDX_TAB_10); @@ -3665,7 +3845,7 @@ static void window_ride_maintenance_paint(rct_window *w, rct_drawpixelinfo *dpi) widget = &window_ride_maintenance_widgets[WIDX_LOCATE_MECHANIC]; x = w->x + widget->left; y = w->y + widget->top; - gfx_draw_sprite(dpi, (gStaffMechanicColour << 24) | 0xA0000000 | 5196, x, y, 0); + gfx_draw_sprite(dpi, (gStaffMechanicColour << 24) | 0xA0000000 | SPR_MECHANIC, x, y, 0); // Inspection label widget = &window_ride_maintenance_widgets[WIDX_INSPECTION_INTERVAL]; @@ -3709,7 +3889,7 @@ static void window_ride_maintenance_paint(rct_window *w, rct_drawpixelinfo *dpi) stringId = (ride->lifecycle_flags & RIDE_LIFECYCLE_BROKEN_DOWN) ? STR_CURRENT_BREAKDOWN : STR_LAST_BREAKDOWN; - breakdownMessage = STR_SAFETY_CUT_OUT + ride->breakdown_reason; + breakdownMessage = RideBreakdownReasonNames[ride->breakdown_reason]; gfx_draw_string_left(dpi, stringId, &breakdownMessage, 0, x, y); y += 10; @@ -3768,7 +3948,7 @@ const uint8 window_ride_entrance_style_list[] = { static uint32 window_ride_get_colour_button_image(int colour) { - return 0x60000000 | (colour << 19) | 5059; + return 0x60000000 | (colour << 19) | SPR_PALETTE_BTN; } static int window_ride_has_track_colour(rct_ride *ride, int trackColour) @@ -3886,7 +4066,7 @@ static void window_ride_colour_mousedown(int widgetIndex, rct_window *w, rct_wid case WIDX_TRACK_COLOUR_SCHEME_DROPDOWN: for (i = 0; i < 4; i++) { gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL; - gDropdownItemsArgs[i] = STR_MAIN_COLOUR_SCHEME + i; + gDropdownItemsArgs[i] = ColourSchemeNames[i]; } window_dropdown_show_text_custom_width( @@ -3913,7 +4093,7 @@ static void window_ride_colour_mousedown(int widgetIndex, rct_window *w, rct_wid case WIDX_MAZE_STYLE_DROPDOWN: for (i = 0; i < 4; i++) { gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL; - gDropdownItemsArgs[i] = STR_BRICK_WALLS + i; + gDropdownItemsArgs[i] = MazeOptions[i].text; } window_dropdown_show_text_custom_width( @@ -3955,7 +4135,7 @@ static void window_ride_colour_mousedown(int widgetIndex, rct_window *w, rct_wid case WIDX_VEHICLE_COLOUR_SCHEME_DROPDOWN: for (i = 0; i < 3; i++) { gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL; - gDropdownItemsArgs[i] = (RideNameConvention[ride->type].vehicle_name << 16) | (STR_ALL_VEHICLES_IN_SAME_COLOURS + i); + gDropdownItemsArgs[i] = (RideComponentNames[RideNameConvention[ride->type].vehicle].singular << 16) | VehicleColourSchemeNames[i]; } window_dropdown_show_text_custom_width( @@ -3975,10 +4155,10 @@ static void window_ride_colour_mousedown(int widgetIndex, rct_window *w, rct_wid if ((ride->colour_scheme_type & 3) != VEHICLE_COLOUR_SCHEME_PER_TRAIN) numItems = ride->num_cars_per_train; - stringId = (ride->colour_scheme_type & 3) == VEHICLE_COLOUR_SCHEME_PER_TRAIN ? 1135 : 1133; + stringId = (ride->colour_scheme_type & 3) == VEHICLE_COLOUR_SCHEME_PER_TRAIN ? STR_RIDE_COLOUR_TRAIN_OPTION : STR_RIDE_COLOUR_VEHICLE_OPTION; for (i = 0; i < 32; i++) { gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL; - gDropdownItemsArgs[i] = ((sint64)(i + 1) << 32) | ((RideNameConvention[ride->type].vehicle_name + 2) << 16) | stringId; + gDropdownItemsArgs[i] = ((sint64)(i + 1) << 32) | ((RideComponentNames[RideNameConvention[ride->type].vehicle].capitalised) << 16) | stringId; } window_dropdown_show_text_custom_width( @@ -4126,7 +4306,7 @@ static void window_ride_colour_invalidate(rct_window *w) if (ride->type == RIDE_TYPE_MAZE) { window_ride_colour_widgets[WIDX_MAZE_STYLE].type = WWT_DROPDOWN; window_ride_colour_widgets[WIDX_MAZE_STYLE_DROPDOWN].type = WWT_DROPDOWN_BUTTON; - window_ride_colour_widgets[WIDX_MAZE_STYLE].image = STR_BRICK_WALLS + trackColour.supports; + window_ride_colour_widgets[WIDX_MAZE_STYLE].text = MazeOptions[trackColour.supports].text; } else { window_ride_colour_widgets[WIDX_MAZE_STYLE].type = WWT_EMPTY; window_ride_colour_widgets[WIDX_MAZE_STYLE_DROPDOWN].type = WWT_EMPTY; @@ -4179,7 +4359,7 @@ static void window_ride_colour_invalidate(rct_window *w) window_ride_colour_widgets[WIDX_ENTRANCE_STYLE].type = WWT_DROPDOWN; window_ride_colour_widgets[WIDX_ENTRANCE_STYLE_DROPDOWN].type = WWT_DROPDOWN_BUTTON; - window_ride_colour_widgets[WIDX_ENTRANCE_STYLE].image = RideEntranceDefinitions[ride->entrance_style].string_id; + window_ride_colour_widgets[WIDX_ENTRANCE_STYLE].text = RideEntranceDefinitions[ride->entrance_style].string_id; } else { window_ride_colour_widgets[WIDX_ENTRANCE_PREVIEW].type = WWT_EMPTY; window_ride_colour_widgets[WIDX_ENTRANCE_STYLE].type = WWT_EMPTY; @@ -4231,15 +4411,15 @@ static void window_ride_colour_invalidate(rct_window *w) window_ride_colour_widgets[WIDX_VEHICLE_COLOUR_SCHEME].type = WWT_EMPTY; window_ride_colour_widgets[WIDX_VEHICLE_COLOUR_SCHEME_DROPDOWN].type = WWT_EMPTY; } - set_format_arg( 6, uint16, STR_ALL_VEHICLES_IN_SAME_COLOURS + vehicleColourSchemeType); - set_format_arg( 8, uint16, RideNameConvention[ride->type].vehicle_name); - set_format_arg(10, uint16, RideNameConvention[ride->type].vehicle_name + 2); + set_format_arg( 6, rct_string_id, VehicleColourSchemeNames[vehicleColourSchemeType]); + set_format_arg( 8, rct_string_id, RideComponentNames[RideNameConvention[ride->type].vehicle].singular); + set_format_arg(10, rct_string_id, RideComponentNames[RideNameConvention[ride->type].vehicle].capitalised); set_format_arg(12, uint16, w->var_48C + 1); // Vehicle index if (vehicleColourSchemeType != 0) { window_ride_colour_widgets[WIDX_VEHICLE_COLOUR_INDEX].type = WWT_DROPDOWN; window_ride_colour_widgets[WIDX_VEHICLE_COLOUR_INDEX_DROPDOWN].type = WWT_DROPDOWN_BUTTON; - window_ride_colour_widgets[WIDX_VEHICLE_COLOUR_INDEX].image = vehicleColourSchemeType == 1 ? 1134 : 1132; + window_ride_colour_widgets[WIDX_VEHICLE_COLOUR_INDEX].text = vehicleColourSchemeType == 1 ? STR_RIDE_COLOUR_TRAIN_VALUE : STR_RIDE_COLOUR_VEHICLE_VALUE; } else { window_ride_colour_widgets[WIDX_VEHICLE_COLOUR_INDEX].type = WWT_EMPTY; window_ride_colour_widgets[WIDX_VEHICLE_COLOUR_INDEX_DROPDOWN].type = WWT_EMPTY; @@ -4255,7 +4435,7 @@ static void window_ride_colour_invalidate(rct_window *w) window_ride_colour_widgets[WIDX_VEHICLE_ADDITIONAL_COLOUR_2].type = WWT_EMPTY; } - set_format_arg(14, uint16, STR_MAIN_COLOUR_SCHEME + colourScheme); + set_format_arg(14, uint16, ColourSchemeNames[colourScheme]); window_ride_anchor_border_widgets(w); window_align_tabs(w, WIDX_TAB_1, WIDX_TAB_10); @@ -4267,6 +4447,7 @@ static void window_ride_colour_invalidate(rct_window *w) */ static void window_ride_colour_paint(rct_window *w, rct_drawpixelinfo *dpi) { + // TODO: This should use lists and identified sprites rct_drawpixelinfo clippedDpi; rct_widget *widget; rct_ride *ride; @@ -4294,7 +4475,7 @@ static void window_ride_colour_paint(rct_window *w, rct_drawpixelinfo *dpi) // Track if (ride->type == RIDE_TYPE_MAZE) { - spriteIndex = 21990 + trackColour.supports; + spriteIndex = MazeOptions[trackColour.supports].sprite; gfx_draw_sprite(dpi, spriteIndex, x, y, 0); } else { spriteIndex = 14222 + (ride->type * 2); @@ -4352,7 +4533,7 @@ static void window_ride_colour_paint(rct_window *w, rct_drawpixelinfo *dpi) // Front gfx_draw_sprite(&clippedDpi, spriteIndex + 4, 34, 20, terniaryColour); - // ? + // Glass if (terniaryColour != 0) gfx_draw_sprite(&clippedDpi, ((spriteIndex + 20) & 0x7FFFF) + terniaryColour, 34, 20, terniaryColour); } @@ -4522,7 +4703,7 @@ static void window_ride_music_mousedown(int widgetIndex, rct_window *w, rct_widg for (i = 0; i < numItems; i++) { gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL; - gDropdownItemsArgs[i] = STR_MUSIC_STYLE_START + window_ride_current_music_style_order[i]; + gDropdownItemsArgs[i] = MusicStyleNames[window_ride_current_music_style_order[i]]; } window_dropdown_show_text_custom_width( @@ -4591,11 +4772,11 @@ static void window_ride_music_invalidate(rct_window *w) window_ride_set_pressed_tab(w); rct_ride *ride = get_ride(w->number); - set_format_arg(0, uint16, ride->name); + set_format_arg(0, rct_string_id, ride->name); set_format_arg(2, uint32, ride->name_arguments); // Set selected music - window_ride_music_widgets[WIDX_MUSIC].image = STR_MUSIC_STYLE_START + ride->music; + window_ride_music_widgets[WIDX_MUSIC].text = MusicStyleNames[ride->music]; // Set music activated isMusicActivated = ride->lifecycle_flags & (RIDE_LIFECYCLE_MUSIC); @@ -4937,14 +5118,14 @@ static void window_ride_measurements_paint(rct_window *w, rct_drawpixelinfo *dpi if (ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED) { // Excitement set_format_arg(0, uint32, ride->excitement); - set_format_arg(4, uint16, STR_RATING_LOW + min(ride->excitement >> 8, 5)); + set_format_arg(4, rct_string_id, RatingNames[min(ride->excitement >> 8, 5)]); stringId = ride->excitement == -1 ? STR_EXCITEMENT_RATING_NOT_YET_AVAILABLE : STR_EXCITEMENT_RATING; gfx_draw_string_left(dpi, stringId, gCommonFormatArgs, 0, x, y); y += 10; // Intensity set_format_arg(0, uint32, ride->intensity); - set_format_arg(4, uint16, STR_RATING_LOW + min(ride->intensity >> 8, 5)); + set_format_arg(4, rct_string_id, RatingNames[min(ride->intensity >> 8, 5)]); stringId = STR_INTENSITY_RATING; if (ride->excitement == -1) @@ -4957,7 +5138,7 @@ static void window_ride_measurements_paint(rct_window *w, rct_drawpixelinfo *dpi // Nausea set_format_arg(0, uint32, ride->nausea); - set_format_arg(4, uint16, STR_RATING_LOW + min(ride->nausea >> 8, 5)); + set_format_arg(4, rct_string_id, RatingNames[min(ride->nausea >> 8, 5)]); stringId = ride->excitement == -1 ? STR_NAUSEA_RATING_NOT_YET_AVAILABLE : STR_NAUSEA_RATING; gfx_draw_string_left(dpi, stringId, gCommonFormatArgs, 0, x, y); y += 20; @@ -5248,7 +5429,7 @@ static void window_ride_graphs_tooltip(rct_window* w, int widgetIndex, rct_strin if (measurement != NULL && (measurement->flags & RIDE_MEASUREMENT_FLAG_RUNNING)) { set_format_arg(4, uint16, measurement->vehicle_index + 1); ride = get_ride(w->number); - set_format_arg(2, uint16, RideNameConvention[ride->type].vehicle_name + 6); + set_format_arg(2, rct_string_id, RideComponentNames[RideNameConvention[ride->type].vehicle].count); } else { *stringId = message; } @@ -5370,12 +5551,12 @@ static void window_ride_graphs_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi // Horizontal grid lines y = widget->bottom - widget->top - 13; short yUnit = RCT2_GLOBAL(0x0098DD9A + (listType * 8), uint16); - short ax = RCT2_GLOBAL(0x0098DD9E + (listType * 8), uint16); + rct_string_id stringID = RCT2_GLOBAL(0x0098DD9E + (listType * 8), rct_string_id); short yUnitInterval = RCT2_GLOBAL(0x0098DD9C + (listType * 8), uint16); short yInterval = RCT2_GLOBAL(0x0098DD98 + (listType * 8), uint16); // Scale modifier - if (ax == 1420) { + if (stringID == STR_RIDE_STATS_ALTITUDE_FORMAT) { short unk = RCT2_GLOBAL(0x01359208, uint16); yUnit -= RCT2_GLOBAL(0x01359208, uint16); unk *= 2; @@ -5392,10 +5573,10 @@ static void window_ride_graphs_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi sint16 scaled_yUnit = yUnit; // Scale modifier - if (ax == 1420) + if (stringID == STR_RIDE_STATS_ALTITUDE_FORMAT) scaled_yUnit /= 2; - gfx_draw_string_left(dpi, ax, &scaled_yUnit, 0, w->scrolls[0].h_left + 1, y - 4); + gfx_draw_string_left(dpi, stringID, &scaled_yUnit, 0, w->scrolls[0].h_left + 1, y - 4); } // Time marks @@ -5707,7 +5888,6 @@ static void window_ride_income_invalidate(rct_window *w) { rct_widget *widgets; rct_ride_entry *rideEntry; - rct_string_id stringId; int primaryItem, secondaryItem; colour_scheme_update(w); @@ -5737,14 +5917,14 @@ static void window_ride_income_invalidate(rct_window *w) w->disabled_widgets |= (1 << WIDX_PRIMARY_PRICE); } - window_ride_income_widgets[WIDX_PRIMARY_PRICE_LABEL].image = STR_RIDE_INCOME_ADMISSION_PRICE; - window_ride_income_widgets[WIDX_SECONDARY_PRICE_LABEL].image = STR_ON_RIDE_PHOTO_PRICE; + window_ride_income_widgets[WIDX_PRIMARY_PRICE_LABEL].text = STR_RIDE_INCOME_ADMISSION_PRICE; + window_ride_income_widgets[WIDX_SECONDARY_PRICE_LABEL].text = STR_SHOP_ITEM_PRICE_LABEL_ON_RIDE_PHOTO; window_ride_income_widgets[WIDX_PRIMARY_PRICE_SAME_THROUGHOUT_PARK].type = WWT_EMPTY; - window_ride_income_widgets[WIDX_PRIMARY_PRICE].image = 1429; + window_ride_income_widgets[WIDX_PRIMARY_PRICE].text = STR_ARG_6_CURRENCY2DP; set_format_arg(6, money32, ride->price); if (ride->price == 0) - window_ride_income_widgets[WIDX_PRIMARY_PRICE].image = STR_FREE; + window_ride_income_widgets[WIDX_PRIMARY_PRICE].text = STR_FREE; primaryItem = SHOP_ITEM_ADMISSION; if (ride->type == RIDE_TYPE_TOILETS || ((primaryItem = rideEntry->shop_item) != SHOP_ITEM_NONE)) { @@ -5753,23 +5933,14 @@ static void window_ride_income_invalidate(rct_window *w) if (shop_item_has_common_price(primaryItem)) w->pressed_widgets |= (1 << WIDX_PRIMARY_PRICE_SAME_THROUGHOUT_PARK); - - if (primaryItem < SHOP_ITEM_ADMISSION) - window_ride_income_widgets[WIDX_PRIMARY_PRICE_LABEL].image = 1960 + primaryItem; - else if (primaryItem > SHOP_ITEM_ADMISSION) - window_ride_income_widgets[WIDX_PRIMARY_PRICE_LABEL].image = 2068 + primaryItem; + window_ride_income_widgets[WIDX_PRIMARY_PRICE_LABEL].text = ShopItemStringIds[primaryItem].price_label; } // Get secondary item secondaryItem = RCT2_GLOBAL(0x0097D7CB + (ride->type * 4), uint8); if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_ON_RIDE_PHOTO)) { if ((secondaryItem = rideEntry->shop_item_secondary) != SHOP_ITEM_NONE) { - // Set secondary item label - stringId = 1960 + secondaryItem; - if (stringId >= 1992) - stringId += 108; - - window_ride_income_widgets[WIDX_SECONDARY_PRICE_LABEL].image = stringId; + window_ride_income_widgets[WIDX_SECONDARY_PRICE_LABEL].text = ShopItemStringIds[secondaryItem].price_label; } } @@ -5794,10 +5965,10 @@ static void window_ride_income_invalidate(rct_window *w) window_ride_income_widgets[WIDX_SECONDARY_PRICE_SAME_THROUGHOUT_PARK].type = WWT_CHECKBOX; // Set secondary item price - window_ride_income_widgets[WIDX_SECONDARY_PRICE].image = 1799; + window_ride_income_widgets[WIDX_SECONDARY_PRICE].text = STR_RIDE_SECONDARY_PRICE_VALUE; set_format_arg(10, money32, ride->price_secondary); if (ride->price_secondary == 0) - window_ride_income_widgets[WIDX_SECONDARY_PRICE].image = STR_FREE; + window_ride_income_widgets[WIDX_SECONDARY_PRICE].text = STR_FREE; } window_ride_anchor_border_widgets(w); diff --git a/src/windows/ride_construction.c b/src/windows/ride_construction.c index 409f4a5a3d..c95ac9db92 100644 --- a/src/windows/ride_construction.c +++ b/src/windows/ride_construction.c @@ -32,6 +32,7 @@ #include "../ride/track_data.h" #include "../world/footpath.h" #include "dropdown.h" +#include "../sprites.h" /* move to ride.c */ void sub_6B2FA9(rct_windownumber number) @@ -86,45 +87,45 @@ enum { }; static rct_widget window_ride_construction_widgets[] = { - { WWT_FRAME, 0, 0, 165, 0, 393, 0xFFFFFFFF, STR_NONE }, - { WWT_CAPTION, 0, 1, 164, 1, 14, 896, STR_WINDOW_TITLE_TIP }, - { WWT_CLOSEBOX, 0, 153, 163, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, - { WWT_GROUPBOX, 0, 3, 162, 17, 73, STR_RIDE_CONSTRUCTION_DIRECTION, STR_NONE }, - { WWT_GROUPBOX, 0, 3, 162, 76, 116, STR_RIDE_CONSTRUCTION_SLOPE, STR_NONE }, - { WWT_GROUPBOX, 0, 3, 162, 120, 160, STR_RIDE_CONSTRUCTION_ROLL_BANKING, STR_NONE }, - { WWT_FLATBTN, 1, 6, 27, 29, 52, 0x1414, STR_RIDE_CONSTRUCTION_LEFT_CURVE_VERY_SMALL_TIP }, - { WWT_FLATBTN, 1, 6, 27, 29, 52, 0x1414, STR_RIDE_CONSTRUCTION_LEFT_CURVE_SMALL_TIP }, - { WWT_FLATBTN, 1, 28, 49, 29, 52, 0x1412, STR_RIDE_CONSTRUCTION_LEFT_CURVE_TIP }, - { WWT_FLATBTN, 1, 72, 93, 29, 52, 0x1411, STR_RIDE_CONSTRUCTION_STRAIGHT_TIP }, - { WWT_FLATBTN, 1, 116, 137, 29, 52, 0x1413, STR_RIDE_CONSTRUCTION_RIGHT_CURVE_TIP }, - { WWT_FLATBTN, 1, 138, 159, 29, 52, 0x1415, STR_RIDE_CONSTRUCTION_RIGHT_CURVE_SMALL_TIP }, - { WWT_FLATBTN, 1, 138, 159, 29, 52, 0x1415, STR_RIDE_CONSTRUCTION_RIGHT_CURVE_VERY_SMALL_TIP }, - { WWT_DROPDOWN_BUTTON, 1, 17, 148, 55, 68, 1384, STR_RIDE_CONSTRUCTION_OTHER_TRACK_CONFIGURATIONS_TIP }, - { WWT_FLATBTN, 1, 23, 46, 88, 111, 0x1418, STR_RIDE_CONSTRUCTION_STEEP_SLOPE_DOWN_TIP }, - { WWT_FLATBTN, 1, 47, 70, 88, 111, 0x1419, STR_RIDE_CONSTRUCTION_SLOPE_DOWN_TIP }, - { WWT_FLATBTN, 1, 71, 94, 88, 111, 0x141A, STR_RIDE_CONSTRUCTION_LEVEL_TIP }, - { WWT_FLATBTN, 1, 95, 118, 88, 111, 0x141B, STR_RIDE_CONSTRUCTION_SLOPE_UP_TIP }, - { WWT_FLATBTN, 1, 119, 142, 88, 111, 0x141C, STR_RIDE_CONSTRUCTION_STEEP_SLOPE_UP_TIP }, - { WWT_FLATBTN, 1, 134, 157, 88, 111, 0x142B, STR_RIDE_CONSTRUCTION_CHAIN_LIFT_TIP }, - { WWT_FLATBTN, 1, 47, 70, 132, 155, 0x1421, STR_RIDE_CONSTRUCTION_ROLL_FOR_LEFT_CURVE_TIP }, - { WWT_FLATBTN, 1, 71, 94, 132, 155, 0x1422, STR_RIDE_CONSTRUCTION_NO_ROLL_TIP }, - { WWT_FLATBTN, 1, 95, 118, 132, 155, 0x1423, STR_RIDE_CONSTRUCTION_ROLL_FOR_RIGHT_CURVE_TIP }, - { WWT_IMGBTN, 1, 3, 162, 164, 333, 0xFFFFFFFF, STR_RIDE_CONSTRUCTION_CONSTRUCT_SELECTED_SECTION_TIP }, - { WWT_FLATBTN, 1, 60, 105, 338, 361, 0x142A, STR_RIDE_CONSTRUCTION_REMOVE_HIGHLIGHTED_SECTION_TIP }, - { WWT_FLATBTN, 1, 50, 71, 29, 52, 0x1416, STR_RIDE_CONSTRUCTION_LEFT_CURVE_LARGE_TIP }, - { WWT_FLATBTN, 1, 20, 43, 338, 361, 0x1428, STR_RIDE_CONSTRUCTION_MOVE_TO_PREVIOUS_SECTION_TIP }, - { WWT_FLATBTN, 1, 122, 145, 338, 361, 0x1429, STR_RIDE_CONSTRUCTION_MOVE_TO_NEXT_SECTION_TIP }, - { WWT_GROUPBOX, 0, 3, 162, 362, 389, 0xFFFFFFFF, STR_NONE }, - { WWT_DROPDOWN_BUTTON, 1, 9, 78, 372, 383, STR_RIDE_CONSTRUCTION_ENTRANCE, STR_RIDE_CONSTRUCTION_ENTRANCE_TIP }, - { WWT_DROPDOWN_BUTTON, 1, 87, 156, 372, 383, STR_RIDE_CONSTRUCTION_EXIT, STR_RIDE_CONSTRUCTION_EXIT_TIP }, - { WWT_FLATBTN, 1, 94, 115, 29, 52, 0x1417, STR_RIDE_CONSTRUCTION_RIGHT_CURVE_LARGE_TIP }, - { WWT_FLATBTN, 1, 72, 95, 338, 361, 0x1431, STR_ROTATE_90_TIP }, - { WWT_FLATBTN, 1, 19, 42, 132, 155, 0x1424, STR_RIDE_CONSTRUCTION_U_SHAPED_OPEN_TRACK_TIP }, - { WWT_FLATBTN, 1, 123, 146, 132, 155, 0x1425, STR_RIDE_CONSTRUCTION_O_SHAPED_ENCLOSED_TRACK_TIP }, - { WWT_GROUPBOX, 0, 96, 162, 120, 160, STR_RIDE_CONSTRUCTION_SEAT_ROT, STR_NONE }, - { WWT_SPINNER, 1, 101, 158, 138, 149, 0, STR_RIDE_CONSTRUCTION_SELECT_SEAT_ROTATION_ANGLE_TIP }, - { WWT_DROPDOWN_BUTTON, 1, 147, 157, 139, 143, STR_NUMERIC_UP, STR_RIDE_CONSTRUCTION_SELECT_SEAT_ROTATION_ANGLE_TIP }, - { WWT_DROPDOWN_BUTTON, 1, 147, 157, 144, 148, STR_NUMERIC_DOWN, STR_RIDE_CONSTRUCTION_SELECT_SEAT_ROTATION_ANGLE_TIP }, + { WWT_FRAME, 0, 0, 165, 0, 393, 0xFFFFFFFF, STR_NONE }, + { WWT_CAPTION, 0, 1, 164, 1, 14, STR_RIDE_CONSTRUCTION_WINDOW_TITLE, STR_WINDOW_TITLE_TIP }, + { WWT_CLOSEBOX, 0, 153, 163, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, + { WWT_GROUPBOX, 0, 3, 162, 17, 73, STR_RIDE_CONSTRUCTION_DIRECTION, STR_NONE }, + { WWT_GROUPBOX, 0, 3, 162, 76, 116, STR_RIDE_CONSTRUCTION_SLOPE, STR_NONE }, + { WWT_GROUPBOX, 0, 3, 162, 120, 160, STR_RIDE_CONSTRUCTION_ROLL_BANKING, STR_NONE }, + { WWT_FLATBTN, 1, 6, 27, 29, 52, SPR_RIDE_CONSTRUCTION_LEFT_CURVE_SMALL, STR_RIDE_CONSTRUCTION_LEFT_CURVE_VERY_SMALL_TIP }, + { WWT_FLATBTN, 1, 6, 27, 29, 52, SPR_RIDE_CONSTRUCTION_LEFT_CURVE_SMALL, STR_RIDE_CONSTRUCTION_LEFT_CURVE_SMALL_TIP }, + { WWT_FLATBTN, 1, 28, 49, 29, 52, SPR_RIDE_CONSTRUCTION_LEFT_CURVE, STR_RIDE_CONSTRUCTION_LEFT_CURVE_TIP }, + { WWT_FLATBTN, 1, 72, 93, 29, 52, SPR_RIDE_CONSTRUCTION_STRAIGHT, STR_RIDE_CONSTRUCTION_STRAIGHT_TIP }, + { WWT_FLATBTN, 1, 116, 137, 29, 52, SPR_RIDE_CONSTRUCTION_RIGHT_CURVE, STR_RIDE_CONSTRUCTION_RIGHT_CURVE_TIP }, + { WWT_FLATBTN, 1, 138, 159, 29, 52, SPR_RIDE_CONSTRUCTION_RIGHT_CURVE_SMALL, STR_RIDE_CONSTRUCTION_RIGHT_CURVE_SMALL_TIP }, + { WWT_FLATBTN, 1, 138, 159, 29, 52, SPR_RIDE_CONSTRUCTION_RIGHT_CURVE_SMALL, STR_RIDE_CONSTRUCTION_RIGHT_CURVE_VERY_SMALL_TIP }, + { WWT_DROPDOWN_BUTTON, 1, 17, 148, 55, 68, STR_YELLOW_STRING, STR_RIDE_CONSTRUCTION_OTHER_TRACK_CONFIGURATIONS_TIP }, + { WWT_FLATBTN, 1, 23, 46, 88, 111, SPR_RIDE_CONSTRUCTION_SLOPE_DOWN_STEEP, STR_RIDE_CONSTRUCTION_STEEP_SLOPE_DOWN_TIP }, + { WWT_FLATBTN, 1, 47, 70, 88, 111, SPR_RIDE_CONSTRUCTION_SLOPE_DOWN, STR_RIDE_CONSTRUCTION_SLOPE_DOWN_TIP }, + { WWT_FLATBTN, 1, 71, 94, 88, 111, SPR_RIDE_CONSTRUCTION_SLOPE_LEVEL, STR_RIDE_CONSTRUCTION_LEVEL_TIP }, + { WWT_FLATBTN, 1, 95, 118, 88, 111, SPR_RIDE_CONSTRUCTION_SLOPE_UP, STR_RIDE_CONSTRUCTION_SLOPE_UP_TIP }, + { WWT_FLATBTN, 1, 119, 142, 88, 111, SPR_RIDE_CONSTRUCTION_SLOPE_UP_STEEP, STR_RIDE_CONSTRUCTION_STEEP_SLOPE_UP_TIP }, + { WWT_FLATBTN, 1, 134, 157, 88, 111, SPR_CHAIN_LIFT, STR_RIDE_CONSTRUCTION_CHAIN_LIFT_TIP }, + { WWT_FLATBTN, 1, 47, 70, 132, 155, SPR_RIDE_CONSTRUCTION_LEFT_BANK, STR_RIDE_CONSTRUCTION_ROLL_FOR_LEFT_CURVE_TIP }, + { WWT_FLATBTN, 1, 71, 94, 132, 155, SPR_RIDE_CONSTRUCTION_NO_BANK, STR_RIDE_CONSTRUCTION_NO_ROLL_TIP }, + { WWT_FLATBTN, 1, 95, 118, 132, 155, SPR_RIDE_CONSTRUCTION_RIGHT_BANK, STR_RIDE_CONSTRUCTION_ROLL_FOR_RIGHT_CURVE_TIP }, + { WWT_IMGBTN, 1, 3, 162, 164, 333, 0xFFFFFFFF, STR_RIDE_CONSTRUCTION_CONSTRUCT_SELECTED_SECTION_TIP }, + { WWT_FLATBTN, 1, 60, 105, 338, 361, SPR_DEMOLISH_CURRENT_SECTION, STR_RIDE_CONSTRUCTION_REMOVE_HIGHLIGHTED_SECTION_TIP }, + { WWT_FLATBTN, 1, 50, 71, 29, 52, SPR_RIDE_CONSTRUCTION_LEFT_CURVE_LARGE, STR_RIDE_CONSTRUCTION_LEFT_CURVE_LARGE_TIP }, + { WWT_FLATBTN, 1, 20, 43, 338, 361, SPR_PREVIOUS, STR_RIDE_CONSTRUCTION_MOVE_TO_PREVIOUS_SECTION_TIP }, + { WWT_FLATBTN, 1, 122, 145, 338, 361, SPR_NEXT, STR_RIDE_CONSTRUCTION_MOVE_TO_NEXT_SECTION_TIP }, + { WWT_GROUPBOX, 0, 3, 162, 362, 389, 0xFFFFFFFF, STR_NONE }, + { WWT_DROPDOWN_BUTTON, 1, 9, 78, 372, 383, STR_RIDE_CONSTRUCTION_ENTRANCE, STR_RIDE_CONSTRUCTION_ENTRANCE_TIP }, + { WWT_DROPDOWN_BUTTON, 1, 87, 156, 372, 383, STR_RIDE_CONSTRUCTION_EXIT, STR_RIDE_CONSTRUCTION_EXIT_TIP }, + { WWT_FLATBTN, 1, 94, 115, 29, 52, SPR_RIDE_CONSTRUCTION_RIGHT_CURVE_LARGE, STR_RIDE_CONSTRUCTION_RIGHT_CURVE_LARGE_TIP }, + { WWT_FLATBTN, 1, 72, 95, 338, 361, SPR_ROTATE_ARROW, STR_ROTATE_90_TIP }, + { WWT_FLATBTN, 1, 19, 42, 132, 155, SPR_RIDE_CONSTRUCTION_U_SHAPED_TRACK, STR_RIDE_CONSTRUCTION_U_SHAPED_OPEN_TRACK_TIP }, + { WWT_FLATBTN, 1, 123, 146, 132, 155, SPR_RIDE_CONSTRUCTION_O_SHAPED_TRACK, STR_RIDE_CONSTRUCTION_O_SHAPED_ENCLOSED_TRACK_TIP }, + { WWT_GROUPBOX, 0, 96, 162, 120, 160, STR_RIDE_CONSTRUCTION_SEAT_ROT, STR_NONE }, + { WWT_SPINNER, 1, 101, 158, 138, 149, 0, STR_RIDE_CONSTRUCTION_SELECT_SEAT_ROTATION_ANGLE_TIP }, + { WWT_DROPDOWN_BUTTON, 1, 147, 157, 139, 143, STR_NUMERIC_UP, STR_RIDE_CONSTRUCTION_SELECT_SEAT_ROTATION_ANGLE_TIP }, + { WWT_DROPDOWN_BUTTON, 1, 147, 157, 144, 148, STR_NUMERIC_DOWN, STR_RIDE_CONSTRUCTION_SELECT_SEAT_ROTATION_ANGLE_TIP }, { WIDGETS_END } }; @@ -496,6 +497,25 @@ static void ride_construction_tooldown_entrance_exit(int screenX, int screenY); uint8 *_currentPossibleRideConfigurations = (uint8*)0x00F4407C; +static const rct_string_id RideConstructionSeatAngleRotationStrings[] = { + STR_RIDE_CONSTRUCTION_SEAT_ROTATION_ANGLE_NEG_180, + STR_RIDE_CONSTRUCTION_SEAT_ROTATION_ANGLE_NEG_135, + STR_RIDE_CONSTRUCTION_SEAT_ROTATION_ANGLE_NEG_90, + STR_RIDE_CONSTRUCTION_SEAT_ROTATION_ANGLE_NEG_45, + STR_RIDE_CONSTRUCTION_SEAT_ROTATION_ANGLE_0, + STR_RIDE_CONSTRUCTION_SEAT_ROTATION_ANGLE_45, + STR_RIDE_CONSTRUCTION_SEAT_ROTATION_ANGLE_90, + STR_RIDE_CONSTRUCTION_SEAT_ROTATION_ANGLE_135, + STR_RIDE_CONSTRUCTION_SEAT_ROTATION_ANGLE_180, + STR_RIDE_CONSTRUCTION_SEAT_ROTATION_ANGLE_225, + STR_RIDE_CONSTRUCTION_SEAT_ROTATION_ANGLE_270, + STR_RIDE_CONSTRUCTION_SEAT_ROTATION_ANGLE_315, + STR_RIDE_CONSTRUCTION_SEAT_ROTATION_ANGLE_360, + STR_RIDE_CONSTRUCTION_SEAT_ROTATION_ANGLE_405, + STR_RIDE_CONSTRUCTION_SEAT_ROTATION_ANGLE_450, + STR_RIDE_CONSTRUCTION_SEAT_ROTATION_ANGLE_495, +}; + static bool is_track_enabled(int trackFlagIndex) { return _enabledRidePieces.ab & (1ULL << trackFlagIndex); @@ -2116,7 +2136,7 @@ static void window_ride_construction_invalidate(rct_window *w) stringId = STR_RIDE_CONSTRUCTION_SPECIAL; if (_currentTrackCurve >= 256) { - stringId = RCT2_ADDRESS(0x00999492, rct_string_id)[_currentTrackCurve - 256]; + stringId = RideConfigurationStringIds[_currentTrackCurve - 256]; if (stringId == STR_RAPIDS && ride->type == RIDE_TYPE_CAR_RIDE) stringId = STR_LOG_BUMPS; } @@ -2125,10 +2145,10 @@ static void window_ride_construction_invalidate(rct_window *w) if (RCT2_GLOBAL(0x00F440D3, uint8) == 1) set_format_arg(2, uint16, ((RCT2_GLOBAL(0x00F440CD, uint8) * 9) >> 2) & 0xFFFF); - window_ride_construction_widgets[WIDX_SEAT_ROTATION_ANGLE_SPINNER].image = - STR_RIDE_CONSTRUCTION_SEAT_ROTATION_ANGLE_NEG_180 + _currentSeatRotationAngle; + window_ride_construction_widgets[WIDX_SEAT_ROTATION_ANGLE_SPINNER].text = RideConstructionSeatAngleRotationStrings[_currentSeatRotationAngle]; - if (RCT2_GLOBAL(0x00F440D3, uint8) == 2) + // TODO: Embed table + if (RCT2_GLOBAL(0x00F440D3, uint8) == 2) // never gets set to 2 set_format_arg(2, uint16, ((RCT2_GLOBAL(0x00F440CE, uint8) * 9) >> 2) & 0xFFFF); // Set window title arguments @@ -2169,14 +2189,14 @@ static void window_ride_construction_paint(rct_window *w, rct_drawpixelinfo *dpi x = w->x + (widget->left + widget->right) / 2; y = w->y + widget->bottom - 23; if (_rideConstructionState != RIDE_CONSTRUCTION_STATE_PLACE) - gfx_draw_string_centred(dpi, 1407, x, y, 0, w); + gfx_draw_string_centred(dpi, STR_BUILD_THIS, x, y, 0, w); y += 11; if ( _currentTrackPrice != MONEY32_UNDEFINED && !(gParkFlags & PARK_FLAGS_NO_MONEY) ) { - gfx_draw_string_centred(dpi, 1408, x, y, 0, (void*)&_currentTrackPrice); + gfx_draw_string_centred(dpi, STR_COST_LABEL, x, y, 0, (void*)&_currentTrackPrice); } } @@ -3004,27 +3024,27 @@ static void window_ride_construction_update_widgets(rct_window *w) window_ride_construction_widgets[WIDX_LEFT_CURVE_SMALL].right = 49; window_ride_construction_widgets[WIDX_RIGHT_CURVE_SMALL].left = 116; window_ride_construction_widgets[WIDX_RIGHT_CURVE_SMALL].right = 137; - window_ride_construction_widgets[WIDX_LEFT_CURVE_SMALL].image = 5138; - window_ride_construction_widgets[WIDX_RIGHT_CURVE_SMALL].image = 5139; + window_ride_construction_widgets[WIDX_LEFT_CURVE_SMALL].image = SPR_RIDE_CONSTRUCTION_LEFT_CURVE; + window_ride_construction_widgets[WIDX_RIGHT_CURVE_SMALL].image = SPR_RIDE_CONSTRUCTION_RIGHT_CURVE; if (is_track_enabled(TRACK_CURVE_VERTICAL)) { window_ride_construction_widgets[WIDX_LEFT_CURVE_SMALL].type = WWT_FLATBTN; window_ride_construction_widgets[WIDX_LEFT_CURVE_SMALL].left = 6; window_ride_construction_widgets[WIDX_LEFT_CURVE_SMALL].right = 27; - window_ride_construction_widgets[WIDX_LEFT_CURVE_SMALL].image = 5140; + window_ride_construction_widgets[WIDX_LEFT_CURVE_SMALL].image = SPR_RIDE_CONSTRUCTION_LEFT_CURVE_SMALL; window_ride_construction_widgets[WIDX_RIGHT_CURVE_SMALL].type = WWT_FLATBTN; window_ride_construction_widgets[WIDX_RIGHT_CURVE_SMALL].left = 138; window_ride_construction_widgets[WIDX_RIGHT_CURVE_SMALL].right = 159; - window_ride_construction_widgets[WIDX_RIGHT_CURVE_SMALL].image = 5141; + window_ride_construction_widgets[WIDX_RIGHT_CURVE_SMALL].image = SPR_RIDE_CONSTRUCTION_RIGHT_CURVE_SMALL; } if (is_track_enabled(TRACK_CURVE)) { window_ride_construction_widgets[WIDX_LEFT_CURVE].type = WWT_FLATBTN; window_ride_construction_widgets[WIDX_RIGHT_CURVE].type = WWT_FLATBTN; window_ride_construction_widgets[WIDX_LEFT_CURVE_SMALL].left = 6; window_ride_construction_widgets[WIDX_LEFT_CURVE_SMALL].right = 27; - window_ride_construction_widgets[WIDX_LEFT_CURVE_SMALL].image = 5140; + window_ride_construction_widgets[WIDX_LEFT_CURVE_SMALL].image = SPR_RIDE_CONSTRUCTION_LEFT_CURVE_SMALL; window_ride_construction_widgets[WIDX_RIGHT_CURVE_SMALL].left = 138; window_ride_construction_widgets[WIDX_RIGHT_CURVE_SMALL].right = 159; - window_ride_construction_widgets[WIDX_RIGHT_CURVE_SMALL].image = 5141; + window_ride_construction_widgets[WIDX_RIGHT_CURVE_SMALL].image = SPR_RIDE_CONSTRUCTION_RIGHT_CURVE_SMALL; } if (is_track_enabled(TRACK_CURVE_SMALL)) { window_ride_construction_widgets[WIDX_LEFT_CURVE_SMALL].type = WWT_FLATBTN; @@ -3040,9 +3060,9 @@ static void window_ride_construction_update_widgets(rct_window *w) window_ride_construction_widgets[WIDX_LEVEL].type = WWT_EMPTY; window_ride_construction_widgets[WIDX_SLOPE_UP].type = WWT_EMPTY; window_ride_construction_widgets[WIDX_SLOPE_UP_STEEP].type = WWT_EMPTY; - window_ride_construction_widgets[WIDX_SLOPE_DOWN_STEEP].image = 5144; + window_ride_construction_widgets[WIDX_SLOPE_DOWN_STEEP].image = SPR_RIDE_CONSTRUCTION_SLOPE_DOWN_STEEP; window_ride_construction_widgets[WIDX_SLOPE_DOWN_STEEP].tooltip = STR_RIDE_CONSTRUCTION_STEEP_SLOPE_DOWN_TIP; - window_ride_construction_widgets[WIDX_SLOPE_UP_STEEP].image = 5148; + window_ride_construction_widgets[WIDX_SLOPE_UP_STEEP].image = SPR_RIDE_CONSTRUCTION_SLOPE_UP_STEEP; window_ride_construction_widgets[WIDX_SLOPE_UP_STEEP].tooltip = STR_RIDE_CONSTRUCTION_STEEP_SLOPE_UP_TIP; if (rideType == RIDE_TYPE_REVERSE_FREEFALL_COASTER || rideType == RIDE_TYPE_AIR_POWERED_VERTICAL_COASTER) { window_ride_construction_widgets[WIDX_LEVEL].type = WWT_FLATBTN; @@ -3089,9 +3109,9 @@ static void window_ride_construction_update_widgets(rct_window *w) x += 24; } - window_ride_construction_widgets[WIDX_SLOPE_UP_STEEP].image = 5148; + window_ride_construction_widgets[WIDX_SLOPE_UP_STEEP].image = SPR_RIDE_CONSTRUCTION_SLOPE_UP_STEEP; window_ride_construction_widgets[WIDX_SLOPE_UP_STEEP].tooltip = STR_RIDE_CONSTRUCTION_STEEP_SLOPE_UP_TIP; - window_ride_construction_widgets[WIDX_SLOPE_DOWN_STEEP].image = 5144; + window_ride_construction_widgets[WIDX_SLOPE_DOWN_STEEP].image = SPR_RIDE_CONSTRUCTION_SLOPE_DOWN_STEEP; window_ride_construction_widgets[WIDX_SLOPE_DOWN_STEEP].tooltip = STR_RIDE_CONSTRUCTION_STEEP_SLOPE_DOWN_TIP; if (is_track_enabled(TRACK_SLOPE_VERTICAL)) { if (_previousTrackSlopeEnd == TRACK_SLOPE_UP_60 || _previousTrackSlopeEnd == TRACK_SLOPE_UP_90) { @@ -3103,7 +3123,7 @@ static void window_ride_construction_update_widgets(rct_window *w) } window_ride_construction_widgets[WIDX_SLOPE_DOWN_STEEP].left = originalSlopeUpSteepLeft; window_ride_construction_widgets[WIDX_SLOPE_DOWN_STEEP].right = originalSlopeUpSteepRight; - window_ride_construction_widgets[WIDX_SLOPE_DOWN_STEEP].image = 5149; + window_ride_construction_widgets[WIDX_SLOPE_DOWN_STEEP].image = SPR_RIDE_CONSTRUCTION_VERTICAL_RISE; window_ride_construction_widgets[WIDX_SLOPE_DOWN_STEEP].tooltip = STR_RIDE_CONSTRUCTION_VERTICAL_RISE_TIP; } else if (_previousTrackSlopeEnd == TRACK_SLOPE_DOWN_60 || _previousTrackSlopeEnd == TRACK_SLOPE_DOWN_90) { int originalSlopeDownSteepLeft = window_ride_construction_widgets[WIDX_SLOPE_DOWN_STEEP].left; @@ -3114,7 +3134,7 @@ static void window_ride_construction_update_widgets(rct_window *w) } window_ride_construction_widgets[WIDX_SLOPE_UP_STEEP].left = originalSlopeDownSteepLeft; window_ride_construction_widgets[WIDX_SLOPE_UP_STEEP].right = originalSlopeDownSteepRight; - window_ride_construction_widgets[WIDX_SLOPE_UP_STEEP].image = 5150; + window_ride_construction_widgets[WIDX_SLOPE_UP_STEEP].image = SPR_RIDE_CONSTRUCTION_VERTICAL_DROP; window_ride_construction_widgets[WIDX_SLOPE_UP_STEEP].tooltip = STR_RIDE_CONSTRUCTION_VERTICAL_DROP_TIP; } } @@ -3125,9 +3145,9 @@ static void window_ride_construction_update_widgets(rct_window *w) _currentTrackBankEnd == TRACK_BANK_NONE && (_currentTrackCurve == TRACK_CURVE_LEFT || _currentTrackCurve == TRACK_CURVE_RIGHT) ) { - window_ride_construction_widgets[WIDX_SLOPE_DOWN_STEEP].image = 5151; + window_ride_construction_widgets[WIDX_SLOPE_DOWN_STEEP].image = SPR_RIDE_CONSTRUCTION_HELIX_DOWN; window_ride_construction_widgets[WIDX_SLOPE_DOWN_STEEP].tooltip = STR_RIDE_CONSTRUCTION_HELIX_DOWN_TIP; - window_ride_construction_widgets[WIDX_SLOPE_UP_STEEP].image = 5152; + window_ride_construction_widgets[WIDX_SLOPE_UP_STEEP].image = SPR_RIDE_CONSTRUCTION_HELIX_UP; window_ride_construction_widgets[WIDX_SLOPE_UP_STEEP].tooltip = STR_RIDE_CONSTRUCTION_HELIX_UP_TIP; int tmp = window_ride_construction_widgets[WIDX_SLOPE_DOWN_STEEP].left; @@ -3153,9 +3173,9 @@ static void window_ride_construction_update_widgets(rct_window *w) _currentTrackSlopeEnd == TRACK_SLOPE_NONE && _currentTrackBankEnd != TRACK_BANK_NONE ) { - window_ride_construction_widgets[WIDX_SLOPE_DOWN_STEEP].image = 5151; + window_ride_construction_widgets[WIDX_SLOPE_DOWN_STEEP].image = SPR_RIDE_CONSTRUCTION_HELIX_DOWN; window_ride_construction_widgets[WIDX_SLOPE_DOWN_STEEP].tooltip = STR_RIDE_CONSTRUCTION_HELIX_DOWN_TIP; - window_ride_construction_widgets[WIDX_SLOPE_UP_STEEP].image = 5152; + window_ride_construction_widgets[WIDX_SLOPE_UP_STEEP].image = SPR_RIDE_CONSTRUCTION_HELIX_UP; window_ride_construction_widgets[WIDX_SLOPE_UP_STEEP].tooltip = STR_RIDE_CONSTRUCTION_HELIX_UP_TIP; int tmp = window_ride_construction_widgets[WIDX_SLOPE_DOWN_STEEP].left; @@ -3176,19 +3196,19 @@ static void window_ride_construction_update_widgets(rct_window *w) } window_ride_construction_widgets[WIDX_BANKING_GROUPBOX].image = STR_RIDE_CONSTRUCTION_ROLL_BANKING; - window_ride_construction_widgets[WIDX_BANK_LEFT].image = 5153; + window_ride_construction_widgets[WIDX_BANK_LEFT].image = SPR_RIDE_CONSTRUCTION_LEFT_BANK; window_ride_construction_widgets[WIDX_BANK_LEFT].tooltip = STR_RIDE_CONSTRUCTION_ROLL_FOR_LEFT_CURVE_TIP; window_ride_construction_widgets[WIDX_BANK_LEFT].left = 47; window_ride_construction_widgets[WIDX_BANK_LEFT].right = 70; window_ride_construction_widgets[WIDX_BANK_LEFT].top = 132; window_ride_construction_widgets[WIDX_BANK_LEFT].bottom = 155; - window_ride_construction_widgets[WIDX_BANK_STRAIGHT].image = 5154; + window_ride_construction_widgets[WIDX_BANK_STRAIGHT].image = SPR_RIDE_CONSTRUCTION_NO_BANK; window_ride_construction_widgets[WIDX_BANK_STRAIGHT].tooltip = STR_RIDE_CONSTRUCTION_NO_ROLL_TIP; window_ride_construction_widgets[WIDX_BANK_STRAIGHT].left = 71; window_ride_construction_widgets[WIDX_BANK_STRAIGHT].right = 94; window_ride_construction_widgets[WIDX_BANK_STRAIGHT].top = 132; window_ride_construction_widgets[WIDX_BANK_STRAIGHT].bottom = 155; - window_ride_construction_widgets[WIDX_BANK_RIGHT].image = 5155; + window_ride_construction_widgets[WIDX_BANK_RIGHT].image = SPR_RIDE_CONSTRUCTION_RIGHT_BANK; window_ride_construction_widgets[WIDX_BANK_RIGHT].tooltip = STR_RIDE_CONSTRUCTION_ROLL_FOR_RIGHT_CURVE_TIP; window_ride_construction_widgets[WIDX_BANK_RIGHT].left = 95; window_ride_construction_widgets[WIDX_BANK_RIGHT].right = 118; @@ -3207,29 +3227,29 @@ static void window_ride_construction_update_widgets(rct_window *w) } if (ride_type_has_flag(rideType, RIDE_TYPE_FLAG_TRACK_ELEMENTS_HAVE_TWO_VARIETIES)) { if (rideType == RIDE_TYPE_WATER_COASTER) { - window_ride_construction_widgets[WIDX_U_TRACK].image = 5158; - window_ride_construction_widgets[WIDX_O_TRACK].image = 5159; + window_ride_construction_widgets[WIDX_U_TRACK].image = SPR_RIDE_CONSTRUCTION_RC_TRACK; + window_ride_construction_widgets[WIDX_O_TRACK].image = SPR_RIDE_CONSTRUCTION_WATER_CHANNEL; window_ride_construction_widgets[WIDX_U_TRACK].tooltip = STR_RIDE_CONSTRUCTION_STANDARD_RC_TRACK_TIP; window_ride_construction_widgets[WIDX_O_TRACK].tooltip = STR_RIDE_CONSTRUCTION_WATER_CHANNEL_TIP; if (_currentTrackCurve < TRACK_CURVE_LEFT_SMALL && _currentTrackSlopeEnd == TRACK_SLOPE_NONE && _currentTrackBankEnd == TRACK_BANK_NONE) { - window_ride_construction_widgets[WIDX_BANKING_GROUPBOX].image = STR_RIDE_CONSTRUCTION_TRACK_STYLE; + window_ride_construction_widgets[WIDX_BANKING_GROUPBOX].text = STR_RIDE_CONSTRUCTION_TRACK_STYLE; window_ride_construction_widgets[WIDX_U_TRACK].type = WWT_FLATBTN; window_ride_construction_widgets[WIDX_O_TRACK].type = WWT_FLATBTN; } } else { - window_ride_construction_widgets[WIDX_U_TRACK].image = 5156; - window_ride_construction_widgets[WIDX_O_TRACK].image = 5157; + window_ride_construction_widgets[WIDX_U_TRACK].image = SPR_RIDE_CONSTRUCTION_U_SHAPED_TRACK; + window_ride_construction_widgets[WIDX_O_TRACK].image = SPR_RIDE_CONSTRUCTION_O_SHAPED_TRACK; window_ride_construction_widgets[WIDX_U_TRACK].tooltip = STR_RIDE_CONSTRUCTION_U_SHAPED_OPEN_TRACK_TIP; window_ride_construction_widgets[WIDX_O_TRACK].tooltip = STR_RIDE_CONSTRUCTION_O_SHAPED_ENCLOSED_TRACK_TIP; - window_ride_construction_widgets[WIDX_BANKING_GROUPBOX].image = STR_RIDE_CONSTRUCTION_TRACK_STYLE; + window_ride_construction_widgets[WIDX_BANKING_GROUPBOX].text = STR_RIDE_CONSTRUCTION_TRACK_STYLE; window_ride_construction_widgets[WIDX_U_TRACK].type = WWT_FLATBTN; window_ride_construction_widgets[WIDX_O_TRACK].type = WWT_FLATBTN; } } } else { - window_ride_construction_widgets[WIDX_BANKING_GROUPBOX].image = STR_RIDE_CONSTRUCTION_BRAKE_SPEED; + window_ride_construction_widgets[WIDX_BANKING_GROUPBOX].text = STR_RIDE_CONSTRUCTION_BRAKE_SPEED; RCT2_GLOBAL(0x00F440D3, uint8) = 1; - window_ride_construction_widgets[WIDX_BANK_LEFT].image = 1675; + window_ride_construction_widgets[WIDX_BANK_LEFT].text = STR_RIDE_CONSTRUCTION_BRAKE_SPEED_VELOCITY; window_ride_construction_widgets[WIDX_BANK_LEFT].tooltip = STR_RIDE_CONSTRUCTION_BRAKE_SPEED_LIMIT_TIP; window_ride_construction_widgets[WIDX_BANK_STRAIGHT].tooltip = STR_RIDE_CONSTRUCTION_BRAKE_SPEED_LIMIT_TIP; window_ride_construction_widgets[WIDX_BANK_RIGHT].tooltip = STR_RIDE_CONSTRUCTION_BRAKE_SPEED_LIMIT_TIP; @@ -3239,13 +3259,13 @@ static void window_ride_construction_update_widgets(rct_window *w) window_ride_construction_widgets[WIDX_BANK_LEFT].top = 138; window_ride_construction_widgets[WIDX_BANK_LEFT].bottom = 149; window_ride_construction_widgets[WIDX_BANK_STRAIGHT].type = WWT_DROPDOWN_BUTTON; - window_ride_construction_widgets[WIDX_BANK_STRAIGHT].image = STR_NUMERIC_UP; + window_ride_construction_widgets[WIDX_BANK_STRAIGHT].text = STR_NUMERIC_UP; window_ride_construction_widgets[WIDX_BANK_STRAIGHT].left = 72; window_ride_construction_widgets[WIDX_BANK_STRAIGHT].right = 82; window_ride_construction_widgets[WIDX_BANK_STRAIGHT].top = 139; window_ride_construction_widgets[WIDX_BANK_STRAIGHT].bottom = 143; window_ride_construction_widgets[WIDX_BANK_RIGHT].type = WWT_DROPDOWN_BUTTON; - window_ride_construction_widgets[WIDX_BANK_RIGHT].image = STR_NUMERIC_DOWN; + window_ride_construction_widgets[WIDX_BANK_RIGHT].text = STR_NUMERIC_DOWN; window_ride_construction_widgets[WIDX_BANK_RIGHT].left = 72; window_ride_construction_widgets[WIDX_BANK_RIGHT].right = 82; window_ride_construction_widgets[WIDX_BANK_RIGHT].top = 144; diff --git a/src/windows/ride_list.c b/src/windows/ride_list.c index 8624b19732..cc58d4923f 100644 --- a/src/windows/ride_list.c +++ b/src/windows/ride_list.c @@ -31,7 +31,8 @@ enum { PAGE_RIDES, PAGE_SHOPS_AND_STALLS, - PAGE_KIOSKS_AND_FACILITIES + PAGE_KIOSKS_AND_FACILITIES, + PAGE_COUNT }; enum WINDOW_RIDE_LIST_WIDGET_IDX { @@ -52,18 +53,18 @@ enum WINDOW_RIDE_LIST_WIDGET_IDX { }; static rct_widget window_ride_list_widgets[] = { - { WWT_FRAME, 0, 0, 339, 0, 239, 0x0FFFFFFFF, 65535 }, // panel / background - { WWT_CAPTION, 0, 1, 338, 1, 14, 0x0FFFFFFFF, STR_WINDOW_TITLE_TIP }, // title bar + { WWT_FRAME, 0, 0, 339, 0, 239, 0xFFFFFFFF, STR_NONE }, // panel / background + { WWT_CAPTION, 0, 1, 338, 1, 14, 0xFFFFFFFF, STR_WINDOW_TITLE_TIP }, // title bar { WWT_CLOSEBOX, 0, 327, 337, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // close x button - { WWT_RESIZE, 1, 0, 339, 43, 239, 0x0FFFFFFFF, 65535 }, // tab page background + { WWT_RESIZE, 1, 0, 339, 43, 239, 0xFFFFFFFF, STR_NONE }, // tab page background { WWT_FLATBTN, 1, 315, 338, 60, 83, SPR_TOGGLE_OPEN_CLOSE, STR_OPEN_OR_CLOSE_ALL_RIDES }, // open / close all toggle - { WWT_DROPDOWN, 1, 150, 273, 46, 57, 0x0FFFFFFFF, 65535 }, // current information type - { WWT_DROPDOWN_BUTTON, 1, 262, 272, 47, 56, 876, STR_RIDE_LIST_INFORMATION_TYPE_TIP }, // information type dropdown button + { WWT_DROPDOWN, 1, 150, 273, 46, 57, 0xFFFFFFFF, STR_NONE }, // current information type + { WWT_DROPDOWN_BUTTON, 1, 262, 272, 47, 56, STR_DROPDOWN_GLYPH, STR_RIDE_LIST_INFORMATION_TYPE_TIP }, // information type dropdown button { WWT_DROPDOWN_BUTTON, 1, 280, 333, 46, 57, STR_SORT, STR_RIDE_LIST_SORT_TIP }, // sort button - { WWT_TAB, 1, 3, 33, 17, 43, 0x2000144E, STR_LIST_RIDES_TIP }, // tab 1 - { WWT_TAB, 1, 34, 64, 17, 43, 0x2000144E, STR_LIST_SHOPS_AND_STALLS_TIP }, // tab 2 - { WWT_TAB, 1, 65, 95, 17, 43, 0x2000144E, STR_LIST_KIOSKS_AND_FACILITIES_TIP }, // tab 3 - { WWT_SCROLL, 1, 3, 336, 60, 236, 2, 65535 }, // list + { WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_LIST_RIDES_TIP }, // tab 1 + { WWT_TAB, 1, 34, 64, 17, 43, 0x20000000 | SPR_TAB, STR_LIST_SHOPS_AND_STALLS_TIP }, // tab 2 + { WWT_TAB, 1, 65, 95, 17, 43, 0x20000000 | SPR_TAB, STR_LIST_KIOSKS_AND_FACILITIES_TIP }, // tab 3 + { WWT_SCROLL, 1, 3, 336, 60, 236, SCROLL_VERTICAL, STR_NONE }, // list { WWT_IMGBTN, 1, 320, 333, 62, 75, SPR_G2_RCT1_CLOSE_BUTTON_0, STR_NONE }, { WWT_IMGBTN, 1, 320, 333, 76, 89, SPR_G2_RCT1_OPEN_BUTTON_0, STR_NONE }, { WIDGETS_END }, @@ -132,7 +133,7 @@ enum { DROPDOWN_LIST_COUNT }; -uint32 ride_info_type_string_mapping[DROPDOWN_LIST_COUNT] = { +rct_string_id ride_info_type_string_mapping[DROPDOWN_LIST_COUNT] = { STR_STATUS, STR_POPULARITY, STR_SATISFACTION, @@ -150,6 +151,12 @@ uint32 ride_info_type_string_mapping[DROPDOWN_LIST_COUNT] = { STR_GUESTS_FAVOURITE }; +static const rct_string_id ride_list_statusbar_count_strings[PAGE_COUNT] = { + STR_NUMBER_RIDES, + STR_NUMBER_SHOPS_AND_STALLS, + STR_NUMBER_RESTROOMS_AND_INFORMATION_KIOSKS, +}; + bool ride_info_type_money_mapping[DROPDOWN_LIST_COUNT] = { false, false, @@ -168,6 +175,12 @@ bool ride_info_type_money_mapping[DROPDOWN_LIST_COUNT] = { false }; +static const rct_string_id page_names[] = { + STR_RIDES, + STR_SHOPS_AND_STALLS, + STR_RESTROOMS_AND_INFORMATION_KIOSKS, +}; + static int _window_ride_list_information_type; static void window_ride_list_draw_tab_images(rct_drawpixelinfo *dpi, rct_window *w); @@ -438,14 +451,14 @@ static void window_ride_list_invalidate(rct_window *w) colour_scheme_update(w); - window_ride_list_widgets[WIDX_CURRENT_INFORMATION_TYPE].image = ride_info_type_string_mapping[_window_ride_list_information_type]; + window_ride_list_widgets[WIDX_CURRENT_INFORMATION_TYPE].text = ride_info_type_string_mapping[_window_ride_list_information_type]; // Set correct active tab for (i = 0; i < 3; i++) w->pressed_widgets &= ~(1 << (WIDX_TAB_1 + i)); w->pressed_widgets |= 1LL << (WIDX_TAB_1 + w->page); - window_ride_list_widgets[WIDX_TITLE].image = STR_RIDES + w->page; + window_ride_list_widgets[WIDX_TITLE].text = page_names[w->page]; w->widgets[WIDX_BACKGROUND].right = w->width - 1; w->widgets[WIDX_BACKGROUND].bottom = w->height - 1; @@ -502,7 +515,7 @@ static void window_ride_list_paint(rct_window *w, rct_drawpixelinfo *dpi) window_ride_list_draw_tab_images(dpi, w); // Draw number of attractions on bottom - gfx_draw_string_left(dpi, STR_NUMBER_RIDES + w->page, &w->no_list_items, 0, w->x + 4, w->widgets[WIDX_LIST].bottom + w->y + 2); + gfx_draw_string_left(dpi, ride_list_statusbar_count_strings[w->page], &w->no_list_items, 0, w->x + 4, w->widgets[WIDX_LIST].bottom + w->y + 2); } /** @@ -523,7 +536,7 @@ static void window_ride_list_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, // Background highlight if (i == w->selected_list_item) { gfx_fill_rect(dpi, 0, y, 800, y + 9, 0x02000031); - format = STR_WINDOW_COLOUR_2_STRING; + format = STR_WINDOW_COLOUR_2_STRINGID; } // Get ride @@ -645,7 +658,7 @@ static void window_ride_list_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, // Make test red and bold if broken down or crashed if (formatSecondary == STR_BROKEN_DOWN || formatSecondary == STR_CRASHED) - format = 1192; + format = STR_RED_OUTLINED_STRING; set_format_arg(0, uint16, formatSecondary); gfx_draw_string_left_clipped(dpi, format, gCommonFormatArgs, 0, 160, y - 1, 157); diff --git a/src/windows/save_prompt.c b/src/windows/save_prompt.c index 9f5d6c2221..ef88877004 100644 --- a/src/windows/save_prompt.c +++ b/src/windows/save_prompt.c @@ -63,6 +63,13 @@ static rct_widget window_quit_prompt_widgets[] = { { WIDGETS_END }, }; +static const rct_string_id window_save_prompt_labels[][2] = { + { STR_LOAD_GAME_PROMPT_TITLE, STR_SAVE_BEFORE_LOADING }, + { STR_QUIT_GAME_PROMPT_TITLE, STR_SAVE_BEFORE_QUITTING }, + { STR_QUIT_GAME_2_PROMPT_TITLE, STR_SAVE_BEFORE_QUITTING_2 }, +}; + + static void window_save_prompt_close(rct_window *w); static void window_save_prompt_mouseup(rct_window *w, int widgetIndex); static void window_save_prompt_invalidate(rct_window *w); @@ -106,7 +113,8 @@ static rct_window_event_list window_save_prompt_events = { */ void window_save_prompt_open() { - int stringId, width, height; + int width, height; + rct_string_id stringId; rct_window* window; uint8 prompt_mode; rct_widget *widgets; @@ -177,13 +185,13 @@ void window_save_prompt_open() audio_pause_sounds(); window_invalidate_by_class(WC_TOP_TOOLBAR); - stringId = prompt_mode + STR_LOAD_GAME_PROMPT_TITLE; + stringId = window_save_prompt_labels[prompt_mode][0]; if (stringId == STR_LOAD_GAME_PROMPT_TITLE && gScreenFlags & 2) stringId = STR_LOAD_LANDSCAPE_PROMPT_TITLE; if (stringId == STR_QUIT_GAME_PROMPT_TITLE && gScreenFlags & 2) stringId = STR_QUIT_SCENARIO_EDITOR; - window_save_prompt_widgets[WIDX_TITLE].image = stringId; - window_save_prompt_widgets[WIDX_LABEL].image = prompt_mode + STR_SAVE_BEFORE_LOADING; + window_save_prompt_widgets[WIDX_TITLE].text = stringId; + window_save_prompt_widgets[WIDX_LABEL].text = window_save_prompt_labels[prompt_mode][1]; } /** diff --git a/src/windows/scenery.c b/src/windows/scenery.c index 8e12837f8d..b35cbde788 100644 --- a/src/windows/scenery.c +++ b/src/windows/scenery.c @@ -31,6 +31,7 @@ #include "../interface/themes.h" #include "../network/network.h" #include "error.h" +#include "../sprites.h" #define WINDOW_SCENERY_WIDTH 634 #define WINDOW_SCENERY_HEIGHT 142 @@ -146,33 +147,33 @@ static rct_widget window_scenery_widgets[] = { { WWT_CAPTION, 0, 1, 632, 1, 14, 0xFFFFFFFF, STR_WINDOW_TITLE_TIP }, // 2 0x009DE2A8 { WWT_CLOSEBOX, 0, 621, 631, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // 4 0x009DE2B8 { WWT_RESIZE, 1, 0, 633, 43, 141, 0xFFFFFFFF, STR_NONE }, // 8 0x009DE2C8 - { WWT_TAB, 1, 3, 33, 17, 43, 0xFFFFFFFF, 1812 }, // 10 0x009DE2D8 - { WWT_TAB, 1, 34, 64, 17, 43, 0xFFFFFFFF, 1812 }, // 20 0x009DE2E8 - { WWT_TAB, 1, 65, 95, 17, 43, 0xFFFFFFFF, 1812 }, // 40 0x009DE2F8 - { WWT_TAB, 1, 96, 126, 17, 43, 0xFFFFFFFF, 1812 }, // 80 0x009DE308 - { WWT_TAB, 1, 127, 157, 17, 43, 0xFFFFFFFF, 1812 }, // 100 0x009DE318 - { WWT_TAB, 1, 158, 188, 17, 43, 0xFFFFFFFF, 1812 }, // 200 0x009DE328 - { WWT_TAB, 1, 189, 219, 17, 43, 0xFFFFFFFF, 1812 }, // 400 0x009DE338 - { WWT_TAB, 1, 220, 250, 17, 43, 0xFFFFFFFF, 1812 }, // 800 0x009DE348 - { WWT_TAB, 1, 251, 281, 17, 43, 0xFFFFFFFF, 1812 }, // 1000 0x009DE358 - { WWT_TAB, 1, 282, 312, 17, 43, 0xFFFFFFFF, 1812 }, // 2000 0x009DE368 - { WWT_TAB, 1, 313, 343, 17, 43, 0xFFFFFFFF, 1812 }, // 4000 0x009DE378 - { WWT_TAB, 1, 344, 374, 17, 43, 0xFFFFFFFF, 1812 }, // 8000 0x009DE388 - { WWT_TAB, 1, 375, 405, 17, 43, 0xFFFFFFFF, 1812 }, // 10000 0x009DE398 - { WWT_TAB, 1, 406, 436, 17, 43, 0xFFFFFFFF, 1812 }, // 20000 0x009DE3A8 - { WWT_TAB, 1, 437, 467, 17, 43, 0xFFFFFFFF, 1812 }, // 40000 0x009DE3B8 - { WWT_TAB, 1, 468, 498, 17, 43, 0xFFFFFFFF, 1812 }, // 80000 0x009DE3C8 - { WWT_TAB, 1, 468, 498, 17, 43, 0xFFFFFFFF, 1812 }, // 100000 0x009DE3D8 - { WWT_TAB, 1, 468, 498, 17, 43, 0xFFFFFFFF, 1812 }, // 200000 0x009DE3E8 - { WWT_TAB, 1, 468, 498, 17, 43, 0xFFFFFFFF, 1812 }, // 400000 0x009DE3F8 - { WWT_TAB, 1, 468, 498, 17, 43, 0x20001598, 1812 }, // 800000 0x009DE408 - { WWT_SCROLL, 1, 2, 608, 47, 126, 2, STR_NONE }, // 1000000 0x009DE418 - { WWT_FLATBTN, 1, 609, 632, 44, 67, 5169, STR_ROTATE_OBJECTS_90 }, // 2000000 0x009DE428 - { WWT_FLATBTN, 1, 609, 632, 68, 91, 5173, 3102 }, // 4000000 0x009DE438 + { WWT_TAB, 1, 3, 33, 17, 43, 0xFFFFFFFF, STR_STRING_DEFINED_TOOLTIP }, // 10 0x009DE2D8 + { WWT_TAB, 1, 34, 64, 17, 43, 0xFFFFFFFF, STR_STRING_DEFINED_TOOLTIP }, // 20 0x009DE2E8 + { WWT_TAB, 1, 65, 95, 17, 43, 0xFFFFFFFF, STR_STRING_DEFINED_TOOLTIP }, // 40 0x009DE2F8 + { WWT_TAB, 1, 96, 126, 17, 43, 0xFFFFFFFF, STR_STRING_DEFINED_TOOLTIP }, // 80 0x009DE308 + { WWT_TAB, 1, 127, 157, 17, 43, 0xFFFFFFFF, STR_STRING_DEFINED_TOOLTIP }, // 100 0x009DE318 + { WWT_TAB, 1, 158, 188, 17, 43, 0xFFFFFFFF, STR_STRING_DEFINED_TOOLTIP }, // 200 0x009DE328 + { WWT_TAB, 1, 189, 219, 17, 43, 0xFFFFFFFF, STR_STRING_DEFINED_TOOLTIP }, // 400 0x009DE338 + { WWT_TAB, 1, 220, 250, 17, 43, 0xFFFFFFFF, STR_STRING_DEFINED_TOOLTIP }, // 800 0x009DE348 + { WWT_TAB, 1, 251, 281, 17, 43, 0xFFFFFFFF, STR_STRING_DEFINED_TOOLTIP }, // 1000 0x009DE358 + { WWT_TAB, 1, 282, 312, 17, 43, 0xFFFFFFFF, STR_STRING_DEFINED_TOOLTIP }, // 2000 0x009DE368 + { WWT_TAB, 1, 313, 343, 17, 43, 0xFFFFFFFF, STR_STRING_DEFINED_TOOLTIP }, // 4000 0x009DE378 + { WWT_TAB, 1, 344, 374, 17, 43, 0xFFFFFFFF, STR_STRING_DEFINED_TOOLTIP }, // 8000 0x009DE388 + { WWT_TAB, 1, 375, 405, 17, 43, 0xFFFFFFFF, STR_STRING_DEFINED_TOOLTIP }, // 10000 0x009DE398 + { WWT_TAB, 1, 406, 436, 17, 43, 0xFFFFFFFF, STR_STRING_DEFINED_TOOLTIP }, // 20000 0x009DE3A8 + { WWT_TAB, 1, 437, 467, 17, 43, 0xFFFFFFFF, STR_STRING_DEFINED_TOOLTIP }, // 40000 0x009DE3B8 + { WWT_TAB, 1, 468, 498, 17, 43, 0xFFFFFFFF, STR_STRING_DEFINED_TOOLTIP }, // 80000 0x009DE3C8 + { WWT_TAB, 1, 468, 498, 17, 43, 0xFFFFFFFF, STR_STRING_DEFINED_TOOLTIP }, // 100000 0x009DE3D8 + { WWT_TAB, 1, 468, 498, 17, 43, 0xFFFFFFFF, STR_STRING_DEFINED_TOOLTIP }, // 200000 0x009DE3E8 + { WWT_TAB, 1, 468, 498, 17, 43, 0xFFFFFFFF, STR_STRING_DEFINED_TOOLTIP }, // 400000 0x009DE3F8 + { WWT_TAB, 1, 468, 498, 17, 43, 0x20000000 | SPR_TAB_QUESTION, STR_STRING_DEFINED_TOOLTIP }, // 800000 0x009DE408 + { WWT_SCROLL, 1, 2, 608, 47, 126, SCROLL_VERTICAL, STR_NONE }, // 1000000 0x009DE418 + { WWT_FLATBTN, 1, 609, 632, 44, 67, SPR_ROTATE_ARROW, STR_ROTATE_OBJECTS_90 }, // 2000000 0x009DE428 + { WWT_FLATBTN, 1, 609, 632, 68, 91, SPR_PAINTBRUSH, STR_SCENERY_PAINTBRUSH_TIP }, // 4000000 0x009DE438 { WWT_COLOURBTN, 1, 615, 626, 93, 104, 0xFFFFFFFF, STR_SELECT_COLOUR }, // 8000000 0x009DE448 { WWT_COLOURBTN, 1, 615, 626, 105, 116, 0xFFFFFFFF, STR_SELECT_SECONDARY_COLOUR }, // 10000000 0x009DE458 { WWT_COLOURBTN, 1, 615, 626, 117, 128, 0xFFFFFFFF, STR_SELECT_TERNARY_COLOUR }, // 20000000 0x009DE468 - { WWT_FLATBTN, 1, 609, 632, 117, 140, 5172, 3225 }, // 40000000 0x009DE478 + { WWT_FLATBTN, 1, 609, 632, 117, 140, SPR_SCENERY_CLUSTER, STR_SCENERY_CLUSTER_TIP }, // 40000000 0x009DE478 { WIDGETS_END }, }; @@ -306,7 +307,7 @@ void init_scenery() } for (int widgetIndex = WIDX_SCENERY_TAB_1; widgetIndex < WIDX_SCENERY_LIST; widgetIndex++) - window_scenery_widgets[widgetIndex].type = 0; + window_scenery_widgets[widgetIndex].type = WWT_EMPTY; uint8 tabIndexes[20]; uint8 order[20]; @@ -378,9 +379,9 @@ void init_scenery() void scenery_set_default_placement_configuration() { gWindowSceneryRotation = 3; - gWindowSceneryPrimaryColour = 26; - gWindowScenerySecondaryColour = 18; - gWindowSceneryTertiaryColour = 24; + gWindowSceneryPrimaryColour = COLOUR_BORDEAUX_RED; + gWindowScenerySecondaryColour = COLOUR_YELLOW; + gWindowSceneryTertiaryColour = COLOUR_DARK_BROWN; init_scenery(); for (int i = 0; i < 20; i++) @@ -864,7 +865,7 @@ void window_scenery_tooltip(rct_window* w, int widgetIndex, rct_string_id *strin { switch (widgetIndex) { case WIDX_SCENERY_LIST: - set_format_arg(0, uint16, 3159); + set_format_arg(0, uint16, STR_LIST); break; case WIDX_SCENERY_TAB_1: case WIDX_SCENERY_TAB_2: @@ -888,7 +889,7 @@ void window_scenery_tooltip(rct_window* w, int widgetIndex, rct_string_id *strin set_format_arg(0, uint16, get_scenery_group_entry(widgetIndex - WIDX_SCENERY_TAB_1)->name); break; case WIDX_SCENERY_TAB_20: - set_format_arg(0, uint16, 1813); + set_format_arg(0, uint16, STR_MISCELLANEOUS); break; } } @@ -902,11 +903,11 @@ void window_scenery_invalidate(rct_window *w) colour_scheme_update(w); uint16 tabIndex = gWindowSceneryActiveTabIndex; - uint32 titleStringId = 1813; + uint32 titleStringId = STR_MISCELLANEOUS; if (tabIndex < 19) titleStringId = get_scenery_group_entry(tabIndex)->name; - window_scenery_widgets[WIDX_SCENERY_TITLE].image = titleStringId; + window_scenery_widgets[WIDX_SCENERY_TITLE].text = titleStringId; w->pressed_widgets = (((uint32)w->pressed_widgets & 0xFF00000F) | (1 << (tabIndex + 4))) & 0xBBFFFFFF; @@ -936,11 +937,11 @@ void window_scenery_invalidate(rct_window *w) } window_scenery_widgets[WIDX_SCENERY_PRIMARY_COLOUR_BUTTON].image = - (gWindowSceneryPrimaryColour << 19) + 0x600013C3; + (gWindowSceneryPrimaryColour << 19) | 0x60000000 | SPR_PALETTE_BTN; window_scenery_widgets[WIDX_SCENERY_SECONDARY_COLOUR_BUTTON].image = - (gWindowScenerySecondaryColour << 19) + 0x600013C3; + (gWindowScenerySecondaryColour << 19) | 0x60000000 | SPR_PALETTE_BTN; window_scenery_widgets[WIDX_SCENERY_TERTIARY_COLOUR_BUTTON].image = - (gWindowSceneryTertiaryColour << 19) + 0x600013C3; + (gWindowSceneryTertiaryColour << 19) | 0x60000000 | SPR_PALETTE_BTN; window_scenery_widgets[WIDX_SCENERY_PRIMARY_COLOUR_BUTTON].type = WWT_EMPTY; window_scenery_widgets[WIDX_SCENERY_SECONDARY_COLOUR_BUTTON].type = WWT_EMPTY; @@ -1078,7 +1079,7 @@ void window_scenery_paint(rct_window *w, rct_drawpixelinfo *dpi) } set_format_arg(0, uint16, sceneryEntry->name); - gfx_draw_string_left_clipped(dpi, 0x4A7, gCommonFormatArgs, 0, + gfx_draw_string_left_clipped(dpi, STR_BLACK_STRING, gCommonFormatArgs, 0, w->x + 3, w->y + w->height - 13, w->width - 19); } diff --git a/src/windows/server_list.c b/src/windows/server_list.c index 09c1d99bfd..69dc1c8c09 100644 --- a/src/windows/server_list.c +++ b/src/windows/server_list.c @@ -71,7 +71,7 @@ static rct_widget window_server_list_widgets[] = { { WWT_FRAME, 0, 0, 340, 0, 90, 0xFFFFFFFF, STR_NONE }, // panel / background { WWT_CAPTION, 0, 1, 338, 1, 14, STR_SERVER_LIST, STR_WINDOW_TITLE_TIP }, // title bar { WWT_CLOSEBOX, 0, 327, 337, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // close x button - { WWT_TEXT_BOX, 1, 100, 344, 20, 31, STR_NONE, STR_NONE }, // player name text box + { WWT_TEXT_BOX, 1, 100, 344, 20, 31, STR_NONE, STR_NONE }, // player name text box { WWT_SCROLL, 1, 6, 337, 37, 50, STR_NONE, STR_NONE }, // server list { WWT_DROPDOWN_BUTTON, 1, 6, 106, 53, 64, STR_FETCH_SERVERS, STR_NONE }, // fetch servers button { WWT_DROPDOWN_BUTTON, 1, 112, 212, 53, 64, STR_ADD_SERVER, STR_NONE }, // add server button @@ -159,7 +159,7 @@ void window_server_list_open() window = window_create_centred(WWIDTH_MIN, WHEIGHT_MIN, &window_server_list_events, WC_SERVER_LIST, WF_10 | WF_RESIZABLE); - window_server_list_widgets[WIDX_PLAYER_NAME_INPUT].image = (uint32)_playerName; + window_server_list_widgets[WIDX_PLAYER_NAME_INPUT].string = _playerName; window->widgets = window_server_list_widgets; window->enabled_widgets = ( (1 << WIDX_CLOSE) | @@ -210,7 +210,7 @@ static void window_server_list_mouseup(rct_window *w, int widgetIndex) window_close(w); break; case WIDX_PLAYER_NAME_INPUT: - window_start_textbox(w, widgetIndex, 1170, (uint32)_playerName, 63); + window_start_textbox(w, widgetIndex, STR_STRING, (uint32)_playerName, 63); break; case WIDX_LIST:{ int serverIndex = w->selected_list_item; diff --git a/src/windows/server_start.c b/src/windows/server_start.c index 1b8370367a..4b0f230d11 100644 --- a/src/windows/server_start.c +++ b/src/windows/server_start.c @@ -54,10 +54,10 @@ static rct_widget window_server_start_widgets[] = { { WWT_TEXT_BOX, 1, 120, WW-8, 20, 32, STR_NONE, STR_NONE }, // port text box { WWT_TEXT_BOX, 1, 120, WW-8, 36, 48, STR_NONE, STR_NONE }, // name text box { WWT_TEXT_BOX, 1, 120, WW-8, 52, 64, STR_NONE, STR_NONE }, // password text box - { WWT_SPINNER, 1, 120, WW-8, 68, 77, 1871, STR_NONE }, // max players + { WWT_SPINNER, 1, 120, WW-8, 68, 77, STR_ARG18_COMMA16, STR_NONE }, // max players { WWT_DROPDOWN_BUTTON, 1, WW-18, WW-8, 68, 72, STR_NUMERIC_UP, STR_NONE }, { WWT_DROPDOWN_BUTTON, 1, WW-18, WW-8, 72, 76, STR_NUMERIC_DOWN, STR_NONE }, - { WWT_CHECKBOX, 1, 6, WW-8, 85, 91, STR_ADVERTISE, STR_ADVERTISE_SERVER_TIP }, // advertise checkbox + { WWT_CHECKBOX, 1, 6, WW-8, 85, 91, STR_ADVERTISE, STR_ADVERTISE_SERVER_TIP }, // advertise checkbox { WWT_DROPDOWN_BUTTON, 1, 6, 106, WH-6-11, WH-6, STR_NEW_GAME, STR_NONE }, // start server button { WWT_DROPDOWN_BUTTON, 1, 112, 212, WH-6-11, WH-6, STR_LOAD_GAME, STR_NONE }, { WIDGETS_END }, @@ -112,9 +112,9 @@ void window_server_start_open() window = window_create_centred(WW, WH, &window_server_start_events, WC_SERVER_START, WF_10); - window_server_start_widgets[WIDX_PORT_INPUT].image = (uint32)_port; - window_server_start_widgets[WIDX_NAME_INPUT].image = (uint32)_name; - window_server_start_widgets[WIDX_PASSWORD_INPUT].image = (uint32)_password; + window_server_start_widgets[WIDX_PORT_INPUT].string = _port; + window_server_start_widgets[WIDX_NAME_INPUT].string = _name; + window_server_start_widgets[WIDX_PASSWORD_INPUT].string = _password; window->widgets = window_server_start_widgets; window->enabled_widgets = ( (1 << WIDX_CLOSE) | @@ -173,13 +173,13 @@ static void window_server_start_mouseup(rct_window *w, int widgetIndex) window_close(w); break; case WIDX_PORT_INPUT: - window_start_textbox(w, widgetIndex, 1170, (uint32)_port, 6); + window_start_textbox(w, widgetIndex, STR_STRING, (uint32)_port, 6); break; case WIDX_NAME_INPUT: - window_start_textbox(w, widgetIndex, 1170, (uint32)_name, 64); + window_start_textbox(w, widgetIndex, STR_STRING, (uint32)_name, 64); break; case WIDX_PASSWORD_INPUT: - window_start_textbox(w, widgetIndex, 1170, (uint32)_password, 32); + window_start_textbox(w, widgetIndex, STR_STRING, (uint32)_password, 32); break; case WIDX_MAXPLAYERS_INCREASE: if (gConfigNetwork.maxplayers < 255) { diff --git a/src/windows/shortcut_key_change.c b/src/windows/shortcut_key_change.c index 33c4e81908..1436e15fc0 100644 --- a/src/windows/shortcut_key_change.c +++ b/src/windows/shortcut_key_change.c @@ -34,9 +34,9 @@ enum WINDOW_SHORTCUT_CHANGE_WIDGET_IDX { // 0x9DE4E0 static rct_widget window_shortcut_change_widgets[] = { - { WWT_FRAME, 0, 0, WW - 1, 0, WH - 1, STR_NONE, STR_NONE }, - { WWT_CAPTION, 0, 1, WW - 2, 1, 14, STR_OPTIONS, STR_WINDOW_TITLE_TIP }, - { WWT_CLOSEBOX, 0, WW-13, WW - 3, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, + { WWT_FRAME, 0, 0, WW - 1, 0, WH - 1, STR_NONE, STR_NONE }, + { WWT_CAPTION, 0, 1, WW - 2, 1, 14, STR_SHORTCUT_CHANGE_TITLE, STR_WINDOW_TITLE_TIP }, + { WWT_CLOSEBOX, 0, WW-13, WW - 3, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, { WIDGETS_END } }; @@ -118,5 +118,5 @@ static void window_shortcut_change_paint(rct_window *w, rct_drawpixelinfo *dpi) int y = w->y + 30; set_format_arg(0, uint16, ShortcutStringIds[RCT2_GLOBAL(0x009DE511, uint8)]); - gfx_draw_string_centred_wrapped(dpi, gCommonFormatArgs, x, y, 242, 2785, RCT2_GLOBAL(0x9DEB8D, uint8)); + gfx_draw_string_centred_wrapped(dpi, gCommonFormatArgs, x, y, 242, STR_SHORTCUT_CHANGE_PROMPT, RCT2_GLOBAL(0x9DEB8D, uint8)); } diff --git a/src/windows/shortcut_keys.c b/src/windows/shortcut_keys.c index 150fbf9390..088b13fa1c 100644 --- a/src/windows/shortcut_keys.c +++ b/src/windows/shortcut_keys.c @@ -36,11 +36,11 @@ enum WINDOW_SHORTCUT_WIDGET_IDX { // 0x9DE48C static rct_widget window_shortcut_widgets[] = { - { WWT_FRAME, 0, 0, WW - 1, 0, WH - 1, STR_NONE, STR_NONE }, - { WWT_CAPTION, 0, 1, WW - 2, 1, 14, STR_OPTIONS, STR_WINDOW_TITLE_TIP }, - { WWT_CLOSEBOX, 0, WW-13, WW - 3, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, - { WWT_SCROLL, 0, 4, WW - 5, 18, WH - 18, 2, 2786 }, - { WWT_DROPDOWN_BUTTON, 0, 4, 153, WH-15, WH - 4, 2491, 2492 }, + { WWT_FRAME, 0, 0, WW - 1, 0, WH - 1, STR_NONE, STR_NONE }, + { WWT_CAPTION, 0, 1, WW - 2, 1, 14, STR_OPTIONS, STR_WINDOW_TITLE_TIP }, + { WWT_CLOSEBOX, 0, WW-13, WW - 3, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, + { WWT_SCROLL, 0, 4, WW - 5, 18, WH - 18, SCROLL_VERTICAL, STR_SHORTCUT_LIST_TIP }, + { WWT_DROPDOWN_BUTTON, 0, 4, 153, WH-15, WH - 4, STR_SHORTCUT_ACTION_RESET, STR_SHORTCUT_ACTION_RESET_TIP }, { WIDGETS_END } }; @@ -251,11 +251,12 @@ static void window_shortcut_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, i if (y + 10 < dpi->y)continue; int format = STR_BLACK_STRING; if (i == w->selected_list_item) { - format = STR_WINDOW_COLOUR_2_STRING; + format = STR_WINDOW_COLOUR_2_STRINGID; gfx_fill_rect(dpi, 0, y, 800, y + 9, 0x2000031); } - rct_string_id templateStringId = 2525; + // TODO: How does this work? 2525 is '???' + rct_string_id templateStringId = STR_SHORTCUT_KEY_UNKNOWN; char *templateString = (char*)language_get_string(templateStringId); keyboard_shortcut_format_string(templateString, gShortcutKeys[i]); diff --git a/src/windows/sign.c b/src/windows/sign.c index 47a7ac164a..dcacc740bb 100644 --- a/src/windows/sign.c +++ b/src/windows/sign.c @@ -29,6 +29,7 @@ #include "dropdown.h" #include "../drawing/drawing.h" #include "../interface/themes.h" +#include "../sprites.h" #define WW 113 #define WH 96 @@ -46,14 +47,14 @@ enum WINDOW_SIGN_WIDGET_IDX { // 0x9AEE00 rct_widget window_sign_widgets[] = { - { WWT_FRAME, 0, 0, WW - 1, 0, WH - 1, 0x0FFFFFFFF, 65535 }, // panel / background + { WWT_FRAME, 0, 0, WW - 1, 0, WH - 1, 0xFFFFFFFF, STR_NONE }, // panel / background { WWT_CAPTION, 0, 1, WW - 2, 1, 14, STR_SIGN, 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 - { WWT_VIEWPORT, 1, 3, WW - 26, 17, WH - 20, 0x0FFFFFFFE, 65535 }, // Viewport - { WWT_FLATBTN, 1, WW - 25, WW - 2, 19, 42, 5168, STR_CHANGE_SIGN_TEXT_TIP }, // change sign button - { WWT_FLATBTN, 1, WW - 25, WW - 2, 67, 90, 5165, STR_DEMOLISH_SIGN_TIP }, // demolish button - { WWT_COLOURBTN, 1, 5, 16, WH - 16, WH - 5, 0x0FFFFFFFF, STR_SELECT_MAIN_SIGN_COLOUR_TIP }, // Main colour - { WWT_COLOURBTN, 1, 17, 28, WH - 16, WH - 5, 0x0FFFFFFFF, STR_SELECT_TEXT_COLOUR_TIP }, // Text colour + { WWT_VIEWPORT, 1, 3, WW - 26, 17, WH - 20, 0xFFFFFFFE, STR_NONE }, // Viewport + { WWT_FLATBTN, 1, WW - 25, WW - 2, 19, 42, SPR_RENAME, STR_CHANGE_SIGN_TEXT_TIP }, // change sign button + { WWT_FLATBTN, 1, WW - 25, WW - 2, 67, 90, SPR_DEMOLISH, STR_DEMOLISH_SIGN_TIP }, // demolish button + { WWT_COLOURBTN, 1, 5, 16, WH - 16, WH - 5, 0xFFFFFFFF, STR_SELECT_MAIN_SIGN_COLOUR_TIP }, // Main colour + { WWT_COLOURBTN, 1, 17, 28, WH - 16, WH - 5, 0xFFFFFFFF, STR_SELECT_TEXT_COLOUR_TIP }, // Text colour { WIDGETS_END }, }; @@ -261,7 +262,7 @@ static void window_sign_mouseup(rct_window *w, int widgetIndex) { string_id = gBanners[w->number].string_idx; } - window_text_input_open(w, WIDX_SIGN_TEXT, 2992, 2993, string_id, 0, 32); + window_text_input_open(w, WIDX_SIGN_TEXT, STR_SIGN_TEXT_TITLE, STR_SIGN_TEXT_PROMPT, string_id, 0, 32); break; } } @@ -342,8 +343,8 @@ static void window_sign_invalidate(rct_window *w) text_colour_btn->type = WWT_COLOURBTN; } - main_colour_btn->image = (w->list_information_type << 19) | 0x600013C3; - text_colour_btn->image = (w->var_492 << 19) | 0x600013C3; + main_colour_btn->image = (w->list_information_type << 19) | 0x60000000 | SPR_PALETTE_BTN; + text_colour_btn->image = (w->var_492 << 19) | 0x60000000 | SPR_PALETTE_BTN; } /** @@ -525,7 +526,7 @@ static void window_sign_small_mouseup(rct_window *w, int widgetIndex) { string_id = gBanners[w->number].string_idx; } - window_text_input_open(w, WIDX_SIGN_TEXT, 2992, 2993, string_id, 0, 32); + window_text_input_open(w, WIDX_SIGN_TEXT, STR_SIGN_TEXT_TITLE, STR_SIGN_TEXT_PROMPT, string_id, 0, 32); break; } } @@ -577,6 +578,6 @@ static void window_sign_small_invalidate(rct_window *w) text_colour_btn->type = WWT_COLOURBTN; } - main_colour_btn->image = (w->list_information_type << 19) | 0x600013C3; - text_colour_btn->image = (w->var_492 << 19) | 0x600013C3; + main_colour_btn->image = (w->list_information_type << 19) | 0x60000000 | SPR_PALETTE_BTN; + text_colour_btn->image = (w->var_492 << 19) | 0x60000000 | SPR_PALETTE_BTN; } diff --git a/src/windows/staff.c b/src/windows/staff.c index cdd7c898e2..1b532da7b7 100644 --- a/src/windows/staff.c +++ b/src/windows/staff.c @@ -67,53 +67,53 @@ enum WINDOW_STAFF_WIDGET_IDX { }; rct_widget window_staff_overview_widgets[] = { - { WWT_FRAME, 0, 0, WW - 1, 0, WH - 1, 0x0FFFFFFFF, STR_NONE }, // Panel / Background - { WWT_CAPTION, 0, 1, WW - 2, 1, 14, 0x361, STR_WINDOW_TITLE_TIP }, // Title - { WWT_CLOSEBOX, 0, WW - 13, WW - 3, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // Close x button - { WWT_RESIZE, 1, 0, WW - 1, 43, WH - 1, 0x0FFFFFFFF, STR_NONE }, // Resize - { WWT_TAB, 1, 3, 33, 17, 43, 0x2000144E, STR_STAFF_OVERVIEW_TIP },// Tab 1 - { WWT_TAB, 1, 34, 64, 17, 43, 0x2000144E, STR_STAFF_OPTIONS_TIP}, // Tab 2 - { WWT_TAB, 1, 65, 95, 17, 43, 0x2000144E, STR_STAFF_STATS_TIP}, // Tab 3 - { WWT_TAB, 1, 96, 126, 17, 43, 0x2000144E, STR_NONE}, // Tab 4 - { WWT_VIEWPORT, 1, 3, WW - 26, 47, WH - 14,0x0FFFFFFFF, STR_NONE}, // Viewport - { WWT_12, 1, 3, WW - 26, WH - 13, WH - 3, 0x0FFFFFFFF, STR_NONE }, // Label at bottom of viewport - { WWT_FLATBTN, 1, WW - 25, WW - 2, 45, 68, SPR_PICKUP_BTN, STR_PICKUP_TIP}, // Pickup Button - { WWT_FLATBTN, 1, WW - 25, WW - 2, 69, 92, SPR_PATROL_BTN, STR_SET_PATROL_TIP}, // Patrol Button - { WWT_FLATBTN, 1, WW - 25, WW - 2, 93, 116, SPR_RENAME, STR_NAME_STAFF_TIP}, // Rename Button - { WWT_FLATBTN, 1, WW - 25, WW - 2, 117, 140, SPR_LOCATE, STR_LOCATE_SUBJECT_TIP},// Locate Button - { WWT_FLATBTN, 1, WW - 25, WW - 2, 141, 164, SPR_DEMOLISH, STR_FIRE_STAFF_TIP}, // Fire Button + { WWT_FRAME, 0, 0, WW - 1, 0, WH - 1, 0xFFFFFFFF, STR_NONE }, // Panel / Background + { WWT_CAPTION, 0, 1, WW - 2, 1, 14, STR_STRINGID, STR_WINDOW_TITLE_TIP }, // Title + { WWT_CLOSEBOX, 0, WW - 13, WW - 3, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // Close x button + { WWT_RESIZE, 1, 0, WW - 1, 43, WH - 1, 0xFFFFFFFF, STR_NONE }, // Resize + { WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_STAFF_OVERVIEW_TIP },// Tab 1 + { WWT_TAB, 1, 34, 64, 17, 43, 0x20000000 | SPR_TAB, STR_STAFF_OPTIONS_TIP}, // Tab 2 + { WWT_TAB, 1, 65, 95, 17, 43, 0x20000000 | SPR_TAB, STR_STAFF_STATS_TIP}, // Tab 3 + { WWT_TAB, 1, 96, 126, 17, 43, 0x20000000 | SPR_TAB, STR_NONE}, // Tab 4 + { WWT_VIEWPORT, 1, 3, WW - 26, 47, WH - 14,0xFFFFFFFF, STR_NONE}, // Viewport + { WWT_12, 1, 3, WW - 26, WH - 13, WH - 3, 0xFFFFFFFF, STR_NONE }, // Label at bottom of viewport + { WWT_FLATBTN, 1, WW - 25, WW - 2, 45, 68, SPR_PICKUP_BTN, STR_PICKUP_TIP}, // Pickup Button + { WWT_FLATBTN, 1, WW - 25, WW - 2, 69, 92, SPR_PATROL_BTN, STR_SET_PATROL_TIP}, // Patrol Button + { WWT_FLATBTN, 1, WW - 25, WW - 2, 93, 116, SPR_RENAME, STR_NAME_STAFF_TIP}, // Rename Button + { WWT_FLATBTN, 1, WW - 25, WW - 2, 117, 140, SPR_LOCATE, STR_LOCATE_SUBJECT_TIP},// Locate Button + { WWT_FLATBTN, 1, WW - 25, WW - 2, 141, 164, SPR_DEMOLISH, STR_FIRE_STAFF_TIP}, // Fire Button { WIDGETS_END }, }; //0x9AF910 rct_widget window_staff_options_widgets[] = { - { WWT_FRAME, 0, 0, WW - 1, 0, WH - 1, 0x0FFFFFFFF, STR_NONE }, // Panel / Background - { WWT_CAPTION, 0, 1, WW - 2, 1, 14, 0x361, STR_WINDOW_TITLE_TIP }, // Title - { WWT_CLOSEBOX, 0, WW - 13, WW - 3, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // Close x button - { WWT_RESIZE, 1, 0, WW - 1, 43, WH - 1, 0x0FFFFFFFF, STR_NONE }, // Resize - { WWT_TAB, 1, 3, 33, 17, 43, 0x2000144E, STR_STAFF_OVERVIEW_TIP },// Tab 1 - { WWT_TAB, 1, 34, 64, 17, 43, 0x2000144E, STR_STAFF_OPTIONS_TIP}, // Tab 2 - { WWT_TAB, 1, 65, 95, 17, 43, 0x2000144E, STR_STAFF_STATS_TIP}, // Tab 3 - { WWT_TAB, 1, 96, 126, 17, 43, 0x2000144E, STR_NONE}, // Tab 4 - { WWT_CHECKBOX, 1, 5, WW - 6, 50, 61, 0x0FFFFFFFF, STR_NONE}, // Checkbox 1 - { WWT_CHECKBOX, 1, 5, WW - 6, 67, 78, 0x0FFFFFFFF, STR_NONE }, // Checkbox 2 - { WWT_CHECKBOX, 1, 5, WW - 6, 84, 95, 0x0FFFFFFFF, STR_NONE}, // Checkbox 3 - { WWT_CHECKBOX, 1, 5, WW - 6, 101, 112, 0x0FFFFFFFF, STR_NONE}, // Checkbox 4 - { WWT_DROPDOWN, 1, 5, WW - 6, 50, 61, 0x0FFFFFFFF, STR_NONE}, // Costume Dropdown - { WWT_DROPDOWN_BUTTON, 1, WW - 17, WW - 7, 51, 60, 876, STR_SELECT_COSTUME_TIP},// Costume Dropdown Button + { WWT_FRAME, 0, 0, WW - 1, 0, WH - 1, 0xFFFFFFFF, STR_NONE }, // Panel / Background + { WWT_CAPTION, 0, 1, WW - 2, 1, 14, STR_STRINGID, STR_WINDOW_TITLE_TIP }, // Title + { WWT_CLOSEBOX, 0, WW - 13, WW - 3, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // Close x button + { WWT_RESIZE, 1, 0, WW - 1, 43, WH - 1, 0xFFFFFFFF, STR_NONE }, // Resize + { WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_STAFF_OVERVIEW_TIP },// Tab 1 + { WWT_TAB, 1, 34, 64, 17, 43, 0x20000000 | SPR_TAB, STR_STAFF_OPTIONS_TIP}, // Tab 2 + { WWT_TAB, 1, 65, 95, 17, 43, 0x20000000 | SPR_TAB, STR_STAFF_STATS_TIP}, // Tab 3 + { WWT_TAB, 1, 96, 126, 17, 43, 0x20000000 | SPR_TAB, STR_NONE}, // Tab 4 + { WWT_CHECKBOX, 1, 5, WW - 6, 50, 61, 0xFFFFFFFF, STR_NONE}, // Checkbox 1 + { WWT_CHECKBOX, 1, 5, WW - 6, 67, 78, 0xFFFFFFFF, STR_NONE }, // Checkbox 2 + { WWT_CHECKBOX, 1, 5, WW - 6, 84, 95, 0xFFFFFFFF, STR_NONE}, // Checkbox 3 + { WWT_CHECKBOX, 1, 5, WW - 6, 101, 112, 0xFFFFFFFF, STR_NONE}, // Checkbox 4 + { WWT_DROPDOWN, 1, 5, WW - 6, 50, 61, 0xFFFFFFFF, STR_NONE}, // Costume Dropdown + { WWT_DROPDOWN_BUTTON, 1, WW - 17, WW - 7, 51, 60, STR_DROPDOWN_GLYPH, STR_SELECT_COSTUME_TIP},// Costume Dropdown Button { WIDGETS_END }, }; //0x9AF9F4 rct_widget window_staff_stats_widgets[] = { - { WWT_FRAME, 0, 0, WW - 1, 0, WH - 1, 0x0FFFFFFFF, STR_NONE }, // Panel / Background - { WWT_CAPTION, 0, 1, WW - 2, 1, 14, 0x361, STR_WINDOW_TITLE_TIP }, // Title - { WWT_CLOSEBOX, 0, WW - 13, WW - 3, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // Close x button - { WWT_RESIZE, 1, 0, WW - 1, 43, WH - 1, 0x0FFFFFFFF, STR_NONE }, // Resize - { WWT_TAB, 1, 3, 33, 17, 43, 0x2000144E, STR_STAFF_OVERVIEW_TIP },// Tab 1 - { WWT_TAB, 1, 34, 64, 17, 43, 0x2000144E, STR_STAFF_OPTIONS_TIP}, // Tab 2 - { WWT_TAB, 1, 65, 95, 17, 43, 0x2000144E, STR_STAFF_STATS_TIP}, // Tab 3 - { WWT_TAB, 1, 96, 126, 17, 43, 0x2000144E, STR_NONE}, // Tab 4 + { WWT_FRAME, 0, 0, WW - 1, 0, WH - 1, 0xFFFFFFFF, STR_NONE }, // Panel / Background + { WWT_CAPTION, 0, 1, WW - 2, 1, 14, STR_STRINGID, STR_WINDOW_TITLE_TIP }, // Title + { WWT_CLOSEBOX, 0, WW - 13, WW - 3, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // Close x button + { WWT_RESIZE, 1, 0, WW - 1, 43, WH - 1, 0xFFFFFFFF, STR_NONE }, // Resize + { WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_STAFF_OVERVIEW_TIP },// Tab 1 + { WWT_TAB, 1, 34, 64, 17, 43, 0x20000000 | SPR_TAB, STR_STAFF_OPTIONS_TIP}, // Tab 2 + { WWT_TAB, 1, 65, 95, 17, 43, 0x20000000 | SPR_TAB, STR_STAFF_STATS_TIP}, // Tab 3 + { WWT_TAB, 1, 96, 126, 17, 43, 0x20000000 | SPR_TAB, STR_NONE}, // Tab 4 { WIDGETS_END }, }; @@ -289,6 +289,20 @@ uint32 window_staff_page_enabled_widgets[] = { (1 << WIDX_TAB_3) }; +static const uint32 staffCostumeNames[] = { + STR_STAFF_OPTION_COSTUME_PANDA, + STR_STAFF_OPTION_COSTUME_TIGER, + STR_STAFF_OPTION_COSTUME_ELEPHANT, + STR_STAFF_OPTION_COSTUME_ROMAN, + STR_STAFF_OPTION_COSTUME_GORILLA, + STR_STAFF_OPTION_COSTUME_SNOWMAN, + STR_STAFF_OPTION_COSTUME_KNIGHT, + STR_STAFF_OPTION_COSTUME_ASTRONAUT, + STR_STAFF_OPTION_COSTUME_BANDIT, + STR_STAFF_OPTION_COSTUME_SHERIFF, + STR_STAFF_OPTION_COSTUME_PIRATE, +}; + /** * * rct2: 0x006BEE98 @@ -457,7 +471,7 @@ void window_staff_overview_mouseup(rct_window *w, int widgetIndex) window_staff_fire_prompt_open(peep); break; case WIDX_RENAME: - window_text_input_open(w, widgetIndex, 2977, 2978, peep->name_string_idx, peep->id, 32); + window_text_input_open(w, widgetIndex, STR_STAFF_TITLE_STAFF_MEMBER_NAME, STR_STAFF_PROMPT_ENTER_NAME, peep->name_string_idx, peep->id, 32); break; } } @@ -774,17 +788,17 @@ void window_staff_options_invalidate(rct_window *w) window_staff_options_widgets[WIDX_CHECKBOX_4].type = WWT_EMPTY; window_staff_options_widgets[WIDX_COSTUME_BOX].type = WWT_DROPDOWN; window_staff_options_widgets[WIDX_COSTUME_BTN].type = WWT_DROPDOWN_BUTTON; - window_staff_options_widgets[WIDX_COSTUME_BOX].image = 1779 + peep->sprite_type - 4; + window_staff_options_widgets[WIDX_COSTUME_BOX].text = staffCostumeNames[peep->sprite_type - 4]; break; case STAFF_TYPE_HANDYMAN: window_staff_options_widgets[WIDX_CHECKBOX_1].type = WWT_CHECKBOX; - window_staff_options_widgets[WIDX_CHECKBOX_1].image = 1712; + window_staff_options_widgets[WIDX_CHECKBOX_1].text = STR_STAFF_OPTION_SWEEP_FOOTPATHS; window_staff_options_widgets[WIDX_CHECKBOX_2].type = WWT_CHECKBOX; - window_staff_options_widgets[WIDX_CHECKBOX_2].image = 1713; + window_staff_options_widgets[WIDX_CHECKBOX_2].text = STR_STAFF_OPTION_WATER_GARDENS; window_staff_options_widgets[WIDX_CHECKBOX_3].type = WWT_CHECKBOX; - window_staff_options_widgets[WIDX_CHECKBOX_3].image = 1714; + window_staff_options_widgets[WIDX_CHECKBOX_3].text = STR_STAFF_OPTION_EMPTY_LITTER; window_staff_options_widgets[WIDX_CHECKBOX_4].type = WWT_CHECKBOX; - window_staff_options_widgets[WIDX_CHECKBOX_4].image = 1715; + window_staff_options_widgets[WIDX_CHECKBOX_4].text = STR_STAFF_OPTION_MOW_GRASS; window_staff_options_widgets[WIDX_COSTUME_BOX].type = WWT_EMPTY; window_staff_options_widgets[WIDX_COSTUME_BTN].type = WWT_EMPTY; w->pressed_widgets &= ~((1 << WIDX_CHECKBOX_1) | (1 << WIDX_CHECKBOX_2) | (1 << WIDX_CHECKBOX_3) | (1 << WIDX_CHECKBOX_4)); @@ -792,9 +806,9 @@ void window_staff_options_invalidate(rct_window *w) break; case STAFF_TYPE_MECHANIC: window_staff_options_widgets[WIDX_CHECKBOX_1].type = WWT_CHECKBOX; - window_staff_options_widgets[WIDX_CHECKBOX_1].image = 1876; + window_staff_options_widgets[WIDX_CHECKBOX_1].text = STR_INSPECT_RIDES; window_staff_options_widgets[WIDX_CHECKBOX_2].type = WWT_CHECKBOX; - window_staff_options_widgets[WIDX_CHECKBOX_2].image = 1877; + window_staff_options_widgets[WIDX_CHECKBOX_2].text = STR_FIX_RIDES; window_staff_options_widgets[WIDX_CHECKBOX_3].type = WWT_EMPTY; window_staff_options_widgets[WIDX_CHECKBOX_4].type = WWT_EMPTY; window_staff_options_widgets[WIDX_COSTUME_BOX].type = WWT_EMPTY; @@ -1046,33 +1060,27 @@ void window_staff_stats_paint(rct_window *w, rct_drawpixelinfo *dpi) if (!(gParkFlags & PARK_FLAGS_NO_MONEY)) { set_format_arg(0, uint32, RCT2_ADDRESS(0x00992A00, uint16)[peep->staff_type]); - gfx_draw_string_left(dpi, 2349, gCommonFormatArgs, 0, x, y); + gfx_draw_string_left(dpi, STR_STAFF_STAT_WAGES, gCommonFormatArgs, 0, x, y); y += 10; } - gfx_draw_string_left(dpi, 2350, (void*)&peep->time_in_park, 0, x, y); + gfx_draw_string_left(dpi, STR_STAFF_STAT_EMPLOYED_FOR, (void*)&peep->time_in_park, 0, x, y); y += 10; switch (peep->staff_type){ case STAFF_TYPE_HANDYMAN: - // Lawns mown - gfx_draw_string_left(dpi, 2351, (void*)&peep->staff_lawns_mown, 0, x, y); + gfx_draw_string_left(dpi, STR_STAFF_STAT_LAWNS_MOWN, (void*)&peep->staff_lawns_mown, 0, x, y); y += 10; - // Gardens Watered - gfx_draw_string_left(dpi, 2352, (void*)&peep->staff_gardens_watered, 0, x, y); + gfx_draw_string_left(dpi, STR_STAFF_STAT_GARDENS_WATERED, (void*)&peep->staff_gardens_watered, 0, x, y); y += 10; - // Litter Swept - gfx_draw_string_left(dpi, 2353, (void*)&peep->staff_litter_swept, 0, x, y); + gfx_draw_string_left(dpi, STR_STAFF_STAT_LITTER_SWEPT, (void*)&peep->staff_litter_swept, 0, x, y); y += 10; - // Bins Emptied - gfx_draw_string_left(dpi, 2354, (void*)&peep->staff_bins_emptied, 0, x, y); + gfx_draw_string_left(dpi, STR_STAFF_STAT_BINS_EMPTIED, (void*)&peep->staff_bins_emptied, 0, x, y); break; case STAFF_TYPE_MECHANIC: - // Rides Inspected - gfx_draw_string_left(dpi, 2356, (void*)&peep->staff_rides_inspected, 0, x, y); + gfx_draw_string_left(dpi, STR_STAFF_STAT_RIDES_INSPECTED, (void*)&peep->staff_rides_inspected, 0, x, y); y += 10; - // Rides Fixed - gfx_draw_string_left(dpi, 2355, (void*)&peep->staff_rides_fixed, 0, x, y); + gfx_draw_string_left(dpi, STR_STAFF_STAT_RIDES_FIXED, (void*)&peep->staff_rides_fixed, 0, x, y); break; } } @@ -1152,14 +1160,14 @@ void window_staff_overview_tool_down(rct_window* w, int widgetIndex, int x, int int dest_z = mapElement->base_height * 8 + 16; if (!map_is_location_owned(tile_x, tile_y, dest_z)){ - window_error_open(0x785, -1); + window_error_open(STR_ERR_CANT_PLACE_PERSON_HERE, STR_NONE); return; } if (!map_can_construct_at(tile_x, tile_y, dest_z / 8, (dest_z / 8) + 1, 15)){ - if (gGameCommandErrorText != 0x3A5){ - if (gGameCommandErrorText != 0x49B){ - window_error_open(0x785, -1); + if (gGameCommandErrorText != STR_RAISE_OR_LOWER_LAND_FIRST){ + if (gGameCommandErrorText != STR_FOOTPATH_IN_THE_WAY){ + window_error_open(STR_ERR_CANT_PLACE_PERSON_HERE, STR_NONE); return; } } @@ -1232,7 +1240,7 @@ void window_staff_overview_text_input(rct_window *w, int widgetIndex, char *text if (text == NULL) return; - gGameCommandErrorTitle = STR_CANT_NAME_STAFF_MEMBER; + gGameCommandErrorTitle = STR_STAFF_ERROR_CANT_NAME_STAFF_MEMBER; game_do_command(1, GAME_COMMAND_FLAG_APPLY, w->number, *((int*)(text + 0)), GAME_COMMAND_SET_STAFF_NAME, *((int*)(text + 8)), *((int*)(text + 4))); game_do_command(2, GAME_COMMAND_FLAG_APPLY, w->number, *((int*)(text + 12)), GAME_COMMAND_SET_STAFF_NAME, *((int*)(text + 20)), *((int*)(text + 16))); game_do_command(0, GAME_COMMAND_FLAG_APPLY, w->number, *((int*)(text + 24)), GAME_COMMAND_SET_STAFF_NAME, *((int*)(text + 32)), *((int*)(text + 28))); @@ -1356,7 +1364,7 @@ void window_staff_options_mousedown(int widgetIndex, rct_window* w, rct_widget* if (eax == peep->sprite_type){ item_checked = 1 << i; } - gDropdownItemsArgs[i] = eax + 1775; + gDropdownItemsArgs[i] = staffCostumeNames[eax - 4]; gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL; } diff --git a/src/windows/staff_list.c b/src/windows/staff_list.c index db485737ce..943bb8e179 100644 --- a/src/windows/staff_list.c +++ b/src/windows/staff_list.c @@ -111,20 +111,20 @@ enum WINDOW_STAFF_LIST_WIDGET_IDX { #define MAX_WH 450 static rct_widget window_staff_list_widgets[] = { - { WWT_FRAME, 0, 0, 319, 0, 269, 0x0FFFFFFFF, STR_NONE }, // panel / background - { WWT_CAPTION, 0, 1, 318, 1, 14, STR_STAFF, STR_WINDOW_TITLE_TIP }, // title bar - { WWT_CLOSEBOX, 0, 307, 317, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // close button - { WWT_RESIZE, 1, 0, 319, 43, 269, 0x0FFFFFFFF, STR_NONE }, // tab content panel - { WWT_TAB, 1, 3, 33, 17, 43, 0x02000144E, STR_STAFF_HANDYMEN_TAB_TIP }, // handymen tab - { WWT_TAB, 1, 34, 64, 17, 43, 0x02000144E, STR_STAFF_MECHANICS_TAB_TIP }, // mechanics tab - { WWT_TAB, 1, 65, 95, 17, 43, 0x02000144E, STR_STAFF_SECURITY_TAB_TIP }, // security guards tab - { WWT_TAB, 1, 96, 126, 17, 43, 0x02000144E, STR_STAFF_ENTERTAINERS_TAB_TIP }, // entertainers tab - { WWT_SCROLL, 1, 3, 316, 72, 266, 3, STR_NONE }, // staff list - { WWT_COLOURBTN, 1, 130, 141, 58, 69, STR_NONE, STR_UNIFORM_COLOUR_TIP }, // uniform colour picker - { WWT_DROPDOWN_BUTTON, 0, WW - 155, WW - 11, 17, 29, STR_NONE, STR_HIRE_STAFF_TIP }, // hire button - { WWT_FLATBTN, 1, WW - 77, WW - 54, 46, 69, SPR_DEMOLISH, STR_QUICK_FIRE_STAFF }, // quick fire staff - { WWT_FLATBTN, 1, WW - 53, WW - 30, 46, 69, SPR_PATROL_BTN, STR_SHOW_PATROL_AREA_TIP }, // show staff patrol area tool - { WWT_FLATBTN, 1, WW - 29, WW - 6, 46, 69, SPR_MAP, STR_SHOW_STAFF_ON_MAP_TIP }, // show staff on map button + { WWT_FRAME, 0, 0, 319, 0, 269, 0xFFFFFFFF, STR_NONE }, // panel / background + { WWT_CAPTION, 0, 1, 318, 1, 14, STR_STAFF, STR_WINDOW_TITLE_TIP }, // title bar + { WWT_CLOSEBOX, 0, 307, 317, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // close button + { WWT_RESIZE, 1, 0, 319, 43, 269, 0xFFFFFFFF, STR_NONE }, // tab content panel + { WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_STAFF_HANDYMEN_TAB_TIP }, // handymen tab + { WWT_TAB, 1, 34, 64, 17, 43, 0x20000000 | SPR_TAB, STR_STAFF_MECHANICS_TAB_TIP }, // mechanics tab + { WWT_TAB, 1, 65, 95, 17, 43, 0x20000000 | SPR_TAB, STR_STAFF_SECURITY_TAB_TIP }, // security guards tab + { WWT_TAB, 1, 96, 126, 17, 43, 0x20000000 | SPR_TAB, STR_STAFF_ENTERTAINERS_TAB_TIP }, // entertainers tab + { WWT_SCROLL, 1, 3, 316, 72, 266, SCROLL_BOTH, STR_NONE }, // staff list + { WWT_COLOURBTN, 1, 130, 141, 58, 69, STR_NONE, STR_UNIFORM_COLOUR_TIP }, // uniform colour picker + { WWT_DROPDOWN_BUTTON, 0, WW - 155, WW - 11, 17, 29, STR_NONE, STR_HIRE_STAFF_TIP }, // hire button + { WWT_FLATBTN, 1, WW - 77, WW - 54, 46, 69, SPR_DEMOLISH, STR_QUICK_FIRE_STAFF }, // quick fire staff + { WWT_FLATBTN, 1, WW - 53, WW - 30, 46, 69, SPR_PATROL_BTN, STR_SHOW_PATROL_AREA_TIP }, // show staff patrol area tool + { WWT_FLATBTN, 1, WW - 29, WW - 6, 46, 69, SPR_MAP, STR_SHOW_STAFF_ON_MAP_TIP }, // show staff on map button { WIDGETS_END }, }; @@ -132,6 +132,20 @@ static uint16 _window_staff_list_selected_type_count = 0; static int _windowStaffListHighlightedIndex; static int _windowStaffListSelectedTab; +typedef struct staff_naming_convention +{ + rct_string_id plural; + rct_string_id singular; + rct_string_id action_hire; +} staff_naming_convention; + +static const staff_naming_convention StaffNamingConvention[] = { + { STR_HANDYMAN_PLURAL, STR_HANDYMAN_SINGULAR, STR_HIRE_HANDYMAN }, + { STR_MECHANIC_PLURAL, STR_MECHANIC_SINGULAR, STR_HIRE_MECHANIC }, + { STR_SECURITY_GUARD_PLURAL, STR_SECURITY_GUARD_SINGULAR, STR_HIRE_SECURITY_GUARD }, + { STR_ENTERTAINER_PLURAL, STR_ENTERTAINER_SINGULAR, STR_HIRE_ENTERTAINER }, +}; + /* * rct2: 0x006BD39C **/ @@ -367,7 +381,7 @@ static void window_staff_list_tooldown(rct_window *w, int widgetIndex, int x, in rct_window *staffWindow = window_staff_open(closestPeep); window_event_dropdown_call(staffWindow, 11, 0); } else { - set_format_arg(0, rct_string_id, STR_HANDYMAN_PLURAL + selectedPeepType); + set_format_arg(0, rct_string_id, StaffNamingConvention[selectedPeepType].plural); window_error_open(STR_NO_THING_IN_PARK_YET, STR_NONE); } } @@ -484,14 +498,13 @@ void window_staff_list_invalidate(rct_window *w) uint8 widgetIndex = tabIndex + 4; w->pressed_widgets = pressed_widgets | (1ULL << widgetIndex); - window_staff_list_widgets[WIDX_STAFF_LIST_HIRE_BUTTON].image = STR_HIRE_HANDYMAN + tabIndex; + window_staff_list_widgets[WIDX_STAFF_LIST_HIRE_BUTTON].text = StaffNamingConvention[tabIndex].action_hire; window_staff_list_widgets[WIDX_STAFF_LIST_UNIFORM_COLOUR_PICKER].type = WWT_EMPTY; if (tabIndex < 3) { window_staff_list_widgets[WIDX_STAFF_LIST_UNIFORM_COLOUR_PICKER].type = WWT_COLOURBTN; window_staff_list_widgets[WIDX_STAFF_LIST_UNIFORM_COLOUR_PICKER].image = - ((uint32)gStaffColours[tabIndex] << 19) + - 0x600013C3; + ((uint32)gStaffColours[tabIndex] << 19) | 0x60000000 | SPR_PALETTE_BTN; } if (_quick_fire_mode) w->pressed_widgets |= (1ULL << WIDX_STAFF_LIST_QUICK_FIRE); @@ -591,10 +604,10 @@ void window_staff_list_paint(rct_window *w, rct_drawpixelinfo *dpi) gfx_draw_string_left(dpi, STR_UNIFORM_COLOUR, w, 0, w->x + 6, window_staff_list_widgets[WIDX_STAFF_LIST_UNIFORM_COLOUR_PICKER].top + w->y + 1); } - int staffTypeStringId = STR_HANDYMAN_PLURAL + selectedTab; + int staffTypeStringId = StaffNamingConvention[selectedTab].plural; // If the number of staff for a given type is 1, we use the singular forms of the names if (_window_staff_list_selected_type_count == 1) { - staffTypeStringId += 4; + staffTypeStringId = StaffNamingConvention[selectedTab].singular; } set_format_arg(0, uint16, _window_staff_list_selected_type_count); @@ -626,11 +639,11 @@ void window_staff_list_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int sc } if (y + 11 >= dpi->y) { - int format = (_quick_fire_mode ? 5298 : STR_BLACK_STRING); + int format = (_quick_fire_mode ? STR_RED_STRINGID : STR_BLACK_STRING); if (i == _windowStaffListHighlightedIndex) { gfx_fill_rect(dpi, 0, y, 800, y + 9, 0x2000031); - format = (_quick_fire_mode ? 5299 : STR_WINDOW_COLOUR_2_STRING); + format = (_quick_fire_mode ? STR_LIGHTPINK_STRINGID : STR_WINDOW_COLOUR_2_STRINGID); } set_format_arg(0, uint16, peep->name_string_idx); diff --git a/src/windows/text_input.c b/src/windows/text_input.c index 1b74e34bd6..2ba90d2882 100644 --- a/src/windows/text_input.c +++ b/src/windows/text_input.c @@ -89,7 +89,7 @@ static rct_window_event_list window_text_input_events = { NULL }; -int input_text_description; +rct_string_id input_text_description; char text_input[512] = { 0 }; rct_windowclass calling_class = 0; rct_windownumber calling_number = 0; @@ -143,7 +143,7 @@ void window_text_input_open(rct_window* call_w, int call_widget, rct_string_id t w->widgets = window_text_input_widgets; w->enabled_widgets = (1 << WIDX_CLOSE) | (1<widgets = window_text_input_widgets; w->enabled_widgets = (1 << WIDX_CLOSE) | (1 << WIDX_CANCEL) | (1 << WIDX_OKAY); - window_text_input_widgets[WIDX_TITLE].image = title; + window_text_input_widgets[WIDX_TITLE].text = title; // Save calling window details so that the information // can be passed back to the correct window & widget diff --git a/src/windows/themes.c b/src/windows/themes.c index f607a4f294..0c20d73697 100644 --- a/src/windows/themes.c +++ b/src/windows/themes.c @@ -118,29 +118,29 @@ enum WINDOW_STAFF_LIST_WIDGET_IDX { }; static rct_widget window_themes_widgets[] = { - { WWT_FRAME, 0, 0, 319, 0, 106, 0x0FFFFFFFF, STR_NONE }, // panel / background - { WWT_CAPTION, 0, 1, 318, 1, 14, 5244, STR_WINDOW_TITLE_TIP }, // title bar - { WWT_CLOSEBOX, 0, 307, 317, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // close button - { WWT_RESIZE, 1, 0, 319, 43, 106, 0x0FFFFFFFF, STR_NONE }, // tab content panel - { WWT_TAB, 1, 3, 33, 17, 43, 0x02000144E, 5235 }, // settings tab - { WWT_TAB, 1, 34, 64, 17, 43, 0x02000144E, 5228 }, // main ui tab - { WWT_TAB, 1, 65, 95, 17, 43, 0x02000144E, 5229 }, // park tab - { WWT_TAB, 1, 96, 126, 17, 43, 0x02000144E, 5230 }, // tools tab - { WWT_TAB, 1, 127, 157, 17, 43, 0x02000144E, 5231 }, // rides and peeps tab - { WWT_TAB, 1, 158, 188, 17, 43, 0x02000144E, 5232 }, // editors tab - { WWT_TAB, 1, 189, 219, 17, 43, 0x02000144E, 5233 }, // misc tab - { WWT_TAB, 1, 220, 250, 17, 43, 0x02000144E, 5234 }, // prompts tab - { WWT_TAB, 1, 251, 281, 17, 43, 0x02000144E, 5281 }, // features tab - { WWT_DROPDOWN, 1, 125, 299, 60, 71, STR_NONE, STR_NONE }, // Preset colour schemes - { WWT_DROPDOWN_BUTTON, 1, 288, 298, 61, 70, 876, STR_NONE }, - { WWT_DROPDOWN_BUTTON, 1, 10, 100, 82, 93, 5239, 5257 }, // Duplicate button - { WWT_DROPDOWN_BUTTON, 1, 110, 200, 82, 93, 3349, 5258 }, // Delete button - { WWT_DROPDOWN_BUTTON, 1, 210, 300, 82, 93, 3348, 5259 }, // Rename button - { WWT_COLOURBTN, 1, 0, 0, 0, 0, STR_NONE, STR_NONE }, // colour button mask - { WWT_SCROLL, 1, 3, 316, 60, 103, 2, STR_NONE }, // staff list - { WWT_CHECKBOX, 1, 10, 299, 54, 65, 5282, STR_NONE }, // rct1 ride lights - { WWT_CHECKBOX, 1, 10, 299, 69, 80, 5283, STR_NONE }, // rct1 park lights - { WWT_CHECKBOX, 1, 10, 299, 84, 95, 5284, STR_NONE }, // rct1 scenario font + { WWT_FRAME, 0, 0, 319, 0, 106, 0xFFFFFFFF, STR_NONE }, // panel / background + { WWT_CAPTION, 0, 1, 318, 1, 14, STR_THEMES_TITLE, STR_WINDOW_TITLE_TIP }, // title bar + { WWT_CLOSEBOX, 0, 307, 317, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // close button + { WWT_RESIZE, 1, 0, 319, 43, 106, 0xFFFFFFFF, STR_NONE }, // tab content panel + { WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_THEMES_TAB_SETTINGS_TIP }, // settings tab + { WWT_TAB, 1, 34, 64, 17, 43, 0x20000000 | SPR_TAB, STR_THEMES_TAB_MAIN_TIP }, // main ui tab + { WWT_TAB, 1, 65, 95, 17, 43, 0x20000000 | SPR_TAB, STR_THEMES_TAB_PARK_TIP }, // park tab + { WWT_TAB, 1, 96, 126, 17, 43, 0x20000000 | SPR_TAB, STR_THEMES_TAB_TOOLS_TIP }, // tools tab + { WWT_TAB, 1, 127, 157, 17, 43, 0x20000000 | SPR_TAB, STR_THEMES_TAB_RIDES_AND_GUESTS_TIP }, // rides and peeps tab + { WWT_TAB, 1, 158, 188, 17, 43, 0x20000000 | SPR_TAB, STR_THEMES_TAB_EDITORS_TIP }, // editors tab + { WWT_TAB, 1, 189, 219, 17, 43, 0x20000000 | SPR_TAB, STR_THEMES_TAB_MISC_TIP }, // misc tab + { WWT_TAB, 1, 220, 250, 17, 43, 0x20000000 | SPR_TAB, STR_THEMES_TAB_PROMPTS_TIP }, // prompts tab + { WWT_TAB, 1, 251, 281, 17, 43, 0x20000000 | SPR_TAB, STR_THEMES_TAB_FEATURES_TIP }, // features tab + { WWT_DROPDOWN, 1, 125, 299, 60, 71, STR_NONE, STR_NONE }, // Preset colour schemes + { WWT_DROPDOWN_BUTTON, 1, 288, 298, 61, 70, STR_DROPDOWN_GLYPH, STR_NONE }, + { WWT_DROPDOWN_BUTTON, 1, 10, 100, 82, 93, STR_TITLE_EDITOR_ACTION_DUPLICATE, STR_THEMES_ACTION_DUPLICATE_TIP }, // Duplicate button + { WWT_DROPDOWN_BUTTON, 1, 110, 200, 82, 93, STR_TRACK_MANAGE_DELETE, STR_THEMES_ACTION_DELETE_TIP }, // Delete button + { WWT_DROPDOWN_BUTTON, 1, 210, 300, 82, 93, STR_TRACK_MANAGE_RENAME, STR_THEMES_ACTION_RENAME_TIP }, // Rename button + { WWT_COLOURBTN, 1, 0, 0, 0, 0, STR_NONE, STR_NONE }, // colour button mask + { WWT_SCROLL, 1, 3, 316, 60, 103, SCROLL_VERTICAL, STR_NONE }, // staff list + { WWT_CHECKBOX, 1, 10, 299, 54, 65, STR_THEMES_OPTION_RCT1_RIDE_CONTROLS, STR_NONE }, // rct1 ride lights + { WWT_CHECKBOX, 1, 10, 299, 69, 80, STR_THEMES_OPTION_RCT1_PARK_CONTROLS, STR_NONE }, // rct1 park lights + { WWT_CHECKBOX, 1, 10, 299, 84, 95, STR_THEMES_OPTION_RCT1_SCENARIO_SELECTION_FONT, STR_NONE }, // rct1 scenario font { WIDGETS_END }, }; @@ -167,13 +167,13 @@ static int window_themes_tab_animation_divisor[] = { 2 }; static int window_themes_tab_sprites[] = { - 5221, + SPR_TAB_PAINT_0, SPR_TAB_KIOSKS_AND_FACILITIES_0, - 5200, + SPR_TAB_PARK_ENTRANCE, SPR_G2_TAB_LAND, SPR_TAB_RIDE_0, - 5205, - 5201, + SPR_TAB_WRENCH_0, + SPR_TAB_GEARS_0, SPR_TAB_STAFF_OPTIONS_0, SPR_TAB_FINANCES_MARKETING_0 }; @@ -368,22 +368,22 @@ static void window_themes_mouseup(rct_window *w, int widgetIndex) case WIDX_THEMES_DUPLICATE_BUTTON:; activeAvailableThemeIndex = theme_manager_get_active_available_theme_index(); activeThemeName = theme_manager_get_available_theme_name(activeAvailableThemeIndex); - window_text_input_open(w, widgetIndex, 5239, 5240, 1170, (uint32)activeThemeName, 64); + window_text_input_open(w, widgetIndex, STR_TITLE_EDITOR_ACTION_DUPLICATE, STR_THEMES_PROMPT_ENTER_THEME_NAME, STR_STRING, (uint32)activeThemeName, 64); break; case WIDX_THEMES_DELETE_BUTTON: if (theme_get_flags() & UITHEME_FLAG_PREDEFINED) { - window_error_open(5241, STR_NONE); + window_error_open(STR_THEMES_ERR_CANT_CHANGE_THIS_THEME, STR_NONE); } else { theme_delete(); } break; case WIDX_THEMES_RENAME_BUTTON: if (theme_get_flags() & UITHEME_FLAG_PREDEFINED) { - window_error_open(5241, STR_NONE); + window_error_open(STR_THEMES_ERR_CANT_CHANGE_THIS_THEME, STR_NONE); } else { activeAvailableThemeIndex = theme_manager_get_active_available_theme_index(); activeThemeName = theme_manager_get_available_theme_name(activeAvailableThemeIndex); - window_text_input_open(w, widgetIndex, 3348, 5240, 1170, (uint32)activeThemeName, 64); + window_text_input_open(w, widgetIndex, STR_TRACK_MANAGE_RENAME, STR_THEMES_PROMPT_ENTER_THEME_NAME, STR_STRING, (uint32)activeThemeName, 64); } break; } @@ -492,7 +492,7 @@ static void window_themes_mousedown(int widgetIndex, rct_window* w, rct_widget* widget--; for (int i = 0; i < num_items; i++) { - gDropdownItemsFormat[i] = 2777; + gDropdownItemsFormat[i] = STR_OPTIONS_DROPDOWN_ITEM; gDropdownItemsArgs[i] = (uint32)theme_manager_get_available_theme_name(i); } @@ -510,7 +510,7 @@ static void window_themes_mousedown(int widgetIndex, rct_window* w, rct_widget* break; case WIDX_THEMES_RCT1_RIDE_LIGHTS: if (theme_get_flags() & UITHEME_FLAG_PREDEFINED) { - window_error_open(5241, STR_NONE); + window_error_open(STR_THEMES_ERR_CANT_CHANGE_THIS_THEME, STR_NONE); } else { theme_set_flags(theme_get_flags() ^ UITHEME_FLAG_USE_LIGHTS_RIDE); theme_save(); @@ -519,7 +519,7 @@ static void window_themes_mousedown(int widgetIndex, rct_window* w, rct_widget* break; case WIDX_THEMES_RCT1_PARK_LIGHTS: if (theme_get_flags() & UITHEME_FLAG_PREDEFINED) { - window_error_open(5241, STR_NONE); + window_error_open(STR_THEMES_ERR_CANT_CHANGE_THIS_THEME, STR_NONE); } else { theme_set_flags(theme_get_flags() ^ UITHEME_FLAG_USE_LIGHTS_PARK); theme_save(); @@ -528,7 +528,7 @@ static void window_themes_mousedown(int widgetIndex, rct_window* w, rct_widget* break; case WIDX_THEMES_RCT1_SCENARIO_FONT: if (theme_get_flags() & UITHEME_FLAG_PREDEFINED) { - window_error_open(5241, STR_NONE); + window_error_open(STR_THEMES_ERR_CANT_CHANGE_THIS_THEME, STR_NONE); } else { theme_set_flags(theme_get_flags() ^ UITHEME_FLAG_USE_ALTERNATIVE_SCENARIO_SELECT_FONT); theme_save(); @@ -604,7 +604,7 @@ void window_themes_scrollmousedown(rct_window *w, int scrollIndex, int x, int y) if (_colour_index_2 < numColours) { if (x >= _button_offset_x && x < _button_offset_x + 12 * 6 && y2 >= _button_offset_y && y2 < _button_offset_y + 11) { if (theme_get_flags() & UITHEME_FLAG_PREDEFINED) { - window_error_open(5241, 5256); + window_error_open(STR_THEMES_ERR_CANT_CHANGE_THIS_THEME, STR_THEMES_DESC_CANT_CHANGE_THIS_THEME); } else { window_themes_widgets[WIDX_THEMES_COLOURBTN_MASK].type = WWT_COLOURBTN; window_themes_widgets[WIDX_THEMES_COLOURBTN_MASK].left = _button_offset_x + _colour_index_2 * 12 + window_themes_widgets[WIDX_THEMES_LIST].left; @@ -619,7 +619,7 @@ void window_themes_scrollmousedown(rct_window *w, int scrollIndex, int x, int y) } else if (x >= _button_offset_x && x < _button_offset_x + 12 * 6 - 1 && y2 >= _check_offset_y && y2 < _check_offset_y + 11) { if (theme_get_flags() & UITHEME_FLAG_PREDEFINED) { - window_error_open(5241, 5256); + window_error_open(STR_THEMES_ERR_CANT_CHANGE_THIS_THEME, STR_THEMES_DESC_CANT_CHANGE_THIS_THEME); } else { uint8 colour = theme_get_colour(wc, _colour_index_2); if (colour & COLOUR_FLAG_TRANSLUCENT) { @@ -656,7 +656,7 @@ static void window_themes_textinput(rct_window *w, int widgetIndex, char *text) const utf8 * themeName = theme_manager_get_available_theme_name(i); if (strcmp(themeName, text) == 0) { if (widgetIndex != WIDX_THEMES_RENAME_BUTTON) { - window_error_open(5242, STR_NONE); + window_error_open(STR_THEMES_ERR_NAME_ALREADY_EXISTS, STR_NONE); } nameTaken = true; break; @@ -671,7 +671,7 @@ static void window_themes_textinput(rct_window *w, int widgetIndex, char *text) window_invalidate(w); } } else { - window_error_open(5243, STR_NONE); + window_error_open(STR_ERROR_INVALID_CHARACTERS, STR_NONE); } break; } @@ -767,10 +767,10 @@ void window_themes_paint(rct_window *w, rct_drawpixelinfo *dpi) int activeAvailableThemeIndex = theme_manager_get_active_available_theme_index(); const utf8 * activeThemeName = theme_manager_get_available_theme_name(activeAvailableThemeIndex); set_format_arg(0, uint32, (uint32)activeThemeName); - gfx_draw_string_left(dpi, 5238, NULL, w->colours[1], w->x + 10, w->y + window_themes_widgets[WIDX_THEMES_PRESETS].top + 1); + gfx_draw_string_left(dpi, STR_THEMES_LABEL_CURRENT_THEME, NULL, w->colours[1], w->x + 10, w->y + window_themes_widgets[WIDX_THEMES_PRESETS].top + 1); gfx_draw_string_left_clipped( dpi, - 1170, + STR_STRING, gCommonFormatArgs, w->colours[1], w->x + window_themes_widgets[WIDX_THEMES_PRESETS].left + 1, @@ -782,8 +782,8 @@ void window_themes_paint(rct_window *w, rct_drawpixelinfo *dpi) } else { - gfx_draw_string_left(dpi, 5236, w, w->colours[1], w->x + 6, 58 - 12 + w->y + 1); - gfx_draw_string_left(dpi, 5237, w, w->colours[1], w->x + 220, 58 - 12 + w->y + 1); + gfx_draw_string_left(dpi, STR_THEMES_HEADER_WINDOW, w, w->colours[1], w->x + 6, 58 - 12 + w->y + 1); + gfx_draw_string_left(dpi, STR_THEMES_HEADER_PALETTE, w, w->colours[1], w->x + 220, 58 - 12 + w->y + 1); } } @@ -830,9 +830,9 @@ void window_themes_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scroll gfx_draw_string_left(dpi, theme_desc_get_name(wc), NULL, w->colours[1], 2, y + 4); uint8 colour = theme_get_colour(wc, j); - uint32 image = ((colour & ~COLOUR_FLAG_TRANSLUCENT) << 19) + 0x600013C3; + uint32 image = ((colour & ~COLOUR_FLAG_TRANSLUCENT) << 19) | 0x60000000 | SPR_PALETTE_BTN; if (i == _colour_index_1 && j == _colour_index_2) { - image = ((colour & ~COLOUR_FLAG_TRANSLUCENT) << 19) + 0x600013C4; + image = ((colour & ~COLOUR_FLAG_TRANSLUCENT) << 19) | 0x60000000 | SPR_PALETTE_BTN_PRESSED; } gfx_draw_sprite(dpi, image, _button_offset_x + 12 * j, y + _button_offset_y, 0); diff --git a/src/windows/tile_inspector.c b/src/windows/tile_inspector.c index 8f1ee12a74..3f05cd8228 100644 --- a/src/windows/tile_inspector.c +++ b/src/windows/tile_inspector.c @@ -26,6 +26,41 @@ #include "../world/footpath.h" #include "../sprites.h" +static const rct_string_id TerrainTypes[] = { + STR_TILE_INSPECTOR_TERRAIN_GRASS, + STR_TILE_INSPECTOR_TERRAIN_SAND, + STR_TILE_INSPECTOR_TERRAIN_DIRT, + STR_TILE_INSPECTOR_TERRAIN_ROCK, + STR_TILE_INSPECTOR_TERRAIN_MARTIAN, + STR_TILE_INSPECTOR_TERRAIN_CHECKERBOARD, + STR_TILE_INSPECTOR_TERRAIN_GRASS_CLUMPS, + STR_TILE_INSPECTOR_TERRAIN_ICE, + STR_TILE_INSPECTOR_TERRAIN_GRID_RED, + STR_TILE_INSPECTOR_TERRAIN_GRID_YELLOW, + STR_TILE_INSPECTOR_TERRAIN_GRID_BLUE, + STR_TILE_INSPECTOR_TERRAIN_GRID_GREEN, + STR_TILE_INSPECTOR_TERRAIN_SAND_DARK, + STR_TILE_INSPECTOR_TERRAIN_SAND_LIGHT, + STR_TILE_INSPECTOR_TERRAIN_CHECKERBOARD_INVERTED, + STR_TILE_INSPECTOR_TERRAIN_UNDERGROUND_VIEW, +}; + +static const rct_string_id TerrainEdgeTypes[] = { + STR_TILE_INSPECTOR_TERRAIN_EDGE_ROCK, + STR_TILE_INSPECTOR_TERRAIN_EDGE_WOOD_RED, + STR_TILE_INSPECTOR_TERRAIN_EDGE_WOOD_BLACK, + STR_TILE_INSPECTOR_TERRAIN_EDGE_ICE, + +}; + +static const rct_string_id EntranceTypes[] = { + STR_TILE_INSPECTOR_ENTRANCE_TYPE_RIDE_ENTRANCE, + STR_TILE_INSPECTOR_ENTRANCE_TYPE_RIDE_EXIT, + STR_TILE_INSPECTOR_ENTRANCE_TYPE_PARK_ENTRANC, +}; + + + enum WINDOW_TILE_INSPECTOR_WIDGET_IDX { WIDX_BACKGROUND, WIDX_TITLE, @@ -69,7 +104,7 @@ enum WINDOW_TILE_INSPECTOR_WIDGET_IDX { #define COL_X_LF (COL_X_BF + 12) // 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_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 { WWT_CLOSEBOX, 0, WW - 13, WW - 3, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // close x button @@ -79,8 +114,8 @@ rct_widget window_tile_inspector_widgets[] = { // Buttons { WWT_FLATBTN, 1, BX, BW, BY, BH, SPR_MAP, STR_INSERT_CORRUPT_TIP }, // Insert corrupt button { WWT_FLATBTN, 1, BX - BS * 1, BW - BS * 1, BY, BH, SPR_DEMOLISH, STR_REMOVE_SELECTED_ELEMENT_TIP }, // Remove button - { WWT_CLOSEBOX, 1, BX - BS * 2, BW - BS * 2, BY, BY + 11, 5375, STR_MOVE_SELECTED_ELEMENT_UP_TIP }, // Move down - { WWT_CLOSEBOX, 1, BX - BS * 2, BW - BS * 2, BH - 11, BH, 5376, STR_MOVE_SELECTED_ELEMENT_DOWN_TIP }, // Move up + { WWT_CLOSEBOX, 1, BX - BS * 2, BW - BS * 2, BY, BY + 11, STR_UP, STR_MOVE_SELECTED_ELEMENT_UP_TIP }, // Move down + { WWT_CLOSEBOX, 1, BX - BS * 2, BW - BS * 2, BH - 11, BH, STR_DOWN, STR_MOVE_SELECTED_ELEMENT_DOWN_TIP }, // Move up { WWT_FLATBTN, 1, BX - BS * 3, BW - BS * 3, BY, BH, SPR_ROTATE_ARROW, STR_ROTATE_SELECTED_ELEMENT_TIP }, // Rotate button // Column headers @@ -582,8 +617,8 @@ static void window_tile_inspector_scrollpaint(rct_window *w, rct_drawpixelinfo * sprintf( buffer, "Surface (%s, %s)", - language_get_string(STR_TILE_INSPECTOR_TERRAIN_START + map_element_get_terrain(element)), - language_get_string(STR_TILE_INSPECTOR_TERRAIN_EDGE_START + map_element_get_terrain_edge(element)) + language_get_string(TerrainTypes[map_element_get_terrain(element)]), + language_get_string(TerrainEdgeTypes[map_element_get_terrain_edge(element)]) ); type_name = buffer; break; @@ -615,7 +650,7 @@ static void window_tile_inspector_scrollpaint(rct_window *w, rct_drawpixelinfo * sprintf( buffer, "Track (%s)", - language_get_string(2 + get_ride(element->properties.track.ride_index)->type) + language_get_string(STR_RIDE_NAME_SPIRAL_ROLLER_COASTER + get_ride(element->properties.track.ride_index)->type) ); type_name = buffer; break; @@ -631,7 +666,7 @@ static void window_tile_inspector_scrollpaint(rct_window *w, rct_drawpixelinfo * sprintf( buffer, "Entrance (%s)", - language_get_string(STR_TILE_INSPECTOR_ENTRANCE_START + element->properties.entrance.type) + language_get_string(EntranceTypes[element->properties.entrance.type]) ); type_name = buffer; break; @@ -667,8 +702,8 @@ static void window_tile_inspector_scrollpaint(rct_window *w, rct_drawpixelinfo * const bool broken = (element->flags & MAP_ELEMENT_FLAG_BROKEN) != 0; const bool last = (element->flags & MAP_ELEMENT_FLAG_LAST_TILE) != 0; gfx_draw_string(dpi, type_name, 12, x + COL_X_TYPE + 3, y); // 3px padding - 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, STR_FORMAT_INTEGER, &base_height, 12, x + COL_X_BH, y); + gfx_draw_string_left(dpi, STR_FORMAT_INTEGER, &clearance_height, 12, x + COL_X_CH, y); if (ghost) gfx_draw_string(dpi, (char*)CheckBoxMarkString, w->colours[1], x + COL_X_GF, y); if (broken) gfx_draw_string(dpi, (char*)CheckBoxMarkString, w->colours[1], x + COL_X_BF, y); if (last) gfx_draw_string(dpi, (char*)CheckBoxMarkString, w->colours[1], x + COL_X_LF, y); diff --git a/src/windows/title_command_editor.c b/src/windows/title_command_editor.c index ddd5dc85c3..1044279f19 100644 --- a/src/windows/title_command_editor.c +++ b/src/windows/title_command_editor.c @@ -35,14 +35,14 @@ typedef struct TITLE_COMMAND_ORDER { } TITLE_COMMAND_ORDER; TITLE_COMMAND_ORDER window_title_command_editor_orders[] = { - { TITLE_SCRIPT_LOAD, 5413, 5431 }, - { TITLE_SCRIPT_LOCATION, 5417, 5427 }, - { TITLE_SCRIPT_ROTATE, 5419, 5428 }, - { TITLE_SCRIPT_ZOOM, 5421, 5429 }, - { TITLE_SCRIPT_SPEED, 5445, 5444 }, - { TITLE_SCRIPT_WAIT, 5423, 5430 }, - { TITLE_SCRIPT_RESTART, 5425, STR_NONE }, - { TITLE_SCRIPT_END, 5426, STR_NONE }, + { TITLE_SCRIPT_LOAD, STR_TITLE_EDITOR_ACTION_LOAD, STR_TITLE_EDITOR_ARGUMENT_SAVEFILE }, + { TITLE_SCRIPT_LOCATION, STR_TITLE_EDITOR_COMMAND_TYPE_LOCATION, STR_TITLE_EDITOR_ARGUMENT_COORDINATES }, + { TITLE_SCRIPT_ROTATE, STR_TITLE_EDITOR_COMMAND_TYPE_ROTATE, STR_TITLE_EDITOR_ARGUMENT_ROTATIONS }, + { TITLE_SCRIPT_ZOOM, STR_TITLE_EDITOR_COMMAND_TYPE_ZOOM, STR_TITLE_EDITOR_ARGUMENT_ZOOM_LEVEL }, + { TITLE_SCRIPT_SPEED, STR_TITLE_EDITOR_COMMAND_TYPE_SPEED, STR_TITLE_EDITOR_ARGUMENT_SPEED }, + { TITLE_SCRIPT_WAIT, STR_TITLE_EDITOR_COMMAND_TYPE_WAIT, STR_TITLE_EDITOR_ARGUMENT_WAIT_SECONDS }, + { TITLE_SCRIPT_RESTART, STR_TITLE_EDITOR_RESTART, STR_NONE }, + { TITLE_SCRIPT_END, STR_TITLE_EDITOR_END, STR_NONE }, }; #define NUM_COMMANDS 8 @@ -78,20 +78,20 @@ static char textbox2Buffer[BUF_SIZE]; static title_command command = { 6, 0, 0 }; static rct_widget window_title_command_editor_widgets[] = { - { WWT_FRAME, 1, 0, WW-1, 0, WH-1, -1, STR_NONE }, // panel / background - { WWT_CAPTION, 1, 1, WW-2, 1, 14, 5434, STR_WINDOW_TITLE_TIP }, // title bar - { WWT_CLOSEBOX, 1, WW-13, WW-3, 2, 13, 824, STR_CLOSE_WINDOW_TIP }, // close x button + { WWT_FRAME, 1, 0, WW-1, 0, WH-1, 0xFFFFFFFF, STR_NONE }, // panel / background + { WWT_CAPTION, 1, 1, WW-2, 1, 14, STR_TITLE_COMMAND_EDITOR_TITLE, STR_WINDOW_TITLE_TIP }, // title bar + { WWT_CLOSEBOX, 1, WW-13, WW-3, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // close x button { WWT_DROPDOWN, 1, WS, WW-WS-1, BY, BY+11, STR_NONE, STR_NONE }, // Command dropdown - { WWT_DROPDOWN_BUTTON, 1, WW-WS-12, WW-WS-2, BY+1, BY+10, 876, STR_NONE }, + { WWT_DROPDOWN_BUTTON, 1, WW-WS-12, WW-WS-2, BY+1, BY+10, STR_DROPDOWN_GLYPH, STR_NONE }, { WWT_TEXT_BOX, 1, WS, WW-WS-1, BY2, BY2+11, STR_NONE, STR_NONE }, // full textbox { WWT_TEXT_BOX, 1, WS, WS+WHA-4, BY2, BY2+11, STR_NONE, STR_NONE }, // x textbox { WWT_TEXT_BOX, 1, WS+WHA+3, WW-WS-1, BY2, BY2+11, STR_NONE, STR_NONE }, // y textbox { WWT_DROPDOWN, 1, 16, WW-17, BY2, BY2+11, STR_NONE, STR_NONE }, // Save dropdown - { WWT_DROPDOWN_BUTTON, 1, WW-28, WW-18, BY2+1, BY2+10, 876, STR_NONE }, + { WWT_DROPDOWN_BUTTON, 1, WW-28, WW-18, BY2+1, BY2+10, STR_DROPDOWN_GLYPH, STR_NONE }, - { WWT_DROPDOWN_BUTTON, 1, WS+WHA+3, WW-WS-1, BY2-14, BY2-3, 5446, STR_NONE }, // Get location/zoom/etc + { WWT_DROPDOWN_BUTTON, 1, WS+WHA+3, WW-WS-1, BY2-14, BY2-3, STR_TITLE_COMMAND_EDITOR_ACTION_GET_LOCATION, STR_NONE }, // Get location/zoom/etc { WWT_DROPDOWN_BUTTON, 1, 10, 80, WH-21, WH-10, STR_OK, STR_NONE }, // OKAY { WWT_DROPDOWN_BUTTON, 1, WW-80, WW-10, WH-21, WH-10, STR_CANCEL, STR_NONE }, // Cancel @@ -205,9 +205,9 @@ void window_title_command_editor_open(int index, bool insert) WC_TITLE_COMMAND_EDITOR, WF_STICK_TO_FRONT ); - window_title_command_editor_widgets[WIDX_TEXTBOX_FULL].image = (uint32)textbox1Buffer; - window_title_command_editor_widgets[WIDX_TEXTBOX_X].image = (uint32)textbox1Buffer; - window_title_command_editor_widgets[WIDX_TEXTBOX_Y].image = (uint32)textbox2Buffer; + window_title_command_editor_widgets[WIDX_TEXTBOX_FULL].string = textbox1Buffer; + window_title_command_editor_widgets[WIDX_TEXTBOX_X].string = textbox1Buffer; + window_title_command_editor_widgets[WIDX_TEXTBOX_Y].string = textbox2Buffer; window->widgets = window_title_command_editor_widgets; window->enabled_widgets = (1 << WIDX_CLOSE) | @@ -258,13 +258,13 @@ static void window_title_command_editor_mouseup(rct_window *w, int widgetIndex) window_close(w); break; case WIDX_TEXTBOX_FULL: - window_start_textbox(w, widgetIndex, 1170, (uint32)textbox1Buffer, 4); + window_start_textbox(w, widgetIndex, STR_STRING, (uint32)textbox1Buffer, 4); break; case WIDX_TEXTBOX_X: - window_start_textbox(w, widgetIndex, 1170, (uint32)textbox1Buffer, 4); + window_start_textbox(w, widgetIndex, STR_STRING, (uint32)textbox1Buffer, 4); break; case WIDX_TEXTBOX_Y: - window_start_textbox(w, widgetIndex, 1170, (uint32)textbox2Buffer, 4); + window_start_textbox(w, widgetIndex, STR_STRING, (uint32)textbox2Buffer, 4); break; case WIDX_GET: if (command.command == TITLE_SCRIPT_LOCATION) { @@ -328,7 +328,7 @@ static void window_title_command_editor_mousedown(int widgetIndex, rct_window* w num_items = 4; for (i = 0; i < num_items; i++) { gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL; - gDropdownItemsArgs[i] = 5142 + i; + gDropdownItemsArgs[i] = SpeedNames[i]; } window_dropdown_show_text_custom_width( @@ -346,7 +346,7 @@ static void window_title_command_editor_mousedown(int widgetIndex, rct_window* w else if (command.command == TITLE_SCRIPT_LOAD) { num_items = gConfigTitleSequences.presets[gCurrentTitleSequence].num_saves; for (i = 0; i < num_items; i++) { - gDropdownItemsFormat[i] = 2777; + gDropdownItemsFormat[i] = STR_OPTIONS_DROPDOWN_ITEM; gDropdownItemsArgs[i] = (uint32)&gConfigTitleSequences.presets[gCurrentTitleSequence].saves[i]; } @@ -527,7 +527,7 @@ static void window_title_command_editor_paint(rct_window *w, rct_drawpixelinfo * { window_draw_widgets(w, dpi); - gfx_draw_string_left(dpi, 5432, NULL, w->colours[1], w->x + WS, w->y + BY - 14); + gfx_draw_string_left(dpi, STR_TITLE_COMMAND_EDITOR_COMMAND_LABEL, NULL, w->colours[1], w->x + WS, w->y + BY - 14); gfx_draw_string_left(dpi, get_command_info(command.command).descStringId, NULL, w->colours[1], w->x + WS, w->y + BY2 - 14); gfx_draw_string_left_clipped( @@ -543,7 +543,7 @@ static void window_title_command_editor_paint(rct_window *w, rct_drawpixelinfo * if (command.command == TITLE_SCRIPT_SPEED) { gfx_draw_string_left_clipped( dpi, - 5142 + command.speed - 1, + SpeedNames[command.speed - 1], NULL, w->colours[1], w->x + w->widgets[WIDX_INPUT].left + 1, @@ -555,7 +555,7 @@ static void window_title_command_editor_paint(rct_window *w, rct_drawpixelinfo * if (command.saveIndex == 0xFF) { gfx_draw_string_left_clipped( dpi, - 5437, + STR_TITLE_COMMAND_EDITOR_NO_SAVE_SELECTED, NULL, w->colours[1], w->x + w->widgets[WIDX_INPUT].left + 1, @@ -567,7 +567,7 @@ static void window_title_command_editor_paint(rct_window *w, rct_drawpixelinfo * set_format_arg(0, uint32, (uint32)&gConfigTitleSequences.presets[gCurrentTitleSequence].saves[command.saveIndex]); gfx_draw_string_left_clipped( dpi, - 1170, + STR_STRING, gCommonFormatArgs, w->colours[1], w->x + w->widgets[WIDX_INPUT].left + 1, diff --git a/src/windows/title_editor.c b/src/windows/title_editor.c index 36f3ea3797..b2150aa60a 100644 --- a/src/windows/title_editor.c +++ b/src/windows/title_editor.c @@ -143,43 +143,43 @@ enum WINDOW_TITLE_EDITOR_WIDGET_IDX { #define WH2 127 static rct_widget window_title_editor_widgets[] = { - { WWT_FRAME, 0, 0, WW-1, 0, WH2-1, 0x0FFFFFFFF, STR_NONE }, // panel / background - { WWT_CAPTION, 0, 1, WW-2, 1, 14, 5433, STR_WINDOW_TITLE_TIP }, // title bar - { WWT_CLOSEBOX, 0, WW-13, WW-3, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // close button - { WWT_RESIZE, 1, 0, WW-1, 43, WH2-1, 0x0FFFFFFFF, STR_NONE }, // tab content panel - { WWT_TAB, 1, 3, 33, 17, 43, 0x02000144E, 5235 }, // presets tab - { WWT_TAB, 1, 34, 64, 17, 43, 0x02000144E, 5377 }, // saves tab - { WWT_TAB, 1, 65, 95, 17, 43, 0x02000144E, 5378 }, // script tab - { WWT_SCROLL, 1, BX+BW+9,WW-4, 48, WH-4, 3, STR_NONE }, // command/save list + { WWT_FRAME, 0, 0, WW-1, 0, WH2-1, 0xFFFFFFFF, STR_NONE }, // panel / background + { WWT_CAPTION, 0, 1, WW-2, 1, 14, STR_TITLE_EDITOR_TITLE, STR_WINDOW_TITLE_TIP }, // title bar + { WWT_CLOSEBOX, 0, WW-13, WW-3, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // close button + { WWT_RESIZE, 1, 0, WW-1, 43, WH2-1, 0xFFFFFFFF, STR_NONE }, // tab content panel + { WWT_TAB, 1, 3, 33, 17, 43, 0x20000000 | SPR_TAB, STR_THEMES_TAB_SETTINGS_TIP }, // presets tab + { WWT_TAB, 1, 34, 64, 17, 43, 0x20000000 | SPR_TAB, STR_TITLE_EDITOR_SAVES_TAB_TIP }, // saves tab + { WWT_TAB, 1, 65, 95, 17, 43, 0x20000000 | SPR_TAB, STR_TITLE_EDITOR_SCRIPT_TAB_TIP }, // script tab + { WWT_SCROLL, 1, BX+BW+9,WW-4, 48, WH-4, SCROLL_BOTH, STR_NONE }, // command/save list // Presets Tab - { WWT_DROPDOWN, 1, 125, 299, 60, 71, STR_NONE, STR_NONE }, // Preset title sequences - { WWT_DROPDOWN_BUTTON, 1, 288, 298, 61, 70, 876, STR_NONE }, - { WWT_DROPDOWN_BUTTON, 1, 10, 100, 82, 93, 5254, 5255 }, // Create button - { WWT_DROPDOWN_BUTTON, 1, 10, 100, 82+20, 93+20, 5239, 5383 }, // Duplicate button - { WWT_DROPDOWN_BUTTON, 1, 110, 200, 82, 93, 3349, 5384 }, // Delete button - { WWT_DROPDOWN_BUTTON, 1, 210, 300, 82, 93, 3348, 5385 }, // Rename button + { WWT_DROPDOWN, 1, 125, 299, 60, 71, STR_NONE, STR_NONE }, // Preset title sequences + { WWT_DROPDOWN_BUTTON, 1, 288, 298, 61, 70, STR_DROPDOWN_GLYPH, STR_NONE }, + { WWT_DROPDOWN_BUTTON, 1, 10, 100, 82, 93, STR_TITLE_EDITOR_ACTION_CREATE, STR_TITLE_EDITOR_ACTION_CREATE_SEQUENCE_TIP }, // Create button + { WWT_DROPDOWN_BUTTON, 1, 10, 100, 82+20, 93+20, STR_TITLE_EDITOR_ACTION_DUPLICATE, STR_TITLE_EDITOR_ACTION_DUPLICATE_SEQUENCE_TIP }, // Duplicate button + { WWT_DROPDOWN_BUTTON, 1, 110, 200, 82, 93, STR_TRACK_MANAGE_DELETE, STR_TITLE_EDITOR_ACTION_DELETE_SEQUENCE_TIP }, // Delete button + { WWT_DROPDOWN_BUTTON, 1, 210, 300, 82, 93, STR_TRACK_MANAGE_RENAME, STR_TITLE_EDITOR_ACTION_RENAME_SEQUENCE_TIP }, // Rename button // Saves Tab - { WWT_DROPDOWN_BUTTON, 1, BX, BX+BW-1,BY, BH, 5407, 5392 }, // Add - { WWT_DROPDOWN_BUTTON, 1, BX, BX+BW-1,BY+(BS*1), BH+(BS*1), 5408, 5393 }, // Remove - { WWT_DROPDOWN_BUTTON, 1, BX, BX+BW-1,BY+(BS*2), BH+(BS*2), 3348, 5394 }, // Rename - { WWT_DROPDOWN_BUTTON, 1, BX, BX+BW-1,BY+(BS*3), BH+(BS*3), 5413, 5395 }, // Load + { WWT_DROPDOWN_BUTTON, 1, BX, BX+BW-1,BY, BH, STR_TITLE_EDITOR_ACTION_ADD, STR_TITLE_EDITOR_ACTION_ADD_TIP }, // Add + { WWT_DROPDOWN_BUTTON, 1, BX, BX+BW-1,BY+(BS*1), BH+(BS*1), STR_TITLE_EDITOR_ACTION_REMOVE, STR_TITLE_EDITOR_ACTION_REMOVE_TIP }, // Remove + { WWT_DROPDOWN_BUTTON, 1, BX, BX+BW-1,BY+(BS*2), BH+(BS*2), STR_TRACK_MANAGE_RENAME, STR_TITLE_EDITOR_ACTION_RENAME_TIP }, // Rename + { WWT_DROPDOWN_BUTTON, 1, BX, BX+BW-1,BY+(BS*3), BH+(BS*3), STR_TITLE_EDITOR_ACTION_LOAD, STR_TITLE_EDITOR_ACTION_LOAD_TIP }, // Load // Script Tab - { WWT_DROPDOWN_BUTTON, 1, BX, BX+BW-1,BY, BH, 5409, 5386 }, // Insert - { WWT_DROPDOWN_BUTTON, 1, BX, BX+BW-1,BY+(BS*1), BH+(BS*1), 5410, 5387 }, // Edit - { WWT_DROPDOWN_BUTTON, 1, BX, BX+BW-1,BY+(BS*2), BH+(BS*2), 3349, 5388 }, // Delete - //{ WWT_DROPDOWN_BUTTON, 1, BX, BX+BW-1,BY+(BS*3), BH+(BS*3), 5411, 5396 }, // Reload - { WWT_DROPDOWN_BUTTON, 1, BX, BX+BW-1,BY+(BS*3), BH+(BS*3), 5412, 5389 }, // Skip to + { WWT_DROPDOWN_BUTTON, 1, BX, BX+BW-1,BY, BH, STR_TITLE_EDITOR_ACTION_INSERT, STR_TITLE_EDITOR_ACTION_INSERT_TIP }, // Insert + { WWT_DROPDOWN_BUTTON, 1, BX, BX+BW-1,BY+(BS*1), BH+(BS*1), STR_TITLE_EDITOR_ACTION_EDIT, STR_TITLE_EDITOR_ACTION_EDIT_TIP }, // Edit + { WWT_DROPDOWN_BUTTON, 1, BX, BX+BW-1,BY+(BS*2), BH+(BS*2), STR_TRACK_MANAGE_DELETE, STR_TITLE_EDITOR_ACTION_DELETE_TIP }, // Delete + //{ WWT_DROPDOWN_BUTTON, 1, BX, BX+BW-1,BY+(BS*3), BH+(BS*3), STR_TITLE_EDITOR_ACTION_RELOAD, STR_TITLE_EDITOR_ACTION_RELOAD_TIP }, // Reload + { WWT_DROPDOWN_BUTTON, 1, BX, BX+BW-1,BY+(BS*3), BH+(BS*3), STR_TITLE_EDITOR_ACTION_SKIP_TO, STR_TITLE_EDITOR_ACTION_SKIP_TO_TIP }, // Skip to - { WWT_DROPDOWN_BUTTON, 1, BX, BX+BW/2-1,BY+(BS*5),BH+(BS*5), 5375, 5390 }, // Move down - { WWT_DROPDOWN_BUTTON, 1, BX+BW/2,BX+BW-1,BY+(BS*5), BH+(BS*5), 5376, 5391 }, // Move up + { WWT_DROPDOWN_BUTTON, 1, BX, BX+BW/2-1,BY+(BS*5),BH+(BS*5), STR_DOWN, STR_TITLE_EDITOR_ACTION_MOVE_DOWN_TIP }, // Move down + { WWT_DROPDOWN_BUTTON, 1, BX+BW/2,BX+BW-1,BY+(BS*5), BH+(BS*5), STR_UP, STR_TITLE_EDITOR_ACTION_MOVE_UP_TIP }, // Move up - { WWT_IMGBTN, 1, BX, BX+BW/4-1, WH-32, WH-16, SPR_G2_TITLE_RESTART, 5382 }, // Replay - { WWT_IMGBTN, 1, BX+BW/4,BX+BW/2-1, WH-32, WH-16, SPR_G2_TITLE_STOP, 5381 }, // Stop - { WWT_IMGBTN, 1, BX+BW/2,BX+BW*3/4-1,WH-32, WH-16, SPR_G2_TITLE_PLAY, 5380 }, // Play - { WWT_IMGBTN, 1, BX+BW*3/4,BX+BW, WH-32, WH-16, SPR_G2_TITLE_SKIP, 5379 }, // Skip + { WWT_IMGBTN, 1, BX, BX+BW/4-1, WH-32, WH-16, SPR_G2_TITLE_RESTART, STR_TITLE_EDITOR_ACTION_REPLAY_TIP }, // Replay + { WWT_IMGBTN, 1, BX+BW/4,BX+BW/2-1, WH-32, WH-16, SPR_G2_TITLE_STOP, STR_TITLE_EDITOR_ACTION_STOP_TIP }, // Stop + { WWT_IMGBTN, 1, BX+BW/2,BX+BW*3/4-1,WH-32, WH-16, SPR_G2_TITLE_PLAY, STR_TITLE_EDITOR_ACTION_PLAY_TIP }, // Play + { WWT_IMGBTN, 1, BX+BW*3/4,BX+BW, WH-32, WH-16, SPR_G2_TITLE_SKIP, STR_TITLE_EDITOR_ACTION_SKIP_TIP }, // Skip { WIDGETS_END }, }; @@ -310,12 +310,13 @@ static void window_title_editor_mouseup(rct_window *w, int widgetIndex) case WIDX_TITLE_EDITOR_NEW_BUTTON: commandEditorOpen *= 2; if (!commandEditorOpen) - window_text_input_open(w, widgetIndex, 5239, 5406, STR_NONE, 0, 64); + // TODO: This should probably be 'NEW' + window_text_input_open(w, widgetIndex, STR_TITLE_EDITOR_ACTION_DUPLICATE, STR_TITLE_EDITOR_ENTER_NAME_FOR_SEQUENCE, STR_NONE, 0, 64); break; case WIDX_TITLE_EDITOR_DUPLICATE_BUTTON: commandEditorOpen *= 2; if (!commandEditorOpen) - window_text_input_open(w, widgetIndex, 5239, 5406, 1170, (uint32)&gConfigTitleSequences.presets[gCurrentTitleSequence].name, 64); + window_text_input_open(w, widgetIndex, STR_TITLE_EDITOR_ACTION_DUPLICATE, STR_TITLE_EDITOR_ENTER_NAME_FOR_SEQUENCE, STR_STRING, (uint32)&gConfigTitleSequences.presets[gCurrentTitleSequence].name, 64); break; case WIDX_TITLE_EDITOR_DELETE_BUTTON: defaultPreset *= 2; commandEditorOpen *= 2; @@ -325,7 +326,7 @@ static void window_title_editor_mouseup(rct_window *w, int widgetIndex) case WIDX_TITLE_EDITOR_RENAME_BUTTON: defaultPreset *= 2; commandEditorOpen *= 2; if (!defaultPreset && !commandEditorOpen) - window_text_input_open(w, widgetIndex, 3348, 5406, 1170, (uint32)&gConfigTitleSequences.presets[gCurrentTitleSequence].name, 64); + window_text_input_open(w, widgetIndex, STR_TRACK_MANAGE_RENAME, STR_TITLE_EDITOR_ENTER_NAME_FOR_SEQUENCE, STR_STRING, (uint32)&gConfigTitleSequences.presets[gCurrentTitleSequence].name, 64); break; case WIDX_TITLE_EDITOR_ADD: defaultPreset *= 2; playing *= 2; commandEditorOpen *= 2; @@ -350,7 +351,7 @@ static void window_title_editor_mouseup(rct_window *w, int widgetIndex) defaultPreset *= 2; playing *= 2; commandEditorOpen *= 2; if (!defaultPreset && !playing && !commandEditorOpen) { if (w->selected_list_item != -1) - window_text_input_open(w, widgetIndex, 5435, 5405, 1170, (uint32)gConfigTitleSequences.presets[gCurrentTitleSequence].saves[w->selected_list_item], TITLE_SEQUENCE_MAX_SAVE_LENGTH - 1); + window_text_input_open(w, widgetIndex, STR_FILEBROWSER_RENAME_SAVE_TITLE, STR_TITLE_EDITOR_ENTER_NAME_FOR_SAVE, STR_STRING, (uint32)gConfigTitleSequences.presets[gCurrentTitleSequence].saves[w->selected_list_item], TITLE_SEQUENCE_MAX_SAVE_LENGTH - 1); } break; case WIDX_TITLE_EDITOR_LOAD: @@ -359,6 +360,7 @@ static void window_title_editor_mouseup(rct_window *w, int widgetIndex) safe_strcpy(path, gConfigTitleSequences.presets[gCurrentTitleSequence].path, MAX_PATH); } else { + // TODO: This should probably use a constant platform_get_user_directory(path, "title sequences"); strcat(path, gConfigTitleSequences.presets[gCurrentTitleSequence].name); strncat(path, &separator, 1); @@ -483,11 +485,11 @@ static void window_title_editor_mouseup(rct_window *w, int widgetIndex) break; } if (defaultPreset == 2) - window_error_open(5400, STR_NONE); + window_error_open(STR_ERROR_CANT_CHANGE_TITLE_SEQUENCE, STR_NONE); else if (commandEditorOpen == 2) - window_error_open(5438, STR_NONE); + window_error_open(STR_TITLE_EDITOR_ERR_CANT_CHANGE_WHILE_EDITOR_IS_OPEN, STR_NONE); else if (playing == 2) - window_error_open(5398, 5399); + window_error_open(STR_TITLE_EDITOR_ERR_CANT_EDIT_WHILE_PLAYING, STR_TITLE_EDITOR_PRESS_STOP_TO_CONTINUE_EDITING); } static void window_title_editor_resize(rct_window *w) @@ -562,14 +564,14 @@ static void window_title_editor_mousedown(int widgetIndex, rct_window* w, rct_wi break; case WIDX_TITLE_EDITOR_PRESETS_DROPDOWN: if (window_find_by_class(WC_TITLE_COMMAND_EDITOR) != NULL) { - window_error_open(5438, STR_NONE); + window_error_open(STR_TITLE_EDITOR_ERR_CANT_CHANGE_WHILE_EDITOR_IS_OPEN, STR_NONE); } else { num_items = gConfigTitleSequences.num_presets; widget--; for (i = 0; i < num_items; i++) { - gDropdownItemsFormat[i] = 2777; + gDropdownItemsFormat[i] = STR_OPTIONS_DROPDOWN_ITEM; gDropdownItemsArgs[i] = (uint32)&gConfigTitleSequences.presets[i].name; } @@ -709,11 +711,11 @@ static void window_title_editor_textinput(rct_window *w, int widgetIndex, char * window_invalidate(w); } else { - window_error_open(5404, STR_NONE); + window_error_open(STR_ERROR_EXISTING_NAME, STR_NONE); } } else { - window_error_open(5243, STR_NONE); + window_error_open(STR_ERROR_INVALID_CHARACTERS, STR_NONE); } break; case WIDX_TITLE_EDITOR_RENAME: @@ -724,11 +726,11 @@ static void window_title_editor_textinput(rct_window *w, int widgetIndex, char * window_invalidate(w); } else { - window_error_open(5404, STR_NONE); + window_error_open(STR_ERROR_EXISTING_NAME, STR_NONE); } } else { - window_error_open(5243, STR_NONE); + window_error_open(STR_ERROR_INVALID_CHARACTERS, STR_NONE); } break; } @@ -856,10 +858,10 @@ void window_title_editor_paint(rct_window *w, rct_drawpixelinfo *dpi) case WINDOW_TITLE_EDITOR_TAB_PRESETS: set_format_arg(0, uint32, (uint32)&gConfigTitleSequences.presets[gCurrentTitleSequence].name); - gfx_draw_string_left(dpi, 5304, NULL, w->colours[1], w->x + 10, w->y + window_title_editor_widgets[WIDX_TITLE_EDITOR_PRESETS].top + 1); + gfx_draw_string_left(dpi, STR_TITLE_SEQUENCE, NULL, w->colours[1], w->x + 10, w->y + window_title_editor_widgets[WIDX_TITLE_EDITOR_PRESETS].top + 1); gfx_draw_string_left_clipped( dpi, - 1170, + STR_STRING, gCommonFormatArgs, w->colours[1], w->x + window_title_editor_widgets[WIDX_TITLE_EDITOR_PRESETS].left + 1, @@ -909,14 +911,14 @@ void window_title_editor_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int set_format_arg(0, uint32, (uint32)&title->saves[i]); if (selected || hover) { - format_string(buffer, 1170, gCommonFormatArgs); + format_string(buffer, STR_STRING, gCommonFormatArgs); } else { - format_string(buffer + 1, 1170, gCommonFormatArgs); + format_string(buffer + 1, STR_STRING, gCommonFormatArgs); buffer[0] = FORMAT_BLACK; } set_format_arg(0, uint32, (uint32)&buffer); - gfx_draw_string_left(dpi, 1170, gCommonFormatArgs, w->colours[1], x + 5, y); + gfx_draw_string_left(dpi, STR_STRING, gCommonFormatArgs, w->colours[1], x + 5, y); } } else if (w->selected_tab == WINDOW_TITLE_EDITOR_TAB_SCRIPT) { @@ -942,43 +944,44 @@ void window_title_editor_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int rct_string_id commandName = STR_NONE; switch (command->command) { case TITLE_SCRIPT_LOAD: - commandName = 5415; + commandName = STR_TITLE_EDITOR_COMMAND_LOAD_FILE; if (command->saveIndex == 0xFF) { - commandName = 5416; + commandName = STR_TITLE_EDITOR_COMMAND_LOAD_NO_SAVE; error = true; } set_format_arg(0, uint32, (uint32)&title->saves[command->saveIndex]); break; case TITLE_SCRIPT_LOADMM: - commandName = 5414; + commandName = STR_TITLE_EDITOR_COMMAND_LOAD_SFMM; break; case TITLE_SCRIPT_LOCATION: - commandName = 5418; + commandName = STR_TITLE_EDITOR_COMMAND_LOCATION; set_format_arg(0, uint16, command->x); set_format_arg(2, uint16, command->y); break; case TITLE_SCRIPT_ROTATE: - commandName = 5420; + commandName = STR_TITLE_EDITOR_COMMAND_ROTATE; set_format_arg(0, uint16, command->rotations); break; case TITLE_SCRIPT_ZOOM: - commandName = 5422; + commandName = STR_TITLE_EDITOR_COMMAND_ZOOM; set_format_arg(0, uint16, command->zoom); break; case TITLE_SCRIPT_SPEED: - commandName = 5443; - set_format_arg(0, uint16, (uint16)(5142 + command->speed - 1)); + commandName = STR_TITLE_EDITOR_COMMAND_SPEED; + set_format_arg(0, rct_string_id, SpeedNames[command->speed - 1]); break; case TITLE_SCRIPT_WAIT: - commandName = 5424; + commandName = STR_TITLE_EDITOR_COMMAND_WAIT; set_format_arg(0, uint16, command->seconds); break; case TITLE_SCRIPT_RESTART: - commandName = 5425; + commandName = STR_TITLE_EDITOR_RESTART; + // TODO: Why the format arg? set_format_arg(0, uint16, command->zoom); break; case TITLE_SCRIPT_END: - commandName = 5426; + commandName = STR_TITLE_EDITOR_END; break; default: log_warning("Unknown command %d", command->command); @@ -992,7 +995,7 @@ void window_title_editor_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int buffer[0] = (error ? ((selected || hover) ? FORMAT_LIGHTPINK : FORMAT_RED) : FORMAT_BLACK); } set_format_arg(0, uint32, (uint32)&buffer); - gfx_draw_string_left(dpi, 1170, gCommonFormatArgs, w->colours[1], x + 5, y); + gfx_draw_string_left(dpi, STR_STRING, gCommonFormatArgs, w->colours[1], x + 5, y); } } } diff --git a/src/windows/title_logo.c b/src/windows/title_logo.c index be77497630..d698843437 100644 --- a/src/windows/title_logo.c +++ b/src/windows/title_logo.c @@ -117,6 +117,7 @@ static void window_title_logo_draw_expansion_packs(rct_drawpixelinfo *dpi) buffer = (char*)RCT2_ADDRESS_COMMON_STRING_FORMAT_BUFFER; while (packs != 0) { if (packs & 1) { + // TODO: Should probably be localisable // Prefix for expansion name buffer[0] = '\n'; buffer[1] = '\v'; diff --git a/src/windows/title_scenarioselect.c b/src/windows/title_scenarioselect.c index 65806de370..e6bae6f030 100644 --- a/src/windows/title_scenarioselect.c +++ b/src/windows/title_scenarioselect.c @@ -67,22 +67,33 @@ enum { }; static rct_widget window_scenarioselect_widgets[] = { - { WWT_FRAME, 0, 0, 733, 0, 333, -1, STR_NONE }, // panel / background - { WWT_CAPTION, 0, 1, 732, 1, 14, STR_SELECT_SCENARIO, STR_WINDOW_TITLE_TIP }, // title bar - { WWT_CLOSEBOX, 0, 721, 731, 2, 13, 824, STR_CLOSE_WINDOW_TIP }, // close x button - { WWT_IMGBTN, 1, 0, 733, 50, 333, -1, STR_NONE }, // tab content panel - { WWT_TAB, 1, 3, 93, 17, 50, 0x200015BC, STR_NONE }, // tab 1 - { WWT_TAB, 1, 94, 184, 17, 50, 0x200015BC, STR_NONE }, // tab 2 - { WWT_TAB, 1, 185, 275, 17, 50, 0x200015BC, STR_NONE }, // tab 3 - { WWT_TAB, 1, 276, 366, 17, 50, 0x200015BC, STR_NONE }, // tab 4 - { WWT_TAB, 1, 367, 457, 17, 50, 0x200015BC, STR_NONE }, // tab 5 - { WWT_TAB, 1, 458, 593, 17, 50, 0x200015BC, STR_NONE }, // tab 6 - { WWT_TAB, 1, 594, 684, 17, 50, 0x200015BC, STR_NONE }, // tab 7 - { WWT_TAB, 1, 685, 775, 17, 50, 0x200015BC, STR_NONE }, // tab 8 - { WWT_SCROLL, 1, 3, 555, 54, 329, 2, STR_NONE }, // level list + { WWT_FRAME, 0, 0, 733, 0, 333, 0xFFFFFFFF, STR_NONE }, // panel / background + { WWT_CAPTION, 0, 1, 732, 1, 14, STR_SELECT_SCENARIO, STR_WINDOW_TITLE_TIP }, // title bar + { WWT_CLOSEBOX, 0, 721, 731, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // close x button + { WWT_IMGBTN, 1, 0, 733, 50, 333, 0xFFFFFFFF, STR_NONE }, // tab content panel + { WWT_TAB, 1, 3, 93, 17, 50, 0x20000000 | SPR_TAB_LARGE, STR_NONE }, // tab 1 + { WWT_TAB, 1, 94, 184, 17, 50, 0x20000000 | SPR_TAB_LARGE, STR_NONE }, // tab 2 + { WWT_TAB, 1, 185, 275, 17, 50, 0x20000000 | SPR_TAB_LARGE, STR_NONE }, // tab 3 + { WWT_TAB, 1, 276, 366, 17, 50, 0x20000000 | SPR_TAB_LARGE, STR_NONE }, // tab 4 + { WWT_TAB, 1, 367, 457, 17, 50, 0x20000000 | SPR_TAB_LARGE, STR_NONE }, // tab 5 + { WWT_TAB, 1, 458, 593, 17, 50, 0x20000000 | SPR_TAB_LARGE, STR_NONE }, // tab 6 + { WWT_TAB, 1, 594, 684, 17, 50, 0x20000000 | SPR_TAB_LARGE, STR_NONE }, // tab 7 + { WWT_TAB, 1, 685, 775, 17, 50, 0x20000000 | SPR_TAB_LARGE, STR_NONE }, // tab 8 + { WWT_SCROLL, 1, 3, 555, 54, 329, SCROLL_VERTICAL, STR_NONE }, // level list { WIDGETS_END }, }; +static const rct_string_id ScenarioOriginStringIds[] = { + STR_SCENARIO_CATEGORY_RCT1, + STR_SCENARIO_CATEGORY_RCT1_AA, + STR_SCENARIO_CATEGORY_RCT1_LL, + STR_SCENARIO_CATEGORY_RCT2, + STR_SCENARIO_CATEGORY_RCT2_WW, + STR_SCENARIO_CATEGORY_RCT2_TT, + STR_SCENARIO_CATEGORY_REAL_PARKS, + STR_SCENARIO_CATEGORY_OTHER_PARKS, +}; + static void window_scenarioselect_init_tabs(rct_window *w); static void window_scenarioselect_close(rct_window *w); @@ -358,7 +369,7 @@ static void window_scenarioselect_paint(rct_window *w, rct_drawpixelinfo *dpi) window_draw_widgets(w, dpi); - format = (theme_get_flags() & UITHEME_FLAG_USE_ALTERNATIVE_SCENARIO_SELECT_FONT) ? 5138 : STR_WINDOW_COLOUR_2_STRING; + format = (theme_get_flags() & UITHEME_FLAG_USE_ALTERNATIVE_SCENARIO_SELECT_FONT) ? STR_SMALL_WINDOW_COLOUR_2_STRINGID : STR_WINDOW_COLOUR_2_STRINGID; // Text for each tab for (i = 0; i < 8; i++) { @@ -370,7 +381,7 @@ static void window_scenarioselect_paint(rct_window *w, rct_drawpixelinfo *dpi) y = (widget->top + widget->bottom) / 2 + w->y - 3; if (gConfigGeneral.scenario_select_mode == SCENARIO_SELECT_MODE_ORIGIN) { - set_format_arg(0, short, STR_SCENARIO_CATEGORY_RCT1 + i); + set_format_arg(0, short, ScenarioOriginStringIds[i]); } else { // old-style set_format_arg(0, short, ScenarioCategoryStringIds[i]); } @@ -407,16 +418,16 @@ static void window_scenarioselect_paint(rct_window *w, rct_drawpixelinfo *dpi) y = w->y + window_scenarioselect_widgets[WIDX_TABCONTENT].top + 5; safe_strcpy((char*)0x009BC677, scenario->name, 64); set_format_arg(0, short, STR_PLACEHOLDER); // empty string - gfx_draw_string_centred_clipped(dpi, STR_WINDOW_COLOUR_2_STRING, gCommonFormatArgs, 0, x + 85, y, 170); + gfx_draw_string_centred_clipped(dpi, STR_WINDOW_COLOUR_2_STRINGID, gCommonFormatArgs, 0, x + 85, y, 170); y += 15; // Scenario details safe_strcpy((char*)0x009BC677, scenario->details, 256); - set_format_arg(0, short, STR_PLACEHOLDER); // empty string + set_format_arg(0, rct_string_id, STR_PLACEHOLDER); // empty string y += gfx_draw_string_left_wrapped(dpi, gCommonFormatArgs, x, y, 170, STR_BLACK_STRING, 0) + 5; // Scenario objective - set_format_arg(0, short, scenario->objective_type + STR_OBJECTIVE_NONE); + set_format_arg(0, rct_string_id, ObjectiveNames[scenario->objective_type]); set_format_arg(2, short, scenario->objective_arg_3); set_format_arg(4, short, date_get_total_months(MONTH_OCTOBER, scenario->objective_arg_1)); set_format_arg(6, int, scenario->objective_arg_2); @@ -424,6 +435,7 @@ static void window_scenarioselect_paint(rct_window *w, rct_drawpixelinfo *dpi) // Scenario score if (scenario->highscore != NULL) { + // TODO: Should probably be translateable const utf8 *completedByName = "???"; if (!str_is_null_or_empty(scenario->highscore->name)) { completedByName = scenario->highscore->name; @@ -441,8 +453,8 @@ static void window_scenarioselect_scrollpaint(rct_window *w, rct_drawpixelinfo * colour = (colour << 24) | (colour << 16) | (colour << 8) | colour; gfx_clear(dpi, colour); - int highlighted_format = (theme_get_flags() & UITHEME_FLAG_USE_ALTERNATIVE_SCENARIO_SELECT_FONT) ? 5139 : STR_WINDOW_COLOUR_2_STRING; - int unhighlighted_format = (theme_get_flags() & UITHEME_FLAG_USE_ALTERNATIVE_SCENARIO_SELECT_FONT) ? 5139 : STR_BLACK_STRING; + rct_string_id highlighted_format = (theme_get_flags() & UITHEME_FLAG_USE_ALTERNATIVE_SCENARIO_SELECT_FONT) ? STR_WHITE_STRING : STR_WINDOW_COLOUR_2_STRINGID; + rct_string_id unhighlighted_format = (theme_get_flags() & UITHEME_FLAG_USE_ALTERNATIVE_SCENARIO_SELECT_FONT) ? STR_WHITE_STRING : STR_BLACK_STRING; bool wide = gConfigGeneral.scenario_select_mode == SCENARIO_SELECT_MODE_ORIGIN; @@ -475,7 +487,7 @@ static void window_scenarioselect_scrollpaint(rct_window *w, rct_drawpixelinfo * // Draw scenario name rct_string_id placeholderStringId = STR_PLACEHOLDER; safe_strcpy((char*)language_get_string(placeholderStringId), scenario->name, 64); - int format = isDisabled ? 865 : (isHighlighted ? highlighted_format : unhighlighted_format); + rct_string_id format = isDisabled ? STR_STRINGID : (isHighlighted ? highlighted_format : unhighlighted_format); colour = isDisabled ? w->colours[1] | 0x40 : COLOUR_BLACK; if (isDisabled) { gCurrentFontSpriteBase = -1; @@ -485,7 +497,7 @@ static void window_scenarioselect_scrollpaint(rct_window *w, rct_drawpixelinfo * // Check if scenario is completed if (isCompleted) { // Draw completion tick - gfx_draw_sprite(dpi, 0x5A9F, wide ? 500 : 395, y + 1, 0); + gfx_draw_sprite(dpi, SPR_MENU_CHECKMARK, wide ? 500 : 395, y + 1, 0); // Draw completion score const utf8 *completedByName = "???"; @@ -493,7 +505,7 @@ static void window_scenarioselect_scrollpaint(rct_window *w, rct_drawpixelinfo * completedByName = scenario->highscore->name; } safe_strcpy((char*)language_get_string(placeholderStringId), completedByName, 64); - set_format_arg(0, rct_string_id, 2793); + set_format_arg(0, rct_string_id, STR_COMPLETED_BY); set_format_arg(2, rct_string_id, placeholderStringId); gfx_draw_string_centred(dpi, format, wide ? 270 : 210, y + 11, 0, gCommonFormatArgs); } @@ -566,7 +578,7 @@ static void initialise_list_items(rct_window *w) if (w->selected_tab <= SCENARIO_CATEGORY_EXPERT) { if (currentHeading != scenario->source_game) { currentHeading = scenario->source_game; - headingStringId = STR_SCENARIO_CATEGORY_RCT1 + currentHeading; + headingStringId = ScenarioOriginStringIds[currentHeading]; } } else if (w->selected_tab == SCENARIO_CATEGORY_OTHER) { int category = scenario->category; diff --git a/src/windows/tooltip.c b/src/windows/tooltip.c index 2dc50f6c22..f36deb7606 100644 --- a/src/windows/tooltip.c +++ b/src/windows/tooltip.c @@ -26,7 +26,7 @@ enum { }; static rct_widget window_tooltip_widgets[] = { - { WWT_IMGBTN, 0, 0, 199, 0, 31, 0x0FFFFFFFF, STR_NONE }, + { WWT_IMGBTN, 0, 0, 199, 0, 31, 0xFFFFFFFF, STR_NONE }, { WIDGETS_END }, }; diff --git a/src/windows/top_toolbar.c b/src/windows/top_toolbar.c index ebcc082b6b..25795fce2e 100644 --- a/src/windows/top_toolbar.c +++ b/src/windows/top_toolbar.c @@ -187,17 +187,17 @@ static rct_widget window_top_toolbar_widgets[] = { { WWT_TRNBTN, 2, 0x0183, 0x01A0, 0, 27, 0x20000000 | SPR_TOOLBAR_CONSTRUCT_RIDE, STR_BUILD_RIDE_TIP }, // Construct ride { WWT_TRNBTN, 3, 0x01EA, 0x0207, 0, 27, 0x20000000 | SPR_TOOLBAR_RIDES, STR_RIDES_IN_PARK_TIP }, // Rides { WWT_TRNBTN, 3, 0x0208, 0x0225, 0, 27, 0x20000000 | SPR_TOOLBAR_PARK, STR_PARK_INFORMATION_TIP }, // Park - { WWT_TRNBTN, 3, 0x0226, 0x0243, 0, 27, 0x20000000 | 0x15F9, STR_STAFF_TIP }, // Staff + { WWT_TRNBTN, 3, 0x0226, 0x0243, 0, 27, 0x20000000 | SPR_TAB_TOOLBAR, STR_STAFF_TIP }, // Staff { WWT_TRNBTN, 3, 0x0230, 0x024D, 0, 27, 0x20000000 | SPR_TOOLBAR_GUESTS, STR_GUESTS_TIP }, // Guests { WWT_TRNBTN, 2, 0x0230, 0x024D, 0, 27, 0x20000000 | SPR_TOOLBAR_CLEAR_SCENERY, STR_CLEAR_SCENERY_TIP }, // Clear scenery - { WWT_TRNBTN, 0, 0x001E, 0x003B, 0, 27, 0x20000000 | 0x15F9, STR_GAME_SPEED_TIP }, // Fast forward - { WWT_TRNBTN, 0, 0x001E, 0x003B, 0, 27, 0x20000000 | 0x15F9, STR_CHEATS_TIP }, // Cheats - { WWT_TRNBTN, 0, 0x001E, 0x003B, 0, 27, 0x20000000 | 0x15F9, STR_DEBUG_TIP }, // Debug - { WWT_TRNBTN, 3, 0x001E, 0x003B, 0, 27, 0x20000000 | 0x15F9, STR_SCENARIO_OPTIONS_FINANCIAL_TIP },// Finances - { WWT_TRNBTN, 3, 0x001E, 0x003B, 0, 27, 0x20000000 | 0x15F9, STR_FINANCES_RESEARCH_TIP }, // Research - { WWT_TRNBTN, 3, 0x001E, 0x003B, 0, 27, 0x20000000 | 0x15F9, STR_SHOW_RECENT_MESSAGES_TIP }, // News - { WWT_TRNBTN, 0, 0x001E, 0x003B, 0, 27, 0x20000000 | 0x15F9, STR_SHOW_MULTIPLAYER_STATUS_TIP }, // Network + { WWT_TRNBTN, 0, 0x001E, 0x003B, 0, 27, 0x20000000 | SPR_TAB_TOOLBAR, STR_GAME_SPEED_TIP }, // Fast forward + { WWT_TRNBTN, 0, 0x001E, 0x003B, 0, 27, 0x20000000 | SPR_TAB_TOOLBAR, STR_CHEATS_TIP }, // Cheats + { WWT_TRNBTN, 0, 0x001E, 0x003B, 0, 27, 0x20000000 | SPR_TAB_TOOLBAR, STR_DEBUG_TIP }, // Debug + { WWT_TRNBTN, 3, 0x001E, 0x003B, 0, 27, 0x20000000 | SPR_TAB_TOOLBAR, STR_SCENARIO_OPTIONS_FINANCIAL_TIP },// Finances + { WWT_TRNBTN, 3, 0x001E, 0x003B, 0, 27, 0x20000000 | SPR_TAB_TOOLBAR, STR_FINANCES_RESEARCH_TIP }, // Research + { WWT_TRNBTN, 3, 0x001E, 0x003B, 0, 27, 0x20000000 | SPR_TAB_TOOLBAR, STR_SHOW_RECENT_MESSAGES_TIP }, // News + { WWT_TRNBTN, 0, 0x001E, 0x003B, 0, 27, 0x20000000 | SPR_TAB_TOOLBAR, STR_SHOW_MULTIPLAYER_STATUS_TIP }, // Network { WWT_EMPTY, 0, 0, 10-1, 0, 0, 0xFFFFFFFF, STR_NONE }, // Artificial widget separator { WIDGETS_END }, @@ -408,7 +408,7 @@ static void window_top_toolbar_mousedown(int widgetIndex, rct_window*w, rct_widg if (gConfigTwitch.channel != NULL && gConfigTwitch.channel[0] != 0) { _menuDropdownIncludesTwitch = true; gDropdownItemsFormat[12] = 0; - gDropdownItemsFormat[DDIDX_ENABLE_TWITCH] = 1156; + gDropdownItemsFormat[DDIDX_ENABLE_TWITCH] = STR_TOGGLE_OPTION; gDropdownItemsArgs[DDIDX_ENABLE_TWITCH] = STR_TWITCH_ENABLE; numItems = 14; } @@ -430,12 +430,12 @@ static void window_top_toolbar_mousedown(int widgetIndex, rct_window*w, rct_widg #endif break; case WIDX_CHEATS: - gDropdownItemsFormat[0] = 1156; + gDropdownItemsFormat[0] = STR_TOGGLE_OPTION; gDropdownItemsFormat[1] = 0; - gDropdownItemsFormat[2] = 1156; - gDropdownItemsFormat[3] = 1156; - gDropdownItemsFormat[4] = 1156; - gDropdownItemsArgs[0] = 5217; + gDropdownItemsFormat[2] = STR_TOGGLE_OPTION; + gDropdownItemsFormat[3] = STR_TOGGLE_OPTION; + gDropdownItemsFormat[4] = STR_TOGGLE_OPTION; + gDropdownItemsArgs[0] = STR_CHEAT_TITLE; gDropdownItemsArgs[2] = STR_ENABLE_SANDBOX_MODE; gDropdownItemsArgs[3] = STR_DISABLE_CLEARANCE_CHECKS; gDropdownItemsArgs[4] = STR_DISABLE_SUPPORT_LIMITS; @@ -462,12 +462,12 @@ static void window_top_toolbar_mousedown(int widgetIndex, rct_window*w, rct_widg top_toolbar_init_view_menu(w, widget); break; case WIDX_MAP: - gDropdownItemsFormat[0] = 2523; - gDropdownItemsFormat[1] = 2780; + gDropdownItemsFormat[0] = STR_SHORTCUT_SHOW_MAP; + gDropdownItemsFormat[1] = STR_EXTRA_VIEWPORT; numItems = 2; if ((gScreenFlags & SCREEN_FLAGS_SCENARIO_EDITOR) && gS6Info->editor_step == EDITOR_STEP_LANDSCAPE_EDITOR) { - gDropdownItemsFormat[2] = 2690; + gDropdownItemsFormat[2] = STR_MAPGEN_WINDOW_TITLE; numItems++; } @@ -795,7 +795,7 @@ static void window_top_toolbar_paint(rct_window *w, rct_drawpixelinfo *dpi) if (window_top_toolbar_widgets[WIDX_STAFF].type != WWT_EMPTY) { x = w->x + window_top_toolbar_widgets[WIDX_STAFF].left; y = w->y + window_top_toolbar_widgets[WIDX_STAFF].top; - imgId = 5627; + imgId = SPR_TOOLBAR_STAFF; if (widget_is_pressed(w, WIDX_STAFF)) imgId++; imgId |= (gStaffHandymanColour << 19) | 0xA0000000 | (gStaffMechanicColour << 24); @@ -836,7 +836,7 @@ static void window_top_toolbar_paint(rct_window *w, rct_drawpixelinfo *dpi) y = w->y + window_top_toolbar_widgets[WIDX_DEBUG].top - 1; if (widget_is_pressed(w, WIDX_DEBUG)) y++; - imgId = 5201; + imgId = SPR_TAB_GEARS_0; gfx_draw_sprite(dpi, imgId, x, y, 3); } @@ -2843,21 +2843,21 @@ static void window_top_toolbar_tool_abort(rct_window *w, int widgetIndex) void top_toolbar_init_fastforward_menu(rct_window* w, rct_widget* widget) { int num_items = 4; - gDropdownItemsFormat[0] = 1156; - gDropdownItemsFormat[1] = 1156; - gDropdownItemsFormat[2] = 1156; - gDropdownItemsFormat[3] = 1156; + gDropdownItemsFormat[0] = STR_TOGGLE_OPTION; + gDropdownItemsFormat[1] = STR_TOGGLE_OPTION; + gDropdownItemsFormat[2] = STR_TOGGLE_OPTION; + gDropdownItemsFormat[3] = STR_TOGGLE_OPTION; if (gConfigGeneral.debugging_tools) { gDropdownItemsFormat[4] = 0; - gDropdownItemsFormat[5] = 1156; - gDropdownItemsArgs[5] = 5146; + gDropdownItemsFormat[5] = STR_TOGGLE_OPTION; + gDropdownItemsArgs[5] = STR_SPEED_HYPER; num_items = 6; } - gDropdownItemsArgs[0] = 5142; - gDropdownItemsArgs[1] = 5143; - gDropdownItemsArgs[2] = 5144; - gDropdownItemsArgs[3] = 5145; + gDropdownItemsArgs[0] = STR_SPEED_NORMAL; + gDropdownItemsArgs[1] = STR_SPEED_QUICK; + gDropdownItemsArgs[2] = STR_SPEED_FAST; + gDropdownItemsArgs[3] = STR_SPEED_TURBO; window_dropdown_show_text( @@ -3010,18 +3010,18 @@ void top_toolbar_network_menu_dropdown(short dropdownIndex) * rct2: 0x0066CDE4 */ void top_toolbar_init_view_menu(rct_window* w, rct_widget* widget) { - gDropdownItemsFormat[0] = 1156; - gDropdownItemsFormat[1] = 1156; - gDropdownItemsFormat[2] = 1156; + gDropdownItemsFormat[0] = STR_TOGGLE_OPTION; + gDropdownItemsFormat[1] = STR_TOGGLE_OPTION; + gDropdownItemsFormat[2] = STR_TOGGLE_OPTION; gDropdownItemsFormat[3] = 0; - gDropdownItemsFormat[4] = 1156; - gDropdownItemsFormat[5] = 1156; - gDropdownItemsFormat[6] = 1156; - gDropdownItemsFormat[7] = 1156; + gDropdownItemsFormat[4] = STR_TOGGLE_OPTION; + gDropdownItemsFormat[5] = STR_TOGGLE_OPTION; + gDropdownItemsFormat[6] = STR_TOGGLE_OPTION; + gDropdownItemsFormat[7] = STR_TOGGLE_OPTION; gDropdownItemsFormat[8] = 0; - gDropdownItemsFormat[9] = 1156; - gDropdownItemsFormat[10] = 1156; - gDropdownItemsFormat[11] = 1156; + gDropdownItemsFormat[9] = STR_TOGGLE_OPTION; + gDropdownItemsFormat[10] = STR_TOGGLE_OPTION; + gDropdownItemsFormat[11] = STR_TOGGLE_OPTION; gDropdownItemsArgs[0] = STR_UNDERGROUND_VIEW; gDropdownItemsArgs[1] = STR_REMOVE_BASE_LAND; diff --git a/src/windows/track_list.c b/src/windows/track_list.c index 652f0e3c0a..4e2efec48e 100644 --- a/src/windows/track_list.c +++ b/src/windows/track_list.c @@ -43,10 +43,10 @@ static rct_widget window_track_list_widgets[] = { { WWT_FRAME, 0, 0, 599, 0, 399, 0xFFFFFFFF, STR_NONE }, { WWT_CAPTION, 0, 1, 598, 1, 14, STR_SELECT_DESIGN, STR_WINDOW_TITLE_TIP }, { WWT_CLOSEBOX, 0, 587, 597, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, - { WWT_SCROLL, 0, 4, 221, 33, 395, 2, STR_CLICK_ON_DESIGN_TO_BUILD_IT_TIP }, + { WWT_SCROLL, 0, 4, 221, 33, 395, SCROLL_VERTICAL, STR_CLICK_ON_DESIGN_TO_BUILD_IT_TIP }, { WWT_FLATBTN, 0, 224, 595, 18, 236, 0xFFFFFFFF, STR_NONE }, { WWT_FLATBTN, 0, 574, 597, 374, 397, SPR_ROTATE_ARROW, STR_ROTATE_90_TIP }, - { WWT_FLATBTN, 0, 574, 597, 350, 373, 5171, STR_TOGGLE_SCENERY_TIP }, + { WWT_FLATBTN, 0, 574, 597, 350, 373, SPR_SCENERY, STR_TOGGLE_SCENERY_TIP }, { WWT_13, 0, 4, 221, 18, 29, STR_SELECT_OTHER_RIDE, STR_NONE }, { WIDGETS_END }, }; @@ -342,10 +342,10 @@ static void window_track_list_invalidate(rct_window *w) set_format_arg(0, uint16, stringId); if (gScreenFlags & SCREEN_FLAGS_TRACK_MANAGER) { - window_track_list_widgets[WIDX_TITLE].image = STR_TRACK_DESIGNS; + window_track_list_widgets[WIDX_TITLE].text = STR_TRACK_DESIGNS; window_track_list_widgets[WIDX_TRACK_LIST].tooltip = STR_CLICK_ON_DESIGN_TO_RENAME_OR_DELETE_IT; } else { - window_track_list_widgets[WIDX_TITLE].image = STR_SELECT_DESIGN; + window_track_list_widgets[WIDX_TITLE].text = STR_SELECT_DESIGN; window_track_list_widgets[WIDX_TRACK_LIST].tooltip = STR_CLICK_ON_DESIGN_TO_BUILD_IT_TIP; } @@ -571,7 +571,7 @@ static void window_track_list_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, if (listIndex == w->selected_list_item) { // Highlight gfx_fill_rect(dpi, x, y, w->width, y + 9, 0x2000000 | 49); - stringId = STR_WINDOW_COLOUR_2_STRING; + stringId = STR_WINDOW_COLOUR_2_STRINGID; } else { stringId = STR_BLACK_STRING; } @@ -588,7 +588,7 @@ static void window_track_list_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, if (listIndex == w->selected_list_item) { // Highlight gfx_fill_rect(dpi, x, y, w->width, y + 9, 0x2000000 | 49); - stringId = STR_WINDOW_COLOUR_2_STRING; + stringId = STR_WINDOW_COLOUR_2_STRINGID; } else { stringId = STR_BLACK_STRING; } diff --git a/src/windows/track_manage.c b/src/windows/track_manage.c index 39ca3660ac..592f0ad3ef 100644 --- a/src/windows/track_manage.c +++ b/src/windows/track_manage.c @@ -167,6 +167,7 @@ void window_track_manage_open(track_design_file_ref *tdFileRef) trackDesignListWindow->track_list.var_484 |= 1; } + // TODO: 3155 appears to be empty. What is this supposed to do? utf8 *title = (utf8*)language_get_string(3155); format_string(title, STR_TRACK_LIST_NAME_FORMAT, &tdFileRef->name); diff --git a/src/windows/track_place.c b/src/windows/track_place.c index ac39c338ed..8a7044dbe8 100644 --- a/src/windows/track_place.c +++ b/src/windows/track_place.c @@ -49,7 +49,7 @@ static rct_widget window_track_place_widgets[] = { { WWT_CAPTION, 0, 1, 198, 1, 14, 3155, STR_WINDOW_TITLE_TIP }, { WWT_CLOSEBOX, 0, 187, 197, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, { WWT_FLATBTN, 0, 173, 196, 83, 106, SPR_ROTATE_ARROW, STR_ROTATE_90_TIP }, - { WWT_FLATBTN, 0, 173, 196, 59, 82, 5170, STR_MIRROR_IMAGE_TIP }, + { WWT_FLATBTN, 0, 173, 196, 59, 82, SPR_MIRROR_ARROW, STR_MIRROR_IMAGE_TIP }, { WWT_DROPDOWN_BUTTON, 0, 4, 195, 109, 120, STR_SELECT_A_DIFFERENT_DESIGN, STR_GO_BACK_TO_DESIGN_SELECTION_WINDOW_TIP }, { WWT_EMPTY, 0, 0, 0, 0, 0, 0xFFFFFFFF, STR_NONE }, { WIDGETS_END }, @@ -169,6 +169,7 @@ void window_track_place_open(const track_design_file_ref *tdFileRef) _currentTrackPieceDirection = (2 - get_current_rotation()) & 3; window_track_place_draw_mini_preview(td6); + // TODO: 3155 appears to be empty. What is this supposed to do? char *title = (char*)language_get_string(3155); format_string(title, STR_TRACK_LIST_NAME_FORMAT, &td6->name); @@ -340,7 +341,7 @@ static void window_track_place_tooldown(rct_window* w, int widgetIndex, int x, i } // Check if player did not have enough funds - if (gGameCommandErrorText == 827) + if (gGameCommandErrorText == STR_NOT_ENOUGH_CASH_REQUIRES) break; mapZ += 8; diff --git a/src/windows/viewport.c b/src/windows/viewport.c index 611fcf8f31..d988abc91f 100644 --- a/src/windows/viewport.c +++ b/src/windows/viewport.c @@ -42,8 +42,8 @@ enum { static rct_widget window_viewport_widgets[] = { { WWT_FRAME, 0, 0, 0, 0, 0, 0xFFFFFFFF, STR_NONE }, // panel / background - { WWT_CAPTION, 0, 1, 0, 1, 14, 2779, STR_WINDOW_TITLE_TIP }, // title bar - { WWT_CLOSEBOX, 0, 0, 0, 2, 13, 0x338, STR_CLOSE_WINDOW_TIP }, // close x button + { WWT_CAPTION, 0, 1, 0, 1, 14, STR_VIEWPORT_NO, STR_WINDOW_TITLE_TIP }, // title bar + { WWT_CLOSEBOX, 0, 0, 0, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // close x button { WWT_RESIZE, 1, 0, 0, 14, 0, 0xFFFFFFFF, STR_NONE }, // resize { WWT_VIEWPORT, 0, 3, 0, 17, 0, 0xFFFFFFFF, STR_NONE }, // viewport diff --git a/src/windows/water.c b/src/windows/water.c index e4e833e772..7d57c99915 100644 --- a/src/windows/water.c +++ b/src/windows/water.c @@ -36,9 +36,9 @@ enum WINDOW_WATER_WIDGET_IDX { }; static rct_widget window_water_widgets[] = { - { WWT_FRAME, 0, 0, 75, 0, 76, -1, STR_NONE }, // panel / background + { WWT_FRAME, 0, 0, 75, 0, 76, 0xFFFFFFFF, STR_NONE }, // panel / background { WWT_CAPTION, 0, 1, 74, 1, 14, STR_WATER, STR_WINDOW_TITLE_TIP }, // title bar - { WWT_CLOSEBOX, 0, 63, 73, 2, 13, 824, STR_CLOSE_WINDOW_TIP }, // close x button + { WWT_CLOSEBOX, 0, 63, 73, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // close x button { WWT_IMGBTN, 0, 16, 59, 17, 48, SPR_LAND_TOOL_SIZE_0, STR_NONE }, // preview box { WWT_TRNBTN, 2, 17, 32, 18, 33, 0x20000000 | SPR_LAND_TOOL_DECREASE, STR_ADJUST_SMALLER_WATER_TIP }, // decrement size { WWT_TRNBTN, 2, 43, 58, 32, 47, 0x20000000 | SPR_LAND_TOOL_INCREASE, STR_ADJUST_LARGER_WATER_TIP }, // increment size @@ -236,12 +236,12 @@ static void window_water_paint(rct_window *w, rct_drawpixelinfo *dpi) x = (window_water_widgets[WIDX_PREVIEW].left + window_water_widgets[WIDX_PREVIEW].right) / 2 + w->x; y = window_water_widgets[WIDX_PREVIEW].bottom + w->y + 5; if (gWaterToolRaiseCost != MONEY32_UNDEFINED && gWaterToolRaiseCost != 0) - gfx_draw_string_centred(dpi, 984, x, y, 0, &gWaterToolRaiseCost); + gfx_draw_string_centred(dpi, STR_RAISE_COST_AMOUNT, x, y, 0, &gWaterToolRaiseCost); y += 10; // Draw lower cost amount if (gWaterToolLowerCost != MONEY32_UNDEFINED && gWaterToolLowerCost != 0) - gfx_draw_string_centred(dpi, 985, x, y, 0, &gWaterToolLowerCost); + gfx_draw_string_centred(dpi, STR_LOWER_COST_AMOUNT, x, y, 0, &gWaterToolLowerCost); } diff --git a/src/world/banner.c b/src/world/banner.c index 82c640b9c0..6a37af0472 100644 --- a/src/world/banner.c +++ b/src/world/banner.c @@ -60,7 +60,7 @@ int create_new_banner(uint8 flags) banner->flags = 0; banner->type = 0; - banner->string_idx = 778; + banner->string_idx = STR_DEFAULT_SIGN; banner->colour = 2; banner->text_colour = 2; } diff --git a/src/world/map.c b/src/world/map.c index 682a0cb96a..9bf160ee90 100644 --- a/src/world/map.c +++ b/src/world/map.c @@ -3474,7 +3474,7 @@ void game_command_place_fence(int* eax, int* ebx, int* ecx, int* edx, int* esi, RCT2_GLOBAL(0x00141F722, uint8) = position.z / 8; if (bp & 0xC0){ if (fence->wall.flags & WALL_SCENERY_FLAG3){ - gGameCommandErrorText = 3133; + gGameCommandErrorText = STR_ERR_UNABLE_TO_BUILD_THIS_ON_SLOPE; *ebx = MONEY32_UNDEFINED; return; } @@ -3985,7 +3985,7 @@ int sub_68B044() if (gNextFreeMapElement <= gMapElements + MAX_MAP_ELEMENTS) return 1; else{ - gGameCommandErrorText = 894; + gGameCommandErrorText = STR_ERR_LANDSCAPE_DATA_AREA_FULL; return 0; } } @@ -4949,7 +4949,7 @@ money32 place_park_entrance(int flags, sint16 x, sint16 y, sint16 z, uint8 direc } if (x <= 32 || y <= 32 || x >= (gMapSizeUnits - 32) || y >= (gMapSizeUnits - 32)) { - gGameCommandErrorText = 3215; + gGameCommandErrorText = STR_TOO_CLOSE_TO_EDGE_OF_MAP; return MONEY32_UNDEFINED; } @@ -4962,7 +4962,7 @@ money32 place_park_entrance(int flags, sint16 x, sint16 y, sint16 z, uint8 direc } if (entranceNum == -1) { - gGameCommandErrorText = 3227; + gGameCommandErrorText = STR_ERR_TOO_MANY_PARK_ENTRANCES; return MONEY32_UNDEFINED; } @@ -5157,7 +5157,7 @@ void game_command_set_banner_name(int* eax, int* ebx, int* ecx, int* edx, int* e window_invalidate(w); } } else { - gGameCommandErrorText = 2984; + gGameCommandErrorText = STR_ERR_CANT_SET_BANNER_TEXT; *ebx = MONEY32_UNDEFINED; return; } @@ -5210,7 +5210,7 @@ void game_command_set_sign_name(int* eax, int* ebx, int* ecx, int* edx, int* esi banner->flags &= ~(BANNER_FLAG_2); gfx_invalidate_screen(); } else { - gGameCommandErrorText = 2984; + gGameCommandErrorText = STR_ERR_CANT_SET_BANNER_TEXT; *ebx = MONEY32_UNDEFINED; return; } @@ -5226,7 +5226,7 @@ void game_command_set_sign_name(int* eax, int* ebx, int* ecx, int* edx, int* esi banner->flags |= BANNER_FLAG_2; rct_string_id prev_string_id = banner->string_idx; - banner->string_idx = 778; + banner->string_idx = STR_DEFAULT_SIGN; user_string_free(prev_string_id); gfx_invalidate_screen(); } @@ -5302,7 +5302,7 @@ void game_command_set_banner_style(int* eax, int* ebx, int* ecx, int* edx, int* window_invalidate(w); } } else { - gGameCommandErrorText = 2984; + gGameCommandErrorText = STR_ERR_CANT_SET_BANNER_TEXT; *ebx = MONEY32_UNDEFINED; return; } @@ -5356,7 +5356,7 @@ void game_command_set_sign_style(int* eax, int* ebx, int* ecx, int* edx, int* es } else { // large sign rct_map_element *mapElement = banner_get_map_element(bannerId); if (mapElement == NULL || map_element_get_type(mapElement) != MAP_ELEMENT_TYPE_SCENERY_MULTIPLE) { - gGameCommandErrorText = 2984; + gGameCommandErrorText = STR_ERR_CANT_SET_BANNER_TEXT; *ebx = MONEY32_UNDEFINED; return; } diff --git a/src/world/park.c b/src/world/park.c index 453fca07f0..5200b8a3c7 100644 --- a/src/world/park.c +++ b/src/world/park.c @@ -78,7 +78,7 @@ void park_init() int i; RCT2_GLOBAL(0x013CA740, uint8) = 0; - gParkName = 777; + gParkName = STR_UNNAMED_PARK; gStaffHandymanColour = COLOUR_BRIGHT_RED; gStaffMechanicColour = COLOUR_LIGHT_BLUE; gStaffSecurityColour = COLOUR_YELLOW; diff --git a/src/world/sprite.h b/src/world/sprite.h index f40deb3b34..e338894490 100644 --- a/src/world/sprite.h +++ b/src/world/sprite.h @@ -68,7 +68,7 @@ typedef struct rct_unk_sprite { sint16 sprite_bottom; // 0x1C uint8 sprite_direction; //direction of sprite? 0x1e uint8 pad_1F[3]; // 0x1f - uint16 name_string_idx; // 0x22 + rct_string_id name_string_idx; // 0x22 uint16 var_24; uint16 frame; // 0x26 uint8 var_28[3];