1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-02-02 11:45:35 +00:00

Check the marker name before deciding what to do with it

Also, don't force 'idle' after a playgroup
This commit is contained in:
Chris Robinson 2013-01-18 00:59:48 -08:00
parent 9d7ccfda1f
commit a94947029e

View file

@ -87,17 +87,24 @@ void CharacterController::markerEvent(const std::string &evt)
return; return;
} }
if(mAnimQueue.size() >= 2 && mAnimQueue[0] == mAnimQueue[1]) if(evt.compare(ms, evt.length()-ms, "loop stop") == 0)
{ {
if(evt.compare(ms, evt.length()-ms, "loop stop") == 0 || evt.compare(ms, evt.length()-ms, "stop") == 0) if(mAnimQueue.size() >= 2 && mAnimQueue[0] == mAnimQueue[1])
{ {
mAnimQueue.pop_front(); mAnimQueue.pop_front();
mAnimation->play(mCurrentGroup, "loop start"); mAnimation->play(mCurrentGroup, "loop start");
} }
return;
}
if(evt.compare(ms, evt.length()-ms, "stop") == 0)
{
if(mAnimQueue.size() >= 2 && mAnimQueue[0] == mAnimQueue[1])
{
mAnimQueue.pop_front();
mAnimation->play(mCurrentGroup, "loop start");
} }
else if(mAnimQueue.size() > 0) else if(mAnimQueue.size() > 0)
{
if(evt.compare(ms, evt.length()-ms, "stop") == 0)
{ {
mAnimQueue.pop_front(); mAnimQueue.pop_front();
if(mAnimQueue.size() > 0) if(mAnimQueue.size() > 0)
@ -106,6 +113,7 @@ void CharacterController::markerEvent(const std::string &evt)
mAnimation->play(mCurrentGroup, "start"); mAnimation->play(mCurrentGroup, "start");
} }
} }
return;
} }
} }
@ -129,7 +137,6 @@ void CharacterController::playGroup(const std::string &groupname, int mode, int
mAnimQueue.clear(); mAnimQueue.clear();
while(count-- > 0) while(count-- > 0)
mAnimQueue.push_back(groupname); mAnimQueue.push_back(groupname);
mAnimQueue.push_back("idle");
mCurrentGroup = groupname; mCurrentGroup = groupname;
mAnimation->play(mCurrentGroup, ((mode==2) ? "loop start" : "start")); mAnimation->play(mCurrentGroup, ((mode==2) ? "loop start" : "start"));
} }
@ -138,7 +145,6 @@ void CharacterController::playGroup(const std::string &groupname, int mode, int
mAnimQueue.resize(1); mAnimQueue.resize(1);
while(count-- > 0) while(count-- > 0)
mAnimQueue.push_back(groupname); mAnimQueue.push_back(groupname);
mAnimQueue.push_back("idle");
} }
} }
} }