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

wjpalenstijn at users.sourceforge.net wjpalenstijn at users.sourceforge.net
Sat Mar 18 05:46:05 CET 2006


Revision: 21364
Author:   wjpalenstijn
Date:     2006-03-18 05:44:57 -0800 (Sat, 18 Mar 2006)
ViewCVS:  http://svn.sourceforge.net/scummvm/?rev=21364&view=rev

Log Message:
-----------
workaround: manually add delay when showing image between levels in gob1 ega

Modified Paths:
--------------
    scummvm/trunk/engines/gob/gob.cpp
    scummvm/trunk/engines/gob/gob.h
    scummvm/trunk/engines/gob/inter.cpp
Modified: scummvm/trunk/engines/gob/gob.cpp
===================================================================
--- scummvm/trunk/engines/gob/gob.cpp	2006-03-18 12:43:50 UTC (rev 21363)
+++ scummvm/trunk/engines/gob/gob.cpp	2006-03-18 13:44:57 UTC (rev 21364)
@@ -64,8 +64,8 @@
 
 static const GobGameSettings gob_games[] = {
 	// Supplied by Florian Zeitz on scummvm-devel
-	{"gob1", "Gobliiins (DOS EGA)", GF_GOB1, "82aea70ef26f41fa963dfae270993e49"},
-	{"gob1", "Gobliiins (DOS EGA)", GF_GOB1, "1f499458837008058b8ba6ae07057214"},
+	{"gob1", "Gobliiins (DOS EGA)", GF_GOB1 | GF_EGA, "82aea70ef26f41fa963dfae270993e49"},
+	{"gob1", "Gobliiins (DOS EGA)", GF_GOB1 | GF_EGA, "1f499458837008058b8ba6ae07057214"},
 	{"gob1", "Gobliiins (Windows)", GF_GOB1, "8a5e850c49d7cacdba5f5eb1fcc77b89"},
 
 	// Supplied by Theruler76 in bug report #1201233

Modified: scummvm/trunk/engines/gob/gob.h
===================================================================
--- scummvm/trunk/engines/gob/gob.h	2006-03-18 12:43:50 UTC (rev 21363)
+++ scummvm/trunk/engines/gob/gob.h	2006-03-18 13:44:57 UTC (rev 21364)
@@ -64,14 +64,15 @@
 	GF_GOB3 = 1 << 2,
 	GF_WOODRUFF = 1 << 3,
 	GF_CD = 1 << 4,
-	GF_MAC = 1 << 5
+	GF_MAC = 1 << 5,
+	GF_EGA = 1 << 6
 };
 
 enum {
 	DEBUG_FUNCOP = 1 << 0,
 	DEBUG_DRAWOP = 1 << 1,
 	DEBUG_GOBOP = 1 << 2,
-  DEBUG_MUSIC = 1 << 3,     // CD and adlib music
+	DEBUG_MUSIC = 1 << 3,     // CD and adlib music
 	DEBUG_PARSER = 1 << 4,
 	DEBUG_GAMEFLOW = 1 << 5,
 	DEBUG_FILEIO = 1 << 6,

Modified: scummvm/trunk/engines/gob/inter.cpp
===================================================================
--- scummvm/trunk/engines/gob/inter.cpp	2006-03-18 12:43:50 UTC (rev 21363)
+++ scummvm/trunk/engines/gob/inter.cpp	2006-03-18 13:44:57 UTC (rev 21364)
@@ -139,11 +139,36 @@
 		return;
 	}
 
+	int startaddr = _vm->_global->_inter_execPtr-_vm->_game->_totFileData;
+
 	counter = 0;
 	do {
 		if (_terminate)
 			break;
 
+		// WORKAROUND:
+		// The EGA version of gob1 doesn't add a delay after showing
+		// images between levels. We manually add it here.
+		if ((_vm->_features & GF_GOB1) && (_vm->_features & GF_EGA)) {
+			int addr = _vm->_global->_inter_execPtr-_vm->_game->_totFileData;
+			if ((startaddr == 0x18B4 && addr == 0x1A7F && // Zombie
+				 !strncmp(_vm->_game->_curTotFile, "avt005.tot", 10)) ||
+				(startaddr == 0x1299 && addr == 0x139A && // Dungeon
+				 !strncmp(_vm->_game->_curTotFile, "avt006.tot", 10)) ||
+				(startaddr == 0x11C0 && addr == 0x12C9 && // Cauldron
+				 !strncmp(_vm->_game->_curTotFile, "avt012.tot", 10)) ||
+				(startaddr == 0x09F2 && addr == 0x0AF3 && // Statue
+				 !strncmp(_vm->_game->_curTotFile, "avt016.tot", 10)) ||
+				(startaddr == 0x0B92 && addr == 0x0C93 && // Castle
+				 !strncmp(_vm->_game->_curTotFile, "avt019.tot", 10)) ||
+				(startaddr == 0x17D9 && addr == 0x18DA && // Finale
+				 !strncmp(_vm->_game->_curTotFile, "avt022.tot", 10)))
+			{
+				_vm->_util->longDelay(5000);
+			}
+		}
+		// (end workaround)
+
 		cmd = (byte)*_vm->_global->_inter_execPtr;
 		if ((cmd >> 4) >= 12) {
 			cmd2 = 16 - (cmd >> 4);


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