diff options
author | segrax | 2012-01-19 17:59:56 +1100 |
---|---|---|
committer | Tobias Gunkel | 2012-02-11 08:28:59 +0100 |
commit | e2d45467bb6f0dc6d35fa33697bb97ae470f05f1 (patch) | |
tree | d26c3e3e231e2ed4379c6c56de8af08c87f23a15 /engines/scumm/script_v0.cpp | |
parent | f2c3675ed1306f82b5cb5d44d541739ff727dfde (diff) | |
download | scummvm-rg350-e2d45467bb6f0dc6d35fa33697bb97ae470f05f1.tar.gz scummvm-rg350-e2d45467bb6f0dc6d35fa33697bb97ae470f05f1.tar.bz2 scummvm-rg350-e2d45467bb6f0dc6d35fa33697bb97ae470f05f1.zip |
SCUMM: improve unknown variable support, add case 0xff to the animateactor opcode
Diffstat (limited to 'engines/scumm/script_v0.cpp')
-rw-r--r-- | engines/scumm/script_v0.cpp | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/engines/scumm/script_v0.cpp b/engines/scumm/script_v0.cpp index caaf56878f..ec3cad009d 100644 --- a/engines/scumm/script_v0.cpp +++ b/engines/scumm/script_v0.cpp @@ -663,24 +663,29 @@ void ScummEngine_v0::o_lights() { void ScummEngine_v0::o_animateActor() { int act = getVarOrDirectByte(PARAM_1); int anim = getVarOrDirectByte(PARAM_2); - int unk = fetchScriptByte(); + int8 unk = (int8) fetchScriptByte(); debug(0,"o_animateActor: unk %d", unk); ActorC64 *a = (ActorC64*) derefActor(act, "o_animateActor"); a->_byte_FDE8 = unk; - - // 0x6993 - if (anim == 0xFE) { + + switch( anim ) { + case 0xFE: + // 0x6993 a->_speaking = 0x80; // Enabled, but not switching return; - } - // 0x69A3 - if (anim == 0xFD) { + + case 0xFD: + // 0x69A3 a->_speaking = 0x00; return; - } + + case 0xFF: + a->stopActorMoving(); + return; + } a->animateActor(anim); } |