|
1 | 1 | #include <StdInc.h>
|
| 2 | +#include "../game_sa/CAnimBlendSequenceSA.h" |
| 3 | +//#include "../game_sa//CAnimManagerSA.h" |
2 | 4 |
|
3 | 5 | h_CAnimBlendHierarchy_SetName OLD__CAnimBlendHierarchy_SetName = (h_CAnimBlendHierarchy_SetName)0x4CF2D0;
|
4 | 6 | hCAnimBlendHierarchy_RemoveAnimSequences OLD_CAnimBlendHierarchy_RemoveAnimSequences = (hCAnimBlendHierarchy_RemoveAnimSequences)0x4CF8E0;
|
@@ -125,6 +127,8 @@ void CClientIFP::ReadIFPVersion2( bool anp3)
|
125 | 127 | m_pVecAnimations->resize ( HeaderV2.TotalAnimations );
|
126 | 128 | for (size_t i = 0; i < m_pVecAnimations->size(); i++)
|
127 | 129 | {
|
| 130 | + CAnimManager * pAnimManager = g_pGame->GetAnimManager ( ); |
| 131 | + |
128 | 132 | IFP_Animation & ifpAnimation = m_pVecAnimations->at ( i );
|
129 | 133 |
|
130 | 134 | _CAnimBlendHierarchy * pAnimHierarchy = &ifpAnimation.Hierarchy;
|
@@ -197,32 +201,20 @@ void CClientIFP::ReadIFPVersion2( bool anp3)
|
197 | 201 | memset (ObjectNode.Name, 0, sizeof(Object::Name));
|
198 | 202 | strncpy (ObjectNode.Name, CorrectBoneName.c_str(), CorrectBoneName.size() +1);
|
199 | 203 |
|
200 |
| - _CAnimBlendSequence Sequence; |
201 |
| - _CAnimBlendSequence * pUnkownSequence = nullptr; |
| 204 | + |
| 205 | + CAnimBlendSequenceSAInterface AnimationSequence; |
| 206 | + CAnimBlendSequenceSAInterface * pAnimationSequenceInterface = &AnimationSequence; |
202 | 207 | if (bUnknownSequence)
|
203 | 208 | {
|
204 |
| - |
205 | 209 | size_t UnkownSequenceIndex = IFP_TOTAL_SEQUENCES + TotalUnknownSequences;
|
206 |
| - pUnkownSequence = (_CAnimBlendSequence*)((BYTE*)pAnimHierarchy->m_pSequences + (sizeof(_CAnimBlendSequence) * UnkownSequenceIndex)); |
207 |
| - |
208 |
| - //ofs << "Initializing unknown sequence: UnkownSequenceIndex: " << UnkownSequenceIndex << std::endl; |
209 |
| - |
210 |
| - _CAnimBlendSequence_Constructor ( pUnkownSequence ); |
211 |
| - |
212 |
| - OLD__CAnimBlendSequence_SetName ( pUnkownSequence, ObjectNode.Name); |
213 |
| - |
214 |
| - OLD__CAnimBlendSequence_SetBoneTag ( pUnkownSequence, ObjectNode.BoneID); |
215 |
| - |
| 210 | + pAnimationSequenceInterface = ( CAnimBlendSequenceSAInterface *)((BYTE*)pAnimHierarchy->m_pSequences + (sizeof(_CAnimBlendSequence) * UnkownSequenceIndex)); |
216 | 211 | TotalUnknownSequences ++;
|
217 | 212 | }
|
218 |
| - else |
219 |
| - { |
220 |
| - _CAnimBlendSequence_Constructor(&Sequence); |
221 |
| - |
222 |
| - OLD__CAnimBlendSequence_SetName(&Sequence, ObjectNode.Name); |
223 | 213 |
|
224 |
| - OLD__CAnimBlendSequence_SetBoneTag(&Sequence, ObjectNode.BoneID); |
225 |
| - } |
| 214 | + std::unique_ptr < CAnimBlendSequence > pAnimationSequence = pAnimManager->GetAnimBlendSequence ( pAnimationSequenceInterface ); |
| 215 | + pAnimationSequence->Initialize ( ); |
| 216 | + pAnimationSequence->SetName ( ObjectNode.Name ); |
| 217 | + pAnimationSequence->SetBoneTag ( ObjectNode.BoneID ); |
226 | 218 |
|
227 | 219 | if (bFirstSeq)
|
228 | 220 | {
|
@@ -264,20 +256,14 @@ void CClientIFP::ReadIFPVersion2( bool anp3)
|
264 | 256 | {
|
265 | 257 | unsigned char * pKeyFrames = (unsigned char*) OLD_CMemoryMgr_Malloc ( data_size );
|
266 | 258 |
|
267 |
| - if ( bUnknownSequence ) |
268 |
| - { |
269 |
| - OLD__CAnimBlendSequence_SetNumFrames ( pUnkownSequence, ObjectNode.TotalFrames, bIsRoot, bIsCompressed, pKeyFrames ); |
270 |
| - } |
271 |
| - else |
272 |
| - { |
273 |
| - OLD__CAnimBlendSequence_SetNumFrames ( &Sequence, ObjectNode.TotalFrames, bIsRoot, bIsCompressed, pKeyFrames ); |
274 |
| - } |
| 259 | + pAnimationSequence->SetKeyFrames ( ObjectNode.TotalFrames, bIsRoot, bIsCompressed, pKeyFrames ); |
275 | 260 |
|
276 | 261 | readBytes ( pKeyFrames, data_size );
|
277 | 262 |
|
278 | 263 | if ( !bUnknownSequence )
|
279 | 264 | {
|
280 |
| - MapOfSequences [ CorrectBoneName ] = Sequence; |
| 265 | + _CAnimBlendSequence * pAnimSequenceInterface = (_CAnimBlendSequence*)pAnimationSequence->GetInterface(); |
| 266 | + MapOfSequences [ CorrectBoneName ] = (_CAnimBlendSequence)*pAnimSequenceInterface; |
281 | 267 | }
|
282 | 268 | }
|
283 | 269 | }
|
@@ -320,7 +306,7 @@ void CClientIFP::ReadIFPVersion2( bool anp3)
|
320 | 306 |
|
321 | 307 | void CClientIFP::ReadIFPVersion1 ( )
|
322 | 308 | {
|
323 |
| - uint32_t OffsetEOF; |
| 309 | + /*uint32_t OffsetEOF; |
324 | 310 |
|
325 | 311 | readBuffer < uint32_t > ( &OffsetEOF );
|
326 | 312 | ROUNDSIZE (OffsetEOF);
|
@@ -530,7 +516,7 @@ void CClientIFP::ReadIFPVersion1 ( )
|
530 | 516 |
|
531 | 517 | Call__CAnimBlendHierarchy_CalcTotalTime(pAnimHierarchy);
|
532 | 518 | }
|
533 |
| - } |
| 519 | + }*/ |
534 | 520 | }
|
535 | 521 |
|
536 | 522 |
|
|
0 commit comments