diff options
-rw-r--r-- | engines/scumm/camera.cpp | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/engines/scumm/camera.cpp b/engines/scumm/camera.cpp index 03b5a64401..5aaa197310 100644 --- a/engines/scumm/camera.cpp +++ b/engines/scumm/camera.cpp @@ -103,11 +103,12 @@ void ScummEngine::moveCamera() { int pos = camera._cur.x; int t; Actor *a = NULL; + const bool snapToX = (VAR_CAMERA_FAST_X != 0xFF && VAR(VAR_CAMERA_FAST_X)); camera._cur.x &= 0xFFF8; if (VAR_CAMERA_MIN_X != 0xFF && camera._cur.x < VAR(VAR_CAMERA_MIN_X)) { - if (VAR_CAMERA_FAST_X != 0xFF && VAR(VAR_CAMERA_FAST_X)) + if (snapToX) camera._cur.x = (short) VAR(VAR_CAMERA_MIN_X); else camera._cur.x += 8; @@ -116,7 +117,7 @@ void ScummEngine::moveCamera() { } if (VAR_CAMERA_MAX_X != 0xFF && camera._cur.x > VAR(VAR_CAMERA_MAX_X)) { - if (VAR_CAMERA_FAST_X != 0xFF && VAR(VAR_CAMERA_FAST_X)) + if (snapToX) camera._cur.x = (short) VAR(VAR_CAMERA_MAX_X); else camera._cur.x -= 8; @@ -131,8 +132,8 @@ void ScummEngine::moveCamera() { t = actorx / 8 - _screenStartStrip; if (t < camera._leftTrigger || t > camera._rightTrigger) { - if (VAR_CAMERA_FAST_X != 0xFF && VAR(VAR_CAMERA_FAST_X)) { - if (t > 35) + if (snapToX) { + if (t > 40-5) camera._dest.x = actorx + 80; if (t < 5) camera._dest.x = actorx - 80; @@ -152,7 +153,7 @@ void ScummEngine::moveCamera() { if (VAR_CAMERA_MAX_X != 0xFF && camera._dest.x > VAR(VAR_CAMERA_MAX_X)) camera._dest.x = (short) VAR(VAR_CAMERA_MAX_X); - if (VAR_CAMERA_FAST_X != 0xFF && VAR(VAR_CAMERA_FAST_X)) { + if (snapToX) { camera._cur.x = camera._dest.x; } else { if (camera._cur.x < camera._dest.x) @@ -161,7 +162,7 @@ void ScummEngine::moveCamera() { camera._cur.x -= 8; } - /* a is set a bit above */ + /* Actor 'a' is set a bit above */ if (camera._movingToActor && (camera._cur.x / 8) == (a->getPos().x / 8)) { camera._movingToActor = false; } |