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) {
|
||||
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…
Reference in New Issue