From bcdfdcb7a061c943fd9058f0b61e08d750284a95 Mon Sep 17 00:00:00 2001 From: Gymnasiast Date: Sun, 26 Jul 2015 14:37:27 +0200 Subject: [PATCH] Reorder Options window --- data/language/english_uk.txt | 16 +- src/localisation/string_ids.h | 28 ++++ src/windows/options.c | 283 +++++++++++++++++----------------- 3 files changed, 181 insertions(+), 146 deletions(-) diff --git a/data/language/english_uk.txt b/data/language/english_uk.txt index 21d6989d8c..ca09abc8b8 100644 --- a/data/language/english_uk.txt +++ b/data/language/english_uk.txt @@ -3456,8 +3456,8 @@ STR_3445 :Set Patrol Area STR_3446 :Cancel Patrol Area # New strings, cleaner -STR_5120 :Show finances button on toolbar -STR_5121 :Show research button on toolbar +STR_5120 :Finances +STR_5121 :Research STR_5122 :Select rides by track type (like in RCT1) STR_5123 :Renew rides STR_5124 :No Six Flags @@ -3483,7 +3483,7 @@ STR_5143 :Quick Speed STR_5144 :Fast Speed STR_5145 :Turbo Speed STR_5146 :Hyper Speed -STR_5147 :Show cheats button on toolbar +STR_5147 :Cheats STR_5148 :{SMALLFONT}{BLACK}Change the game speed STR_5149 :{SMALLFONT}{BLACK}Open the cheats window STR_5150 :Enable debugging tools @@ -3605,7 +3605,7 @@ STR_5265 :{SMALLFONT}{BLACK}Select which content sources are visible STR_5266 :{SMALLFONT}{BLACK}Display STR_5267 :{SMALLFONT}{BLACK}Culture and Units STR_5268 :{SMALLFONT}{BLACK}Audio -STR_5269 :{SMALLFONT}{BLACK}Controls +STR_5269 :{SMALLFONT}{BLACK}Controls and interface STR_5270 :{SMALLFONT}{BLACK}Miscellaneous STR_5271 :{SMALLFONT}{BLACK}Twitch STR_5272 :{SMALLFONT}{BLACK}Small Scenery @@ -3804,10 +3804,16 @@ STR_5464 :General STR_5465 :Climate STR_5466 :Staff STR_5467 :ALT + -STR_5468 :Show recent messages button on toolbar +STR_5468 :Recent messages STR_5469 :Scroll map up STR_5470 :Scroll map left STR_5471 :Scroll map down STR_5472 :Scroll map right STR_5473 :Cycle day / night STR_5474 :Display text on banners in upper case +STR_5476 :Hardware +STR_5477 :Map rendering +STR_5478 :Controls +STR_5479 :Toolbar +STR_5480 :Show toolbar buttons for: +STR_5481 :Themes diff --git a/src/localisation/string_ids.h b/src/localisation/string_ids.h index adfffa116c..d3a0ad9267 100644 --- a/src/localisation/string_ids.h +++ b/src/localisation/string_ids.h @@ -83,6 +83,8 @@ enum { STR_PAUSE_GAME_TIP = 833, STR_DISC_AND_GAME_OPTIONS_TIP = 834, + STR_RESOLUTION_X_BY_Y = 840, + STR_ROTATE_CLOCKWISE = 5458, STR_ROTATE_ANTI_CLOCKWISE = 5459, @@ -1709,6 +1711,13 @@ enum { 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_CHEATS_BUTTON_ON_TOOLBAR = 5147, + + STR_HARDWARE_DISPLAY = 5154, + STR_TWITCH_NAME = 5164, STR_TWITCH_PEEP_FOLLOWERS = 5165, STR_TWITCH_PEEP_FOLLOWERS_TIP = 5166, @@ -1727,6 +1736,13 @@ enum { STR_GIANT_SCREENSHOT = 5260, + 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_CHEAT_SANDBOX_MODE = 5278, STR_CHEAT_SANDBOX_MODE_DISABLE = 5279, STR_CHEAT_SANDBOX_MODE_TIP = 5280, @@ -1770,6 +1786,10 @@ enum { STR_UP = 5375, STR_DOWN = 5376, + STR_MININISE_FULL_SCREEN_ON_FOCUS_LOSS = 5440, + + STR_SELECT_BY_TRACK_TYPE_TIP = 5441, + STR_FORCE_PARK_RATING = 5442, STR_OBJECTS_SORT_TYPE = 5447, @@ -1782,6 +1802,8 @@ enum { STR_SELECT_OTHER_RIDE = 5453, + STR_UNCAP_FPS = 5454, + STR_ENABLE_SANDBOX_MODE = 5455, STR_DISABLE_CLEARANCE_CHECKS = 5456, STR_DISABLE_SUPPORT_LIMITS = 5457, @@ -1805,6 +1827,12 @@ enum { STR_CYCLE_DAY_NIGHT = 5473, STR_UPPER_CASE_BANNERS = 5474, + 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, // Have to include resource strings (from scenarios and objects) for the time being now that language is partially working STR_COUNT = 32768 diff --git a/src/windows/options.c b/src/windows/options.c index 29d5a239b5..779e63d2f7 100644 --- a/src/windows/options.c +++ b/src/windows/options.c @@ -48,7 +48,7 @@ enum WINDOW_OPTIONS_PAGE { WINDOW_OPTIONS_PAGE_DISPLAY, WINDOW_OPTIONS_PAGE_CULTURE, WINDOW_OPTIONS_PAGE_AUDIO, - WINDOW_OPTIONS_PAGE_CONTROLS, + WINDOW_OPTIONS_PAGE_CONTROLS_AND_INTERFACE, WINDOW_OPTIONS_PAGE_MISC, WINDOW_OPTIONS_PAGE_TWITCH, WINDOW_OPTIONS_PAGE_COUNT @@ -71,20 +71,19 @@ enum WINDOW_OPTIONS_WIDGET_IDX { WIDX_PAGE_START, // Display - WIDX_RESOLUTION = WIDX_PAGE_START, + WIDX_HARDWARE_GROUP = WIDX_PAGE_START, + WIDX_RESOLUTION, WIDX_RESOLUTION_DROPDOWN, WIDX_FULLSCREEN, WIDX_FULLSCREEN_DROPDOWN, - WIDX_TILE_SMOOTHING_CHECKBOX, - WIDX_GRIDLINES_CHECKBOX, WIDX_HARDWARE_DISPLAY_CHECKBOX, WIDX_UNCAP_FPS_CHECKBOX, WIDX_MINIMIZE_FOCUS_LOSS, + WIDX_RENDERING_GROUP, + WIDX_TILE_SMOOTHING_CHECKBOX, + WIDX_GRIDLINES_CHECKBOX, WIDX_CONSTRUCTION_MARKER, WIDX_CONSTRUCTION_MARKER_DROPDOWN, - WIDX_THEMES, - WIDX_THEMES_DROPDOWN, - WIDX_THEMES_BUTTON, WIDX_DAY_NIGHT_CHECKBOX, WIDX_UPPER_CASE_BANNERS_CHECKBOX, @@ -112,21 +111,27 @@ enum WINDOW_OPTIONS_WIDGET_IDX { WIDX_MASTER_VOLUME, WIDX_MUSIC_VOLUME, - // Controls - WIDX_SCREEN_EDGE_SCROLLING = WIDX_PAGE_START, + // Controls and interface + WIDX_CONTROLS_GROUP = WIDX_PAGE_START, + WIDX_SCREEN_EDGE_SCROLLING, WIDX_INVERT_DRAG, WIDX_HOTKEY_DROPDOWN, + WIDX_THEMES_GROUP, + WIDX_THEMES, + WIDX_THEMES_DROPDOWN, + WIDX_THEMES_BUTTON, + WIDX_TOOLBAR_BUTTONS_GROUP, WIDX_TOOLBAR_SHOW_FINANCES, WIDX_TOOLBAR_SHOW_RESEARCH, WIDX_TOOLBAR_SHOW_CHEATS, WIDX_TOOLBAR_SHOW_NEWS, + WIDX_SELECT_BY_TRACK_TYPE, // Misc WIDX_REAL_NAME_CHECKBOX = WIDX_PAGE_START, WIDX_SAVE_PLUGIN_DATA_CHECKBOX, WIDX_AUTOSAVE, WIDX_AUTOSAVE_DROPDOWN, - WIDX_SELECT_BY_TRACK_TYPE, WIDX_TEST_UNFINISHED_TRACKS, WIDX_AUTO_STAFF_PLACEMENT, WIDX_DEBUGGING_TOOLS, @@ -143,39 +148,39 @@ enum WINDOW_OPTIONS_WIDGET_IDX { WIDX_NEWS_CHECKBOX }; -#define WW 310 -#define WH 238 +#define WW 310 +#define WH 265 #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, 5266 }, \ - { WWT_TAB, 1, 34, 64, 17, 43, 0x2000144E, 5267 }, \ - { WWT_TAB, 1, 65, 95, 17, 43, 0x2000144E, 5268 }, \ - { WWT_TAB, 1, 96, 126, 17, 43, 0x2000144E, 5269 }, \ - { WWT_TAB, 1, 127, 157, 17, 43, 0x2000144E, 5270 }, \ - { WWT_TAB, 1, 158, 188, 17, 43, 0x2000144E, 5271 } + { WWT_TAB, 1, 3, 33, 17, 43, 0x2000144E, STR_OPTIONS_DISPLAY_TIP }, \ + { WWT_TAB, 1, 34, 64, 17, 43, 0x2000144E, STR_OPTIONS_CULTURE_TIP }, \ + { WWT_TAB, 1, 65, 95, 17, 43, 0x2000144E, STR_OPTIONS_AUDIO_TIP }, \ + { WWT_TAB, 1, 96, 126, 17, 43, 0x2000144E, STR_OPTIONS_CONTROLS_AND_INTERFACE_TIP }, \ + { WWT_TAB, 1, 127, 157, 17, 43, 0x2000144E, STR_OPTIONS_MISCELLANEOUS_TIP }, \ + { WWT_TAB, 1, 158, 188, 17, 43, 0x2000144E, STR_OPTIONS_TWITCH_TIP } static rct_widget window_options_display_widgets[] = { MAIN_OPTIONS_WIDGETS, - { WWT_DROPDOWN, 1, 155, 299, 53, 64, 840, STR_NONE }, // resolution - { WWT_DROPDOWN_BUTTON, 1, 288, 298, 54, 63, 876, STR_NONE }, - { WWT_DROPDOWN, 1, 155, 299, 68, 79, 871, STR_NONE }, // fullscreen - { WWT_DROPDOWN_BUTTON, 1, 288, 298, 69, 78, 876, STR_NONE }, - { WWT_CHECKBOX, 1, 10, 290, 84, 95, STR_TILE_SMOOTHING, STR_TILE_SMOOTHING_TIP }, // landscape smoothing - { WWT_CHECKBOX, 1, 10, 290, 99, 110, STR_GRIDLINES, STR_GRIDLINES_TIP }, // gridlines - { WWT_CHECKBOX, 1, 10, 290, 114, 125, 5154, STR_NONE }, // hardware display - { WWT_CHECKBOX, 1, 10, 290, 129, 140, 5454, STR_NONE }, // uncap fps - { WWT_CHECKBOX, 1, 10, 290, 144, 155, 5440, STR_NONE }, // minimize fullscreen focus loss - { WWT_DROPDOWN, 1, 155, 299, 158, 169, STR_NONE, STR_NONE }, // construction marker - { WWT_DROPDOWN_BUTTON, 1, 288, 298, 159, 178, 876, STR_NONE }, - { WWT_DROPDOWN, 1, 155, 299, 173, 184, STR_NONE, STR_NONE }, // colour schemes - { WWT_DROPDOWN_BUTTON, 1, 288, 298, 174, 183, 876, STR_NONE }, - { WWT_DROPDOWN_BUTTON, 1, 26, 185, 189, 200, 5153, STR_NONE }, // colour schemes button - { WWT_CHECKBOX, 1, 10, 290, 204, 216, STR_CYCLE_DAY_NIGHT,STR_NONE }, // cycle day-night - { WWT_CHECKBOX, 1, 10, 290, 219, 231, STR_UPPER_CASE_BANNERS,STR_NONE }, // upper case banners + { WWT_GROUPBOX, 1, 5, 304, 53, 145, STR_HARDWARE_GROUP, STR_NONE }, // Hardware group + { WWT_DROPDOWN, 1, 155, 299, 68, 79, STR_RESOLUTION_X_BY_Y, STR_NONE }, // resolution + { WWT_DROPDOWN_BUTTON, 1, 288, 298, 69, 78, 876, STR_NONE }, + { WWT_DROPDOWN, 1, 155, 299, 83, 94, 871, STR_NONE }, // fullscreen + { WWT_DROPDOWN_BUTTON, 1, 288, 298, 84, 93, 876, STR_NONE }, + { WWT_CHECKBOX, 1, 10, 290, 99, 110, STR_HARDWARE_DISPLAY, STR_NONE }, // hardware display + { WWT_CHECKBOX, 1, 10, 290, 114, 125, STR_UNCAP_FPS, STR_NONE }, // uncap fps + { WWT_CHECKBOX, 1, 10, 290, 129, 140, STR_MININISE_FULL_SCREEN_ON_FOCUS_LOSS, STR_NONE }, // minimise fullscreen focus loss + + { WWT_GROUPBOX, 1, 5, 304, 149, 240, STR_RENDERING_GROUP, STR_NONE }, // Rendering group + { WWT_CHECKBOX, 1, 10, 290, 164, 175, STR_TILE_SMOOTHING, STR_TILE_SMOOTHING_TIP }, // landscape smoothing + { WWT_CHECKBOX, 1, 10, 290, 179, 190, STR_GRIDLINES, STR_GRIDLINES_TIP }, // gridlines + { WWT_DROPDOWN, 1, 155, 299, 193, 204, STR_NONE, STR_NONE }, // construction marker + { WWT_DROPDOWN_BUTTON, 1, 288, 298, 194, 203, 876, STR_NONE }, + { WWT_CHECKBOX, 1, 10, 290, 209, 220, STR_CYCLE_DAY_NIGHT, STR_NONE }, // cycle day-night + { WWT_CHECKBOX, 1, 10, 290, 224, 235, STR_UPPER_CASE_BANNERS, STR_NONE }, // upper case banners { WIDGETS_END }, }; @@ -209,15 +214,25 @@ static rct_widget window_options_audio_widgets[] = { { WIDGETS_END }, }; -static rct_widget window_options_controls_widgets[] = { +static rct_widget window_options_controls_and_interface_widgets[] = { MAIN_OPTIONS_WIDGETS, - { WWT_CHECKBOX, 2, 10, 299, 54, 65, STR_SCREEN_EDGE_SCROLLING, STR_SCREEN_EDGE_SCROLLING_TIP }, - { WWT_CHECKBOX, 2, 10, 299, 69, 80, STR_INVERT_RIGHT_MOUSE_DRAG, STR_NONE }, - { WWT_DROPDOWN_BUTTON, 1, 26, 185, 84, 95, STR_HOTKEY, STR_HOTKEY_TIP }, - { WWT_CHECKBOX, 2, 10, 299, 99, 110, 5120, STR_NONE }, - { WWT_CHECKBOX, 2, 10, 299, 114, 125, 5121, STR_NONE }, - { WWT_CHECKBOX, 2, 10, 299, 129, 140, 5147, STR_NONE }, - { WWT_CHECKBOX, 2, 10, 299, 144, 155, STR_SHOW_RECENT_MESSAGES_ON_TOOLBAR, STR_NONE }, + { WWT_GROUPBOX, 1, 5, 304, 53, 114, STR_CONTROLS_GROUP, STR_NONE }, // Controls group + { WWT_CHECKBOX, 2, 10, 299, 68, 79, STR_SCREEN_EDGE_SCROLLING, STR_SCREEN_EDGE_SCROLLING_TIP }, // Edge scrolling + { WWT_CHECKBOX, 2, 10, 299, 83, 94, STR_INVERT_RIGHT_MOUSE_DRAG, STR_NONE }, // Invert right mouse dragging + { WWT_DROPDOWN_BUTTON, 1, 26, 185, 98, 109, STR_HOTKEY, STR_HOTKEY_TIP }, // Set hotkeys buttons + + { WWT_GROUPBOX, 1, 5, 304, 118, 164, STR_THEMES_GROUP, STR_NONE }, // Toolbar buttons group + { WWT_DROPDOWN, 1, 155, 299, 132, 143, STR_NONE, STR_NONE }, // Themes + { WWT_DROPDOWN_BUTTON, 1, 288, 298, 133, 142, 876, STR_NONE }, + { WWT_DROPDOWN_BUTTON, 1, 10, 145, 148, 159, 5153, STR_NONE }, // Themes button + + { WWT_GROUPBOX, 1, 5, 304, 168, 230, STR_TOOLBAR_BUTTONS_GROUP, STR_NONE }, // Toolbar buttons group + { WWT_CHECKBOX, 2, 10, 145, 199, 210, STR_FINANCES_BUTTON_ON_TOOLBAR, STR_NONE }, // Finances + { WWT_CHECKBOX, 2, 10, 145, 214, 225, STR_RESEARCH_BUTTON_ON_TOOLBAR, STR_NONE }, // Research + { WWT_CHECKBOX, 2, 155, 299, 199, 210, STR_CHEATS_BUTTON_ON_TOOLBAR, STR_NONE }, // Cheats + { WWT_CHECKBOX, 2, 155, 299, 214, 225, STR_SHOW_RECENT_MESSAGES_ON_TOOLBAR, STR_NONE }, // Recent messages + + { WWT_CHECKBOX, 2, 10, 299, 239, 250, STR_SELECT_BY_TRACK_TYPE, STR_SELECT_BY_TRACK_TYPE_TIP }, // Select by track type { WIDGETS_END }, }; @@ -227,7 +242,6 @@ static rct_widget window_options_misc_widgets[] = { { WWT_CHECKBOX, 2, 10, 299, 69, 80, STR_SAVE_PLUGIN_DATA, STR_SAVE_PLUGIN_DATA_TIP }, { WWT_DROPDOWN, 1, 155, 299, 83, 94, STR_NONE, STR_NONE }, { WWT_DROPDOWN_BUTTON, 1, 288, 298, 84, 93, 876, STR_NONE }, - { WWT_CHECKBOX, 2, 10, 299, 99, 110, 5122, 5441 }, // select by track type { WWT_CHECKBOX, 2, 10, 299, 114, 125, 5155, 5156 }, // test unfinished tracks { WWT_CHECKBOX, 2, 10, 299, 129, 140, 5343, STR_NONE }, // auto staff placement { WWT_CHECKBOX, 2, 10, 299, 144, 155, 5150, STR_NONE }, // enabled debugging tools @@ -252,7 +266,7 @@ rct_widget *window_options_page_widgets[] = { window_options_display_widgets, window_options_culture_widgets, window_options_audio_widgets, - window_options_controls_widgets, + window_options_controls_and_interface_widgets, window_options_misc_widgets, window_options_twitch_widgets }; @@ -337,9 +351,6 @@ static uint32 window_options_page_enabled_widgets[] = { (1 << WIDX_MINIMIZE_FOCUS_LOSS) | (1 << WIDX_CONSTRUCTION_MARKER) | (1 << WIDX_CONSTRUCTION_MARKER_DROPDOWN) | - (1 << WIDX_THEMES) | - (1 << WIDX_THEMES_DROPDOWN) | - (1 << WIDX_THEMES_BUTTON) | (1 << WIDX_DAY_NIGHT_CHECKBOX) | (1 << WIDX_UPPER_CASE_BANNERS_CHECKBOX), @@ -372,14 +383,17 @@ static uint32 window_options_page_enabled_widgets[] = { (1 << WIDX_TOOLBAR_SHOW_FINANCES) | (1 << WIDX_TOOLBAR_SHOW_RESEARCH) | (1 << WIDX_TOOLBAR_SHOW_CHEATS) | - (1 << WIDX_TOOLBAR_SHOW_NEWS), + (1 << WIDX_TOOLBAR_SHOW_NEWS) | + (1 << WIDX_THEMES) | + (1 << WIDX_THEMES_DROPDOWN) | + (1 << WIDX_THEMES_BUTTON) | + (1 << WIDX_SELECT_BY_TRACK_TYPE), MAIN_OPTIONS_ENABLED_WIDGETS | (1 << WIDX_REAL_NAME_CHECKBOX) | (1 << WIDX_SAVE_PLUGIN_DATA_CHECKBOX) | (1 << WIDX_AUTOSAVE) | (1 << WIDX_AUTOSAVE_DROPDOWN) | - (1 << WIDX_SELECT_BY_TRACK_TYPE) | (1 << WIDX_TEST_UNFINISHED_TRACKS) | (1 << WIDX_AUTO_STAFF_PLACEMENT) | (1 << WIDX_DEBUGGING_TOOLS) | @@ -479,10 +493,6 @@ static void window_options_mouseup(rct_window *w, int widgetIndex) config_save_default(); window_invalidate(w); break; - case WIDX_THEMES_BUTTON: - window_themes_open(); - window_invalidate(w); - break; case WIDX_DAY_NIGHT_CHECKBOX: gConfigGeneral.day_night_cycle ^= 1; config_save_default(); @@ -517,7 +527,7 @@ static void window_options_mouseup(rct_window *w, int widgetIndex) } break; - case WINDOW_OPTIONS_PAGE_CONTROLS: + case WINDOW_OPTIONS_PAGE_CONTROLS_AND_INTERFACE: switch (widgetIndex) { case WIDX_HOTKEY_DROPDOWN: window_shortcut_keys_open(); @@ -556,11 +566,10 @@ static void window_options_mouseup(rct_window *w, int widgetIndex) config_save_default(); window_invalidate(w); break; - } - break; - - case WINDOW_OPTIONS_PAGE_MISC: - switch (widgetIndex) { + case WIDX_THEMES_BUTTON: + window_themes_open(); + window_invalidate(w); + break; case WIDX_SELECT_BY_TRACK_TYPE: gConfigInterface.select_by_track_type ^= 1; config_save_default(); @@ -568,6 +577,11 @@ static void window_options_mouseup(rct_window *w, int widgetIndex) window_invalidate_by_class(WC_RIDE); window_invalidate_by_class(WC_CONSTRUCT_RIDE); break; + } + break; + + case WINDOW_OPTIONS_PAGE_MISC: + switch (widgetIndex) { case WIDX_DEBUGGING_TOOLS: gConfigGeneral.debugging_tools ^= 1; config_save_default(); @@ -695,34 +709,6 @@ static void window_options_mousedown(int widgetIndex, rct_window*w, rct_widget* gDropdownItemsChecked = 1 << gConfigGeneral.construction_marker_colour; break; - case WIDX_THEMES_DROPDOWN: - num_items = gConfigThemes.num_presets; - - gDropdownItemsFormat[0] = 2777; - gDropdownItemsArgs[0] = (uint32)&gConfigThemes.presets[1].name; - gDropdownItemsFormat[1] = 2777; - gDropdownItemsArgs[1] = (uint32)&gConfigThemes.presets[0].name; - - for (i = 2; i < num_items; i++) { - gDropdownItemsFormat[i] = 2777; - gDropdownItemsArgs[i] = (uint32)&gConfigThemes.presets[i].name; - } - - window_dropdown_show_text_custom_width( - w->x + widget->left, - w->y + widget->top, - widget->bottom - widget->top + 1, - w->colours[1], - DROPDOWN_FLAG_STAY_OPEN, - num_items, - widget->right - widget->left - 3 - ); - - if (gCurrentTheme == 0 || gCurrentTheme == 1) - gDropdownItemsChecked = 1 << (gCurrentTheme ^ 1); - else - gDropdownItemsChecked = 1 << (gCurrentTheme); - break; } break; @@ -822,7 +808,37 @@ static void window_options_mousedown(int widgetIndex, rct_window*w, rct_widget* } break; - case WINDOW_OPTIONS_PAGE_CONTROLS: + case WINDOW_OPTIONS_PAGE_CONTROLS_AND_INTERFACE: + switch (widgetIndex) { + case WIDX_THEMES_DROPDOWN: + num_items = gConfigThemes.num_presets; + + gDropdownItemsFormat[0] = 2777; + gDropdownItemsArgs[0] = (uint32)&gConfigThemes.presets[1].name; + gDropdownItemsFormat[1] = 2777; + gDropdownItemsArgs[1] = (uint32)&gConfigThemes.presets[0].name; + + for (i = 2; i < num_items; i++) { + gDropdownItemsFormat[i] = 2777; + gDropdownItemsArgs[i] = (uint32)&gConfigThemes.presets[i].name; + } + + window_dropdown_show_text_custom_width( + w->x + widget->left, + w->y + widget->top, + widget->bottom - widget->top + 1, + w->colours[1], + DROPDOWN_FLAG_STAY_OPEN, + num_items, + widget->right - widget->left - 3 + ); + + if (gCurrentTheme == 0 || gCurrentTheme == 1) + gDropdownItemsChecked = 1 << (gCurrentTheme ^ 1); + else + gDropdownItemsChecked = 1 << (gCurrentTheme); + break; + } break; case WINDOW_OPTIONS_PAGE_MISC: @@ -836,17 +852,6 @@ static void window_options_mousedown(int widgetIndex, rct_window*w, rct_widget* gDropdownItemsChecked = 1 << gConfigGeneral.autosave_frequency; break; case WIDX_TITLE_SEQUENCE_DROPDOWN: - /* gDropdownItemsFormat[0] = 1142; - gDropdownItemsArgs[0] = STR_TITLE_SEQUENCE_RCT2; - gDropdownItemsFormat[1] = 1142; - gDropdownItemsArgs[1] = STR_TITLE_SEQUENCE_OPENRCT2; - window_options_show_dropdown(w, widget, 2); - if (gConfigGeneral.title_sequence == TITLE_SEQUENCE_RCT2) - gDropdownItemsChecked = 1 << 0; - else if (gConfigGeneral.title_sequence == TITLE_SEQUENCE_OPENRCT2) - gDropdownItemsChecked = 1 << 1; - break; - case WIDX_THEMES_DROPDOWN:*/ num_items = gConfigTitleSequences.num_presets; for (i = 0; i < num_items; i++) { @@ -917,14 +922,6 @@ static void window_options_dropdown(rct_window *w, int widgetIndex, int dropdown gfx_invalidate_screen(); } break; - case WIDX_THEMES_DROPDOWN: - if (dropdownIndex != -1) { - if (dropdownIndex == 0 || dropdownIndex == 1) - dropdownIndex ^= 1; - theme_change_preset(dropdownIndex); - } - config_save_default(); - break; } break; @@ -997,14 +994,6 @@ static void window_options_dropdown(rct_window *w, int widgetIndex, int dropdown config_save_default(); #endif } - /*#ifdef _MSC_VER - __asm movzx ax, dropdownIndex - #else - __asm__ ( "movzx ax, %[dropdownIndex] " : : [dropdownIndex] "g" ((char)dropdownIndex) ); - #endif - // the switch replaces ax value - RCT2_CALLPROC_EBPSAFE(0x006BA9B5); // part of init audio*/ - window_invalidate(w); break; case WIDX_TITLE_MUSIC_DROPDOWN: @@ -1024,7 +1013,17 @@ static void window_options_dropdown(rct_window *w, int widgetIndex, int dropdown } break; - case WINDOW_OPTIONS_PAGE_CONTROLS: + case WINDOW_OPTIONS_PAGE_CONTROLS_AND_INTERFACE: + switch (widgetIndex) { + case WIDX_THEMES_DROPDOWN: + if (dropdownIndex != -1) { + if (dropdownIndex == 0 || dropdownIndex == 1) + dropdownIndex ^= 1; + theme_change_preset(dropdownIndex); + } + config_save_default(); + break; + } break; case WINDOW_OPTIONS_PAGE_MISC: @@ -1108,9 +1107,6 @@ static void window_options_invalidate(rct_window *w) window_options_display_widgets[WIDX_HARDWARE_DISPLAY_CHECKBOX].type = WWT_CHECKBOX; window_options_display_widgets[WIDX_UNCAP_FPS_CHECKBOX].type = WWT_CHECKBOX; window_options_display_widgets[WIDX_MINIMIZE_FOCUS_LOSS].type = WWT_CHECKBOX; - window_options_display_widgets[WIDX_THEMES].type = WWT_DROPDOWN; - window_options_display_widgets[WIDX_THEMES_DROPDOWN].type = WWT_DROPDOWN_BUTTON; - window_options_display_widgets[WIDX_THEMES_BUTTON].type = WWT_DROPDOWN_BUTTON; window_options_display_widgets[WIDX_DAY_NIGHT_CHECKBOX].type = WWT_CHECKBOX; window_options_display_widgets[WIDX_UPPER_CASE_BANNERS_CHECKBOX].type = WWT_CHECKBOX; break; @@ -1180,20 +1176,25 @@ static void window_options_invalidate(rct_window *w) window_options_audio_widgets[WIDX_MUSIC_VOLUME].type = WWT_SCROLL; break; - case WINDOW_OPTIONS_PAGE_CONTROLS: + 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_INVERT_DRAG, gConfigGeneral.invert_viewport_drag); widget_set_checkbox_value(w, WIDX_TOOLBAR_SHOW_FINANCES, gConfigInterface.toolbar_show_finances); widget_set_checkbox_value(w, WIDX_TOOLBAR_SHOW_RESEARCH, gConfigInterface.toolbar_show_research); widget_set_checkbox_value(w, WIDX_TOOLBAR_SHOW_CHEATS, gConfigInterface.toolbar_show_cheats); widget_set_checkbox_value(w, WIDX_TOOLBAR_SHOW_NEWS, gConfigInterface.toolbar_show_news); + widget_set_checkbox_value(w, WIDX_SELECT_BY_TRACK_TYPE, gConfigInterface.select_by_track_type); - window_options_controls_widgets[WIDX_SCREEN_EDGE_SCROLLING].type = WWT_CHECKBOX; - window_options_controls_widgets[WIDX_HOTKEY_DROPDOWN].type = WWT_DROPDOWN_BUTTON; - window_options_controls_widgets[WIDX_TOOLBAR_SHOW_FINANCES].type = WWT_CHECKBOX; - window_options_controls_widgets[WIDX_TOOLBAR_SHOW_RESEARCH].type = WWT_CHECKBOX; - window_options_controls_widgets[WIDX_TOOLBAR_SHOW_CHEATS].type = WWT_CHECKBOX; - window_options_controls_widgets[WIDX_TOOLBAR_SHOW_NEWS].type = WWT_CHECKBOX; + window_options_controls_and_interface_widgets[WIDX_THEMES].type = WWT_DROPDOWN; + window_options_controls_and_interface_widgets[WIDX_THEMES_DROPDOWN].type = WWT_DROPDOWN_BUTTON; + window_options_controls_and_interface_widgets[WIDX_THEMES_BUTTON].type = WWT_DROPDOWN_BUTTON; + window_options_controls_and_interface_widgets[WIDX_SCREEN_EDGE_SCROLLING].type = WWT_CHECKBOX; + window_options_controls_and_interface_widgets[WIDX_HOTKEY_DROPDOWN].type = WWT_DROPDOWN_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_SELECT_BY_TRACK_TYPE].type = WWT_CHECKBOX; break; case WINDOW_OPTIONS_PAGE_MISC: @@ -1207,7 +1208,6 @@ static void window_options_invalidate(rct_window *w) else window_options_misc_widgets[WIDX_SAVE_PLUGIN_DATA_CHECKBOX].type = WWT_CHECKBOX; - widget_set_checkbox_value(w, WIDX_SELECT_BY_TRACK_TYPE, gConfigInterface.select_by_track_type); widget_set_checkbox_value(w, WIDX_REAL_NAME_CHECKBOX, RCT2_GLOBAL(RCT2_ADDRESS_PARK_FLAGS, uint32) & PARK_FLAGS_SHOW_REAL_GUEST_NAMES); widget_set_checkbox_value(w, WIDX_SAVE_PLUGIN_DATA_CHECKBOX, gConfigGeneral.save_plugin_data); widget_set_checkbox_value(w, WIDX_TEST_UNFINISHED_TRACKS, gConfigGeneral.test_unfinished_tracks); @@ -1218,7 +1218,6 @@ static void window_options_invalidate(rct_window *w) window_options_misc_widgets[WIDX_SAVE_PLUGIN_DATA_CHECKBOX].type = WWT_CHECKBOX; window_options_misc_widgets[WIDX_AUTOSAVE].type = WWT_DROPDOWN; window_options_misc_widgets[WIDX_AUTOSAVE_DROPDOWN].type = WWT_DROPDOWN_BUTTON; - window_options_misc_widgets[WIDX_SELECT_BY_TRACK_TYPE].type = WWT_CHECKBOX; window_options_misc_widgets[WIDX_TEST_UNFINISHED_TRACKS].type = WWT_CHECKBOX; window_options_misc_widgets[WIDX_AUTO_STAFF_PLACEMENT].type = WWT_CHECKBOX; window_options_misc_widgets[WIDX_DEBUGGING_TOOLS].type = WWT_CHECKBOX; @@ -1283,18 +1282,6 @@ static void window_options_paint(rct_window *w, rct_drawpixelinfo *dpi) gfx_draw_string_left(dpi, STR_DISPLAY_RESOLUTION, w, w->colours[1], w->x + 10, w->y + window_options_display_widgets[WIDX_RESOLUTION].top + 1); 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); gfx_draw_string_left(dpi, STR_CONSTRUCTION_MARKER, w, w->colours[1], w->x + 10, w->y + window_options_display_widgets[WIDX_CONSTRUCTION_MARKER].top + 1); - - RCT2_GLOBAL(RCT2_ADDRESS_COMMON_FORMAT_ARGS + 0, uint32) = (uint32)&gConfigThemes.presets[gCurrentTheme].name; - gfx_draw_string_left(dpi, 5238, NULL, w->colours[1], w->x + 10, w->y + window_options_display_widgets[WIDX_THEMES].top + 1); - gfx_draw_string_left_clipped( - dpi, - 1170, - (void*)RCT2_ADDRESS_COMMON_FORMAT_ARGS, - w->colours[1], - w->x + window_options_display_widgets[WIDX_THEMES].left + 1, - w->y + window_options_display_widgets[WIDX_THEMES].top, - window_options_display_widgets[WIDX_THEMES_DROPDOWN].left - window_options_display_widgets[WIDX_THEMES].left - 4 - ); 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); @@ -1333,6 +1320,20 @@ static void window_options_paint(rct_window *w, rct_drawpixelinfo *dpi) 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); + RCT2_GLOBAL(RCT2_ADDRESS_COMMON_FORMAT_ARGS + 0, uint32) = (uint32)&gConfigThemes.presets[gCurrentTheme].name; + 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_clipped( + dpi, + 1170, + (void*)RCT2_ADDRESS_COMMON_FORMAT_ARGS, + 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: 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( @@ -1445,7 +1446,7 @@ 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_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, 5201); + 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_TWITCH, SPR_G2_TAB_TWITCH); }