[Scummvm-cvs-logs] SF.net SVN: scummvm:[42908] scummvm/branches/gsoc2009-draci/engines/draci/ script.cpp

dkasak13 at users.sourceforge.net dkasak13 at users.sourceforge.net
Wed Jul 29 22:41:53 CEST 2009


Revision: 42908
          http://scummvm.svn.sourceforge.net/scummvm/?rev=42908&view=rev
Author:   dkasak13
Date:     2009-07-29 20:41:53 +0000 (Wed, 29 Jul 2009)

Log Message:
-----------
* 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).

Modified Paths:
--------------
    scummvm/branches/gsoc2009-draci/engines/draci/script.cpp

Modified: scummvm/branches/gsoc2009-draci/engines/draci/script.cpp
===================================================================
--- scummvm/branches/gsoc2009-draci/engines/draci/script.cpp	2009-07-29 20:35:50 UTC (rev 42907)
+++ scummvm/branches/gsoc2009-draci/engines/draci/script.cpp	2009-07-29 20:41:53 UTC (rev 42908)
@@ -275,9 +275,9 @@
 
 	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 @@
 	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 @@
 	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) {


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list