mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2025-12-10 17:42:29 +01:00
Merge pull request #9458 from Spongeloaf/feature/9285_scenario_group_tab
Fix #9285 Add feature to remember scernario tab
This commit is contained in:
@@ -960,6 +960,7 @@ static void window_options_mouseup(rct_window* w, rct_widgetindex widgetIndex)
|
|||||||
{
|
{
|
||||||
SafeFree(gConfigGeneral.rct1_path);
|
SafeFree(gConfigGeneral.rct1_path);
|
||||||
gConfigGeneral.rct1_path = rct1path;
|
gConfigGeneral.rct1_path = rct1path;
|
||||||
|
gConfigInterface.scenarioselect_last_tab = 0;
|
||||||
config_save_default();
|
config_save_default();
|
||||||
context_show_error(STR_RESTART_REQUIRED, STR_NONE);
|
context_show_error(STR_RESTART_REQUIRED, STR_NONE);
|
||||||
}
|
}
|
||||||
@@ -1603,6 +1604,7 @@ static void window_options_dropdown(rct_window* w, rct_widgetindex widgetIndex,
|
|||||||
if (dropdownIndex != gConfigGeneral.scenario_select_mode)
|
if (dropdownIndex != gConfigGeneral.scenario_select_mode)
|
||||||
{
|
{
|
||||||
gConfigGeneral.scenario_select_mode = dropdownIndex;
|
gConfigGeneral.scenario_select_mode = dropdownIndex;
|
||||||
|
gConfigInterface.scenarioselect_last_tab = 0;
|
||||||
config_save_default();
|
config_save_default();
|
||||||
window_invalidate(w);
|
window_invalidate(w);
|
||||||
window_close_by_class(WC_SCENARIO_SELECT);
|
window_close_by_class(WC_SCENARIO_SELECT);
|
||||||
|
|||||||
@@ -226,10 +226,17 @@ static void window_scenarioselect_init_tabs(rct_window* w)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t firstPage = bitscanforward(showPages);
|
if (showPages & (1 << gConfigInterface.scenarioselect_last_tab))
|
||||||
if (firstPage != -1)
|
|
||||||
{
|
{
|
||||||
w->selected_tab = firstPage;
|
w->selected_tab = gConfigInterface.scenarioselect_last_tab;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
int32_t firstPage = bitscanforward(showPages);
|
||||||
|
if (firstPage != -1)
|
||||||
|
{
|
||||||
|
w->selected_tab = firstPage;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t x = 3;
|
int32_t x = 3;
|
||||||
@@ -269,6 +276,8 @@ static void window_scenarioselect_mousedown(rct_window* w, rct_widgetindex widge
|
|||||||
{
|
{
|
||||||
w->selected_tab = widgetIndex - 4;
|
w->selected_tab = widgetIndex - 4;
|
||||||
w->highlighted_scenario = nullptr;
|
w->highlighted_scenario = nullptr;
|
||||||
|
gConfigInterface.scenarioselect_last_tab = w->selected_tab;
|
||||||
|
config_save_default();
|
||||||
initialise_list_items(w);
|
initialise_list_items(w);
|
||||||
window_invalidate(w);
|
window_invalidate(w);
|
||||||
window_event_resize_call(w);
|
window_event_resize_call(w);
|
||||||
|
|||||||
@@ -300,6 +300,7 @@ namespace Config
|
|||||||
model->current_theme_preset = reader->GetCString("current_theme", "*RCT2");
|
model->current_theme_preset = reader->GetCString("current_theme", "*RCT2");
|
||||||
model->current_title_sequence_preset = reader->GetCString("current_title_sequence", "*OPENRCT2");
|
model->current_title_sequence_preset = reader->GetCString("current_title_sequence", "*OPENRCT2");
|
||||||
model->object_selection_filter_flags = reader->GetInt32("object_selection_filter_flags", 0x3FFF);
|
model->object_selection_filter_flags = reader->GetInt32("object_selection_filter_flags", 0x3FFF);
|
||||||
|
model->scenarioselect_last_tab = reader->GetInt32("scenarioselect_last_tab", 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -317,6 +318,7 @@ namespace Config
|
|||||||
writer->WriteString("current_theme", model->current_theme_preset);
|
writer->WriteString("current_theme", model->current_theme_preset);
|
||||||
writer->WriteString("current_title_sequence", model->current_title_sequence_preset);
|
writer->WriteString("current_title_sequence", model->current_title_sequence_preset);
|
||||||
writer->WriteInt32("object_selection_filter_flags", model->object_selection_filter_flags);
|
writer->WriteInt32("object_selection_filter_flags", model->object_selection_filter_flags);
|
||||||
|
writer->WriteInt32("scenarioselect_last_tab", model->scenarioselect_last_tab);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ReadSound(IIniReader* reader)
|
static void ReadSound(IIniReader* reader)
|
||||||
|
|||||||
@@ -109,6 +109,7 @@ struct InterfaceConfiguration
|
|||||||
utf8* current_theme_preset;
|
utf8* current_theme_preset;
|
||||||
utf8* current_title_sequence_preset;
|
utf8* current_title_sequence_preset;
|
||||||
int32_t object_selection_filter_flags;
|
int32_t object_selection_filter_flags;
|
||||||
|
int32_t scenarioselect_last_tab;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct SoundConfiguration
|
struct SoundConfiguration
|
||||||
|
|||||||
Reference in New Issue
Block a user