Add CityMania settings filter to settings window

This commit is contained in:
dP
2023-03-31 00:26:30 +04:00
parent f4ee27402f
commit cff80683a1
4 changed files with 21 additions and 14 deletions

View File

@@ -1191,7 +1191,9 @@ bool SettingEntry::UpdateFilterState(SettingFilter &filter, bool force_visible)
}
if (visible) {
if (filter.type != ST_ALL && sd->GetType() != filter.type) {
if (filter.type != ST_ALL &&
((filter.type != CM_ST_CITYMANIA || (sd->flags & CM_SF_CITYMANIA) == 0) &&
sd->GetType() != filter.type)) {
filter.type_hides = true;
visible = false;
}
@@ -2119,6 +2121,7 @@ struct GameSettingsWindow : Window {
case ST_GAME: SetDParam(0, _game_mode == GM_MENU ? STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU : STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME); break;
case ST_COMPANY: SetDParam(0, _game_mode == GM_MENU ? STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU : STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME); break;
case ST_CLIENT: SetDParam(0, STR_CONFIG_SETTING_TYPE_DROPDOWN_CLIENT); break;
case CM_ST_CITYMANIA: SetDParam(0, CM_STR_CONFIG_SETTING_TYPE_DROPDOWN_CITYMANIA); break;
default: SetDParam(0, STR_CONFIG_SETTING_TYPE_DROPDOWN_ALL); break;
}
break;
@@ -2144,6 +2147,7 @@ struct GameSettingsWindow : Window {
list.emplace_back(new DropDownListStringItem(_game_mode == GM_MENU ? STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU : STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME, ST_GAME, false));
list.emplace_back(new DropDownListStringItem(_game_mode == GM_MENU ? STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU : STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME, ST_COMPANY, false));
list.emplace_back(new DropDownListStringItem(STR_CONFIG_SETTING_TYPE_DROPDOWN_CLIENT, ST_CLIENT, false));
list.emplace_back(new DropDownListStringItem(CM_STR_CONFIG_SETTING_TYPE_DROPDOWN_CITYMANIA, CM_ST_CITYMANIA, false));
break;
}
return list;