From 265ae1a5444996acbcf0a2411092ef717d500269 Mon Sep 17 00:00:00 2001 From: Duncan Frost Date: Thu, 31 Jul 2014 17:43:57 +0100 Subject: [PATCH] Fixes #249 --- src/window_options.c | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/src/window_options.c b/src/window_options.c index 9d89125b9e..f721c9da4c 100644 --- a/src/window_options.c +++ b/src/window_options.c @@ -320,18 +320,17 @@ static void window_options_mousedown(int widgetIndex, rct_window*w, rct_widget* switch (widgetIndex) { case WIDX_SOUND_DROPDOWN: - window_options_draw_dropdown_box(w, widget, gAudioDeviceCount); - // populate the list with the sound devices for (i = 0; i < gAudioDeviceCount; i++) { gDropdownItemsFormat[i] = 1142; gDropdownItemsArgs[i] = 1170 | ((uint64)(intptr_t)gAudioDevices[i].name << 16); } + gDropdownItemsChecked |= (1 << RCT2_GLOBAL(0x9AF280, uint32)); + + window_options_draw_dropdown_box(w, widget, gAudioDeviceCount); break; case WIDX_HEIGHT_LABELS_DROPDOWN: - window_options_draw_dropdown_box(w, widget, 2); - gDropdownItemsFormat[0] = 1142; gDropdownItemsFormat[1] = 1142; gDropdownItemsArgs[0] = STR_UNITS; @@ -341,10 +340,9 @@ static void window_options_mousedown(int widgetIndex, rct_window*w, rct_widget* (RCT2_GLOBAL(RCT2_ADDRESS_CONFIG_FLAGS, uint8) & CONFIG_FLAG_SHOW_HEIGHT_AS_UNITS) ? 1 : 2; + window_options_draw_dropdown_box(w, widget, 2); break; case WIDX_MUSIC_DROPDOWN: - window_options_draw_dropdown_box(w, widget, 2); - gDropdownItemsFormat[0] = 1142; gDropdownItemsFormat[1] = 1142; gDropdownItemsArgs[0] = STR_OFF; @@ -352,32 +350,33 @@ static void window_options_mousedown(int widgetIndex, rct_window*w, rct_widget* gDropdownItemsChecked = 1 << RCT2_GLOBAL(RCT2_ADDRESS_CONFIG_MUSIC, uint8); + window_options_draw_dropdown_box(w, widget, 2); break; case WIDX_SOUND_QUALITY_DROPDOWN: num_items = 3; - window_options_draw_dropdown_box(w, widget, num_items); for (i = 0; i < num_items; i++) { gDropdownItemsFormat[i] = 1142; gDropdownItemsArgs[i] = STR_SOUND_LOW + i; // low, medium, high } + gDropdownItemsChecked = 1 << RCT2_GLOBAL(RCT2_ADDRESS_CONFIG_SOUND_QUALITY, uint8); + window_options_draw_dropdown_box(w, widget, num_items); break; case WIDX_CURRENCY_DROPDOWN: num_items = 10; - window_options_draw_dropdown_box(w, widget, num_items); for (i = 0; i < num_items; i++) { gDropdownItemsFormat[i] = 1142; gDropdownItemsArgs[i] = STR_POUNDS + i; // all different currencies } + gDropdownItemsChecked = 1 << (RCT2_GLOBAL(RCT2_ADDRESS_CONFIG_CURRENCY, uint8) & 0x3F); + window_options_draw_dropdown_box(w, widget, num_items); break; case WIDX_DISTANCE_DROPDOWN: - window_options_draw_dropdown_box(w, widget, 2); - gDropdownItemsFormat[0] = 1142; gDropdownItemsFormat[1] = 1142; gDropdownItemsArgs[0] = STR_IMPERIAL; @@ -385,23 +384,24 @@ static void window_options_mousedown(int widgetIndex, rct_window*w, rct_widget* gDropdownItemsChecked = 1 << RCT2_GLOBAL(RCT2_ADDRESS_CONFIG_METRIC, uint8); + window_options_draw_dropdown_box(w, widget, 2); break; case WIDX_RESOLUTION_DROPDOWN: // RCT2_CALLPROC_EBPSAFE(0x006BB2AF); break; case WIDX_FULLSCREEN_DROPDOWN: - window_options_draw_dropdown_box(w, widget, 3); gDropdownItemsFormat[0] = 1142; gDropdownItemsFormat[1] = 1142; gDropdownItemsFormat[2] = 1142; gDropdownItemsArgs[0] = STR_CELSIUS; gDropdownItemsArgs[1] = STR_FAHRENHEIT; gDropdownItemsArgs[2] = STR_METRIC; + gDropdownItemsChecked = 1 << gGeneral_config.fullscreen_mode; + + window_options_draw_dropdown_box(w, widget, 3); break; case WIDX_TEMPERATURE_DROPDOWN: - window_options_draw_dropdown_box(w, widget, 2); - gDropdownItemsFormat[0] = 1142; gDropdownItemsFormat[1] = 1142; gDropdownItemsArgs[0] = STR_CELSIUS; @@ -409,16 +409,17 @@ static void window_options_mousedown(int widgetIndex, rct_window*w, rct_widget* gDropdownItemsChecked = 1 << RCT2_GLOBAL(RCT2_ADDRESS_CONFIG_TEMPERATURE, uint8); + window_options_draw_dropdown_box(w, widget, 2); break; case WIDX_CONSTRUCTION_MARKER_DROPDOWN: - window_options_draw_dropdown_box(w, widget, 2); - gDropdownItemsFormat[0] = 1142; gDropdownItemsFormat[1] = 1142; gDropdownItemsArgs[0] = STR_WHITE; gDropdownItemsArgs[1] = STR_TRANSLUCENT; gDropdownItemsChecked = 1 << RCT2_GLOBAL(RCT2_ADDRESS_CONFIG_CONSTRUCTION_MARKER, uint8); + + window_options_draw_dropdown_box(w, widget, 2); break; } }