X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fanimationplayer.cpp;h=59c6f595a0b45cb889b1e7b447084205a26cb22d;hp=ffb902a8f555e51ecd250c9a99422af8e9d35451;hb=6a045019fbd68738b77849629e6dfd3dfd9a4d93;hpb=44857d666401f5567d5e4791c685cb7c3c50e949 diff --git a/source/animationplayer.cpp b/source/animationplayer.cpp index ffb902a8..59c6f595 100644 --- a/source/animationplayer.cpp +++ b/source/animationplayer.cpp @@ -48,6 +48,23 @@ void AnimationPlayer::stop(AnimatedObject &obj) objects.erase(&obj); } +void AnimationPlayer::stop(AnimatedObject &obj, const Animation &anim) +{ + ObjectMap::iterator i = objects.find(&obj); + if(i==objects.end()) + return; + + for(AnimationList::iterator j=i->second.animations.begin(); j!=i->second.animations.end(); ++j) + if(&j->animation==&anim) + { + i->second.animations.erase(j); + break; + } + + if(i->second.animations.empty()) + objects.erase(i); +} + void AnimationPlayer::tick(const Time::TimeDelta &dt) { for(ObjectMap::iterator i=objects.begin(); i!=objects.end(); )