[Scummvm-cvs-logs] SF.net SVN: scummvm:[44961] scummvm/trunk/engines/draci
spalek at users.sourceforge.net
spalek at users.sourceforge.net
Mon Oct 12 02:15:36 CEST 2009
Revision: 44961
http://scummvm.svn.sourceforge.net/scummvm/?rev=44961&view=rev
Author: spalek
Date: 2009-10-12 00:15:34 +0000 (Mon, 12 Oct 2009)
Log Message:
-----------
Reduced huge code duplication by introducing Game::stopObjectAnimations()
Modified Paths:
--------------
scummvm/trunk/engines/draci/game.cpp
scummvm/trunk/engines/draci/game.h
scummvm/trunk/engines/draci/script.cpp
Modified: scummvm/trunk/engines/draci/game.cpp
===================================================================
--- scummvm/trunk/engines/draci/game.cpp 2009-10-12 00:01:39 UTC (rev 44960)
+++ scummvm/trunk/engines/draci/game.cpp 2009-10-12 00:15:34 UTC (rev 44961)
@@ -952,11 +952,8 @@
_hero = _currentRoom._walkingMap.findNearestWalkable(x, y, surface->getRect());
GameObject *dragon = getObject(kDragonObject);
+ stopObjectAnimations(dragon);
- for (uint i = 0; i < dragon->_anim.size(); ++i) {
- _vm->_anims->stop(dragon->_anim[i]);
- }
-
debugC(3, kDraciLogicDebugLevel, "Walk to x: %d y: %d", _hero.x, _hero.y);
// Fetch dragon's animation ID
@@ -1297,9 +1294,7 @@
// TODO: Make objects capable of stopping their own animations
const GameObject *dragon = getObject(kDragonObject);
- for (uint i = 0; i < dragon->_anim.size(); ++i) {
- _vm->_anims->stop(dragon->_anim[i]);
- }
+ stopObjectAnimations(dragon);
// Remember the previous room for returning back from the map.
rememberRoomNumAsPrevious();
@@ -1530,6 +1525,12 @@
_vm->_anims->deleteAfterIndex(lastAnimIndex);
}
+void Game::stopObjectAnimations(const GameObject *obj) {
+ for (uint i = 0; i < obj->_anim.size(); ++i) {
+ _vm->_anims->stop(obj->_anim[i]);
+ }
+}
+
/**
* See Game::getMarkedAnimationIndex().
*/
Modified: scummvm/trunk/engines/draci/game.h
===================================================================
--- scummvm/trunk/engines/draci/game.h 2009-10-12 00:01:39 UTC (rev 44960)
+++ scummvm/trunk/engines/draci/game.h 2009-10-12 00:15:34 UTC (rev 44961)
@@ -271,6 +271,7 @@
int getObjectWithAnimation(int animID) const;
void deleteObjectAnimations();
void deleteAnimationsAfterIndex(int lastAnimIndex);
+ void stopObjectAnimations(const GameObject *obj);
int getVariable(int varNum) const;
void setVariable(int varNum, int value);
Modified: scummvm/trunk/engines/draci/script.cpp
===================================================================
--- scummvm/trunk/engines/draci/script.cpp 2009-10-12 00:01:39 UTC (rev 44960)
+++ scummvm/trunk/engines/draci/script.cpp 2009-10-12 00:15:34 UTC (rev 44961)
@@ -411,13 +411,8 @@
int animID = params.pop() - 1;
GameObject *obj = _vm->_game->getObject(objID);
+ _vm->_game->stopObjectAnimations(obj);
- // Stop all animation that the object owns
-
- for (uint i = 0; i < obj->_anim.size(); ++i) {
- _vm->_anims->stop(obj->_anim[i]);
- }
-
Animation *anim = _vm->_anims->getAnimation(animID);
if (!anim) {
// The original game files seem to contain errors, which I have
@@ -463,13 +458,8 @@
int animID = params.pop() - 1;
GameObject *obj = _vm->_game->getObject(objID);
+ _vm->_game->stopObjectAnimations(obj);
- // Stop all animation that the object owns
-
- for (uint i = 0; i < obj->_anim.size(); ++i) {
- _vm->_anims->stop(obj->_anim[i]);
- }
-
Animation *anim = _vm->_anims->getAnimation(animID);
if (!anim) {
anim = loadObjectAnimation(obj, animID);
@@ -599,9 +589,7 @@
obj->_location = -1;
}
- for (uint i = 0; i < obj->_anim.size(); ++i) {
- _vm->_anims->stop(obj->_anim[i]);
- }
+ _vm->_game->stopObjectAnimations(obj);
}
void Script::execInit(Common::Queue<int> ¶ms) {
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