[Scummvm-cvs-logs] scummvm master -> 65caa0500ff6ef40825dcf178d721827cf702264

athrxx athrxx at scummvm.org
Mon Apr 22 01:04:38 CEST 2013


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
65caa0500f KYRA: (EOB) - add some debugger functions


Commit: 65caa0500ff6ef40825dcf178d721827cf702264
    https://github.com/scummvm/scummvm/commit/65caa0500ff6ef40825dcf178d721827cf702264
Author: athrxx (athrxx at scummvm.org)
Date: 2013-04-21T16:02:41-07:00

Commit Message:
KYRA: (EOB) - add some debugger functions

(show_position, set_position)

Changed paths:
    engines/kyra/debugger.cpp
    engines/kyra/debugger.h



diff --git a/engines/kyra/debugger.cpp b/engines/kyra/debugger.cpp
index 084c436..0a9ec25 100644
--- a/engines/kyra/debugger.cpp
+++ b/engines/kyra/debugger.cpp
@@ -485,6 +485,9 @@ void Debugger_EoB::initialize() {
 	DCmd_Register("import_savefile", WRAP_METHOD(Debugger_EoB, cmd_importSaveFile));
 	DCmd_Register("save_original", WRAP_METHOD(Debugger_EoB, cmd_saveOriginal));
 	DCmd_Register("list_monsters", WRAP_METHOD(Debugger_EoB, cmd_listMonsters));
+	DCmd_Register("show_position", WRAP_METHOD(Debugger_EoB, cmd_showPosition));
+	DCmd_Register("set_position", WRAP_METHOD(Debugger_EoB, cmd_setPosition));
+
 }
 
 bool Debugger_EoB::cmd_importSaveFile(int argc, const char **argv) {
@@ -573,6 +576,48 @@ bool Debugger_EoB::cmd_listMonsters(int, const char **) {
 	return true;
 }
 
+bool Debugger_EoB::cmd_showPosition(int, const char **) {
+	DebugPrintf("\nCurrent level:      %d\nCurrent Sub Level:  %d\nCurrent block:      %d\nCurrent direction:  %d\n\n", _vm->_currentLevel, _vm->_currentSub, _vm->_currentBlock, _vm->_currentDirection);
+	return true;
+}
+
+bool Debugger_EoB::cmd_setPosition(int argc, const char **argv) {
+	if (argc == 4) {
+		_vm->_currentBlock = atoi(argv[3]);
+		int sub = atoi(argv[2]);
+		int level = atoi(argv[1]);
+
+		int maxLevel = (_vm->game() == GI_EOB1) ? 12 : 16;
+		if (level < 1 || level > maxLevel) {
+			DebugPrintf("<level> must be a value from 1 to %d.\n\n", maxLevel);
+			return true;
+		}
+
+		if (level != _vm->_currentLevel || sub != _vm->_currentSub) {
+			_vm->completeDoorOperations();
+			_vm->generateTempData();
+			_vm->txt()->removePageBreakFlag();
+			_vm->screen()->setScreenDim(7);
+
+			_vm->loadLevel(level, sub);
+
+			if (_vm->_dialogueField)
+				_vm->restoreAfterDialogueSequence();
+		}
+
+		_vm->moveParty(_vm->_currentBlock);
+
+		_vm->_sceneUpdateRequired = true;
+		_vm->gui_drawAllCharPortraitsWithStats();
+		DebugPrintf("Success.\n\n");
+
+	} else {
+		DebugPrintf("Syntax:   set_position <level>, <sub level>, <block>\n");
+		DebugPrintf("          (Warning: The sub level and block position parameters will not be checked. Invalid parameters may cause problems.)\n\n");
+	}
+	return true;
+}
+
 #endif // ENABLE_EOB
 
 } // End of namespace Kyra
diff --git a/engines/kyra/debugger.h b/engines/kyra/debugger.h
index d741e19..1432670 100644
--- a/engines/kyra/debugger.h
+++ b/engines/kyra/debugger.h
@@ -122,6 +122,8 @@ protected:
 	bool cmd_importSaveFile(int argc, const char **argv);
 	bool cmd_saveOriginal(int argc, const char **argv);
 	bool cmd_listMonsters(int argc, const char **argv);
+	bool cmd_showPosition(int argc, const char **argv);
+	bool cmd_setPosition(int argc, const char **argv);
 };
 #endif // ENABLE_EOB
 






More information about the Scummvm-git-logs mailing list