aboutsummaryrefslogtreecommitdiff
path: root/engines/sherlock/surface.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/sherlock/surface.cpp')
-rw-r--r--engines/sherlock/surface.cpp13
1 files changed, 6 insertions, 7 deletions
diff --git a/engines/sherlock/surface.cpp b/engines/sherlock/surface.cpp
index e456d00e05..006b31ecda 100644
--- a/engines/sherlock/surface.cpp
+++ b/engines/sherlock/surface.cpp
@@ -111,17 +111,16 @@ void Surface::transBlitFrom(const Graphics::Surface &src, const Common::Point &p
return;
}
- const int SCALE_LIMIT = 0x100;
- int scaleX = scaleVal;
- int scaleY = scaleVal;
+ int scaleX = SCALE_THRESHOLD * SCALE_THRESHOLD / scaleVal;
+ int scaleY = scaleX;
int scaleXCtr = 0, scaleYCtr = 0;
for (int yCtr = 0, destY = pt.y; yCtr < src.h && destY < this->h(); ++yCtr) {
// Handle skipping lines if Y scaling
scaleYCtr += scaleY;
- while (scaleYCtr >= SCALE_LIMIT && destY < this->h()) {
- scaleYCtr -= SCALE_LIMIT;
+ while (scaleYCtr >= SCALE_THRESHOLD && destY < this->h()) {
+ scaleYCtr -= SCALE_THRESHOLD;
if (destY >= 0) {
// Handle drawing the line
@@ -133,8 +132,8 @@ void Surface::transBlitFrom(const Graphics::Surface &src, const Common::Point &p
// Handle horizontal scaling
scaleXCtr += scaleX;
- while (scaleXCtr >= SCALE_LIMIT && destX < this->w()) {
- scaleXCtr -= SCALE_LIMIT;
+ while (scaleXCtr >= SCALE_THRESHOLD && destX < this->w()) {
+ scaleXCtr -= SCALE_THRESHOLD;
// Only handle on-screen pixels
if (destX >= 0 && *pSrc != TRANSPARENCY)