diff --git a/src/windows/options.c b/src/windows/options.c index 1609ec8b27..c1f1b84527 100644 --- a/src/windows/options.c +++ b/src/windows/options.c @@ -135,6 +135,8 @@ enum WINDOW_OPTIONS_WIDGET_IDX { WIDX_TOOLBAR_SHOW_CHEATS, WIDX_TOOLBAR_SHOW_NEWS, WIDX_SELECT_BY_TRACK_TYPE, + WIDX_SCENARIO_GROUPING, + WIDX_SCENARIO_UNLOCKING, // Misc WIDX_REAL_NAME_CHECKBOX = WIDX_PAGE_START, @@ -162,7 +164,7 @@ enum WINDOW_OPTIONS_WIDGET_IDX { }; #define WW 310 -#define WH 280 +#define WH 300 #define MAIN_OPTIONS_WIDGETS \ { WWT_FRAME, 0, 0, WW-1, 0, WH-1, STR_NONE, STR_NONE }, \ @@ -253,6 +255,8 @@ static rct_widget window_options_controls_and_interface_widgets[] = { { WWT_CHECKBOX, 2, 155, 299, 229, 240, STR_SHOW_RECENT_MESSAGES_ON_TOOLBAR, STR_NONE }, // Recent messages { WWT_CHECKBOX, 2, 10, 299, 254, 265, STR_SELECT_BY_TRACK_TYPE, STR_SELECT_BY_TRACK_TYPE_TIP }, // Select by track type + { WWT_DROPDOWN, 2, 155, 299, 267, 278, STR_NONE, STR_NONE }, // Scenario select mode + { WWT_CHECKBOX, 2, 10, 299, 281, 292, STR_OPTIONS_SCENARIO_UNLOCKING, STR_NONE }, // Unlocking of scenarios { WIDGETS_END }, }; @@ -418,7 +422,9 @@ static uint32 window_options_page_enabled_widgets[] = { (1 << WIDX_THEMES) | (1 << WIDX_THEMES_DROPDOWN) | (1 << WIDX_THEMES_BUTTON) | - (1 << WIDX_SELECT_BY_TRACK_TYPE), + (1 << WIDX_SELECT_BY_TRACK_TYPE) | + (1 << WIDX_SCENARIO_GROUPING) | + (1 << WIDX_SCENARIO_UNLOCKING), MAIN_OPTIONS_ENABLED_WIDGETS | (1 << WIDX_REAL_NAME_CHECKBOX) | @@ -642,6 +648,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; + case WIDX_SCENARIO_GROUPING: + case WIDX_SCENARIO_UNLOCKING: + config_save_default(); + window_invalidate_by_class(WC_SCENARIO_SELECT); + break; } break; @@ -940,6 +951,23 @@ static void window_options_mousedown(int widgetIndex, rct_window*w, rct_widget* dropdown_set_checked(gCurrentTheme, true); } break; + + case WIDX_SCENARIO_GROUPING: + num_items = 2; + + gDropdownItemsFormat[0] = 1142; + gDropdownItemsArgs[0] = STR_OPTIONS_SCENARIO_ORIGIN; + gDropdownItemsFormat[1] = 1142; + gDropdownItemsArgs[1] = STR_OPTIONS_SCENARIO_DIFFICULTY; + + window_options_show_dropdown(w, widget, num_items); + + if (gConfigGeneral.scenario_select_mode == 1) { + dropdown_set_checked(0, true); + } else { + dropdown_set_checked(1, true); + } + break; } break; @@ -1139,6 +1167,14 @@ static void window_options_dropdown(rct_window *w, int widgetIndex, int dropdown } config_save_default(); break; + case WIDX_SCENARIO_GROUPING: +// if (dropdownIndex != -1) { +// if (dropdownIndex == 0 || dropdownIndex == 1) +// dropdownIndex ^= 1; +// theme_change_preset(dropdownIndex); +// } + config_save_default(); + break; } break; @@ -1320,6 +1356,7 @@ static void window_options_invalidate(rct_window *w) 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); + widget_set_checkbox_value(w, WIDX_SCENARIO_UNLOCKING, gConfigGeneral.scenario_unlocking_enabled); window_options_controls_and_interface_widgets[WIDX_THEMES].type = WWT_DROPDOWN; window_options_controls_and_interface_widgets[WIDX_THEMES_DROPDOWN].type = WWT_DROPDOWN_BUTTON; @@ -1332,6 +1369,8 @@ static void window_options_invalidate(rct_window *w) 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; + window_options_controls_and_interface_widgets[WIDX_SCENARIO_GROUPING].type = WWT_DROPDOWN; + window_options_controls_and_interface_widgets[WIDX_SCENARIO_UNLOCKING].type = WWT_CHECKBOX; break; case WINDOW_OPTIONS_PAGE_MISC: @@ -1473,6 +1512,7 @@ static void window_options_paint(rct_window *w, rct_drawpixelinfo *dpi) 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(dpi, STR_OPTIONS_SCENARIO_GROUPING, NULL, w->colours[1], w->x + 10, w->y + window_options_controls_and_interface_widgets[WIDX_SCENARIO_GROUPING].top + 1); gfx_draw_string_left_clipped( dpi, 1170,