diff options
author | Eugene Sandulenko | 2004-12-28 04:09:10 +0000 |
---|---|---|
committer | Eugene Sandulenko | 2004-12-28 04:09:10 +0000 |
commit | 864b1f88c0477c65ab40612a77930f998f23c2c0 (patch) | |
tree | bccd9d8327fbe5a5b44de468d979f23066534631 /saga/sfuncs.cpp | |
parent | 03ed4dd4df23b8c6962419df7212dd863ead6664 (diff) | |
download | scummvm-rg350-864b1f88c0477c65ab40612a77930f998f23c2c0.tar.gz scummvm-rg350-864b1f88c0477c65ab40612a77930f998f23c2c0.tar.bz2 scummvm-rg350-864b1f88c0477c65ab40612a77930f998f23c2c0.zip |
Implement rest of animation-related opcodes.
svn-id: r16353
Diffstat (limited to 'saga/sfuncs.cpp')
-rw-r--r-- | saga/sfuncs.cpp | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/saga/sfuncs.cpp b/saga/sfuncs.cpp index c240f633d3..4c8b3ffc5a 100644 --- a/saga/sfuncs.cpp +++ b/saga/sfuncs.cpp @@ -78,7 +78,7 @@ void Script::setupScriptFuncList(void) { OPCODE(scriptMoveTo), OPCODE(SF_sceneEq), OPCODE(SF_dropObject), - OPCODE(SF_finishBgdAnim), + OPCODE(sfFinishBgdAnim), OPCODE(sfSwapActors), OPCODE(sfSimulSpeech), OPCODE(SF_actorWalk), @@ -96,7 +96,7 @@ void Script::setupScriptFuncList(void) { OPCODE(SF_placard), OPCODE(SF_placardOff), OPCODE(SF_setProtagState), - OPCODE(SF_resumeBgdAnim), + OPCODE(sfResumeBgdAnim), OPCODE(SF_throwActor), OPCODE(SF_waitWalk), OPCODE(SF_sceneID), @@ -264,7 +264,7 @@ int Script::sfStartBgdAnim(SCRIPTFUNC_PARAMS) { // Script function #10 (0x0A) int Script::sfStopBgdAnim(SCRIPTFUNC_PARAMS) { - ScriptDataWord animId = thread->pop(); + ScriptDataWord animId = getSWord(thread->pop()); _vm->_anim->stop(animId); @@ -578,10 +578,12 @@ int Script::SF_dropObject(SCRIPTFUNC_PARAMS) { } // Script function #33 (0x21) -int Script::SF_finishBgdAnim(SCRIPTFUNC_PARAMS) { - ScriptDataWord param = thread->pop(); +int Script::sfFinishBgdAnim(SCRIPTFUNC_PARAMS) { + ScriptDataWord animId = getSWord(thread->pop()); + + _vm->_anim->finish(animId); - debug(1, "stub: SF_finishBgdAnim(%d)", param); + debug(1, "sfFinishBgdAnim(%d)", animId); return SUCCESS; } @@ -926,11 +928,13 @@ int Script::SF_setProtagState(SCRIPTFUNC_PARAMS) { } // Script function #51 (0x33) -int Script::SF_resumeBgdAnim(SCRIPTFUNC_PARAMS) { - for (int i = 0; i < nArgs; i++) - thread->pop(); +int Script::sfResumeBgdAnim(SCRIPTFUNC_PARAMS) { + int animId = getSWord(thread->pop()); + int cycles = getSWord(thread->pop()); + + _vm->_anim->resume(animId, cycles); + debug(1, "sfResumeBgdAnimSpeed(%d, %d)", animId, cycles); - debug(1, "stub: SF_resumeBgdAnim(), %d args", nArgs); return SUCCESS; } |