mirror of https://github.com/OpenTTD/OpenTTD
(svn r24788) -Change: Detach script settings from difficulty settings. Always allow changing all script settings without setting difficulty to custom.
parent
22dc45738d
commit
e43bf5dabd
|
@ -80,7 +80,7 @@ int AIConfig::GetSetting(const char *name) const
|
||||||
{
|
{
|
||||||
if (this->info == NULL) {
|
if (this->info == NULL) {
|
||||||
SettingValueList::const_iterator it = this->settings.find(name);
|
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);
|
assert(strcmp("start_date", name) == 0);
|
||||||
switch (GetGameSettings().difficulty.diff_level) {
|
switch (GetGameSettings().difficulty.diff_level) {
|
||||||
case SP_EASY: return AI::START_NEXT_EASY;
|
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()
|
virtual void OnPaint()
|
||||||
{
|
{
|
||||||
if (this->closing_dropdown) {
|
if (this->closing_dropdown) {
|
||||||
|
@ -517,8 +502,6 @@ struct AISettingsWindow : public Window {
|
||||||
this->ai_config->SetSetting(config_item.name, new_val);
|
this->ai_config->SetSetting(config_item.name, new_val);
|
||||||
this->clicked_button = num;
|
this->clicked_button = num;
|
||||||
this->timeout = 5;
|
this->timeout = 5;
|
||||||
|
|
||||||
this->CheckDifficultyLevel();
|
|
||||||
}
|
}
|
||||||
} else if (!bool_item && !config_item.complete_labels) {
|
} else if (!bool_item && !config_item.complete_labels) {
|
||||||
/* Display a query box so users can enter a custom value. */
|
/* 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;
|
if (_game_mode == GM_NORMAL && ((this->slot == OWNER_DEITY) || Company::IsValidID(this->slot)) && (it->flags & SCRIPTCONFIG_INGAME) == 0) return;
|
||||||
int32 value = atoi(str);
|
int32 value = atoi(str);
|
||||||
this->ai_config->SetSetting((*it).name, value);
|
this->ai_config->SetSetting((*it).name, value);
|
||||||
this->CheckDifficultyLevel();
|
|
||||||
this->SetDirty();
|
this->SetDirty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -561,7 +543,6 @@ struct AISettingsWindow : public Window {
|
||||||
for (int i = 0; i < this->clicked_row; i++) it++;
|
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;
|
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->ai_config->SetSetting((*it).name, index);
|
||||||
this->CheckDifficultyLevel();
|
|
||||||
this->SetDirty();
|
this->SetDirty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -86,11 +86,6 @@ void ScriptConfig::ClearConfigList()
|
||||||
|
|
||||||
int ScriptConfig::GetSetting(const char *name) const
|
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);
|
SettingValueList::const_iterator it = this->settings.find(name);
|
||||||
if (it == this->settings.end()) return this->info->GetSettingDefaultValue(name);
|
if (it == this->settings.end()) return this->info->GetSettingDefaultValue(name);
|
||||||
return (*it).second;
|
return (*it).second;
|
||||||
|
|
Loading…
Reference in New Issue