From 8e3e93b96ff0e575c798ed443825c39ff192aa58 Mon Sep 17 00:00:00 2001 From: yexo Date: Mon, 3 Jan 2011 14:52:30 +0000 Subject: (svn r21703) -Feature [FS#4372]: list_ai_libs console command to get a list of recognized AI libraries (dihedral) --- src/ai/ai.hpp | 2 ++ src/ai/ai_core.cpp | 5 +++++ src/ai/ai_scanner.cpp | 13 +++++++++++++ src/ai/ai_scanner.hpp | 5 +++++ 4 files changed, 25 insertions(+) (limited to 'src/ai') diff --git a/src/ai/ai.hpp b/src/ai/ai.hpp index f84175864..67ce470cd 100644 --- a/src/ai/ai.hpp +++ b/src/ai/ai.hpp @@ -126,6 +126,8 @@ public: /** Wrapper function for AIScanner::GetAIConsoleList */ static char *GetConsoleList(char *p, const char *last); + /** Wrapper function for AIScanner::GetAIConsoleLibraryList */ + static char *GetConsoleLibraryList(char *p, const char *last); /** Wrapper function for AIScanner::GetAIInfoList */ static const AIInfoList *GetInfoList(); /** Wrapper function for AIScanner::GetUniqueAIInfoList */ diff --git a/src/ai/ai_core.cpp b/src/ai/ai_core.cpp index b03e2a5ae..f2bfc4292 100644 --- a/src/ai/ai_core.cpp +++ b/src/ai/ai_core.cpp @@ -294,6 +294,11 @@ void CcAI(const CommandCost &result, TileIndex tile, uint32 p1, uint32 p2) return AI::ai_scanner->GetAIConsoleList(p, last); } +/* static */ char *AI::GetConsoleLibraryList(char *p, const char *last) +{ + return AI::ai_scanner->GetAIConsoleLibraryList(p, last); +} + /* static */ const AIInfoList *AI::GetInfoList() { return AI::ai_scanner->GetAIInfoList(); diff --git a/src/ai/ai_scanner.cpp b/src/ai/ai_scanner.cpp index 36607c217..90bdd99c7 100644 --- a/src/ai/ai_scanner.cpp +++ b/src/ai/ai_scanner.cpp @@ -343,6 +343,19 @@ char *AIScanner::GetAIConsoleList(char *p, const char *last) const return p; } +char *AIScanner::GetAIConsoleLibraryList(char *p, const char *last) const +{ + p += seprintf(p, last, "List of AI Libraries:\n"); + AILibraryList::const_iterator it = this->library_list.begin(); + for (; it != this->library_list.end(); it++) { + AILibrary *i = (*it).second; + p += seprintf(p, last, "%10s (v%d): %s\n", i->GetName(), i->GetVersion(), i->GetDescription()); + } + p += seprintf(p, last, "\n"); + + return p; +} + #if defined(ENABLE_NETWORK) #include "../network/network_content.h" #include "../3rdparty/md5/md5.h" diff --git a/src/ai/ai_scanner.hpp b/src/ai/ai_scanner.hpp index fce07f651..117f6cd3e 100644 --- a/src/ai/ai_scanner.hpp +++ b/src/ai/ai_scanner.hpp @@ -58,6 +58,11 @@ public: */ char *GetAIConsoleList(char *p, const char *last) const; + /** + * Get the list of available AI Libraries for the console. + */ + char *GetAIConsoleLibraryList(char *p, const char *last) const; + /** * Get the list of all registered AIs. */ -- cgit v1.2.3-54-g00ecf