[Scummvm-cvs-logs] SF.net SVN: scummvm:[50395] scummvm/trunk/engines/sci
m_kiewitz at users.sourceforge.net
m_kiewitz at users.sourceforge.net
Sun Jun 27 22:38:41 CEST 2010
Revision: 50395
http://scummvm.svn.sourceforge.net/scummvm/?rev=50395&view=rev
Author: m_kiewitz
Date: 2010-06-27 20:38:41 +0000 (Sun, 27 Jun 2010)
Log Message:
-----------
SCI: added additional output to vmvars command
Modified Paths:
--------------
scummvm/trunk/engines/sci/console.cpp
scummvm/trunk/engines/sci/console.h
Modified: scummvm/trunk/engines/sci/console.cpp
===================================================================
--- scummvm/trunk/engines/sci/console.cpp 2010-06-27 20:38:05 UTC (rev 50394)
+++ scummvm/trunk/engines/sci/console.cpp 2010-06-27 20:38:41 UTC (rev 50395)
@@ -2054,9 +2054,11 @@
if (!setValue) {
if (varType == 4)
- DebugPrintf("%s == %04x:%04x\n", varNames[varType], PRINT_REG(*curValue));
+ DebugPrintf("%s == %04x:%04x", varNames[varType], PRINT_REG(*curValue));
else
- DebugPrintf("%s var %d == %04x:%04x\n", varNames[varType], varIndex, PRINT_REG(*curValue));
+ DebugPrintf("%s var %d == %04x:%04x", varNames[varType], varIndex, PRINT_REG(*curValue));
+ printBasicVarInfo(*curValue);
+ DebugPrintf("\n");
} else {
if (parse_reg_t(s, setValue, curValue, true)) {
DebugPrintf("Invalid value/address passed.\n");
@@ -3207,6 +3209,36 @@
return 0;
}
+void Console::printBasicVarInfo(reg_t variable) {
+ int segType = g_sci->getKernel()->findRegType(variable);
+ SegManager *segMan = g_sci->getEngineState()->_segMan;
+
+ segType &= KSIG_ARITHMETIC | KSIG_OBJECT | KSIG_REF | KSIG_NODE | KSIG_LIST;
+
+ switch (segType) {
+ case KSIG_ARITHMETIC: {
+ uint16 content = variable.toUint16();
+ if (content >= 10)
+ DebugPrintf(" (%dd)", content);
+ break;
+ }
+ case KSIG_OBJECT:
+ DebugPrintf(" (object '%s')", segMan->getObjectName(variable));
+ break;
+ case KSIG_REF:
+ DebugPrintf(" (reference)");
+ break;
+ case KSIG_NODE:
+ DebugPrintf(" (node)");
+ break;
+ case KSIG_LIST:
+ DebugPrintf(" (list)");
+ break;
+ default:
+ DebugPrintf(" (???)");
+ }
+}
+
void Console::printList(List *list) {
reg_t pos = list->first;
reg_t my_prev = NULL_REG;
Modified: scummvm/trunk/engines/sci/console.h
===================================================================
--- scummvm/trunk/engines/sci/console.h 2010-06-27 20:38:05 UTC (rev 50394)
+++ scummvm/trunk/engines/sci/console.h 2010-06-27 20:38:41 UTC (rev 50395)
@@ -146,6 +146,8 @@
bool cmdViewActiveObject(int argc, const char **argv);
bool cmdViewAccumulatorObject(int argc, const char **argv);
+ void printBasicVarInfo(reg_t variable);
+
bool segmentInfo(int nr);
void printList(List *list);
int printNode(reg_t addr);
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