diff --git a/src/ai/ai.hpp b/src/ai/ai.hpp index 1b5b6c07da..065367d03b 100644 --- a/src/ai/ai.hpp +++ b/src/ai/ai.hpp @@ -32,7 +32,7 @@ public: START_NEXT_EASY = DAYS_IN_YEAR * 2, START_NEXT_MEDIUM = DAYS_IN_YEAR, START_NEXT_HARD = DAYS_IN_YEAR / 2, - START_NEXT_MIN = 0, + START_NEXT_MIN = 1, START_NEXT_MAX = 3600, START_NEXT_DEVIATION = 60, }; diff --git a/src/ai/ai_config.cpp b/src/ai/ai_config.cpp index a782814786..ea26f32679 100644 --- a/src/ai/ai_config.cpp +++ b/src/ai/ai_config.cpp @@ -127,14 +127,3 @@ void AIConfig::SetSetting(const char *name, int value) ScriptConfig::SetSetting(name, value); } - -void AIConfig::AddRandomDeviation() -{ - int start_date = this->GetSetting("start_date"); - - ScriptConfig::AddRandomDeviation(); - - /* start_date = 0 is a special case, where random deviation does not occur. - * If start_date was not already 0, then a minimum value of 1 must apply. */ - this->SetSetting("start_date", start_date != 0 ? max(1, this->GetSetting("start_date")) : 0); -} diff --git a/src/ai/ai_config.hpp b/src/ai/ai_config.hpp index 30c6f84bbd..12cc02a497 100644 --- a/src/ai/ai_config.hpp +++ b/src/ai/ai_config.hpp @@ -32,7 +32,6 @@ public: /* virtual */ int GetSetting(const char *name) const; /* virtual */ void SetSetting(const char *name, int value); - /* virtual */ void AddRandomDeviation(); /** * When ever the AI Scanner is reloaded, all infos become invalid. This diff --git a/src/company_cmd.cpp b/src/company_cmd.cpp index 2c5a7dc467..651b216a56 100644 --- a/src/company_cmd.cpp +++ b/src/company_cmd.cpp @@ -595,10 +595,10 @@ void StartupCompanies() } /** Start a new competitor company if possible. */ -static bool MaybeStartNewCompany() +static void MaybeStartNewCompany() { #ifdef ENABLE_NETWORK - if (_networking && Company::GetNumItems() >= _settings_client.network.max_companies) return false; + if (_networking && Company::GetNumItems() >= _settings_client.network.max_companies) return; #endif /* ENABLE_NETWORK */ Company *c; @@ -612,10 +612,8 @@ static bool MaybeStartNewCompany() if (n < (uint)_settings_game.difficulty.max_no_competitors) { /* Send a command to all clients to start up a new AI. * Works fine for Multiplayer and Singleplayer */ - return DoCommandP(0, CCA_NEW_AI | INVALID_COMPANY << 16, 0, CMD_COMPANY_CTRL); + DoCommandP(0, CCA_NEW_AI | INVALID_COMPANY << 16, 0, CMD_COMPANY_CTRL); } - - return false; } /** Initialize the pool of companies. */ @@ -716,15 +714,11 @@ void OnTick_Companies() } if (_next_competitor_start == 0) { - /* AI::GetStartNextTime() can return 0. */ - _next_competitor_start = max(1, AI::GetStartNextTime() * DAY_TICKS); + _next_competitor_start = AI::GetStartNextTime() * DAY_TICKS; } - if (_game_mode != GM_MENU && AI::CanStartNew() && --_next_competitor_start == 0) { - /* Allow multiple AIs to possibly start in the same tick. */ - do { - if (!MaybeStartNewCompany()) break; - } while (AI::GetStartNextTime() == 0); + if (AI::CanStartNew() && _game_mode != GM_MENU && --_next_competitor_start == 0) { + MaybeStartNewCompany(); } _cur_company_tick_index = (_cur_company_tick_index + 1) % MAX_COMPANIES; diff --git a/src/script/script_config.hpp b/src/script/script_config.hpp index 3dfd6bb0b2..dfc675473c 100644 --- a/src/script/script_config.hpp +++ b/src/script/script_config.hpp @@ -139,7 +139,7 @@ public: /** * Randomize all settings the Script requested to be randomized. */ - virtual void AddRandomDeviation(); + void AddRandomDeviation(); /** * Is this config attached to an Script? In other words, is there a Script