Changeset - r16957:b73e503c5e41
[Not reviewed]
master
0 5 0
yexo - 13 years ago 2011-01-03 14:52:30
yexo@openttd.org
(svn r21703) -Feature [FS#4372]: list_ai_libs console command to get a list of recognized AI libraries (dihedral)
5 files changed with 52 insertions and 7 deletions:
0 comments (0 inline, 0 general)
src/ai/ai.hpp
Show inline comments
 
@@ -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 */
src/ai/ai_core.cpp
Show inline comments
 
@@ -294,6 +294,11 @@ void CcAI(const CommandCost &result, Til
 
	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();
src/ai/ai_scanner.cpp
Show inline comments
 
@@ -343,6 +343,19 @@ char *AIScanner::GetAIConsoleList(char *
 
	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"
src/ai/ai_scanner.hpp
Show inline comments
 
@@ -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; }
src/console_cmds.cpp
Show inline comments
 
@@ -995,21 +995,40 @@ DEF_CONSOLE_CMD(ConRestart)
 
}
 

	
 
#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[0];
 
	p = AI::GetConsoleList(p, lastof(buf));
 

	
 
	p = &buf[0];
 
	char *p = buf;
 
	/* Print output line by line */
 
	for (char *p2 = &buf[0]; *p2 != '\0'; p2++) {
 
	for (char *p2 = buf; *p2 != '\0'; p2++) {
 
		if (*p2 == '\n') {
 
			*p2 = '\0';
 
			IConsolePrintF(CC_DEFAULT, "%s", p);
 
			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;
 
}
 
@@ -1780,6 +1799,7 @@ void IConsoleStdLibRegister()
 
	IConsoleAliasRegister("developer",    "setting developer %+");
 

	
 
#ifdef ENABLE_AI
 
	IConsoleCmdRegister("list_ai_libs", ConListAILibs);
 
	IConsoleCmdRegister("list_ai",      ConListAI);
 
	IConsoleCmdRegister("reload_ai",    ConReloadAI);
 
	IConsoleCmdRegister("rescan_ai",    ConRescanAI);
0 comments (0 inline, 0 general)