[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