mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-11-02 09:40:35 +00:00
(svn r21703) -Feature [FS#4372]: list_ai_libs console command to get a list of recognized AI libraries (dihedral)
This commit is contained in:
parent
37b9c31118
commit
8e3e93b96f
@ -126,6 +126,8 @@ public:
|
|||||||
|
|
||||||
/** Wrapper function for AIScanner::GetAIConsoleList */
|
/** Wrapper function for AIScanner::GetAIConsoleList */
|
||||||
static char *GetConsoleList(char *p, const char *last);
|
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 */
|
/** Wrapper function for AIScanner::GetAIInfoList */
|
||||||
static const AIInfoList *GetInfoList();
|
static const AIInfoList *GetInfoList();
|
||||||
/** Wrapper function for AIScanner::GetUniqueAIInfoList */
|
/** Wrapper function for AIScanner::GetUniqueAIInfoList */
|
||||||
|
@ -294,6 +294,11 @@ void CcAI(const CommandCost &result, TileIndex tile, uint32 p1, uint32 p2)
|
|||||||
return AI::ai_scanner->GetAIConsoleList(p, last);
|
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()
|
/* static */ const AIInfoList *AI::GetInfoList()
|
||||||
{
|
{
|
||||||
return AI::ai_scanner->GetAIInfoList();
|
return AI::ai_scanner->GetAIInfoList();
|
||||||
|
@ -343,6 +343,19 @@ char *AIScanner::GetAIConsoleList(char *p, const char *last) const
|
|||||||
return p;
|
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)
|
#if defined(ENABLE_NETWORK)
|
||||||
#include "../network/network_content.h"
|
#include "../network/network_content.h"
|
||||||
#include "../3rdparty/md5/md5.h"
|
#include "../3rdparty/md5/md5.h"
|
||||||
|
@ -58,6 +58,11 @@ public:
|
|||||||
*/
|
*/
|
||||||
char *GetAIConsoleList(char *p, const char *last) const;
|
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.
|
* Get the list of all registered AIs.
|
||||||
*/
|
*/
|
||||||
|
@ -995,21 +995,40 @@ DEF_CONSOLE_CMD(ConRestart)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef ENABLE_AI
|
#ifdef ENABLE_AI
|
||||||
DEF_CONSOLE_CMD(ConListAI)
|
/**
|
||||||
|
* Print a text buffer line by line to the console. Lines are seperated by '\n'.
|
||||||
|
* @param buf The buffer to print.
|
||||||
|
* @note All newlines are replace by '\0' characters.
|
||||||
|
*/
|
||||||
|
static void PrintLineByLine(char *buf)
|
||||||
{
|
{
|
||||||
char buf[4096];
|
char *p = buf;
|
||||||
char *p = &buf[0];
|
|
||||||
p = AI::GetConsoleList(p, lastof(buf));
|
|
||||||
|
|
||||||
p = &buf[0];
|
|
||||||
/* Print output line by line */
|
/* Print output line by line */
|
||||||
for (char *p2 = &buf[0]; *p2 != '\0'; p2++) {
|
for (char *p2 = buf; *p2 != '\0'; p2++) {
|
||||||
if (*p2 == '\n') {
|
if (*p2 == '\n') {
|
||||||
*p2 = '\0';
|
*p2 = '\0';
|
||||||
IConsolePrintF(CC_DEFAULT, "%s", p);
|
IConsolePrintF(CC_DEFAULT, "%s", p);
|
||||||
p = p2 + 1;
|
p = p2 + 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
DEF_CONSOLE_CMD(ConListAILibs)
|
||||||
|
{
|
||||||
|
char buf[4096];
|
||||||
|
AI::GetConsoleLibraryList(buf, lastof(buf));
|
||||||
|
|
||||||
|
PrintLineByLine(buf);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
DEF_CONSOLE_CMD(ConListAI)
|
||||||
|
{
|
||||||
|
char buf[4096];
|
||||||
|
AI::GetConsoleList(buf, lastof(buf));
|
||||||
|
|
||||||
|
PrintLineByLine(buf);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -1780,6 +1799,7 @@ void IConsoleStdLibRegister()
|
|||||||
IConsoleAliasRegister("developer", "setting developer %+");
|
IConsoleAliasRegister("developer", "setting developer %+");
|
||||||
|
|
||||||
#ifdef ENABLE_AI
|
#ifdef ENABLE_AI
|
||||||
|
IConsoleCmdRegister("list_ai_libs", ConListAILibs);
|
||||||
IConsoleCmdRegister("list_ai", ConListAI);
|
IConsoleCmdRegister("list_ai", ConListAI);
|
||||||
IConsoleCmdRegister("reload_ai", ConReloadAI);
|
IConsoleCmdRegister("reload_ai", ConReloadAI);
|
||||||
IConsoleCmdRegister("rescan_ai", ConRescanAI);
|
IConsoleCmdRegister("rescan_ai", ConRescanAI);
|
||||||
|
Loading…
Reference in New Issue
Block a user