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;  }  | 
