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