[Scummvm-cvs-logs] scummvm master -> e4378d5bac1b2467190e21333a037a6af34bba52

bluegr md5 at scummvm.org
Fri Jul 6 12:17:55 CEST 2012


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
e4378d5bac SCI: Better handling for Phantasmagoria's odd screen size


Commit: e4378d5bac1b2467190e21333a037a6af34bba52
    https://github.com/scummvm/scummvm/commit/e4378d5bac1b2467190e21333a037a6af34bba52
Author: Filippos Karapetis (md5 at scummvm.org)
Date: 2012-07-06T03:17:04-07:00

Commit Message:
SCI: Better handling for Phantasmagoria's odd screen size

Still not right, as the width isn't set

Changed paths:
    engines/sci/graphics/frameout.cpp
    engines/sci/graphics/screen.cpp



diff --git a/engines/sci/graphics/frameout.cpp b/engines/sci/graphics/frameout.cpp
index defc55e..b13c7f4 100644
--- a/engines/sci/graphics/frameout.cpp
+++ b/engines/sci/graphics/frameout.cpp
@@ -132,18 +132,11 @@ void GfxFrameout::kernelAddPlane(reg_t object) {
 			tmpRunningHeight = 200;
 		}
 		
-		// HACK: Game scripts in Phantasmagoria 1 seem to use a very odd internal
-		// resolution, or some other extra calculation is taking place.
-		// Changing the internal script dimensions to these odd values fixes
-		// object positioning, but makes the interface picture slightly bigger,
-		// thus there is a small gap between the room picture and the interface
-		// edges, plus a couple of pixels of the picture are cut off in the
-		// bottom.
-		// FIXME: Find how to properly handle the script dimensions in
-		// Phantasmagoria. This can't be right.
+		// HACK: Phantasmagoria 1 sets a window size of 630x450.
+		// We can't set a width of 630, as that messes up the pitch, so we hack
+		// the internal script width here
 		if (g_sci->getGameId() == GID_PHANTASMAGORIA) {
 			tmpRunningWidth = 325;
-			tmpRunningHeight = 213;
 		}
 
 		_coordAdjuster->setScriptsResolution(tmpRunningWidth, tmpRunningHeight);
diff --git a/engines/sci/graphics/screen.cpp b/engines/sci/graphics/screen.cpp
index 4020518..3030fb4 100644
--- a/engines/sci/graphics/screen.cpp
+++ b/engines/sci/graphics/screen.cpp
@@ -97,6 +97,13 @@ GfxScreen::GfxScreen(ResourceManager *resMan) : _resMan(resMan) {
 		break;
 	}
 
+	// Phantasmagoria 1 sets a window area of 630x450
+	if (g_sci->getGameId() == GID_PHANTASMAGORIA) {
+		// TODO: Also set width to 630 (can't be set right now, as it messes up
+		// the pitch). For now, a hack has been placed in GfxFrameout::kernelAddPlane()
+		_height = 450;
+	}
+
 	_displayPixels = _displayWidth * _displayHeight;
 	_visualScreen = (byte *)calloc(_pixels, 1);
 	_priorityScreen = (byte *)calloc(_pixels, 1);






More information about the Scummvm-git-logs mailing list