aboutsummaryrefslogtreecommitdiff
path: root/engines/draci
diff options
context:
space:
mode:
authorDenis Kasak2009-07-29 20:41:53 +0000
committerDenis Kasak2009-07-29 20:41:53 +0000
commitad752b268b73c26b3a8a8b1f8f8ed9229a4abccc (patch)
tree06e1de988dd6002294b26c058c612bfa832677ed /engines/draci
parenta2cc4a64793371cb6bdb027f9aa21ed06f847613 (diff)
downloadscummvm-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.cpp22
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> &params) {
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> &params) {
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> &params) {