diff options
Diffstat (limited to 'src/animation/RpAnimBlend.cpp')
-rw-r--r-- | src/animation/RpAnimBlend.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/animation/RpAnimBlend.cpp b/src/animation/RpAnimBlend.cpp index e93615b7..c4103dbf 100644 --- a/src/animation/RpAnimBlend.cpp +++ b/src/animation/RpAnimBlend.cpp @@ -8,6 +8,7 @@ #include "AnimBlendClumpData.h" #include "AnimBlendHierarchy.h" #include "AnimBlendAssociation.h" +#include "AnimManager.h" #include "RpAnimBlend.h" #include "PedModelInfo.h" @@ -443,6 +444,9 @@ RpAnimBlendNodeUpdateKeyframes(AnimBlendFrameData *frames, AnimBlendFrameUpdateD } } +// TODO: +// CAnimBlendClumpData::LoadFramesIntoSPR +// CAnimBlendClumpData::ForAllFramesInSPR void RpAnimBlendClumpUpdateAnimations(RpClump *clump, float timeDelta, bool doRender) { @@ -466,7 +470,7 @@ RpAnimBlendClumpUpdateAnimations(RpClump *clump, float timeDelta, bool doRender) assoc = CAnimBlendAssociation::FromLink(link); if(assoc->UpdateBlend(timeDelta)){ if(assoc->hierarchy->sequences){ - //CAnimManager::UncompressAnimation(v6->hierarchy) + CAnimManager::UncompressAnimation(assoc->hierarchy); if(i < 11) updateData.nodes[i++] = assoc->GetNode(0); if(assoc->flags & ASSOC_MOVEMENT){ @@ -486,6 +490,14 @@ RpAnimBlendClumpUpdateAnimations(RpClump *clump, float timeDelta, bool doRender) updateData.nodes[i] = nil; +#ifdef ANIM_COMPRESSION + if(clumpData->frames[0].flag & AnimBlendFrameData::COMPRESSED){ + if(IsClumpSkinned(clump)) + clumpData->ForAllFrames(FrameUpdateCallBackSkinnedCompressed, &updateData); + else + clumpData->ForAllFrames(FrameUpdateCallBackNonSkinnedCompressed, &updateData); + }else +#endif if(doRender){ if(clumpData->frames[0].flag & AnimBlendFrameData::UPDATE_KEYFRAMES) RpAnimBlendNodeUpdateKeyframes(clumpData->frames, &updateData, clumpData->numFrames); |