summaryrefslogtreecommitdiff
path: root/src/ai
diff options
context:
space:
mode:
authoryexo <yexo@openttd.org>2011-01-03 14:52:30 +0000
committeryexo <yexo@openttd.org>2011-01-03 14:52:30 +0000
commit8e3e93b96ff0e575c798ed443825c39ff192aa58 (patch)
treea905c62e1fe00581214ec95247ff4578052bd7d0 /src/ai
parent37b9c311184c21dda3da165c18933b707d2a227b (diff)
downloadopenttd-8e3e93b96ff0e575c798ed443825c39ff192aa58.tar.xz
(svn r21703) -Feature [FS#4372]: list_ai_libs console command to get a list of recognized AI libraries (dihedral)
Diffstat (limited to 'src/ai')
-rw-r--r--src/ai/ai.hpp2
-rw-r--r--src/ai/ai_core.cpp5
-rw-r--r--src/ai/ai_scanner.cpp13
-rw-r--r--src/ai/ai_scanner.hpp5
4 files changed, 25 insertions, 0 deletions
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
@@ -59,6 +59,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.
*/
const AIInfoList *GetAIInfoList() { return &this->info_list; }