aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorPaul Gilbert2014-11-26 20:39:36 -0500
committerPaul Gilbert2014-12-12 22:47:44 -0500
commit89b20c618f16f1d3ad8e33819dd9202d234aa258 (patch)
tree6530a765049ff1f08e01276ea0383fbf7fec3872 /engines
parentd8c97d259bc19f22ecf8b1cc9da03c374a3adbec (diff)
downloadscummvm-rg350-89b20c618f16f1d3ad8e33819dd9202d234aa258.tar.gz
scummvm-rg350-89b20c618f16f1d3ad8e33819dd9202d234aa258.tar.bz2
scummvm-rg350-89b20c618f16f1d3ad8e33819dd9202d234aa258.zip
ACCESS: Fix to correctly draw partly off-screen sprites
Diffstat (limited to 'engines')
-rw-r--r--engines/access/asurface.cpp10
1 files changed, 4 insertions, 6 deletions
diff --git a/engines/access/asurface.cpp b/engines/access/asurface.cpp
index 96cb1991be..e954e9efa6 100644
--- a/engines/access/asurface.cpp
+++ b/engines/access/asurface.cpp
@@ -224,7 +224,7 @@ void ASurface::copyTo(ASurface *dest, const Common::Rect &bounds) {
int scaleY = SCALE_LIMIT * bounds.height() / this->h;
int scaleXCtr = 0, scaleYCtr = 0;
- for (int yCtr = 0, y = bounds.top; yCtr < this->h; ++yCtr) {
+ for (int yCtr = 0, destY = bounds.top; yCtr < this->h; ++yCtr, ++destY) {
// Handle skipping lines if Y scaling
scaleYCtr += scaleY;
if (scaleYCtr < SCALE_LIMIT)
@@ -232,14 +232,14 @@ void ASurface::copyTo(ASurface *dest, const Common::Rect &bounds) {
scaleYCtr -= SCALE_LIMIT;
// Handle off-screen lines
- if (y < 0)
+ if (destY < 0)
continue;
- else if (y >= dest->h)
+ else if (destY >= dest->h)
break;
// Handle drawing the line
byte *pSrc = (byte *)getBasePtr(0, yCtr);
- byte *pDest = (byte *)dest->getBasePtr(bounds.left, y);
+ byte *pDest = (byte *)dest->getBasePtr(bounds.left, destY);
scaleXCtr = 0;
int x = bounds.left;
@@ -259,8 +259,6 @@ void ASurface::copyTo(ASurface *dest, const Common::Rect &bounds) {
++pDest;
++x;
}
-
- ++y;
}
}