[Scummvm-cvs-logs] scummvm master -> 5dd26b9a369690ef24bb8613c27c339c931d8de0

DrMcCoy drmccoy at drmccoy.de
Fri Aug 26 11:54:35 CEST 2011


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

Summary:
5bcb89852f GOB: Add a console command to dump the whole variable space
5dd26b9a36 GOB: Add cheat output for Geisha's mastermind


Commit: 5bcb89852fadb3f5716a52b467a229dda5fed347
    https://github.com/scummvm/scummvm/commit/5bcb89852fadb3f5716a52b467a229dda5fed347
Author: Sven Hesse (drmccoy at users.sourceforge.net)
Date: 2011-08-26T02:50:37-07:00

Commit Message:
GOB: Add a console command to dump the whole variable space

Changed paths:
    engines/gob/console.cpp
    engines/gob/console.h



diff --git a/engines/gob/console.cpp b/engines/gob/console.cpp
index b8aed37..e7296fb 100644
--- a/engines/gob/console.cpp
+++ b/engines/gob/console.cpp
@@ -29,6 +29,7 @@ namespace Gob {
 
 GobConsole::GobConsole(GobEngine *vm) : GUI::Debugger(), _vm(vm) {
 	DCmd_Register("varSize",      WRAP_METHOD(GobConsole, cmd_varSize));
+	DCmd_Register("dumpVars",     WRAP_METHOD(GobConsole, cmd_dumpVars));
 	DCmd_Register("var8",         WRAP_METHOD(GobConsole, cmd_var8));
 	DCmd_Register("var16",        WRAP_METHOD(GobConsole, cmd_var16));
 	DCmd_Register("var32",        WRAP_METHOD(GobConsole, cmd_var32));
@@ -44,6 +45,23 @@ bool GobConsole::cmd_varSize(int argc, const char **argv) {
 	return true;
 }
 
+bool GobConsole::cmd_dumpVars(int argc, const char **argv) {
+	if (!_vm->_inter->_variables)
+		return true;
+
+	Common::DumpFile file;
+
+	if (!file.open("variables.dmp"))
+		return true;
+
+	file.write(_vm->_inter->_variables->getAddressOff8(0), _vm->_inter->_variables->getSize());
+
+	file.flush();
+	file.close();
+
+	return true;
+}
+
 bool GobConsole::cmd_var8(int argc, const char **argv) {
 	if (argc == 1) {
 		DebugPrintf("Usage: var8 <var offset> (<value>)\n");
diff --git a/engines/gob/console.h b/engines/gob/console.h
index b9f9b81..b9c3f5e 100644
--- a/engines/gob/console.h
+++ b/engines/gob/console.h
@@ -38,6 +38,7 @@ private:
 	GobEngine *_vm;
 
 	bool cmd_varSize(int argc, const char **argv);
+	bool cmd_dumpVars(int argc, const char **argv);
 	bool cmd_var8(int argc, const char **argv);
 	bool cmd_var16(int argc, const char **argv);
 	bool cmd_var32(int argc, const char **argv);


Commit: 5dd26b9a369690ef24bb8613c27c339c931d8de0
    https://github.com/scummvm/scummvm/commit/5dd26b9a369690ef24bb8613c27c339c931d8de0
Author: Sven Hesse (drmccoy at users.sourceforge.net)
Date: 2011-08-26T02:50:37-07:00

Commit Message:
GOB: Add cheat output for Geisha's mastermind

Changed paths:
    engines/gob/inter_v1.cpp



diff --git a/engines/gob/inter_v1.cpp b/engines/gob/inter_v1.cpp
index 8d675d1..0eb8be1 100644
--- a/engines/gob/inter_v1.cpp
+++ b/engines/gob/inter_v1.cpp
@@ -658,6 +658,20 @@ void Inter_v1::o1_callSub(OpFuncParams &params) {
 		return;
 	}
 
+	// A cheat to get around the stupid mastermind puzzle in Geisha,
+	// while we're still testing it
+	if ((_vm->getGameType() == kGameTypeGeisha) && (offset == 12934) &&
+	    _vm->isCurrentTot("hard.tot") && _vm->_inter->_variables) {
+
+		uint32 digit1 = READ_VARO_UINT32(0x768);
+		uint32 digit2 = READ_VARO_UINT32(0x76C);
+		uint32 digit3 = READ_VARO_UINT32(0x770);
+		uint32 digit4 = READ_VARO_UINT32(0x774);
+		uint32 digit5 = READ_VARO_UINT32(0x778);
+
+		warning("Mastermind solution: %d %d %d %d %d", digit1, digit2, digit3, digit4, digit5);
+	}
+
 	// Skipping the copy protection screen in Gobliiins
 	if (!_vm->_copyProtection && (_vm->getGameType() == kGameTypeGob1) && (offset == 3905) &&
 	    _vm->isCurrentTot(_vm->_startTot)) {






More information about the Scummvm-git-logs mailing list