From f3ed6659c32ec61c2c4c806707655e0c58123e4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?eray=20or=C3=A7unus?= Date: Mon, 22 Jun 2020 04:02:44 +0300 Subject: CWanted, anim fix, ped objs renaming, remove III beta features --- src/animation/AnimBlendHierarchy.cpp | 4 ++-- src/animation/AnimBlendNode.cpp | 5 +---- src/animation/AnimManager.cpp | 5 +++-- 3 files changed, 6 insertions(+), 8 deletions(-) (limited to 'src/animation') diff --git a/src/animation/AnimBlendHierarchy.cpp b/src/animation/AnimBlendHierarchy.cpp index 7388352f..d3d6287a 100644 --- a/src/animation/AnimBlendHierarchy.cpp +++ b/src/animation/AnimBlendHierarchy.cpp @@ -44,7 +44,7 @@ CAnimBlendHierarchy::CalcTotalTime(void) #endif totalLength = Max(totalLength, sequences[i].GetKeyFrame(sequences[i].numFrames-1)->deltaTime); - for(j = sequences[i].numFrames-1; j > 0; j--){ + for(j = sequences[i].numFrames-1; j >= 1; j--){ KeyFrame *kf1 = sequences[i].GetKeyFrame(j); KeyFrame *kf2 = sequences[i].GetKeyFrame(j-1); kf1->deltaTime -= kf2->deltaTime; @@ -66,7 +66,7 @@ CAnimBlendHierarchy::CalcTotalTimeCompressed(void) #endif totalLength = Max(totalLength, sequences[i].GetKeyFrameCompressed(sequences[i].numFrames-1)->deltaTime/60.0f); - for(j = sequences[i].numFrames-1; j > 0; j--){ + for(j = sequences[i].numFrames-1; j >= 1; j--){ KeyFrame *kf1 = sequences[i].GetKeyFrameCompressed(j); KeyFrame *kf2 = sequences[i].GetKeyFrameCompressed(j-1); kf1->deltaTime -= kf2->deltaTime; diff --git a/src/animation/AnimBlendNode.cpp b/src/animation/AnimBlendNode.cpp index 860046e8..4ef7d1c0 100644 --- a/src/animation/AnimBlendNode.cpp +++ b/src/animation/AnimBlendNode.cpp @@ -97,12 +97,9 @@ CAnimBlendNode::FindKeyFrame(float t) if(sequence->numFrames == 1){ remainingTime = 0.0f; }else{ - frameA++; - // advance until t is between frameB and frameA - while(t > sequence->GetKeyFrame(frameA)->deltaTime){ + while(t > sequence->GetKeyFrame(++frameA)->deltaTime){ t -= sequence->GetKeyFrame(frameA)->deltaTime; - frameA++; if(frameA + 1 >= sequence->numFrames){ // reached end of animation if(!association->IsRepeating()){ diff --git a/src/animation/AnimManager.cpp b/src/animation/AnimManager.cpp index 385f1f67..4694920a 100644 --- a/src/animation/AnimManager.cpp +++ b/src/animation/AnimManager.cpp @@ -1004,9 +1004,10 @@ CAnimManager::UncompressAnimation(CAnimBlendHierarchy *hier) }else{ CLink *link = ms_animCache.Insert(hier); if(link == nil){ - ms_animCache.tail.prev->item->RemoveUncompressedData(); + CAnimBlendHierarchy *lastHier = ms_animCache.tail.prev->item; + lastHier->RemoveUncompressedData(); ms_animCache.Remove(ms_animCache.tail.prev); - ms_animCache.tail.prev->item->linkPtr = nil; + lastHier->linkPtr = nil; link = ms_animCache.Insert(hier); } hier->linkPtr = link; -- cgit v1.2.3