From f29941a043704b9a819703b3ab36a8a220a86095 Mon Sep 17 00:00:00 2001 From: truebrain Date: Tue, 13 Jan 2009 12:52:09 +0000 Subject: (svn r15056) -Add [NoAI]: when starting a game, give a random value to the setting marked with AICONFIG_RANDOM (Yexo) --- src/ai/ai_config.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/ai/ai_config.cpp b/src/ai/ai_config.cpp index 186d6d6e3..dc7a3e48d 100644 --- a/src/ai/ai_config.cpp +++ b/src/ai/ai_config.cpp @@ -5,6 +5,7 @@ #include "../stdafx.h" #include "../openttd.h" #include "../settings_type.h" +#include "../core/random_func.hpp" #include "ai.hpp" #include "ai_config.hpp" #include "ai_info.hpp" @@ -20,6 +21,17 @@ void AIConfig::ChangeAI(const char *name, int version) free((void*)(*it).first); } this->settings.clear(); + + if (_game_mode == GM_NORMAL && this->info != NULL) { + /* If we're in an existing game and the AI is changed, set all settings + * for the AI that have the random flag to a random value. */ + for (AIConfigItemList::const_iterator it = this->info->GetConfigList()->begin(); it != this->info->GetConfigList()->end(); it++) { + if ((*it).flags & AICONFIG_RANDOM) { + this->SetSetting((*it).name, InteractiveRandomRange((*it).max_value - (*it).min_value) + (*it).min_value); + } + } + } + } AIConfig::AIConfig(const AIConfig *config) -- cgit v1.2.3-70-g09d2