diff options
Diffstat (limited to 'src/console_cmds.cpp')
-rw-r--r-- | src/console_cmds.cpp | 34 |
1 files changed, 27 insertions, 7 deletions
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); |