From aa737715ddef17f448e4121199bd10c0e70fcaaa Mon Sep 17 00:00:00 2001 From: PeterN Date: Mon, 11 Feb 2019 18:59:55 +0000 Subject: [PATCH] Fix #7151: AI start date deviation was still applied when not set to a random AI. (#7223) --- src/ai/ai_config.cpp | 9 +++++++++ src/ai/ai_config.hpp | 4 +--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/ai/ai_config.cpp b/src/ai/ai_config.cpp index 20e913c2e9..a782814786 100644 --- a/src/ai/ai_config.cpp +++ b/src/ai/ai_config.cpp @@ -35,6 +35,15 @@ ScriptConfigItem _start_date_config = { false }; +AIConfig::AIConfig(const AIConfig *config) : ScriptConfig(config) +{ + /* Override start_date as per AIConfig::AddRandomDeviation(). + * This is necessary because the ScriptConfig constructor will instead call + * ScriptConfig::AddRandomDeviation(). */ + int start_date = config->GetSetting("start_date"); + this->SetSetting("start_date", start_date != 0 ? max(1, this->GetSetting("start_date")) : 0); +} + /* static */ AIConfig *AIConfig::GetConfig(CompanyID company, ScriptSettingSource source) { AIConfig **config; diff --git a/src/ai/ai_config.hpp b/src/ai/ai_config.hpp index 600ae1af93..30c6f84bbd 100644 --- a/src/ai/ai_config.hpp +++ b/src/ai/ai_config.hpp @@ -26,9 +26,7 @@ public: ScriptConfig() {} - AIConfig(const AIConfig *config) : - ScriptConfig(config) - {} + AIConfig(const AIConfig *config); class AIInfo *GetInfo() const;