diff options
Diffstat (limited to 'engines/sherlock/surface.cpp')
-rw-r--r-- | engines/sherlock/surface.cpp | 13 |
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) |