1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-08-13 19:54:17 +02:00

Fixed: Animation errors should not lead to hanging

This commit is contained in:
Dmitry Orlov
2021-11-09 23:03:35 +03:00
committed by Andrii Danylchenko
parent 0427fa45dd
commit 1ce7701168

View File

@@ -210,12 +210,17 @@ bool CCreatureAnimation::incrementFrame(float timePassed)
{
elapsedTime += timePassed;
currentFrame += timePassed * speed;
const auto framesNumber = framesInGroup(type);
if (currentFrame >= float(framesInGroup(type)))
if(framesNumber <= 0)
{
endAnimation();
}
else if(currentFrame >= float(framesNumber))
{
// just in case of extremely low fps (or insanely high speed)
while (currentFrame >= float(framesInGroup(type)))
currentFrame -= framesInGroup(type);
while(currentFrame >= float(framesNumber))
currentFrame -= framesNumber;
if(once)
setType(CCreatureAnim::HOLDING);