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

drmccoy at users.sourceforge.net drmccoy at users.sourceforge.net
Tue Mar 4 21:06:46 CET 2008


Revision: 31042
          http://scummvm.svn.sourceforge.net/scummvm/?rev=31042&view=rev
Author:   drmccoy
Date:     2008-03-04 12:06:46 -0800 (Tue, 04 Mar 2008)

Log Message:
-----------
Added a workaround for the swapped dialog lines when talking to the mayor in some versions Gob2

Modified Paths:
--------------
    scummvm/trunk/engines/gob/draw.h
    scummvm/trunk/engines/gob/draw_v2.cpp

Modified: scummvm/trunk/engines/gob/draw.h
===================================================================
--- scummvm/trunk/engines/gob/draw.h	2008-03-03 23:38:22 UTC (rev 31041)
+++ scummvm/trunk/engines/gob/draw.h	2008-03-04 20:06:46 UTC (rev 31042)
@@ -194,6 +194,9 @@
 
 	Draw_v2(GobEngine *vm);
 	virtual ~Draw_v2() {}
+
+private:
+	uint8 _mayorWorkaroundStatus;
 };
 
 class Draw_Bargon: public Draw_v2 {

Modified: scummvm/trunk/engines/gob/draw_v2.cpp
===================================================================
--- scummvm/trunk/engines/gob/draw_v2.cpp	2008-03-03 23:38:22 UTC (rev 31041)
+++ scummvm/trunk/engines/gob/draw_v2.cpp	2008-03-04 20:06:46 UTC (rev 31042)
@@ -38,6 +38,7 @@
 namespace Gob {
 
 Draw_v2::Draw_v2(GobEngine *vm) : Draw_v1(vm) {
+	_mayorWorkaroundStatus = 0;
 }
 
 void Draw_v2::initScreen() {
@@ -207,6 +208,27 @@
 
 	_vm->validateLanguage();
 
+	// WORKAROUND: In the scripts of some Gobliins 2 versions, the dialog text IDs
+	// for Fingus and the mayor are swapped.
+	if ((_vm->getGameType() == kGameTypeGob2) && !_vm->isCD() &&
+	    (!scumm_stricmp(_vm->_game->_curTotFile, "gob07.tot"))) {
+
+		if (id == 24) {
+			if (_mayorWorkaroundStatus == 1) {
+				_mayorWorkaroundStatus = 0;
+				id = 31;
+			} else
+				_mayorWorkaroundStatus = 2;
+		} else if (id == 31) {
+			if (_mayorWorkaroundStatus == 0) {
+				_mayorWorkaroundStatus = 1;
+				id = 24;
+			} else
+				_mayorWorkaroundStatus = 0;
+		}
+
+	}
+
 	size = _vm->_game->_totTextData->items[id].size;
 	dataPtr = _vm->_game->_totTextData->dataPtr +
 		_vm->_game->_totTextData->items[id].offset;


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