[Scummvm-cvs-logs] SF.net SVN: scummvm: [30840] scummvm/trunk/engines/parallaction
peres001 at users.sourceforge.net
peres001 at users.sourceforge.net
Sat Feb 9 23:07:51 CET 2008
Revision: 30840
http://scummvm.svn.sourceforge.net/scummvm/?rev=30840&view=rev
Author: peres001
Date: 2008-02-09 14:07:51 -0800 (Sat, 09 Feb 2008)
Log Message:
-----------
Added new debug command to dump scripts execution status.
Modified Paths:
--------------
scummvm/trunk/engines/parallaction/debug.cpp
scummvm/trunk/engines/parallaction/debug.h
scummvm/trunk/engines/parallaction/exec_br.cpp
scummvm/trunk/engines/parallaction/exec_ns.cpp
scummvm/trunk/engines/parallaction/objects.cpp
scummvm/trunk/engines/parallaction/objects.h
Modified: scummvm/trunk/engines/parallaction/debug.cpp
===================================================================
--- scummvm/trunk/engines/parallaction/debug.cpp 2008-02-09 16:27:49 UTC (rev 30839)
+++ scummvm/trunk/engines/parallaction/debug.cpp 2008-02-09 22:07:51 UTC (rev 30840)
@@ -46,6 +46,7 @@
DCmd_Register("locations", WRAP_METHOD(Debugger, Cmd_Locations));
DCmd_Register("gfxobjects", WRAP_METHOD(Debugger, Cmd_GfxObjects));
DCmd_Register("set", WRAP_METHOD(Debugger, Cmd_Set));
+ DCmd_Register("programs", WRAP_METHOD(Debugger, Cmd_Programs));
}
@@ -216,4 +217,25 @@
return true;
}
+bool Debugger::Cmd_Programs(int argc, const char** argv) {
+
+ ProgramList::iterator b = _vm->_programs.begin();
+ ProgramList::iterator e = _vm->_programs.end();
+
+ const char *status[] = { "idle", "running", "completed" };
+
+ int i = 1;
+
+ DebugPrintf("+---+--------------------+----------+\n"
+ "| # | bound animation | status |\n"
+ "+---+--------------------+----------+\n");
+ for ( ; b != e; b++, i++) {
+ Program *p = *b;
+ DebugPrintf("|%3i|%-20s|%-10s|\n", i, p->_anim->_name, status[p->_status] );
+ }
+ DebugPrintf("+---+--------------------+---------+\n");
+
+ return true;
+}
+
} // namespace Parallaction
Modified: scummvm/trunk/engines/parallaction/debug.h
===================================================================
--- scummvm/trunk/engines/parallaction/debug.h 2008-02-09 16:27:49 UTC (rev 30839)
+++ scummvm/trunk/engines/parallaction/debug.h 2008-02-09 22:07:51 UTC (rev 30840)
@@ -30,6 +30,7 @@
bool Cmd_GfxObjects(int argc, const char **argv);
bool Cmd_GfxFeature(int argc, const char** argv);
bool Cmd_Set(int argc, const char** argv);
+ bool Cmd_Programs(int argc, const char** argv);
};
} // End of namespace Parallaction
Modified: scummvm/trunk/engines/parallaction/exec_br.cpp
===================================================================
--- scummvm/trunk/engines/parallaction/exec_br.cpp 2008-02-09 16:27:49 UTC (rev 30839)
+++ scummvm/trunk/engines/parallaction/exec_br.cpp 2008-02-09 22:07:51 UTC (rev 30840)
@@ -489,6 +489,7 @@
if ((_instRunCtxt.anim->_flags & kFlagsLooping) == 0) {
_instRunCtxt.anim->_flags &= ~kFlagsActing;
runCommands(_instRunCtxt.anim->_commands, _instRunCtxt.anim);
+ _instRunCtxt.program->_status = kProgramDone;
}
_instRunCtxt.program->_ip = _instRunCtxt.program->_instructions.begin();
Modified: scummvm/trunk/engines/parallaction/exec_ns.cpp
===================================================================
--- scummvm/trunk/engines/parallaction/exec_ns.cpp 2008-02-09 16:27:49 UTC (rev 30839)
+++ scummvm/trunk/engines/parallaction/exec_ns.cpp 2008-02-09 22:07:51 UTC (rev 30840)
@@ -180,6 +180,7 @@
if ((_instRunCtxt.anim->_flags & kFlagsLooping) == 0) {
_instRunCtxt.anim->_flags &= ~kFlagsActing;
runCommands(_instRunCtxt.anim->_commands, _instRunCtxt.anim);
+ _instRunCtxt.program->_status = kProgramDone;
}
_instRunCtxt.program->_ip = _instRunCtxt.program->_instructions.begin();
@@ -386,6 +387,8 @@
InstructionList::iterator inst = (*it)->_ip;
while (((*inst)->_index != INST_SHOW) && (a->_flags & kFlagsActing)) {
+ (*it)->_status = kProgramRunning;
+
debugC(9, kDebugExec, "Animation: %s, instruction: %s", a->_name, _instructionNamesRes[(*inst)->_index - 1]);
_instRunCtxt.inst = inst;
Modified: scummvm/trunk/engines/parallaction/objects.cpp
===================================================================
--- scummvm/trunk/engines/parallaction/objects.cpp 2008-02-09 16:27:49 UTC (rev 30839)
+++ scummvm/trunk/engines/parallaction/objects.cpp 2008-02-09 22:07:51 UTC (rev 30840)
@@ -85,6 +85,7 @@
_loopCounter = 0;
_locals = new LocalVariable[NUM_LOCALS];
_numLocals = 0;
+ _status = kProgramIdle;
}
Program::~Program() {
Modified: scummvm/trunk/engines/parallaction/objects.h
===================================================================
--- scummvm/trunk/engines/parallaction/objects.h 2008-02-09 16:27:49 UTC (rev 30839)
+++ scummvm/trunk/engines/parallaction/objects.h 2008-02-09 22:07:51 UTC (rev 30840)
@@ -363,6 +363,11 @@
};
+enum {
+ kProgramIdle, // awaiting execution
+ kProgramRunning, // running
+ kProgramDone // execution completed
+};
struct Program {
Animation *_anim;
@@ -377,6 +382,8 @@
InstructionList::iterator _loopStart;
InstructionList _instructions;
+ uint32 _status;
+
Program();
~Program();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list