aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scumm/debugger.cpp19
-rw-r--r--scumm/debugger.h1
2 files changed, 20 insertions, 0 deletions
diff --git a/scumm/debugger.cpp b/scumm/debugger.cpp
index 635d068a9b..f4ce0a18c9 100644
--- a/scumm/debugger.cpp
+++ b/scumm/debugger.cpp
@@ -80,6 +80,7 @@ void ScummDebugger::attach(Scumm *s, char *entry) {
DCmd_Register("actor", &ScummDebugger::Cmd_Actor);
DCmd_Register("actors", &ScummDebugger::Cmd_PrintActor);
DCmd_Register("box", &ScummDebugger::Cmd_PrintBox);
+ DCmd_Register("matrix", &ScummDebugger::Cmd_PrintBoxMatrix);
DCmd_Register("room", &ScummDebugger::Cmd_Room);
DCmd_Register("objects", &ScummDebugger::Cmd_PrintObjects);
DCmd_Register("object", &ScummDebugger::Cmd_Object);
@@ -732,6 +733,24 @@ bool ScummDebugger::Cmd_PrintBox(int argc, const char **argv) {
return true;
}
+bool ScummDebugger::Cmd_PrintBoxMatrix(int argc, const char **argv) {
+ byte *boxm = _s->getBoxMatrixBaseAddr();
+ int num = _s->getNumBoxes();
+ int i;
+
+ Debug_Printf("Walk matrix:\n");
+ for (i = 0; i < num; i++) {
+ Debug_Printf("%d: ", i);
+ while (*boxm != 0xFF) {
+ Debug_Printf("[%d] ", *boxm);
+ boxm++;
+ }
+ boxm++;
+ Debug_Printf("\n");
+ }
+ return true;
+}
+
void ScummDebugger::printBox(int box) {
assert(box < _s->getNumBoxes());
BoxCoords coords;
diff --git a/scumm/debugger.h b/scumm/debugger.h
index 73e3fe044c..e33015b617 100644
--- a/scumm/debugger.h
+++ b/scumm/debugger.h
@@ -78,6 +78,7 @@ protected:
bool Cmd_PrintActor(int argc, const char **argv);
bool Cmd_PrintBox(int argc, const char **argv);
+ bool Cmd_PrintBoxMatrix(int argc, const char **argv);
bool Cmd_PrintObjects(int argc, const char **argv);
bool Cmd_Actor(int argc, const char **argv);
bool Cmd_Object(int argc, const char **argv);