1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-03-31 15:06:39 +00:00

Fix wrong idle animations played

This commit is contained in:
scrawl 2013-08-03 13:13:25 +02:00
parent 8f330e7e3c
commit 982f743ddd

View file

@ -45,7 +45,6 @@ namespace MWMechanics
if(mDuration == 0)
mTimeOfDay = 0;
srand(time(NULL));
mStartTime = MWBase::Environment::get().getWorld()->getTimeStamp();
mPlayedIdle = 0;
mPathgrid = NULL;
@ -189,13 +188,13 @@ namespace MWMechanics
mPlayedIdle = 0;
unsigned short idleRoll = 0;
for(unsigned int counter = 1; counter < mIdle.size(); counter++)
for(unsigned int counter = 0; counter < mIdle.size(); counter++)
{
unsigned short idleChance = mIdleChanceMultiplier * mIdle[counter];
unsigned short randSelect = (int)(rand() / ((double)RAND_MAX + 1) * int(100 / mIdleChanceMultiplier));
if(randSelect < idleChance && randSelect > idleRoll)
{
mPlayedIdle = counter;
mPlayedIdle = counter+2;
idleRoll = randSelect;
}
}
@ -210,7 +209,7 @@ namespace MWMechanics
// Play idle animation and recreate vanilla (broken?) behavior of resetting start time of AIWander:
MWWorld::TimeStamp currentTime = MWBase::Environment::get().getWorld()->getTimeStamp();
mStartTime = currentTime;
playIdle(actor, mPlayedIdle + 1);
playIdle(actor, mPlayedIdle);
mChooseAction = false;
mIdleNow = true;
}
@ -218,7 +217,7 @@ namespace MWMechanics
if(mIdleNow)
{
if(!checkIdle(actor, mPlayedIdle + 1))
if(!checkIdle(actor, mPlayedIdle))
{
mPlayedIdle = 0;
mIdleNow = false;