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

mthreepwood at users.sourceforge.net mthreepwood at users.sourceforge.net
Tue Feb 8 16:03:24 CET 2011


Revision: 55828
          http://scummvm.svn.sourceforge.net/scummvm/?rev=55828&view=rev
Author:   mthreepwood
Date:     2011-02-08 15:03:23 +0000 (Tue, 08 Feb 2011)

Log Message:
-----------
SCI: Add detection for Freddy Pharkas Mac

Modified Paths:
--------------
    scummvm/trunk/engines/sci/detection_tables.h
    scummvm/trunk/engines/sci/graphics/cursor.cpp
    scummvm/trunk/engines/sci/graphics/screen.cpp
    scummvm/trunk/engines/sci/graphics/view.cpp
    scummvm/trunk/engines/sci/sci.cpp

Modified: scummvm/trunk/engines/sci/detection_tables.h
===================================================================
--- scummvm/trunk/engines/sci/detection_tables.h	2011-02-08 14:36:56 UTC (rev 55827)
+++ scummvm/trunk/engines/sci/detection_tables.h	2011-02-08 15:03:23 UTC (rev 55828)
@@ -582,6 +582,13 @@
 		AD_LISTEND},
 		Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO_NONE	},
 
+	// Freddy Pharkas - English Macintosh
+	{"freddypharkas", "", {
+		{"Data1", 0, "ef7cbd62727989818f1cfae69c9fd61d", 3038492},
+		{"Data2", 0, "2424b418f7d52c385cea4701f529c69a", 4721732},
+		AD_LISTEND},
+		Common::EN_ANY, Common::kPlatformMacintosh, ADGF_MACRESFORK, GUIO_NOSPEECH	},
+
 	// Fun Seeker's Guide - English DOS
 	// SCI interpreter version 0.000.506
 	{"funseeker", "", {

Modified: scummvm/trunk/engines/sci/graphics/cursor.cpp
===================================================================
--- scummvm/trunk/engines/sci/graphics/cursor.cpp	2011-02-08 14:36:56 UTC (rev 55827)
+++ scummvm/trunk/engines/sci/graphics/cursor.cpp	2011-02-08 15:03:23 UTC (rev 55828)
@@ -432,17 +432,21 @@
 	// automatically. 
 
 	if (_macCursorRemap.empty()) {
-		// The scripts have given us no remapping, so let's try to do this manually.
-		// First try and see if the view resource exists. If it does, we're just using
-		// that cursor (QFG1/Hoyle4 do not use Mac cursors, although they have them).
-		if (_resMan->testResource(ResourceId(kResourceTypeView, viewNum))) {
-			CursorMan.disableCursorPalette(true);
-			kernelSetView(viewNum, loopNum, celNum, hotspot);
-			return;
+		// QFG1/Freddy use a straight viewNum->cursor ID mapping
+		if (g_sci->getGameId() != GID_QFG1VGA && g_sci->getGameId() != GID_FREDDYPHARKAS) {
+			// The scripts have given us no remapping, so let's try to do this manually.
+			// First try and see if the view resource exists. If it does, we're just using
+			// that cursor (Hoyle4 does not use Mac cursors, although it has them).
+			if (_resMan->testResource(ResourceId(kResourceTypeView, viewNum))) {
+				CursorMan.disableCursorPalette(true);
+				kernelSetView(viewNum, loopNum, celNum, hotspot);
+				return;
+			} else if (g_sci->getGameId() == GID_KQ6) {
+				// KQ6 seems to use this mapping for its cursors
+				viewNum = loopNum * 1000 + celNum;
+			} else
+				error("Unknown Mac cursor %d", viewNum);
 		}
-
-		// KQ6 seems to use this mapping for its cursors
-		viewNum = loopNum * 1000 + celNum;
 	} else {
 		// If we do have the list, we'll be using a remap based on what the
 		// scripts have given us.

Modified: scummvm/trunk/engines/sci/graphics/screen.cpp
===================================================================
--- scummvm/trunk/engines/sci/graphics/screen.cpp	2011-02-08 14:36:56 UTC (rev 55827)
+++ scummvm/trunk/engines/sci/graphics/screen.cpp	2011-02-08 15:03:23 UTC (rev 55828)
@@ -134,6 +134,8 @@
 		// to accommodate for the icon bar. Of course, both KQ6 and QFG1 VGA differ in size.
 		if (g_sci->getGameId() == GID_KQ6)
 			initGraphics(_displayWidth, _displayHeight + 26, _displayWidth > 320);
+		else if (g_sci->getGameId() == GID_FREDDYPHARKAS)
+			initGraphics(_displayWidth, _displayHeight + 28, _displayWidth > 320);
 		else
 			error("Unknown SCI1.1 Mac game");
 	} else

Modified: scummvm/trunk/engines/sci/graphics/view.cpp
===================================================================
--- scummvm/trunk/engines/sci/graphics/view.cpp	2011-02-08 14:36:56 UTC (rev 55827)
+++ scummvm/trunk/engines/sci/graphics/view.cpp	2011-02-08 15:03:23 UTC (rev 55828)
@@ -456,10 +456,10 @@
 			literalPtr = _resourceData + celInfo->offsetLiteral;
 			if (celInfo->offsetRLE) {
 				if (g_sci->getPlatform() == Common::kPlatformMacintosh && getSciVersion() == SCI_VERSION_1_1) {
-					// KQ6 uses byte lengths, all others use uint16
-					// The SCI devs must have quickly realized that a max of 255 pixels wide
+					// KQ6/Freddy Pharkas use byte lengths, all others use uint16
+					// The SCI devs must have realized that a max of 255 pixels wide
 					// was not very good for 320 or 640 width games.
-					bool hasByteLengths = (g_sci->getGameId() == GID_KQ6);
+					bool hasByteLengths = (g_sci->getGameId() == GID_KQ6 || g_sci->getGameId() == GID_FREDDYPHARKAS);
 
 					// compression for SCI1.1+ Mac
 					while (pixelNo < pixelCount) {

Modified: scummvm/trunk/engines/sci/sci.cpp
===================================================================
--- scummvm/trunk/engines/sci/sci.cpp	2011-02-08 14:36:56 UTC (rev 55827)
+++ scummvm/trunk/engines/sci/sci.cpp	2011-02-08 15:03:23 UTC (rev 55828)
@@ -756,7 +756,8 @@
 }
 
 bool SciEngine::hasMacIconBar() const {
-	return _resMan->isSci11Mac() && getSciVersion() == SCI_VERSION_1_1 && getGameId() == GID_KQ6;
+	return _resMan->isSci11Mac() && getSciVersion() == SCI_VERSION_1_1 &&
+			(getGameId() == GID_KQ6 || getGameId() == GID_FREDDYPHARKAS);
 }
 
 Common::String SciEngine::getSavegameName(int nr) const {


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