1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-01-26 03:52:01 +02:00

* fixed bug with looping animation supposed to be played once

* minor changes
This commit is contained in:
mateuszb 2009-03-19 19:04:46 +00:00
parent 516b1e2b00
commit 74be845594
3 changed files with 24 additions and 24 deletions

View File

@ -1924,9 +1924,9 @@ std::vector<CStack> BattleInfo::getStackQueue()
return ret;
}
int3 CPath::startPos()
int3 CPath::startPos() const
{
return int3(nodes[nodes.size()-1].coord.x,nodes[nodes.size()-1].coord.y,nodes[nodes.size()-1].coord.z);
return nodes[nodes.size()-1].coord;
}
void CPath::convert(ui8 mode) //mode=0 -> from 'manifest' to 'object'
{
@ -1939,7 +1939,7 @@ void CPath::convert(ui8 mode) //mode=0 -> from 'manifest' to 'object'
}
}
int3 CPath::endPos()
int3 CPath::endPos() const
{
return int3(nodes[0].coord.x,nodes[0].coord.y,nodes[0].coord.z);
return nodes[0].coord;
}

View File

@ -210,8 +210,8 @@ struct DLL_EXPORT CPath
{
std::vector<CPathNode> nodes; //just get node by node
int3 startPos(); // start point
int3 endPos(); //destination point
int3 startPos() const; // start point
int3 endPos() const; //destination point
void convert(ui8 mode); //mode=0 -> from 'manifest' to 'object'
};

View File

@ -110,11 +110,10 @@ void CCreatureAnimation::incrementFrame()
{
if(type!=-1) //when a specific part of animation is played
{
internalFrame = (internalFrame + 1) % frameGroups[type].size();
curFrame = frameGroups[type][internalFrame];
++internalFrame;
if(internalFrame == frameGroups[type].size()) //rewind
{
internalFrame = 0;
if(once) //playing animation once - return to standing animation
{
type = 2;
@ -126,6 +125,7 @@ void CCreatureAnimation::incrementFrame()
curFrame = frameGroups[type][0];
}
}
curFrame = frameGroups[type][internalFrame];
}
else //when whole animation is played
{