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/console_cmds.cpp | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) (limited to 'src/console_cmds.cpp') diff --git a/src/console_cmds.cpp b/src/console_cmds.cpp index 4012c1c8a..a7d855ab2 100644 --- a/src/console_cmds.cpp +++ b/src/console_cmds.cpp @@ -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); -- cgit v1.2.3-54-g00ecf