[Scummvm-cvs-logs] SF.net SVN: scummvm:[51272] scummvm/trunk/engines/sci/graphics/frameout.cpp
m_kiewitz at users.sourceforge.net
m_kiewitz at users.sourceforge.net
Sun Jul 25 14:48:49 CEST 2010
Revision: 51272
http://scummvm.svn.sourceforge.net/scummvm/?rev=51272&view=rev
Author: m_kiewitz
Date: 2010-07-25 12:48:48 +0000 (Sun, 25 Jul 2010)
Log Message:
-----------
SCI: adjust z coordinate for views (sci32)
fixes gk1 newspaper
Modified Paths:
--------------
scummvm/trunk/engines/sci/graphics/frameout.cpp
Modified: scummvm/trunk/engines/sci/graphics/frameout.cpp
===================================================================
--- scummvm/trunk/engines/sci/graphics/frameout.cpp 2010-07-25 11:40:47 UTC (rev 51271)
+++ scummvm/trunk/engines/sci/graphics/frameout.cpp 2010-07-25 12:48:48 UTC (rev 51272)
@@ -179,16 +179,14 @@
planeRect.left = readSelectorValue(_segMan, planeObject, SELECTOR(left));
planeRect.bottom = readSelectorValue(_segMan, planeObject, SELECTOR(bottom)) + 1;
planeRect.right = readSelectorValue(_segMan, planeObject, SELECTOR(right)) + 1;
- int16 planeResY = readSelectorValue(_segMan, planeObject, SELECTOR(resY));
- int16 planeResX = readSelectorValue(_segMan, planeObject, SELECTOR(resX));
// Update priority here, sq6 sets it w/o UpdatePlane
uint16 planePriority = it->priority = readSelectorValue(_segMan, planeObject, SELECTOR(priority));
- planeRect.top = (planeRect.top * _screen->getHeight()) / planeResY;
- planeRect.left = (planeRect.left * _screen->getWidth()) / planeResX;
- planeRect.bottom = (planeRect.bottom * _screen->getHeight()) / planeResY;
- planeRect.right = (planeRect.right * _screen->getWidth()) / planeResX;
+ planeRect.top = (planeRect.top * _screen->getHeight()) / scriptsRunningHeight;
+ planeRect.left = (planeRect.left * _screen->getWidth()) / scriptsRunningWidth;
+ planeRect.bottom = (planeRect.bottom * _screen->getHeight()) / scriptsRunningHeight;
+ planeRect.right = (planeRect.right * _screen->getWidth()) / scriptsRunningWidth;
// We get bad plane-bottom in sq6
if (planeRect.right > _screen->getWidth())
@@ -309,8 +307,8 @@
if (itemEntry->object.isNull()) {
// Picture cel data
- itemEntry->y = ((itemEntry->y * _screen->getHeight()) / planeResY);
- itemEntry->x = ((itemEntry->x * _screen->getWidth()) / planeResX);
+ itemEntry->y = ((itemEntry->y * _screen->getHeight()) / scriptsRunningHeight);
+ itemEntry->x = ((itemEntry->x * _screen->getWidth()) / scriptsRunningWidth);
planePicture->drawSci32Vga(itemEntry->celNo, itemEntry->x, itemEntry->y, planePictureMirrored);
// warning("picture cel %d %d", itemEntry->celNo, itemEntry->priority);
@@ -322,12 +320,16 @@
switch (getSciVersion()) {
case SCI_VERSION_2:
- if (view->isSci2Hires())
+ if (view->isSci2Hires()) {
+ int16 dummyX = 0;
_screen->adjustToUpscaledCoordinates(itemEntry->y, itemEntry->x);
+ _screen->adjustToUpscaledCoordinates(itemEntry->z, dummyX);
+ }
break;
case SCI_VERSION_2_1:
- itemEntry->y = (itemEntry->y * _screen->getHeight()) / planeResY;
- itemEntry->x = (itemEntry->x * _screen->getWidth()) / planeResX;
+ itemEntry->y = (itemEntry->y * _screen->getHeight()) / scriptsRunningHeight;
+ itemEntry->x = (itemEntry->x * _screen->getWidth()) / scriptsRunningWidth;
+ itemEntry->z = (itemEntry->z * _screen->getHeight()) / scriptsRunningHeight;
break;
default:
break;
@@ -361,10 +363,10 @@
}
break;
case SCI_VERSION_2_1:
- nsRect.top = (nsRect.top * planeResY) / _screen->getHeight();
- nsRect.left = (nsRect.left * planeResX) / _screen->getWidth();
- nsRect.bottom = (nsRect.bottom * planeResY) / _screen->getHeight();
- nsRect.right = (nsRect.right * planeResX) / _screen->getWidth();
+ nsRect.top = (nsRect.top * scriptsRunningHeight) / _screen->getHeight();
+ nsRect.left = (nsRect.left * scriptsRunningWidth) / _screen->getWidth();
+ nsRect.bottom = (nsRect.bottom * scriptsRunningHeight) / _screen->getHeight();
+ nsRect.right = (nsRect.right * scriptsRunningWidth) / _screen->getWidth();
break;
default:
break;
@@ -416,8 +418,8 @@
bool dimmed = readSelectorValue(_segMan, itemEntry->object, SELECTOR(dimmed));
uint16 foreColor = readSelectorValue(_segMan, itemEntry->object, SELECTOR(fore));
- itemEntry->y = ((itemEntry->y * _screen->getHeight()) / planeResY);
- itemEntry->x = ((itemEntry->x * _screen->getWidth()) / planeResX);
+ itemEntry->y = ((itemEntry->y * _screen->getHeight()) / scriptsRunningHeight);
+ itemEntry->x = ((itemEntry->x * _screen->getWidth()) / scriptsRunningWidth);
uint16 curX = itemEntry->x + planeRect.left;
uint16 curY = itemEntry->y + planeRect.top;
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