|
@@ -457,14 +457,20 @@ struct GameOptionsWindow : Window {
|
|
|
case GOW_BASE_MUSIC_DROPDOWN:
|
|
|
this->SetMediaSet<BaseMusic>(index);
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
virtual void OnInvalidateData(int data)
|
|
|
/**
|
|
|
* Some data on this window has become invalid.
|
|
|
* @param data Information about the changed data.
|
|
|
* @param gui_scope Whether the call is done from GUI scope. You may not do everything when not in GUI scope. See #InvalidateWindowData() for details.
|
|
|
*/
|
|
|
virtual void OnInvalidateData(int data = 0, bool gui_scope = true)
|
|
|
{
|
|
|
if (!gui_scope) return;
|
|
|
this->SetWidgetLoweredState(GOW_FULLSCREEN_BUTTON, _fullscreen);
|
|
|
|
|
|
bool missing_files = BaseGraphics::GetUsedSet()->GetNumMissing() == 0;
|
|
|
this->GetWidget<NWidgetCore>(GOW_BASE_GRF_STATUS)->SetDataTip(missing_files ? STR_EMPTY : STR_GAME_OPTIONS_BASE_GRF_STATUS, STR_NULL);
|
|
|
|
|
|
missing_files = BaseMusic::GetUsedSet()->GetNumInvalid() == 0;
|
|
@@ -721,14 +727,20 @@ public:
|
|
|
case GDW_CANCEL: // Cancel button - close window, abandon changes
|
|
|
delete this;
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
virtual void OnInvalidateData(int data = 0)
|
|
|
/**
|
|
|
* Some data on this window has become invalid.
|
|
|
* @param data Information about the changed data.
|
|
|
* @param gui_scope Whether the call is done from GUI scope. You may not do everything when not in GUI scope. See #InvalidateWindowData() for details.
|
|
|
*/
|
|
|
virtual void OnInvalidateData(int data = 0, bool gui_scope = true)
|
|
|
{
|
|
|
if (!gui_scope) return;
|
|
|
uint i;
|
|
|
const SettingDesc *sd = GetSettingFromName("difficulty.max_no_competitors", &i);
|
|
|
for (i = 0; i < GAME_DIFFICULTY_NUM; i++, sd++) {
|
|
|
const SettingDescBase *sdb = &sd->desc;
|
|
|
/* skip deprecated difficulty options */
|
|
|
if (!SlIsObjectCurrentlyValid(sd->save.version_from, sd->save.version_to)) continue;
|