[Scummvm-cvs-logs] SF.net SVN: scummvm:[42588] scummvm/trunk/engines/gob/inter_v2.cpp

drmccoy at users.sourceforge.net drmccoy at users.sourceforge.net
Sat Jul 18 15:05:36 CEST 2009


Revision: 42588
          http://scummvm.svn.sourceforge.net/scummvm/?rev=42588&view=rev
Author:   drmccoy
Date:     2009-07-18 13:05:36 +0000 (Sat, 18 Jul 2009)

Log Message:
-----------
Adding a workaround for the guard house card game "game over" screen in Woodruff

Modified Paths:
--------------
    scummvm/trunk/engines/gob/inter_v2.cpp

Modified: scummvm/trunk/engines/gob/inter_v2.cpp
===================================================================
--- scummvm/trunk/engines/gob/inter_v2.cpp	2009-07-18 12:51:12 UTC (rev 42587)
+++ scummvm/trunk/engines/gob/inter_v2.cpp	2009-07-18 13:05:36 UTC (rev 42588)
@@ -587,6 +587,11 @@
 	if (!scumm_stricmp(totFile, "edit"))
 		_vm->_util->forceMouseUp();
 
+	// WORKAROUND: For some reason, the variable indicating which TOT to load next
+	// is overwritten in the guard house card game in Woodruff
+	if ((_vm->getGameType() == kGameTypeWoodruff) && !scumm_stricmp(totFile, "6"))
+		strcpy(totFile, "EMAP2011");
+
 	flags = _vm->_game->_script->readByte();
 	_vm->_game->totSub(flags, totFile);
 }
@@ -1297,16 +1302,23 @@
 	size = -1;
 	handle = 1;
 
-	mode = _vm->_saveLoad->getSaveMode(_vm->_game->_script->getResultStr());
+	char *file = _vm->_game->_script->getResultStr();
+
+	// WORKAROUND: For some reason, the variable indicating which TOT to load next
+	// is overwritten in the guard house card game in Woodruff
+	if ((_vm->getGameType() == kGameTypeWoodruff) && !scumm_stricmp(file, "6.TOT"))
+		strcpy(file, "EMAP2011.TOT");
+
+	mode = _vm->_saveLoad->getSaveMode(file);
 	if (mode == SaveLoad::kSaveModeNone) {
 
-		if (_vm->_dataIO->existData(_vm->_game->_script->getResultStr()))
-			size = _vm->_dataIO->getDataSize(_vm->_game->_script->getResultStr());
+		if (_vm->_dataIO->existData(file))
+			size = _vm->_dataIO->getDataSize(file);
 		else
-			warning("File \"%s\" not found", _vm->_game->_script->getResultStr());
+			warning("File \"%s\" not found", file);
 
 	} else if (mode == SaveLoad::kSaveModeSave)
-		size = _vm->_saveLoad->getSize(_vm->_game->_script->getResultStr());
+		size = _vm->_saveLoad->getSize(file);
 	else if (mode == SaveLoad::kSaveModeExists)
 		size = 23;
 
@@ -1314,7 +1326,7 @@
 		handle = -1;
 
 	debugC(2, kDebugFileIO, "Requested size of file \"%s\": %d",
-			_vm->_game->_script->getResultStr(), size);
+			file, size);
 
 	WRITE_VAR_OFFSET(varOff, handle);
 	WRITE_VAR(16, (uint32) size);
@@ -1338,13 +1350,15 @@
 	offset = _vm->_game->_script->getResultInt();
 	retSize = 0;
 
+	char *file = _vm->_game->_script->getResultStr();
+
 	debugC(2, kDebugFileIO, "Read from file \"%s\" (%d, %d bytes at %d)",
-			_vm->_game->_script->getResultStr(), dataVar, size, offset);
+			file, dataVar, size, offset);
 
-	mode = _vm->_saveLoad->getSaveMode(_vm->_game->_script->getResultStr());
+	mode = _vm->_saveLoad->getSaveMode(file);
 	if (mode == SaveLoad::kSaveModeSave) {
 		WRITE_VAR(1, 1);
-		if (_vm->_saveLoad->load(_vm->_game->_script->getResultStr(), dataVar, size, offset))
+		if (_vm->_saveLoad->load(file, dataVar, size, offset))
 			WRITE_VAR(1, 0);
 		return false;
 	} else if (mode == SaveLoad::kSaveModeIgnore)
@@ -1352,7 +1366,7 @@
 
 	if (size < 0) {
 		warning("Attempted to read a raw sprite from file \"%s\"",
-				_vm->_game->_script->getResultStr());
+				file);
 		return false ;
 	} else if (size == 0) {
 		dataVar = 0;
@@ -1361,13 +1375,13 @@
 
 	buf = _variables->getAddressOff8(dataVar);
 
-	if (_vm->_game->_script->getResultStr()[0] == 0) {
+	if (file[0] == 0) {
 		WRITE_VAR(1, size);
 		return false;
 	}
 
 	WRITE_VAR(1, 1);
-	handle = _vm->_dataIO->openData(_vm->_game->_script->getResultStr());
+	handle = _vm->_dataIO->openData(file);
 
 	if (handle < 0)
 		return false;
@@ -1408,17 +1422,19 @@
 	_vm->_game->_script->evalExpr(0);
 	offset = _vm->_game->_script->getResultInt();
 
+	char *file = _vm->_game->_script->getResultStr();
+
 	debugC(2, kDebugFileIO, "Write to file \"%s\" (%d, %d bytes at %d)",
-			_vm->_game->_script->getResultStr(), dataVar, size, offset);
+			file, dataVar, size, offset);
 
 	WRITE_VAR(1, 1);
 
-	mode = _vm->_saveLoad->getSaveMode(_vm->_game->_script->getResultStr());
+	mode = _vm->_saveLoad->getSaveMode(file);
 	if (mode == SaveLoad::kSaveModeSave) {
-		if (_vm->_saveLoad->save(_vm->_game->_script->getResultStr(), dataVar, size, offset))
+		if (_vm->_saveLoad->save(file, dataVar, size, offset))
 			WRITE_VAR(1, 0);
 	} else if (mode == SaveLoad::kSaveModeNone)
-		warning("Attempted to write to file \"%s\"", _vm->_game->_script->getResultStr());
+		warning("Attempted to write to file \"%s\"", file);
 
 	return false;
 }


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