(svn r24788) -Change: Detach script settings from difficulty settings. Always allow changing all script settings without setting difficulty to custom.

pull/155/head
frosch 12 years ago
parent 6516c85c82
commit 79968fb667

@ -80,7 +80,7 @@ int AIConfig::GetSetting(const char *name) const
{
if (this->info == NULL) {
SettingValueList::const_iterator it = this->settings.find(name);
if (it == this->settings.end() || GetGameSettings().difficulty.diff_level != SP_CUSTOM) {
if (it == this->settings.end()) {
assert(strcmp("start_date", name) == 0);
switch (GetGameSettings().difficulty.diff_level) {
case SP_EASY: return AI::START_NEXT_EASY;

@ -416,21 +416,6 @@ struct AISettingsWindow : public Window {
}
}
/**
* Check whether we modified the difficulty level or not.
*/
void CheckDifficultyLevel()
{
if (_game_mode == GM_MENU) {
if (_settings_newgame.difficulty.diff_level != SP_CUSTOM) {
_settings_newgame.difficulty.diff_level = SP_CUSTOM;
ShowErrorMessage(STR_WARNING_DIFFICULTY_TO_CUSTOM, INVALID_STRING_ID, WL_WARNING);
}
} else if (_settings_game.difficulty.diff_level != SP_CUSTOM) {
IConsoleSetSetting("difficulty.diff_level", SP_CUSTOM);
}
}
virtual void OnPaint()
{
if (this->closing_dropdown) {
@ -517,8 +502,6 @@ struct AISettingsWindow : public Window {
this->ai_config->SetSetting(config_item.name, new_val);
this->clicked_button = num;
this->timeout = 5;
this->CheckDifficultyLevel();
}
} else if (!bool_item && !config_item.complete_labels) {
/* Display a query box so users can enter a custom value. */
@ -550,7 +533,6 @@ struct AISettingsWindow : public Window {
if (_game_mode == GM_NORMAL && ((this->slot == OWNER_DEITY) || Company::IsValidID(this->slot)) && (it->flags & SCRIPTCONFIG_INGAME) == 0) return;
int32 value = atoi(str);
this->ai_config->SetSetting((*it).name, value);
this->CheckDifficultyLevel();
this->SetDirty();
}
@ -561,7 +543,6 @@ struct AISettingsWindow : public Window {
for (int i = 0; i < this->clicked_row; i++) it++;
if (_game_mode == GM_NORMAL && ((this->slot == OWNER_DEITY) || Company::IsValidID(this->slot)) && (it->flags & SCRIPTCONFIG_INGAME) == 0) return;
this->ai_config->SetSetting((*it).name, index);
this->CheckDifficultyLevel();
this->SetDirty();
}

@ -86,11 +86,6 @@ void ScriptConfig::ClearConfigList()
int ScriptConfig::GetSetting(const char *name) const
{
/* Return default values if the difficulty is not set to Custom */
if (GetGameSettings().difficulty.diff_level != SP_CUSTOM) {
return this->info->GetSettingDefaultValue(name);
}
SettingValueList::const_iterator it = this->settings.find(name);
if (it == this->settings.end()) return this->info->GetSettingDefaultValue(name);
return (*it).second;

Loading…
Cancel
Save