diff options
-rw-r--r-- | scumm/actor.cpp | 3 | ||||
-rw-r--r-- | scumm/actor.h | 4 | ||||
-rw-r--r-- | scumm/intern.h | 1 | ||||
-rw-r--r-- | scumm/script_v90he.cpp | 7 |
4 files changed, 13 insertions, 2 deletions
diff --git a/scumm/actor.cpp b/scumm/actor.cpp index e2a3f3fa05..d3aba7f03a 100644 --- a/scumm/actor.cpp +++ b/scumm/actor.cpp @@ -81,12 +81,13 @@ void Actor::initActor(int mode) { talkUnk = 0; if (_vm->_version >= 7) visible = false; + skipLimb = false; } else if (mode == 2) { facing = 180; condMask = 1; + skipLimb = false; } elevation = 0; - skipLimb = false; width = 24; talkColor = 15; talkPosX = 0; diff --git a/scumm/actor.h b/scumm/actor.h index 8e839dc3fb..918acd5361 100644 --- a/scumm/actor.h +++ b/scumm/actor.h @@ -216,6 +216,10 @@ public: animProgress = 0; } + int getAnimProgress() const { + return animProgress; + } + int getElevation() const { return elevation; } diff --git a/scumm/intern.h b/scumm/intern.h index 28eab2b520..37bec5abcb 100644 --- a/scumm/intern.h +++ b/scumm/intern.h @@ -851,6 +851,7 @@ protected: void o90_unknown3A(); void o90_unknown94(); void o90_unknown9E(); + void o90_getActorAnimProgress(); }; class ScummEngine_v7 : public ScummEngine_v6 { diff --git a/scumm/script_v90he.cpp b/scumm/script_v90he.cpp index db0da2c7e6..88664750bc 100644 --- a/scumm/script_v90he.cpp +++ b/scumm/script_v90he.cpp @@ -258,7 +258,7 @@ void ScummEngine_v90he::setupOpcodes() { OPCODE(o6_getActorWidth), OPCODE(o60_wait), OPCODE(o6_getActorScaleX), - OPCODE(o6_getActorAnimCounter1), + OPCODE(o90_getActorAnimProgress), /* AC */ OPCODE(o80_drawWizPolygon), OPCODE(o6_isAnyOf), @@ -1038,4 +1038,9 @@ void ScummEngine_v90he::o90_unknown9E() { debug(1,"o90_unknown9E stub (%d)", subOp); } +void ScummEngine_v90he::o90_getActorAnimProgress() { + Actor *a = derefActor(pop(), "o90_getActorAnimProgress"); + push(a->getAnimProgress()); +} + } // End of namespace Scumm |