mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-15 19:13:07 +01:00
Merge pull request #6936 from AaronVanGeffen/widgets/cleanup-2
Draw dropdown captions directly through widget
This commit is contained in:
@@ -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 :<removed string - do not use>
|
||||
STR_1776 :<removed string - do not use>
|
||||
STR_1777 :{WINDOW_COLOUR_2}Ride music
|
||||
STR_1778 :{STRINGID} - -
|
||||
STR_1779 :{INLINE_SPRITE}{254}{19}{00}{00} Panda costume
|
||||
|
||||
@@ -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 <cmath>
|
||||
@@ -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<sint32>(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<sint32>(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);
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user