aboutsummaryrefslogtreecommitdiff
path: root/saga/sfuncs.cpp
diff options
context:
space:
mode:
authorEugene Sandulenko2004-12-28 04:09:10 +0000
committerEugene Sandulenko2004-12-28 04:09:10 +0000
commit864b1f88c0477c65ab40612a77930f998f23c2c0 (patch)
treebccd9d8327fbe5a5b44de468d979f23066534631 /saga/sfuncs.cpp
parent03ed4dd4df23b8c6962419df7212dd863ead6664 (diff)
downloadscummvm-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.cpp24
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;
}