# HG changeset patch # User truebrain # Date 1322869232 0 # Node ID 9dd1621dadfec32ee4e318147e854be346f703f7 # Parent 861edb824eb8ca97e133a166a04e6140810e2e76 (svn r23399) -Fix (r23362): a randomizer should return a random value, not always the first diff --git a/src/ai/ai_scanner.cpp b/src/ai/ai_scanner.cpp --- a/src/ai/ai_scanner.cpp +++ b/src/ai/ai_scanner.cpp @@ -81,13 +81,15 @@ /* Find the Nth item from the array */ ScriptInfoList::const_iterator it = this->info_single_list.begin(); - AIInfo *i = static_cast((*it).second); - while (!i->UseAsRandomAI()) it++; + +#define GetAIInfo(it) static_cast((*it).second) + while (!GetAIInfo(it)->UseAsRandomAI()) it++; for (; pos > 0; pos--) { it++; - while (!i->UseAsRandomAI()) it++; + while (!GetAIInfo(it)->UseAsRandomAI()) it++; } - return i; + return GetAIInfo(it); +#undef GetAIInfo } AIInfo *AIScannerInfo::FindInfo(const char *nameParam, int versionParam, bool force_exact_match)