Add support for playgroup mode 2

This commit is contained in:
Chris Robinson 2012-07-24 14:14:32 -07:00
parent 20121f3b0a
commit fd1e3f6ec5

View file

@ -107,8 +107,8 @@ void Animation::playGroup(std::string groupname, int mode, int loops)
if(groupname == "all") if(groupname == "all")
{ {
mLoopStartTime = mStartTime = 0.0f; start = loopstart = 0.0f;
mLoopStopTime = mStopTime = 0.0f; loopstop = stop = 0.0f;
if(mEntityList.mSkelBase) if(mEntityList.mSkelBase)
{ {
@ -117,26 +117,25 @@ void Animation::playGroup(std::string groupname, int mode, int loops)
while(as.hasMoreElements()) while(as.hasMoreElements())
{ {
Ogre::AnimationState *state = as.getNext(); Ogre::AnimationState *state = as.getNext();
mLoopStopTime = mStopTime = state->getLength(); loopstop = stop = state->getLength();
break; break;
} }
} }
mAnimate = loops;
mTime = mStartTime;
} }
else if(findGroupTimes(groupname, &start, &stop, &loopstart, &loopstop)) else if(!findGroupTimes(groupname, &start, &stop, &loopstart, &loopstop))
{
mStartTime = start;
mStopTime = stop;
mLoopStartTime = loopstart;
mLoopStopTime = loopstop;
mAnimate = loops;
mTime = mStartTime;
}
else
throw std::runtime_error("Failed to find animation group "+groupname); throw std::runtime_error("Failed to find animation group "+groupname);
// FIXME: mode = 0 not yet supported
if(mode == 0)
mode = 1;
mStartTime = start;
mStopTime = stop;
mLoopStartTime = loopstart;
mLoopStopTime = loopstop;
mAnimate = loops;
mTime = ((mode==1) ? mStartTime : mLoopStartTime);
} }
void Animation::skipAnim() void Animation::skipAnim()