aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/graphics/screen.cpp
diff options
context:
space:
mode:
authorMartin Kiewitz2014-11-09 17:33:17 +0100
committerMartin Kiewitz2014-11-09 17:33:17 +0100
commit5594feff2a7a209d62b5ecfba02262680fd27d97 (patch)
treee5befdb6e5e33f3c9ec91402eacf71742ea978c9 /engines/sci/graphics/screen.cpp
parent72e6a9eeab1082892e5d77fabc4f0b50f839615a (diff)
downloadscummvm-rg350-5594feff2a7a209d62b5ecfba02262680fd27d97.tar.gz
scummvm-rg350-5594feff2a7a209d62b5ecfba02262680fd27d97.tar.bz2
scummvm-rg350-5594feff2a7a209d62b5ecfba02262680fd27d97.zip
SCI: Phantasmagoria actually outputs 630x450 now
clipping of video output was required
Diffstat (limited to 'engines/sci/graphics/screen.cpp')
-rw-r--r--engines/sci/graphics/screen.cpp25
1 files changed, 15 insertions, 10 deletions
diff --git a/engines/sci/graphics/screen.cpp b/engines/sci/graphics/screen.cpp
index 594c4b3442..8b0e76332f 100644
--- a/engines/sci/graphics/screen.cpp
+++ b/engines/sci/graphics/screen.cpp
@@ -43,6 +43,8 @@ GfxScreen::GfxScreen(ResourceManager *resMan) : _resMan(resMan) {
_scriptHeight = 200;
_width = 0;
_height = 0;
+ _displayWidth = 0;
+ _displayHeight = 0;
// King's Quest 6 and Gabriel Knight 1 have hires content, gk1/cd was able
// to provide that under DOS as well, but as gk1/floppy does support
@@ -93,19 +95,20 @@ GfxScreen::GfxScreen(ResourceManager *resMan) : _resMan(resMan) {
}
#endif
-#ifdef ENABLE_SCI32
- // Phantasmagoria 1 sets a window area of 630x450
- //if (g_sci->getGameId() == GID_PHANTASMAGORIA) {
- // _width = 630;
- // _height = 450;
- //}
-#endif
-
if (_resMan->detectHires()) {
_scriptWidth = 640;
_scriptHeight = 480;
}
+#ifdef ENABLE_SCI32
+ // Phantasmagoria 1 effectively outputs 630x450
+ // Coordinate translation has to use this resolution as well
+ if (g_sci->getGameId() == GID_PHANTASMAGORIA) {
+ _width = 630;
+ _height = 450;
+ }
+#endif
+
// if not yet set, set those to script-width/height
if (!_width)
_width = _scriptWidth;
@@ -152,8 +155,10 @@ GfxScreen::GfxScreen(ResourceManager *resMan) : _resMan(resMan) {
_upscaledWidthMapping[i] = i * 2;
break;
default:
- _displayWidth = _width;
- _displayHeight = _height;
+ if (!_displayWidth)
+ _displayWidth = _width;
+ if (!_displayHeight)
+ _displayHeight = _height;
memset(&_upscaledHeightMapping, 0, sizeof(_upscaledHeightMapping) );
memset(&_upscaledWidthMapping, 0, sizeof(_upscaledWidthMapping) );
break;