diff options
author | Denis Kasak | 2009-07-29 20:41:53 +0000 |
---|---|---|
committer | Denis Kasak | 2009-07-29 20:41:53 +0000 |
commit | ad752b268b73c26b3a8a8b1f8f8ed9229a4abccc (patch) | |
tree | 06e1de988dd6002294b26c058c612bfa832677ed /engines/draci | |
parent | a2cc4a64793371cb6bdb027f9aa21ed06f847613 (diff) | |
download | scummvm-rg350-ad752b268b73c26b3a8a8b1f8f8ed9229a4abccc.tar.gz scummvm-rg350-ad752b268b73c26b3a8a8b1f8f8ed9229a4abccc.tar.bz2 scummvm-rg350-ad752b268b73c26b3a8a8b1f8f8ed9229a4abccc.zip |
* Removed some code I forgot to remove in Game::startPlay() (a call to AnimationManager::play())
* Fixed logic checking for object visibility in various GPL commands (I originally misinterpreted the original engine code).
svn-id: r42908
Diffstat (limited to 'engines/draci')
-rw-r--r-- | engines/draci/script.cpp | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/engines/draci/script.cpp b/engines/draci/script.cpp index 84f2ee92af..d8539097d4 100644 --- a/engines/draci/script.cpp +++ b/engines/draci/script.cpp @@ -275,9 +275,9 @@ int Script::funcActPhase(int objID) { GameObject *obj = _vm->_game->getObject(objID); - bool visible = (objID == kDragonObject || obj->_visible); + bool visible = (obj->_location == _vm->_game->getRoomNum() && obj->_visible); - if (visible && (obj->_location == _vm->_game->getRoomNum())) { + if (objID == kDragonObject || visible) { int animID = obj->_anims[0]; Animation *anim = _vm->_anims->getAnimation(animID); ret = anim->currentFrameNum(); @@ -355,9 +355,9 @@ void Script::start(Common::Queue<int> ¶ms) { Animation *anim = _vm->_anims->getAnimation(animID); anim->registerCallback(&Animation::stopAnimation); - bool visible = (objID == kDragonObject || obj->_visible); + bool visible = (obj->_location == _vm->_game->getRoomNum() && obj->_visible); - if (visible && (obj->_location == _vm->_game->getRoomNum())) { + if (objID == kDragonObject || visible) { _vm->_anims->play(animID); } } @@ -382,19 +382,19 @@ void Script::startPlay(Common::Queue<int> ¶ms) { anim->registerCallback(&Animation::exitGameLoop); _vm->_game->setLoopStatus(kStatusStrange); - _vm->_anims->play(animID); + + bool visible = (obj->_location == _vm->_game->getRoomNum() && obj->_visible); + + if (objID == kDragonObject || visible) { + _vm->_anims->play(animID); + } + _vm->_game->loop(); _vm->_game->setExitLoop(false); _vm->_anims->stop(animID); _vm->_game->setLoopStatus(kStatusOrdinary); anim->registerCallback(&Animation::doNothing); - - bool visible = (objID == kDragonObject || obj->_visible); - - if (visible && (obj->_location == _vm->_game->getRoomNum())) { - _vm->_anims->play(animID); - } } void Script::c_If(Common::Queue<int> ¶ms) { |