Skip to content

Commit 7a6146d

Browse files
committed
Used Factory pattern for CAnimBlendSequenceSAInterface
1 parent 991df8c commit 7a6146d

File tree

1 file changed

+17
-31
lines changed

1 file changed

+17
-31
lines changed

Client/mods/deathmatch/logic/CClientIFP.cpp

Lines changed: 17 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
#include <StdInc.h>
2+
#include "../game_sa/CAnimBlendSequenceSA.h"
3+
//#include "../game_sa//CAnimManagerSA.h"
24

35
h_CAnimBlendHierarchy_SetName OLD__CAnimBlendHierarchy_SetName = (h_CAnimBlendHierarchy_SetName)0x4CF2D0;
46
hCAnimBlendHierarchy_RemoveAnimSequences OLD_CAnimBlendHierarchy_RemoveAnimSequences = (hCAnimBlendHierarchy_RemoveAnimSequences)0x4CF8E0;
@@ -125,6 +127,8 @@ void CClientIFP::ReadIFPVersion2( bool anp3)
125127
m_pVecAnimations->resize ( HeaderV2.TotalAnimations );
126128
for (size_t i = 0; i < m_pVecAnimations->size(); i++)
127129
{
130+
CAnimManager * pAnimManager = g_pGame->GetAnimManager ( );
131+
128132
IFP_Animation & ifpAnimation = m_pVecAnimations->at ( i );
129133

130134
_CAnimBlendHierarchy * pAnimHierarchy = &ifpAnimation.Hierarchy;
@@ -197,32 +201,20 @@ void CClientIFP::ReadIFPVersion2( bool anp3)
197201
memset (ObjectNode.Name, 0, sizeof(Object::Name));
198202
strncpy (ObjectNode.Name, CorrectBoneName.c_str(), CorrectBoneName.size() +1);
199203

200-
_CAnimBlendSequence Sequence;
201-
_CAnimBlendSequence * pUnkownSequence = nullptr;
204+
205+
CAnimBlendSequenceSAInterface AnimationSequence;
206+
CAnimBlendSequenceSAInterface * pAnimationSequenceInterface = &AnimationSequence;
202207
if (bUnknownSequence)
203208
{
204-
205209
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));
216211
TotalUnknownSequences ++;
217212
}
218-
else
219-
{
220-
_CAnimBlendSequence_Constructor(&Sequence);
221-
222-
OLD__CAnimBlendSequence_SetName(&Sequence, ObjectNode.Name);
223213

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 );
226218

227219
if (bFirstSeq)
228220
{
@@ -264,20 +256,14 @@ void CClientIFP::ReadIFPVersion2( bool anp3)
264256
{
265257
unsigned char * pKeyFrames = (unsigned char*) OLD_CMemoryMgr_Malloc ( data_size );
266258

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 );
275260

276261
readBytes ( pKeyFrames, data_size );
277262

278263
if ( !bUnknownSequence )
279264
{
280-
MapOfSequences [ CorrectBoneName ] = Sequence;
265+
_CAnimBlendSequence * pAnimSequenceInterface = (_CAnimBlendSequence*)pAnimationSequence->GetInterface();
266+
MapOfSequences [ CorrectBoneName ] = (_CAnimBlendSequence)*pAnimSequenceInterface;
281267
}
282268
}
283269
}
@@ -320,7 +306,7 @@ void CClientIFP::ReadIFPVersion2( bool anp3)
320306

321307
void CClientIFP::ReadIFPVersion1 ( )
322308
{
323-
uint32_t OffsetEOF;
309+
/*uint32_t OffsetEOF;
324310
325311
readBuffer < uint32_t > ( &OffsetEOF );
326312
ROUNDSIZE (OffsetEOF);
@@ -530,7 +516,7 @@ void CClientIFP::ReadIFPVersion1 ( )
530516
531517
Call__CAnimBlendHierarchy_CalcTotalTime(pAnimHierarchy);
532518
}
533-
}
519+
}*/
534520
}
535521

536522

0 commit comments

Comments
 (0)