[Scummvm-cvs-logs] SF.net SVN: scummvm:[51742] scummvm/trunk/engines/sci

mthreepwood at users.sourceforge.net mthreepwood at users.sourceforge.net
Wed Aug 4 19:50:10 CEST 2010


Revision: 51742
          http://scummvm.svn.sourceforge.net/scummvm/?rev=51742&view=rev
Author:   mthreepwood
Date:     2010-08-04 17:50:09 +0000 (Wed, 04 Aug 2010)

Log Message:
-----------
SCI: Add kDisplay workarounds for the Hero's Quest demo

Modified Paths:
--------------
    scummvm/trunk/engines/sci/engine/kernel.cpp
    scummvm/trunk/engines/sci/engine/workarounds.cpp
    scummvm/trunk/engines/sci/graphics/paint16.cpp

Modified: scummvm/trunk/engines/sci/engine/kernel.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kernel.cpp	2010-08-04 16:53:09 UTC (rev 51741)
+++ scummvm/trunk/engines/sci/engine/kernel.cpp	2010-08-04 17:50:09 UTC (rev 51742)
@@ -68,6 +68,11 @@
 		for (uint loopSelector = _selectorNames.size(); loopSelector <= selector; ++loopSelector)
 			_selectorNames.push_back(Common::String::printf("<noname%d>", loopSelector));
 	}
+
+	// Ensure that the selector has a name
+	if (_selectorNames[selector].empty())
+		_selectorNames[selector] = Common::String::printf("<noname%d>", selector);
+
 	return _selectorNames[selector];
 }
 

Modified: scummvm/trunk/engines/sci/engine/workarounds.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/workarounds.cpp	2010-08-04 16:53:09 UTC (rev 51741)
+++ scummvm/trunk/engines/sci/engine/workarounds.cpp	2010-08-04 17:50:09 UTC (rev 51742)
@@ -173,7 +173,8 @@
 //    gameID,           room,script,lvl,          object-name, method-name,    call,index,                workaround
 const SciWorkaroundEntry kDisplay_workarounds[] = {
 	{ GID_ISLANDBRAIN,   300,   300,  0,           "geneDude", "show",           -1,    0, { WORKAROUND_IGNORE,    0 } }, // when looking at the gene explanation chart - a parameter is an object
-	{ GID_PQ2,            23,    23,  0,         "rm23Script", "elements",    0x4ae,    0, { WORKAROUND_IGNORE,    0 } }, // when looking at the 2nd page of pate's file - 75h as id
+	{ GID_PQ2,            23,    23,  0,         "rm23Script", "elements",    0x4ae,    0, { WORKAROUND_IGNORE,    0 } }, // when looking at the 2nd page of pate's file - 0x75 as id
+	{ GID_QFG1,           11,    11,  0,             "battle", "<noname90>",     -1,    0, { WORKAROUND_IGNORE,    0 } }, // DEMO: When entering battle, 0x75 as id
 	{ GID_SQ4,           391,   391,  0,          "doCatalog", "mode",         0x84,    0, { WORKAROUND_IGNORE,    0 } }, // clicking on catalog in roboter sale - a parameter is an object
 	{ GID_SQ4,           391,   391,  0,         "choosePlug", "changeState",    -1,    0, { WORKAROUND_IGNORE,    0 } }, // ordering connector in roboter sale - a parameter is an object
 	SCI_WORKAROUNDENTRY_TERMINATOR

Modified: scummvm/trunk/engines/sci/graphics/paint16.cpp
===================================================================
--- scummvm/trunk/engines/sci/graphics/paint16.cpp	2010-08-04 16:53:09 UTC (rev 51741)
+++ scummvm/trunk/engines/sci/graphics/paint16.cpp	2010-08-04 17:50:09 UTC (rev 51742)
@@ -459,8 +459,8 @@
 #define SCI_DISPLAY_WIDTH				106
 #define SCI_DISPLAY_SAVEUNDER			107
 #define SCI_DISPLAY_RESTOREUNDER		108
-#define SCI_DISPLAY_DUMMY1				114 // used in longbow-demo, not supported in sierra sci - no parameters
-#define SCI_DISPLAY_DUMMY2				115 // used in longbow-demo, not supported in sierra sci - has 1 parameter
+#define SCI_DISPLAY_DUMMY1				114 // used in longbow demo/qfg1 ega demo, not supported in sierra sci - no parameters
+#define SCI_DISPLAY_DUMMY2				115 // used in longbow demo, not supported in sierra sci - has 1 parameter
 #define SCI_DISPLAY_DONTSHOWBITS		121
 
 reg_t GfxPaint16::kernelDisplay(const char *text, int argc, reg_t *argv) {
@@ -531,15 +531,16 @@
 			break;
 
 		// 2 Dummy functions, longbow-demo is using those several times but sierra sci doesn't support them at all
+		// The Quest for Glory 1 EGA demo also calls kDisplay(114)
 		case SCI_DISPLAY_DUMMY1:
 		case SCI_DISPLAY_DUMMY2:
-			if (!((g_sci->getGameId() == GID_LONGBOW) && (g_sci->isDemo())))
-				error("Unknown kDisplay argument %X", displayArg.offset);
+			if (!g_sci->isDemo() || (g_sci->getGameId() != GID_LONGBOW && g_sci->getGameId() != GID_QFG1))
+				error("Unknown kDisplay argument %d", displayArg.offset);
 			if (displayArg.offset == SCI_DISPLAY_DUMMY2) {
 				if (argc) {
 					argc--; argv++;
 				} else {
-					error("No parameter left for kDisplay(0x73)");
+					error("No parameter left for kDisplay(115)");
 				}
 			}
 			break;


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