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 | 
