From 982f743ddd83c945188951a44b0c98722b1bb614 Mon Sep 17 00:00:00 2001 From: scrawl Date: Sat, 3 Aug 2013 13:13:25 +0200 Subject: [PATCH] Fix wrong idle animations played --- apps/openmw/mwmechanics/aiwander.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/apps/openmw/mwmechanics/aiwander.cpp b/apps/openmw/mwmechanics/aiwander.cpp index 12ac480a4..c4f32f5dc 100644 --- a/apps/openmw/mwmechanics/aiwander.cpp +++ b/apps/openmw/mwmechanics/aiwander.cpp @@ -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;