diff options
author | Paul Gilbert | 2014-08-20 20:27:52 -0400 |
---|---|---|
committer | Paul Gilbert | 2014-08-20 20:27:52 -0400 |
commit | a8dd2defaa3a6680102e230d091d705d54f87d7e (patch) | |
tree | aa201a5ea454df09c59395efaabf3fae04199838 | |
parent | 4e5eb04e47c96f98cdc6519ae79b908efc9888e7 (diff) | |
download | scummvm-rg350-a8dd2defaa3a6680102e230d091d705d54f87d7e.tar.gz scummvm-rg350-a8dd2defaa3a6680102e230d091d705d54f87d7e.tar.bz2 scummvm-rg350-a8dd2defaa3a6680102e230d091d705d54f87d7e.zip |
ACCESS: Added scene debugger command
-rw-r--r-- | engines/access/debugger.cpp | 36 | ||||
-rw-r--r-- | engines/access/debugger.h | 1 |
2 files changed, 37 insertions, 0 deletions
diff --git a/engines/access/debugger.cpp b/engines/access/debugger.cpp index e92e3402ac..d20b5d3e6b 100644 --- a/engines/access/debugger.cpp +++ b/engines/access/debugger.cpp @@ -28,6 +28,42 @@ namespace Access { Debugger::Debugger(AccessEngine *vm) : GUI::Debugger(), _vm(vm) { registerCmd("continue", WRAP_METHOD(Debugger, cmdExit)); + registerCmd("scene", WRAP_METHOD(Debugger, Cmd_LoadScene)); +} + +static int strToInt(const char *s) { + if (!*s) + // No string at all + return 0; + else if (toupper(s[strlen(s) - 1]) != 'H') + // Standard decimal string + return atoi(s); + + // Hexadecimal string + uint tmp = 0; + int read = sscanf(s, "%xh", &tmp); + if (read < 1) + error("strToInt failed on string \"%s\"", s); + return (int)tmp; +} + +bool Debugger::Cmd_LoadScene(int argc, const char **argv) { + if (argc != 2) { + debugPrintf("Current scene is: %d\n", _vm->_player->_roomNumber); + debugPrintf("Usage: %s <scene number>\n", argv[0]); + return true; + } + else { + _vm->_player->_roomNumber = strToInt(argv[1]); + + _vm->_room->_function = FN_CLEAR1; + _vm->freeChar(); + _vm->_converseMode = 0; + _vm->_scripts->_endFlag = true; + _vm->_scripts->_returnCode = 0; + + return false; + } } } // End of namespace Access diff --git a/engines/access/debugger.h b/engines/access/debugger.h index dcf49c4ecd..6c8424dac4 100644 --- a/engines/access/debugger.h +++ b/engines/access/debugger.h @@ -34,6 +34,7 @@ class Debugger : public GUI::Debugger { private: AccessEngine *_vm; protected: + bool Cmd_LoadScene(int argc, const char **argv); public: public: Debugger(AccessEngine *vm); |