aboutsummaryrefslogtreecommitdiff
path: root/engines/agos/debugger.cpp
diff options
context:
space:
mode:
authorTravis Howell2009-05-14 07:05:51 +0000
committerTravis Howell2009-05-14 07:05:51 +0000
commitdd54193f9585b88627355e3da2d8d35581f43ed3 (patch)
treeea34e8d97f6e9c228bd225735755eacfb0206239 /engines/agos/debugger.cpp
parent9604e9973643a15d236dbf1f0ca5c470aaabd157 (diff)
downloadscummvm-rg350-dd54193f9585b88627355e3da2d8d35581f43ed3.tar.gz
scummvm-rg350-dd54193f9585b88627355e3da2d8d35581f43ed3.tar.bz2
scummvm-rg350-dd54193f9585b88627355e3da2d8d35581f43ed3.zip
Expand dump image code to cover all games, and add options to the debugger.
svn-id: r40548
Diffstat (limited to 'engines/agos/debugger.cpp')
-rw-r--r--engines/agos/debugger.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/engines/agos/debugger.cpp b/engines/agos/debugger.cpp
index 071aaf236d..a411b9434f 100644
--- a/engines/agos/debugger.cpp
+++ b/engines/agos/debugger.cpp
@@ -47,6 +47,8 @@ Debugger::Debugger(AGOSEngine *vm)
DCmd_Register("var", WRAP_METHOD(Debugger, Cmd_SetVar));
DCmd_Register("obj", WRAP_METHOD(Debugger, Cmd_SetObjectFlag));
DCmd_Register("sub", WRAP_METHOD(Debugger, Cmd_StartSubroutine));
+ DCmd_Register("dumpimage", WRAP_METHOD(Debugger, Cmd_dumpImage));
+ DCmd_Register("dumpscript", WRAP_METHOD(Debugger, Cmd_dumpScript));
}
@@ -263,5 +265,39 @@ bool Debugger::Cmd_StartSubroutine(int argc, const char **argv) {
return true;
}
+bool Debugger::Cmd_dumpImage(int argc, const char **argv) {
+ if (argc > 1) {
+ uint16 zoneNum = atoi(argv[1]);
+ _vm->loadZone(zoneNum, false);
+ VgaPointersEntry *vpe = &_vm->_vgaBufferPointers[zoneNum];
+ if (vpe->vgaFile2 != NULL) {
+ _vm->dumpVgaBitmaps(zoneNum);
+ } else {
+ DebugPrintf("Invalid Zone Number %d\n", zoneNum);
+
+ }
+ } else
+ DebugPrintf("Syntax: dumpimage <zonenum>\n");
+
+ return true;
+}
+
+bool Debugger::Cmd_dumpScript(int argc, const char **argv) {
+ if (argc > 1) {
+ uint16 zoneNum = atoi(argv[1]);
+ _vm->loadZone(zoneNum, false);
+ VgaPointersEntry *vpe = &_vm->_vgaBufferPointers[zoneNum];
+ if (vpe->vgaFile1 != NULL) {
+ _vm->dumpVgaFile(vpe->vgaFile1);
+ } else {
+ DebugPrintf("Invalid Zone Number %d\n", zoneNum);
+
+ }
+ } else
+ DebugPrintf("Syntax: dumpscript <zonenum>\n");
+
+ return true;
+}
+
} // End of namespace AGOS