diff options
-rw-r--r-- | scumm/debugger.cpp | 19 | ||||
-rw-r--r-- | scumm/debugger.h | 1 |
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); |