aboutsummaryrefslogtreecommitdiff
path: root/engines/saga/actor.cpp
diff options
context:
space:
mode:
authorFilippos Karapetis2007-06-12 20:36:08 +0000
committerFilippos Karapetis2007-06-12 20:36:08 +0000
commit5db4ab48bc83f9ab0158160367ee3c84c67b23e3 (patch)
tree78af2ae6b8041e1bee18b212780086c9f11fd28b /engines/saga/actor.cpp
parent110db592c0e2645ddc3789b3c8c5d6d003abb076 (diff)
downloadscummvm-rg350-5db4ab48bc83f9ab0158160367ee3c84c67b23e3.tar.gz
scummvm-rg350-5db4ab48bc83f9ab0158160367ee3c84c67b23e3.tar.bz2
scummvm-rg350-5db4ab48bc83f9ab0158160367ee3c84c67b23e3.zip
Corrected actor walk speed when exiting from zones in IHNM
svn-id: r27379
Diffstat (limited to 'engines/saga/actor.cpp')
-rw-r--r--engines/saga/actor.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/engines/saga/actor.cpp b/engines/saga/actor.cpp
index 57cbcb77cc..ee35ba5a85 100644
--- a/engines/saga/actor.cpp
+++ b/engines/saga/actor.cpp
@@ -1443,8 +1443,14 @@ void Actor::handleActions(int msec, bool setup) {
actor->cycleWrap(frameRange->frameCount);
actor->_frameNumber = frameRange->frameIndex + actor->_actionCycle;
} else {
- actor->_location.x += directionLUT[actor->_actionDirection][0] * 2;
- actor->_location.y += directionLUT[actor->_actionDirection][1] * 2;
+ if (_vm->getGameType() == GType_ITE) {
+ actor->_location.x += directionLUT[actor->_actionDirection][0] * 2;
+ actor->_location.y += directionLUT[actor->_actionDirection][1] * 2;
+ } else {
+ // FIXME: The original does not multiply by 8 here, but we do
+ actor->_location.x += (directionLUT[actor->_actionDirection][0] * 8 * actor->_screenScale + 128) >> 8;
+ actor->_location.y += (directionLUT[actor->_actionDirection][1] * 8 * actor->_screenScale + 128) >> 8;
+ }
frameRange = getActorFrameRange(actor->_id, actor->_walkFrameSequence);
actor->_actionCycle++;