diff --git a/data/language/en-GB.txt b/data/language/en-GB.txt index 78d75c204b..184b51562d 100644 --- a/data/language/en-GB.txt +++ b/data/language/en-GB.txt @@ -1777,8 +1777,8 @@ STR_1771 :{POP16}{POP16}{POP16}{POP16}{POP16}{POP16}{POP16}{POP16}{POP16}{COM STR_1772 :{COMMA16} STR_1773 :Only one on-ride photo section allowed per ride STR_1774 :Only one cable lift hill allowed per ride -STR_1775 :Off -STR_1776 :On +STR_1775 : +STR_1776 : STR_1777 :{WINDOW_COLOUR_2}Ride music STR_1778 :{STRINGID} - - STR_1779 :{INLINE_SPRITE}{254}{19}{00}{00} Panda costume diff --git a/src/openrct2-ui/windows/Options.cpp b/src/openrct2-ui/windows/Options.cpp index 8cfe03b8bb..a65dc60646 100644 --- a/src/openrct2-ui/windows/Options.cpp +++ b/src/openrct2-ui/windows/Options.cpp @@ -15,11 +15,8 @@ #pragma endregion /** - * To better group the options together and allow the window to be scalable with additional OpenRCT2 options, the window has - * been changed to a tab interface similar to the options window seen in Locomotion. - * - * TODO Some parts, particularly the string handling and order of widgets needs reorganising. - * Padding between the widgets and the window needs reducing, an artifact from originally being inside group boxes. + * To better group the options together and allow the window to be scalable with additional OpenRCT2 options, + * the window has been changed to a tab interface similar to the options window seen in Locomotion. */ #include @@ -130,6 +127,7 @@ enum WINDOW_OPTIONS_WIDGET_IDX { WIDX_SOUND_CHECKBOX, WIDX_MUSIC_CHECKBOX, WIDX_AUDIO_FOCUS_CHECKBOX, + WIDX_TITLE_MUSIC_LABEL, WIDX_TITLE_MUSIC, WIDX_TITLE_MUSIC_DROPDOWN, WIDX_SOUND_VOLUME, @@ -221,7 +219,7 @@ static rct_widget window_options_display_widgets[] = { MAIN_OPTIONS_WIDGETS, { WWT_GROUPBOX, 1, 5, 304, 53, 207, STR_HARDWARE_GROUP, STR_NONE }, // Hardware group - { WWT_DROPDOWN, 1, 155, 299, 68, 79, STR_ARG_12_STRINGID, STR_NONE }, // Fullscreen + { WWT_DROPDOWN, 1, 155, 299, 68, 79, STR_NONE, STR_NONE }, // Fullscreen { WWT_BUTTON, 1, 288, 298, 69, 78, STR_DROPDOWN_GLYPH, STR_FULLSCREEN_MODE_TIP }, { WWT_DROPDOWN, 1, 155, 299, 83, 94, STR_ARG_16_RESOLUTION_X_BY_Y, STR_NONE }, // Resolution @@ -267,15 +265,15 @@ static rct_widget window_options_rendering_widgets[] = { static rct_widget window_options_culture_widgets[] = { MAIN_OPTIONS_WIDGETS, - { WWT_DROPDOWN, 1, 155, 299, 53, 64, STR_NONE, STR_NONE }, // language + { WWT_DROPDOWN, 1, 155, 299, 53, 64, STR_STRING, STR_NONE }, // language { WWT_BUTTON, 1, 288, 298, 54, 63, STR_DROPDOWN_GLYPH, STR_LANGUAGE_TIP }, - { WWT_DROPDOWN, 1, 155, 299, 68, 79, STR_ARG_12_STRINGID, STR_NONE }, // Currency + { WWT_DROPDOWN, 1, 155, 299, 68, 79, STR_NONE, STR_NONE }, // Currency { WWT_BUTTON, 1, 288, 298, 69, 78, STR_DROPDOWN_GLYPH, STR_CURRENCY_TIP }, - { WWT_DROPDOWN, 1, 155, 299, 83, 94, STR_ARG_14_STRINGID, STR_NONE }, // Distance and speed + { WWT_DROPDOWN, 1, 155, 299, 83, 94, STR_NONE, STR_NONE }, // Distance and speed { WWT_BUTTON, 1, 288, 298, 84, 93, STR_DROPDOWN_GLYPH, STR_DISTANCE_AND_SPEED_TIP }, - { WWT_DROPDOWN, 1, 155, 299, 98, 110, STR_ARG_20_STRINGID, STR_NONE }, // Temperature + { WWT_DROPDOWN, 1, 155, 299, 98, 110, STR_NONE, STR_NONE }, // Temperature { WWT_BUTTON, 1, 288, 298, 99, 108, STR_DROPDOWN_GLYPH, STR_TEMPERATURE_FORMAT_TIP }, - { WWT_DROPDOWN, 1, 155, 299, 113, 124, STR_ARG_6_STRINGID, STR_NONE }, // Height labels + { WWT_DROPDOWN, 1, 155, 299, 113, 124, STR_NONE, STR_NONE }, // Height labels { WWT_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_BUTTON, 1, 288, 298, 129, 138, STR_DROPDOWN_GLYPH, STR_DATE_FORMAT_TIP }, @@ -289,6 +287,7 @@ static rct_widget window_options_audio_widgets[] = { { 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, 299, 98, 110, STR_AUDIO_FOCUS, STR_AUDIO_FOCUS_TIP }, // Enable / disable audio disabled on focus lost + { WWT_LABEL, 1, 10, 154, 113, 125, STR_OPTIONS_MUSIC_LABEL,STR_NONE }, // Title music label { WWT_DROPDOWN, 1, 155, 299, 112, 124, STR_NONE, STR_NONE }, // Title music { WWT_BUTTON, 1, 288, 298, 113, 123, STR_DROPDOWN_GLYPH, STR_TITLE_MUSIC_TIP }, { WWT_SCROLL, 1, 155, 299, 68, 80, SCROLL_HORIZONTAL, STR_NONE }, // Sound effect volume @@ -308,7 +307,7 @@ static rct_widget window_options_controls_and_interface_widgets[] = { #undef CONTROLS_GROUP_START #define THEMES_GROUP_START 148 { WWT_GROUPBOX, 1, 5, 304, THEMES_GROUP_START + 0, THEMES_GROUP_START + 47, STR_THEMES_GROUP, STR_NONE }, // Toolbar buttons group - { WWT_DROPDOWN, 1, 155, 299, THEMES_GROUP_START + 14, THEMES_GROUP_START + 25, STR_NONE, STR_NONE }, // Themes + { WWT_DROPDOWN, 1, 155, 299, THEMES_GROUP_START + 14, THEMES_GROUP_START + 25, STR_STRING, STR_NONE }, // Themes { WWT_BUTTON, 1, 288, 298, THEMES_GROUP_START + 15, THEMES_GROUP_START + 24, STR_DROPDOWN_GLYPH, STR_CURRENT_THEME_TIP }, { WWT_BUTTON, 1, 155, 299, THEMES_GROUP_START + 30, THEMES_GROUP_START + 42, STR_EDIT_THEMES_BUTTON, STR_EDIT_THEMES_BUTTON_TIP }, // Themes button #undef THEMES_GROUP_START @@ -327,7 +326,7 @@ static rct_widget window_options_misc_widgets[] = { MAIN_OPTIONS_WIDGETS, #define TITLE_SEQUENCE_START 53 { WWT_GROUPBOX, 1, 5, 304, TITLE_SEQUENCE_START + 0, TITLE_SEQUENCE_START + 49, STR_OPTIONS_TITLE_SEQUENCE, STR_NONE }, - { WWT_DROPDOWN, 1, 135, 299, TITLE_SEQUENCE_START + 15, TITLE_SEQUENCE_START + 26, STR_NONE, STR_NONE }, // Title sequence dropdown + { WWT_DROPDOWN, 1, 135, 299, TITLE_SEQUENCE_START + 15, TITLE_SEQUENCE_START + 26, STR_STRING, STR_NONE }, // Title sequence dropdown { WWT_BUTTON, 1, 288, 298, TITLE_SEQUENCE_START + 16, TITLE_SEQUENCE_START + 25, STR_DROPDOWN_GLYPH, STR_TITLE_SEQUENCE_TIP }, // Title sequence dropdown button { WWT_BUTTON, 1, 135, 299, TITLE_SEQUENCE_START + 30, TITLE_SEQUENCE_START + 42, STR_EDIT_TITLE_SEQUENCES_BUTTON, STR_EDIT_TITLE_SEQUENCES_BUTTON_TIP }, // Edit title sequences button #undef TITLE_SEQUENCE_START @@ -1536,9 +1535,10 @@ static void window_options_invalidate(rct_window *w) switch (w->page) { case WINDOW_OPTIONS_PAGE_DISPLAY: + { + // Resolution dropdown caption. set_format_arg(16, uint16, (uint16)gConfigGeneral.fullscreen_width); set_format_arg(18, uint16, (uint16)gConfigGeneral.fullscreen_height); - set_format_arg(12, rct_string_id, window_options_fullscreen_mode_names[gConfigGeneral.fullscreen_mode]); // Disable resolution dropdown on "Windowed" and "Fullscreen (desktop)" if (gConfigGeneral.fullscreen_mode != static_cast(OpenRCT2::Ui::FULLSCREEN_MODE::FULLSCREEN)) @@ -1592,19 +1592,13 @@ static void window_options_invalidate(rct_window *w) widget_set_checkbox_value(w, WIDX_MINIMIZE_FOCUS_LOSS, gConfigGeneral.minimize_fullscreen_focus_loss); widget_set_checkbox_value(w, WIDX_STEAM_OVERLAY_PAUSE, gConfigGeneral.steam_overlay_pause); + // Dropdown captions for straightforward strings. + window_options_display_widgets[WIDX_FULLSCREEN].text = window_options_fullscreen_mode_names[gConfigGeneral.fullscreen_mode]; + window_options_display_widgets[WIDX_DRAWING_ENGINE].text = DrawingEngineStringIds[gConfigGeneral.drawing_engine]; window_options_display_widgets[WIDX_SCALE_QUALITY].text = window_options_scale_quality_names[gConfigGeneral.scale_quality - 1]; - window_options_display_widgets[WIDX_RESOLUTION].type = WWT_DROPDOWN; - window_options_display_widgets[WIDX_RESOLUTION_DROPDOWN].type = WWT_BUTTON; - window_options_display_widgets[WIDX_FULLSCREEN].type = WWT_DROPDOWN; - window_options_display_widgets[WIDX_FULLSCREEN_DROPDOWN].type = WWT_BUTTON; - window_options_display_widgets[WIDX_DRAWING_ENGINE].type = WWT_DROPDOWN; - window_options_display_widgets[WIDX_DRAWING_ENGINE_DROPDOWN].type = WWT_BUTTON; - window_options_display_widgets[WIDX_UNCAP_FPS_CHECKBOX].type = WWT_CHECKBOX; - window_options_display_widgets[WIDX_SHOW_FPS_CHECKBOX].type = WWT_CHECKBOX; - window_options_display_widgets[WIDX_MINIMIZE_FOCUS_LOSS].type = WWT_CHECKBOX; - window_options_display_widgets[WIDX_STEAM_OVERLAY_PAUSE].type = WWT_CHECKBOX; break; + } case WINDOW_OPTIONS_PAGE_RENDERING: { @@ -1636,63 +1630,76 @@ static void window_options_invalidate(rct_window *w) widget_set_checkbox_value(w, WIDX_SHOW_GUEST_PURCHASES_CHECKBOX, gConfigGeneral.show_guest_purchases); - window_options_rendering_widgets[WIDX_TILE_SMOOTHING_CHECKBOX].type = WWT_CHECKBOX; - window_options_rendering_widgets[WIDX_GRIDLINES_CHECKBOX].type = WWT_CHECKBOX; - window_options_rendering_widgets[WIDX_VIRTUAL_FLOOR_CHECKBOX].type = WWT_CHECKBOX; - window_options_rendering_widgets[WIDX_DAY_NIGHT_CHECKBOX].type = WWT_CHECKBOX; - window_options_rendering_widgets[WIDX_ENABLE_LIGHT_FX_CHECKBOX].type = WWT_CHECKBOX; - window_options_rendering_widgets[WIDX_UPPER_CASE_BANNERS_CHECKBOX].type = WWT_CHECKBOX; - window_options_rendering_widgets[WIDX_RENDER_WEATHER_EFFECTS_CHECKBOX].type = WWT_CHECKBOX; - window_options_rendering_widgets[WIDX_DISABLE_LIGHTNING_EFFECT_CHECKBOX].type = WWT_CHECKBOX; - window_options_rendering_widgets[WIDX_SHOW_GUEST_PURCHASES_CHECKBOX].type = WWT_CHECKBOX; break; } case WINDOW_OPTIONS_PAGE_CULTURE: - // currency: pounds, dollars, etc. (10 total) - set_format_arg(12, rct_string_id, CurrencyDescriptors[gConfigGeneral.currency_format].stringId); + // Language + set_format_arg(0, char*, LanguagesDescriptors[gCurrentLanguage].native_name); - // distance: metric / imperial / si + // Currency: pounds, dollars, etc. (10 total) + window_options_culture_widgets[WIDX_CURRENCY].text = CurrencyDescriptors[gConfigGeneral.currency_format].stringId; + + // Distance: metric / imperial / si { rct_string_id stringId; - switch (gConfigGeneral.measurement_format) { + switch (gConfigGeneral.measurement_format) + { default: case MEASUREMENT_FORMAT_IMPERIAL: stringId = STR_IMPERIAL; break; case MEASUREMENT_FORMAT_METRIC: stringId = STR_METRIC; break; case MEASUREMENT_FORMAT_SI: stringId = STR_SI; break; } - set_format_arg(14, rct_string_id, stringId); + window_options_culture_widgets[WIDX_DISTANCE].text = stringId; } - // temperature: celsius/fahrenheit - set_format_arg(20, rct_string_id, (gConfigGeneral.temperature_format == TEMPERATURE_FORMAT_F) ? STR_FAHRENHEIT : STR_CELSIUS); + // Date format + window_options_culture_widgets[WIDX_DATE_FORMAT].text = DateFormatStringIds[gConfigGeneral.date_format]; - // height: units/real values - set_format_arg(6, rct_string_id, gConfigGeneral.show_height_as_units ? STR_UNITS : STR_REAL_VALUES); + // Temperature: celsius/fahrenheit + window_options_culture_widgets[WIDX_TEMPERATURE].text = gConfigGeneral.temperature_format == TEMPERATURE_FORMAT_F ? STR_FAHRENHEIT : STR_CELSIUS; + + // Height: units/real values + window_options_culture_widgets[WIDX_HEIGHT_LABELS].text = 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_BUTTON; - window_options_culture_widgets[WIDX_CURRENCY].type = WWT_DROPDOWN; - window_options_culture_widgets[WIDX_CURRENCY_DROPDOWN].type = WWT_BUTTON; - window_options_culture_widgets[WIDX_DISTANCE].type = WWT_DROPDOWN; - window_options_culture_widgets[WIDX_DISTANCE_DROPDOWN].type = WWT_BUTTON; - window_options_culture_widgets[WIDX_TEMPERATURE].type = WWT_DROPDOWN; - window_options_culture_widgets[WIDX_TEMPERATURE_DROPDOWN].type = WWT_BUTTON; - window_options_culture_widgets[WIDX_HEIGHT_LABELS].type = WWT_DROPDOWN; - window_options_culture_widgets[WIDX_HEIGHT_LABELS_DROPDOWN].type = WWT_BUTTON; - window_options_culture_widgets[WIDX_DATE_FORMAT].type = WWT_DROPDOWN; - window_options_culture_widgets[WIDX_DATE_FORMAT_DROPDOWN].type = WWT_BUTTON; break; case WINDOW_OPTIONS_PAGE_AUDIO: - // music: on/off - set_format_arg(8, rct_string_id, gConfigSound.ride_music_enabled ? STR_OPTIONS_RIDE_MUSIC_ON : STR_OPTIONS_RIDE_MUSIC_OFF); + { + // Sound device + rct_string_id audioDeviceStringId = STR_OPTIONS_SOUND_VALUE_DEFAULT; + const char* audioDeviceName = nullptr; + if (gAudioCurrentDevice == -1) + { + audioDeviceStringId = STR_SOUND_NONE; + } + else + { + audioDeviceStringId = STR_STRING; +#ifndef __linux__ + if (gAudioCurrentDevice == 0) + { + audioDeviceStringId = STR_OPTIONS_SOUND_VALUE_DEFAULT; + } +#endif // __linux__ + if (audioDeviceStringId == STR_STRING) + { + audioDeviceName = gAudioDevices[gAudioCurrentDevice].name; + } + } + + window_options_audio_widgets[WIDX_SOUND].text = audioDeviceStringId; + set_format_arg(0, char*, audioDeviceName); + + window_options_audio_widgets[WIDX_TITLE_MUSIC].text = window_options_title_music_names[gConfigSound.title_music]; widget_set_checkbox_value(w, WIDX_SOUND_CHECKBOX, gConfigSound.sound_enabled); widget_set_checkbox_value(w, WIDX_MUSIC_CHECKBOX, gConfigSound.ride_music_enabled); widget_set_checkbox_value(w, WIDX_AUDIO_FOCUS_CHECKBOX, gConfigSound.audio_focus); - if(w->frame_no == 0){ // initialize only on first frame, otherwise the scrollbars wont be able to be modified + // Initialize only on first frame, otherwise the scrollbars wont be able to be modified + if (w->frame_no == 0) + { widget = &window_options_audio_widgets[WIDX_SOUND_VOLUME]; w->scrolls[0].h_left = (sint16)ceil((gConfigSound.sound_volume / 100.0f) * (w->scrolls[0].h_right - ((widget->right - widget->left) - 1))); widget = &window_options_audio_widgets[WIDX_MUSIC_VOLUME]; @@ -1701,19 +1708,11 @@ static void window_options_invalidate(rct_window *w) widget_scroll_update_thumbs(w, WIDX_SOUND_VOLUME); widget_scroll_update_thumbs(w, WIDX_MUSIC_VOLUME); - - window_options_audio_widgets[WIDX_SOUND].type = WWT_DROPDOWN; - window_options_audio_widgets[WIDX_SOUND_DROPDOWN].type = WWT_BUTTON; - window_options_audio_widgets[WIDX_SOUND_CHECKBOX].type = WWT_CHECKBOX; - window_options_audio_widgets[WIDX_MUSIC_CHECKBOX].type = WWT_CHECKBOX; - window_options_audio_widgets[WIDX_AUDIO_FOCUS_CHECKBOX].type = WWT_CHECKBOX; - window_options_audio_widgets[WIDX_TITLE_MUSIC].type = WWT_DROPDOWN; - window_options_audio_widgets[WIDX_TITLE_MUSIC_DROPDOWN].type = WWT_BUTTON; - window_options_audio_widgets[WIDX_SOUND_VOLUME].type = WWT_SCROLL; - window_options_audio_widgets[WIDX_MUSIC_VOLUME].type = WWT_SCROLL; - break; + } + break; case WINDOW_OPTIONS_PAGE_CONTROLS_AND_INTERFACE: + { widget_set_checkbox_value(w, WIDX_SCREEN_EDGE_SCROLLING, gConfigGeneral.edge_scrolling); widget_set_checkbox_value(w, WIDX_TRAP_CURSOR, gConfigGeneral.trap_cursor); widget_set_checkbox_value(w, WIDX_INVERT_DRAG, gConfigGeneral.invert_viewport_drag); @@ -1724,20 +1723,18 @@ static void window_options_invalidate(rct_window *w) widget_set_checkbox_value(w, WIDX_TOOLBAR_SHOW_NEWS, gConfigInterface.toolbar_show_news); widget_set_checkbox_value(w, WIDX_TOOLBAR_SHOW_MUTE, gConfigInterface.toolbar_show_mute); - window_options_controls_and_interface_widgets[WIDX_THEMES].type = WWT_DROPDOWN; - window_options_controls_and_interface_widgets[WIDX_THEMES_DROPDOWN].type = WWT_BUTTON; - window_options_controls_and_interface_widgets[WIDX_THEMES_BUTTON].type = WWT_BUTTON; - window_options_controls_and_interface_widgets[WIDX_SCREEN_EDGE_SCROLLING].type = WWT_CHECKBOX; - window_options_controls_and_interface_widgets[WIDX_TRAP_CURSOR].type = WWT_CHECKBOX; - window_options_controls_and_interface_widgets[WIDX_HOTKEY_DROPDOWN].type = WWT_BUTTON; - window_options_controls_and_interface_widgets[WIDX_TOOLBAR_SHOW_FINANCES].type = WWT_CHECKBOX; - window_options_controls_and_interface_widgets[WIDX_TOOLBAR_SHOW_RESEARCH].type = WWT_CHECKBOX; - window_options_controls_and_interface_widgets[WIDX_TOOLBAR_SHOW_CHEATS].type = WWT_CHECKBOX; - window_options_controls_and_interface_widgets[WIDX_TOOLBAR_SHOW_NEWS].type = WWT_CHECKBOX; - window_options_controls_and_interface_widgets[WIDX_TOOLBAR_SHOW_MUTE].type = WWT_CHECKBOX; + size_t activeAvailableThemeIndex = theme_manager_get_active_available_theme_index(); + const utf8 * activeThemeName = theme_manager_get_available_theme_name(activeAvailableThemeIndex); + set_format_arg(0, uintptr_t, (uintptr_t)activeThemeName); + break; + } case WINDOW_OPTIONS_PAGE_MISC: + { + const utf8 * name = title_sequence_manager_get_name(title_get_config_sequence()); + set_format_arg(0, uintptr_t, (uintptr_t)name); + // The real name setting of clients is fixed to that of the server // and the server cannot change the setting during gameplay to prevent desyncs if (network_get_mode() != NETWORK_MODE_NONE) { @@ -1750,14 +1747,10 @@ static void window_options_invalidate(rct_window *w) widget_set_checkbox_value(w, WIDX_AUTO_OPEN_SHOPS, gConfigGeneral.auto_open_shops); widget_set_checkbox_value(w, WIDX_ALLOW_EARLY_COMPLETION, gConfigGeneral.allow_early_completion); - window_options_misc_widgets[WIDX_REAL_NAME_CHECKBOX].type = WWT_CHECKBOX; - window_options_misc_widgets[WIDX_AUTO_STAFF_PLACEMENT].type = WWT_CHECKBOX; - window_options_misc_widgets[WIDX_AUTO_OPEN_SHOPS].type = WWT_CHECKBOX; - window_options_misc_widgets[WIDX_ALLOW_EARLY_COMPLETION].type = WWT_CHECKBOX; - - window_options_misc_widgets[WIDX_TITLE_SEQUENCE].type = WWT_DROPDOWN; - window_options_misc_widgets[WIDX_TITLE_SEQUENCE_DROPDOWN].type = WWT_BUTTON; - window_options_misc_widgets[WIDX_TITLE_SEQUENCE_BUTTON].type = WWT_BUTTON; + if (gConfigGeneral.scenario_select_mode == SCENARIO_SELECT_MODE_DIFFICULTY) + window_options_misc_widgets[WIDX_SCENARIO_GROUPING].text = STR_OPTIONS_SCENARIO_DIFFICULTY; + else + window_options_misc_widgets[WIDX_SCENARIO_GROUPING].text = STR_OPTIONS_SCENARIO_ORIGIN; widget_set_checkbox_value(w, WIDX_SCENARIO_UNLOCKING, gConfigGeneral.scenario_unlocking_enabled); @@ -1767,12 +1760,10 @@ static void window_options_invalidate(rct_window *w) w->disabled_widgets |= (1ULL << WIDX_SCENARIO_UNLOCKING); } - window_options_controls_and_interface_widgets[WIDX_SCENARIO_GROUPING].type = WWT_DROPDOWN; - window_options_controls_and_interface_widgets[WIDX_SCENARIO_UNLOCKING].type = WWT_CHECKBOX; + window_options_misc_widgets[WIDX_DEFAULT_INSPECTION_INTERVAL].text =RideInspectionIntervalNames[gConfigGeneral.default_inspection_interval]; - window_options_misc_widgets[WIDX_DEFAULT_INSPECTION_INTERVAL].type = WWT_DROPDOWN; - window_options_misc_widgets[WIDX_DEFAULT_INSPECTION_INTERVAL_DROPDOWN].type = WWT_BUTTON; break; + } case WINDOW_OPTIONS_PAGE_ADVANCED: widget_set_checkbox_value(w, WIDX_DEBUGGING_TOOLS, gConfigGeneral.debugging_tools); @@ -1780,18 +1771,6 @@ static void window_options_invalidate(rct_window *w) widget_set_checkbox_value(w, WIDX_ALLOW_LOADING_WITH_INCORRECT_CHECKSUM, gConfigGeneral.allow_loading_with_incorrect_checksum); widget_set_checkbox_value(w, WIDX_SAVE_PLUGIN_DATA_CHECKBOX, gConfigGeneral.save_plugin_data); widget_set_checkbox_value(w, WIDX_STAY_CONNECTED_AFTER_DESYNC, gConfigNetwork.stay_connected); - - window_options_advanced_widgets[WIDX_DEBUGGING_TOOLS].type = WWT_CHECKBOX; - window_options_advanced_widgets[WIDX_TEST_UNFINISHED_TRACKS].type = WWT_CHECKBOX; - window_options_advanced_widgets[WIDX_ALLOW_LOADING_WITH_INCORRECT_CHECKSUM].type = WWT_CHECKBOX; - window_options_advanced_widgets[WIDX_SAVE_PLUGIN_DATA_CHECKBOX].type = WWT_CHECKBOX; - window_options_advanced_widgets[WIDX_STAY_CONNECTED_AFTER_DESYNC].type = WWT_CHECKBOX; - - window_options_advanced_widgets[WIDX_AUTOSAVE].type = WWT_DROPDOWN; - window_options_advanced_widgets[WIDX_AUTOSAVE_DROPDOWN].type = WWT_BUTTON; - - window_options_advanced_widgets[WIDX_PATH_TO_RCT1_BUTTON].type = WWT_BUTTON; - window_options_advanced_widgets[WIDX_PATH_TO_RCT1_CLEAR].type = WWT_BUTTON; break; case WINDOW_OPTIONS_PAGE_TWITCH: @@ -1800,13 +1779,6 @@ static void window_options_invalidate(rct_window *w) widget_set_checkbox_value(w, WIDX_CHAT_PEEP_NAMES_CHECKBOX, gConfigTwitch.enable_chat_peep_names); widget_set_checkbox_value(w, WIDX_CHAT_PEEP_TRACKING_CHECKBOX, gConfigTwitch.enable_chat_peep_tracking); widget_set_checkbox_value(w, WIDX_NEWS_CHECKBOX, gConfigTwitch.enable_news); - - window_options_twitch_widgets[WIDX_CHANNEL_BUTTON].type = WWT_BUTTON; - window_options_twitch_widgets[WIDX_FOLLOWER_PEEP_NAMES_CHECKBOX].type = WWT_CHECKBOX; - window_options_twitch_widgets[WIDX_FOLLOWER_PEEP_TRACKING_CHECKBOX].type = WWT_CHECKBOX; - window_options_twitch_widgets[WIDX_CHAT_PEEP_NAMES_CHECKBOX].type = WWT_CHECKBOX; - window_options_twitch_widgets[WIDX_CHAT_PEEP_TRACKING_CHECKBOX].type = WWT_CHECKBOX; - window_options_twitch_widgets[WIDX_NEWS_CHECKBOX].type = WWT_CHECKBOX; break; } @@ -1858,26 +1830,16 @@ static void window_options_paint(rct_window *w, rct_drawpixelinfo *dpi) { gfx_draw_string_left(dpi, STR_FULLSCREEN_MODE, w, w->colours[1], w->x + 10, w->y + window_options_display_widgets[WIDX_FULLSCREEN].top + 1); - sint32 colour = w->colours[1]; // Disable resolution dropdown on "Windowed" and "Fullscreen (desktop)" + sint32 colour = w->colours[1]; if (gConfigGeneral.fullscreen_mode != static_cast(OpenRCT2::Ui::FULLSCREEN_MODE::FULLSCREEN)) { colour |= COLOUR_FLAG_INSET; } gfx_draw_string_left(dpi, STR_DISPLAY_RESOLUTION, w, colour, w->x + 10 + 15, w->y + window_options_display_widgets[WIDX_RESOLUTION].top + 1); - gfx_draw_string_left(dpi, STR_UI_SCALING_DESC, w, w->colours[1], w->x + 10, w->y + window_options_display_widgets[WIDX_SCALE].top + 1); + gfx_draw_string_left(dpi, STR_UI_SCALING_DESC, w, w->colours[1], w->x + 10, w->y + window_options_display_widgets[WIDX_SCALE].top + 1); gfx_draw_string_left(dpi, STR_DRAWING_ENGINE, w, w->colours[1], w->x + 10, w->y + window_options_display_widgets[WIDX_DRAWING_ENGINE].top + 1); - gCurrentFontSpriteBase = FONT_SPRITE_BASE_MEDIUM; - gfx_draw_string_left_clipped( - dpi, - DrawingEngineStringIds[gConfigGeneral.drawing_engine], - nullptr, - w->colours[1], - w->x + window_options_culture_widgets[WIDX_DRAWING_ENGINE].left + 1, - w->y + window_options_culture_widgets[WIDX_DRAWING_ENGINE].top, - window_options_culture_widgets[WIDX_DRAWING_ENGINE].right - window_options_culture_widgets[WIDX_DRAWING_ENGINE].left - 11 - ); sint32 scale = (sint32)(gConfigGeneral.window_scale * 100); 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); @@ -1891,130 +1853,31 @@ static void window_options_paint(rct_window *w, rct_drawpixelinfo *dpi) gfx_draw_string_left(dpi, STR_SCALING_QUALITY, w, colour, w->x + 25, w->y + window_options_display_widgets[WIDX_SCALE_QUALITY].top + 1); break; } + case WINDOW_OPTIONS_PAGE_CULTURE: 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( - dpi, - (char*)LanguagesDescriptors[gCurrentLanguage].native_name, - w->colours[1], - w->x + window_options_culture_widgets[WIDX_LANGUAGE].left + 1, - w->y + window_options_culture_widgets[WIDX_LANGUAGE].top - ); - gfx_draw_string_left(dpi, STR_CURRENCY, w, w->colours[1], w->x + 10, w->y + window_options_culture_widgets[WIDX_CURRENCY].top + 1); gfx_draw_string_left(dpi, STR_DISTANCE_AND_SPEED, w, w->colours[1], w->x + 10, w->y + window_options_culture_widgets[WIDX_DISTANCE].top + 1); gfx_draw_string_left(dpi, STR_TEMPERATURE, w, w->colours[1], w->x + 10, w->y + window_options_culture_widgets[WIDX_TEMPERATURE].top + 1); gfx_draw_string_left(dpi, STR_HEIGHT_LABELS, w, w->colours[1], w->x + 10, w->y + window_options_culture_widgets[WIDX_HEIGHT_LABELS].top + 1); gfx_draw_string_left(dpi, STR_DATE_FORMAT, w, w->colours[1], w->x + 10, w->y + window_options_culture_widgets[WIDX_DATE_FORMAT].top + 1); - gfx_draw_string_left( - dpi, - DateFormatStringIds[gConfigGeneral.date_format], - nullptr, - w->colours[1], - w->x + window_options_culture_widgets[WIDX_DATE_FORMAT].left + 1, - w->y + window_options_culture_widgets[WIDX_DATE_FORMAT].top - ); break; - case WINDOW_OPTIONS_PAGE_AUDIO: - { - // Sound device - rct_string_id audioDeviceStringId = STR_OPTIONS_SOUND_VALUE_DEFAULT; - const char * audioDeviceName = nullptr; - if (gAudioCurrentDevice == -1) { - audioDeviceStringId = STR_SOUND_NONE; - } else { - audioDeviceStringId = STR_STRING; -#ifndef __linux__ - if (gAudioCurrentDevice == 0) { - audioDeviceStringId = STR_OPTIONS_SOUND_VALUE_DEFAULT; - } -#endif // __linux__ - if (audioDeviceStringId == STR_STRING) { - audioDeviceName = gAudioDevices[gAudioCurrentDevice].name; - } - } - gfx_draw_string_left_clipped( - dpi, - audioDeviceStringId, - (void*)&audioDeviceName, - w->colours[1], - w->x + window_options_audio_widgets[WIDX_SOUND].left + 1, - w->y + window_options_audio_widgets[WIDX_SOUND].top, - window_options_audio_widgets[WIDX_SOUND_DROPDOWN].left - window_options_audio_widgets[WIDX_SOUND].left - 4 - ); - 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, - window_options_title_music_names[gConfigSound.title_music], - nullptr, - w->colours[1], - w->x + window_options_audio_widgets[WIDX_TITLE_MUSIC].left + 1, - w->y + window_options_audio_widgets[WIDX_TITLE_MUSIC].top - ); - break; - } case WINDOW_OPTIONS_PAGE_CONTROLS_AND_INTERFACE: { gfx_draw_string_left(dpi, STR_SHOW_TOOLBAR_BUTTONS_FOR, w, w->colours[1], w->x + 10, w->y + window_options_controls_and_interface_widgets[WIDX_TOOLBAR_BUTTONS_GROUP].top + 15); - - size_t activeAvailableThemeIndex = theme_manager_get_active_available_theme_index(); - const utf8 * activeThemeName = theme_manager_get_available_theme_name(activeAvailableThemeIndex); - set_format_arg(0, uintptr_t, (uintptr_t)activeThemeName); - gfx_draw_string_left(dpi, STR_THEMES_LABEL_CURRENT_THEME, nullptr, w->colours[1], w->x + 10, w->y + window_options_controls_and_interface_widgets[WIDX_THEMES].top + 1); - gfx_draw_string_left_clipped( - dpi, - STR_STRING, - gCommonFormatArgs, - w->colours[1], - w->x + window_options_controls_and_interface_widgets[WIDX_THEMES].left + 1, - w->y + window_options_controls_and_interface_widgets[WIDX_THEMES].top, - window_options_controls_and_interface_widgets[WIDX_THEMES_DROPDOWN].left - window_options_controls_and_interface_widgets[WIDX_THEMES].left - 4 - ); break; } + case WINDOW_OPTIONS_PAGE_MISC: { - const utf8 * name = title_sequence_manager_get_name(title_get_config_sequence()); - set_format_arg(0, uintptr_t, (uintptr_t)name); 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, - STR_STRING, - gCommonFormatArgs, - w->colours[1], - w->x + window_options_misc_widgets[WIDX_TITLE_SEQUENCE].left + 1, - w->y + window_options_misc_widgets[WIDX_TITLE_SEQUENCE].top, - window_options_misc_widgets[WIDX_TITLE_SEQUENCE_DROPDOWN].left - window_options_misc_widgets[WIDX_TITLE_SEQUENCE].left - 4 - ); - gfx_draw_string_left(dpi, STR_OPTIONS_SCENARIO_GROUPING, nullptr, w->colours[1], w->x + 10, w->y + window_options_misc_widgets[WIDX_SCENARIO_GROUPING].top + 1); - gfx_draw_string_left_clipped( - dpi, - gConfigGeneral.scenario_select_mode == SCENARIO_SELECT_MODE_DIFFICULTY ? - STR_OPTIONS_SCENARIO_DIFFICULTY : - STR_OPTIONS_SCENARIO_ORIGIN, - nullptr, - w->colours[1], - w->x + window_options_misc_widgets[WIDX_SCENARIO_GROUPING].left + 1, - w->y + window_options_misc_widgets[WIDX_SCENARIO_GROUPING].top, - window_options_misc_widgets[WIDX_SCENARIO_GROUPING_DROPDOWN].left - window_options_misc_widgets[WIDX_SCENARIO_GROUPING].left - 4 - ); - 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, - RideInspectionIntervalNames[gConfigGeneral.default_inspection_interval], - nullptr, - w->colours[1], - w->x + window_options_misc_widgets[WIDX_DEFAULT_INSPECTION_INTERVAL].left + 1, - w->y + window_options_misc_widgets[WIDX_DEFAULT_INSPECTION_INTERVAL].top - ); break; } + case WINDOW_OPTIONS_PAGE_ADVANCED: { gfx_draw_string_left(dpi, STR_OPTIONS_AUTOSAVE_FREQUENCY_LABEL, w, w->colours[1], w->x + 24, w->y + window_options_advanced_widgets[WIDX_AUTOSAVE].top + 1); diff --git a/src/openrct2/localisation/StringIds.h b/src/openrct2/localisation/StringIds.h index f8e376960a..e24e54bbc4 100644 --- a/src/openrct2/localisation/StringIds.h +++ b/src/openrct2/localisation/StringIds.h @@ -1205,8 +1205,8 @@ enum { // STR_1772 :{COMMA16} STR_ONLY_ONE_ON_RIDE_PHOTO_PER_RIDE = 1773, STR_ONLY_ONE_CABLE_LIFT_HILL_PER_RIDE = 1774, - STR_OPTIONS_RIDE_MUSIC_OFF = 1775, - STR_OPTIONS_RIDE_MUSIC_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,