diff options
author | Andrew Kurushin | 2005-04-23 12:34:35 +0000 |
---|---|---|
committer | Andrew Kurushin | 2005-04-23 12:34:35 +0000 |
commit | edad36ee601c25f15fee2b04124ebdf9fc694f12 (patch) | |
tree | d85c29bd2f91ebc4131c87a8e51e2adaf5a5b1ea /saga/sfuncs.cpp | |
parent | 40c3fdddc79f6641910f48aa0ed2009b3f71669d (diff) | |
download | scummvm-rg350-edad36ee601c25f15fee2b04124ebdf9fc694f12.tar.gz scummvm-rg350-edad36ee601c25f15fee2b04124ebdf9fc694f12.tar.bz2 scummvm-rg350-edad36ee601c25f15fee2b04124ebdf9fc694f12.zip |
fixed sfDropObject implementation
svn-id: r17767
Diffstat (limited to 'saga/sfuncs.cpp')
-rw-r--r-- | saga/sfuncs.cpp | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/saga/sfuncs.cpp b/saga/sfuncs.cpp index 9a6d6616ab..6b5f1fe1ab 100644 --- a/saga/sfuncs.cpp +++ b/saga/sfuncs.cpp @@ -82,7 +82,7 @@ void Script::setupScriptFuncList(void) { OPCODE(sfSetActorState), OPCODE(sfScriptMoveTo), OPCODE(sfSceneEq), - OPCODE(SF_dropObject), + OPCODE(sfDropObject), OPCODE(sfFinishBgdAnim), OPCODE(sfSwapActors), OPCODE(sfSimulSpeech), @@ -735,28 +735,28 @@ void Script::sfSceneEq(SCRIPTFUNC_PARAMS) { } // Script function #32 (0x20) -void Script::SF_dropObject(SCRIPTFUNC_PARAMS) { - uint16 obj_param = thread->pop(); - uint16 sprite_param = thread->pop(); - int16 x_param = thread->pop(); - int16 y_param = thread->pop(); +void Script::sfDropObject(SCRIPTFUNC_PARAMS) { + uint16 objectId; + uint16 spriteId; + int16 x; + int16 y; ObjectData *obj; - int index = obj_param & 0x1FFF; - - if (!_vm->_actor->validObjId(_vm->_actor->objIndexToId(index))) - return; + objectId = thread->pop(); + spriteId = thread->pop(); + x = thread->pop(); + y = thread->pop(); - obj = _vm->_actor->getObj(_vm->_actor->objIndexToId(index)); + obj = _vm->_actor->getObj(objectId); - if (obj->sceneNumber == -1) { - _vm->_interface->removeFromInventory(index); + if (obj->sceneNumber == ITE_SCENE_INV) { + _vm->_interface->removeFromInventory(objectId); } obj->sceneNumber = _vm->_scene->currentSceneNumber(); - obj->spriteListResourceId = 9 + sprite_param; - obj->location.x = x_param; - obj->location.y = y_param; + obj->spriteListResourceId = 9 + spriteId; + obj->location.x = x; + obj->location.y = y; } // Script function #33 (0x21) |