aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorColin Snover2016-09-24 12:35:25 -0500
committerColin Snover2016-09-29 19:39:16 -0500
commit2a27f27bb4f4ad979559e77d547cd6c8c2504f11 (patch)
treee28ad1d8dba1cb1bda4a1340fba9e06bbba9e0c0
parent7011ee8f507da0598b46e19004169e5d60d7d5a6 (diff)
downloadscummvm-rg350-2a27f27bb4f4ad979559e77d547cd6c8c2504f11.tar.gz
scummvm-rg350-2a27f27bb4f4ad979559e77d547cd6c8c2504f11.tar.bz2
scummvm-rg350-2a27f27bb4f4ad979559e77d547cd6c8c2504f11.zip
SCI32: Clean up scaling flags
-rw-r--r--engines/sci/graphics/screen_item32.cpp33
-rw-r--r--engines/sci/graphics/screen_item32.h10
-rw-r--r--engines/sci/graphics/video32.cpp4
-rw-r--r--engines/sci/video/robot_decoder.cpp4
4 files changed, 21 insertions, 30 deletions
diff --git a/engines/sci/graphics/screen_item32.cpp b/engines/sci/graphics/screen_item32.cpp
index f4ed269265..0956ef71a4 100644
--- a/engines/sci/graphics/screen_item32.cpp
+++ b/engines/sci/graphics/screen_item32.cpp
@@ -263,16 +263,13 @@ void ScreenItem::calcRects(const Plane &plane) {
}
Ratio scaleX, scaleY;
-
- if (_scale.signal & kScaleSignalDoScaling32) {
- if (_scale.signal & kScaleSignalUseVanishingPoint) {
- int num = _scale.max * (_position.y - plane._vanishingPoint.y) / (scriptWidth - plane._vanishingPoint.y);
- scaleX = Ratio(num, 128);
- scaleY = Ratio(num, 128);
- } else {
- scaleX = Ratio(_scale.x, 128);
- scaleY = Ratio(_scale.y, 128);
- }
+ if (_scale.signal == kScaleSignalManual) {
+ scaleX = Ratio(_scale.x, 128);
+ scaleY = Ratio(_scale.y, 128);
+ } else if (_scale.signal == kScaleSignalVanishingPoint) {
+ int num = _scale.max * (_position.y - plane._vanishingPoint.y) / (scriptWidth - plane._vanishingPoint.y);
+ scaleX = Ratio(num, 128);
+ scaleY = Ratio(num, 128);
}
if (scaleX.getNumerator() && scaleY.getNumerator()) {
@@ -593,15 +590,13 @@ Common::Rect ScreenItem::getNowSeenRect(const Plane &plane) const {
const uint16 scriptHeight = g_sci->_gfxFrameout->getCurrentBuffer().scriptHeight;
Ratio scaleX, scaleY;
- if (_scale.signal & kScaleSignalDoScaling32) {
- if (_scale.signal & kScaleSignalUseVanishingPoint) {
- int num = _scale.max * (_position.y - plane._vanishingPoint.y) / (scriptWidth - plane._vanishingPoint.y);
- scaleX = Ratio(num, 128);
- scaleY = Ratio(num, 128);
- } else {
- scaleX = Ratio(_scale.x, 128);
- scaleY = Ratio(_scale.y, 128);
- }
+ if (_scale.signal == kScaleSignalManual) {
+ scaleX = Ratio(_scale.x, 128);
+ scaleY = Ratio(_scale.y, 128);
+ } else if (_scale.signal == kScaleSignalVanishingPoint) {
+ int num = _scale.max * (_position.y - plane._vanishingPoint.y) / (scriptWidth - plane._vanishingPoint.y);
+ scaleX = Ratio(num, 128);
+ scaleY = Ratio(num, 128);
}
if (scaleX.getNumerator() == 0 || scaleY.getNumerator() == 0) {
diff --git a/engines/sci/graphics/screen_item32.h b/engines/sci/graphics/screen_item32.h
index 4221c0ea52..009b608f18 100644
--- a/engines/sci/graphics/screen_item32.h
+++ b/engines/sci/graphics/screen_item32.h
@@ -30,13 +30,9 @@
namespace Sci {
enum ScaleSignals32 {
- kScaleSignalNone = 0,
- // TODO: rename to 'manual'
- kScaleSignalDoScaling32 = 1, // enables scaling when drawing that cel (involves scaleX and scaleY)
- kScaleSignalUseVanishingPoint = 2,
- // TODO: Is this actually a thing? I have not seen it and
- // the original engine masks &3 where it uses scale signals.
- kScaleSignalDisableGlobalScaling32 = 4
+ kScaleSignalNone = 0,
+ kScaleSignalManual = 1,
+ kScaleSignalVanishingPoint = 2
};
struct ScaleInfo {
diff --git a/engines/sci/graphics/video32.cpp b/engines/sci/graphics/video32.cpp
index 84c07d32f5..62bc12e17e 100644
--- a/engines/sci/graphics/video32.cpp
+++ b/engines/sci/graphics/video32.cpp
@@ -689,12 +689,12 @@ VMDPlayer::EventFlags VMDPlayer::playUntilEvent(const EventFlags flags) {
if (_doublePixels) {
vmdScaleInfo.x = 256;
vmdScaleInfo.y = 256;
- vmdScaleInfo.signal = kScaleSignalDoScaling32;
+ vmdScaleInfo.signal = kScaleSignalManual;
vmdRect.right += vmdRect.width();
vmdRect.bottom += vmdRect.height();
} else if (_stretchVertical) {
vmdScaleInfo.y = 256;
- vmdScaleInfo.signal = kScaleSignalDoScaling32;
+ vmdScaleInfo.signal = kScaleSignalManual;
vmdRect.bottom += vmdRect.height();
}
diff --git a/engines/sci/video/robot_decoder.cpp b/engines/sci/video/robot_decoder.cpp
index 1757088ea4..0426dd0dac 100644
--- a/engines/sci/video/robot_decoder.cpp
+++ b/engines/sci/video/robot_decoder.cpp
@@ -445,7 +445,7 @@ void RobotDecoder::initVideo(const int16 x, const int16 y, const int16 scale, co
if (scale != 128) {
_scaleInfo.x = scale;
_scaleInfo.y = scale;
- _scaleInfo.signal = kScaleSignalDoScaling32;
+ _scaleInfo.signal = kScaleSignalManual;
}
_plane = g_sci->_gfxFrameout->getPlanes().findByObject(plane);
@@ -1391,7 +1391,7 @@ void RobotDecoder::doVersion5(const bool shouldSubmitAudio) {
// TODO: Version 6 robot?
// int scaleXRemainder;
- if (_scaleInfo.signal == kScaleSignalDoScaling32) {
+ if (_scaleInfo.signal == kScaleSignalManual) {
position.x = (position.x * _scaleInfo.x) / 128;
// TODO: Version 6 robot?
// scaleXRemainder = (position.x * _scaleInfo.x) % 128;