summaryrefslogtreecommitdiffstats
path: root/src/animation
diff options
context:
space:
mode:
authoreray orçunus <erayorcunus@gmail.com>2020-06-22 03:02:44 +0200
committereray orçunus <erayorcunus@gmail.com>2020-06-22 03:20:56 +0200
commitf3ed6659c32ec61c2c4c806707655e0c58123e4c (patch)
tree1d71dd86ef08d87e4ed703302224d330cecf4ae2 /src/animation
parentkilling peds increase chaos level (diff)
downloadre3-f3ed6659c32ec61c2c4c806707655e0c58123e4c.tar
re3-f3ed6659c32ec61c2c4c806707655e0c58123e4c.tar.gz
re3-f3ed6659c32ec61c2c4c806707655e0c58123e4c.tar.bz2
re3-f3ed6659c32ec61c2c4c806707655e0c58123e4c.tar.lz
re3-f3ed6659c32ec61c2c4c806707655e0c58123e4c.tar.xz
re3-f3ed6659c32ec61c2c4c806707655e0c58123e4c.tar.zst
re3-f3ed6659c32ec61c2c4c806707655e0c58123e4c.zip
Diffstat (limited to 'src/animation')
-rw-r--r--src/animation/AnimBlendHierarchy.cpp4
-rw-r--r--src/animation/AnimBlendNode.cpp5
-rw-r--r--src/animation/AnimManager.cpp5
3 files changed, 6 insertions, 8 deletions
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<CAnimBlendHierarchy*> *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;