aboutsummaryrefslogtreecommitdiff
path: root/engines/prince/debugger.cpp
diff options
context:
space:
mode:
authorlukaslw2014-07-07 03:12:35 +0200
committerlukaslw2014-07-07 03:12:35 +0200
commitc7eada5b1db234f63fd25f4d397c1dbdf218fbbd (patch)
tree294200f42d9cfec1b5a688ac0589636e1dd8fea3 /engines/prince/debugger.cpp
parentbdd7206fe2f508989331525563a586574d19bfe4 (diff)
downloadscummvm-rg350-c7eada5b1db234f63fd25f4d397c1dbdf218fbbd.tar.gz
scummvm-rg350-c7eada5b1db234f63fd25f4d397c1dbdf218fbbd.tar.bz2
scummvm-rg350-c7eada5b1db234f63fd25f4d397c1dbdf218fbbd.zip
PRINCE: O_COMPAREHI, O_COMPARELO fix, debugger update
Diffstat (limited to 'engines/prince/debugger.cpp')
-rw-r--r--engines/prince/debugger.cpp34
1 files changed, 25 insertions, 9 deletions
diff --git a/engines/prince/debugger.cpp b/engines/prince/debugger.cpp
index 95df1ec4bf..445d5ecfc4 100644
--- a/engines/prince/debugger.cpp
+++ b/engines/prince/debugger.cpp
@@ -22,10 +22,12 @@
#include "prince/debugger.h"
#include "prince/prince.h"
+#include "prince/flags.h"
+#include "prince/script.h"
namespace Prince {
-Debugger::Debugger(PrinceEngine *vm) : GUI::Debugger(), _vm(vm), _locationNr(0) {
+Debugger::Debugger(PrinceEngine *vm, InterpreterFlags *flags) : GUI::Debugger(), _vm(vm), _locationNr(0), _flags(flags) {
DCmd_Register("continue", WRAP_METHOD(Debugger, Cmd_Exit));
DCmd_Register("level", WRAP_METHOD(Debugger, Cmd_DebugLevel));
DCmd_Register("setflag", WRAP_METHOD(Debugger, Cmd_SetFlag));
@@ -34,6 +36,7 @@ Debugger::Debugger(PrinceEngine *vm) : GUI::Debugger(), _vm(vm), _locationNr(0)
DCmd_Register("viewflc", WRAP_METHOD(Debugger, Cmd_ViewFlc));
DCmd_Register("initroom", WRAP_METHOD(Debugger, Cmd_InitRoom));
DCmd_Register("changecursor", WRAP_METHOD(Debugger, Cmd_ChangeCursor));
+ DCmd_Register("additem", WRAP_METHOD(Debugger, Cmd_AddItem));
}
static int strToInt(const char *s) {
@@ -73,13 +76,14 @@ bool Debugger::Cmd_DebugLevel(int argc, const char **argv) {
*/
bool Debugger::Cmd_SetFlag(int argc, const char **argv) {
// Check for a flag to set
- if (argc != 2) {
- DebugPrintf("Usage: %s <flag number>\n", argv[0]);
+ if (argc != 3) {
+ DebugPrintf("Usage: %s <flag number> <value>\n", argv[0]);
return true;
}
- //int flagNum = strToInt(argv[1]);
- //g_globals->setFlag(flagNum);
+ int flagNum = strToInt(argv[1]);
+ uint16 value = strToInt(argv[2]);
+ _flags->setFlagValue((Flags::Id)flagNum, value);
return true;
}
@@ -93,8 +97,8 @@ bool Debugger::Cmd_GetFlag(int argc, const char **argv) {
return true;
}
- //int flagNum = strToInt(argv[1]);
- //DebugPrintf("Value: %d\n", g_globals->getFlag(flagNum));
+ int flagNum = strToInt(argv[1]);
+ DebugPrintf("Value: %d\n", _flags->getFlagValue((Flags::Id)flagNum));
return true;
}
@@ -108,8 +112,8 @@ bool Debugger::Cmd_ClearFlag(int argc, const char **argv) {
return true;
}
- //int flagNum = strToInt(argv[1]);
- //g_globals->clearFlag(flagNum);
+ int flagNum = strToInt(argv[1]);
+ _flags->setFlagValue((Flags::Id)flagNum, 0);
return true;
}
@@ -151,6 +155,18 @@ bool Debugger::Cmd_ChangeCursor(int argc, const char **argv) {
return true;
}
+bool Debugger::Cmd_AddItem(int argc, const char **argv) {
+ if (argc != 2) {
+ DebugPrintf("Usage: %s <itemId>\n", argv[0]);
+ return true;
+ }
+
+ int itemId = strToInt(argv[1]);
+ _vm->addInv(0, itemId, true);
+
+ return true;
+}
+
}
/* vim: set tabstop=4 noexpandtab: */