AGS: Add debug console command to enable or disable script dump

This allows to only dump script for a targetted portion of
gameplay rather than dump for the whole time the engine is
running (script dump can be very verbose ;-) ).
This commit is contained in:
Thierry Crozat 2021-04-14 23:47:18 +01:00
parent ba15b9c84b
commit 5104b23bad
2 changed files with 17 additions and 0 deletions

View File

@ -25,6 +25,7 @@
#include "ags/globals.h"
#include "ags/shared/ac/spritecache.h"
#include "ags/shared/gfx/allegrobitmap.h"
#include "ags/shared/script/cc_options.h"
#include "image/png.h"
namespace AGS {
@ -32,6 +33,7 @@ namespace AGS {
AGSConsole::AGSConsole(AGSEngine *vm) : GUI::Debugger(), _vm(vm), _logOutputTarget(nullptr), _agsDebuggerOutput(nullptr) {
registerCmd("ags_debug_groups_list", WRAP_METHOD(AGSConsole, Cmd_listDebugGroups));
registerCmd("ags_debug_groups_set", WRAP_METHOD(AGSConsole, Cmd_setDebugGroupLevel));
registerCmd("ags_set_script_dump", WRAP_METHOD(AGSConsole, Cmd_SetScriptDump));
registerCmd("ags_sprite_info", WRAP_METHOD(AGSConsole, Cmd_getSpriteInfo));
registerCmd("ags_sprite_dump", WRAP_METHOD(AGSConsole, Cmd_dumpSprite));
@ -170,6 +172,19 @@ void AGSConsole::printLevelList() {
debugPrintf(", %s", levelNames[i].name);
}
bool AGSConsole::Cmd_SetScriptDump(int argc, const char **argv) {
if (argc != 2) {
debugPrintf("Usage: %s [on|off]\n", argv[0]);
return true;
}
if (strcmp(argv[1], "on") == 0 || strcmp(argv[1], "true") == 0)
AGS3::ccSetOption(SCOPT_DEBUGRUN, 1);
else
AGS3::ccSetOption(SCOPT_DEBUGRUN, 0);
return true;
}
bool AGSConsole::Cmd_getSpriteInfo(int argc, const char **argv) {
if (argc != 2) {
debugPrintf("Usage: %s SpriteNumber\n", argv[0]);

View File

@ -47,6 +47,8 @@ private:
bool Cmd_listDebugGroups(int argc, const char **argv);
bool Cmd_setDebugGroupLevel(int argc, const char **argv);
bool Cmd_SetScriptDump(int argc, const char **argv);
bool Cmd_getSpriteInfo(int argc, const char **argv);
bool Cmd_dumpSprite(int argc, const char **argv);