@@ -12,15 +12,15 @@ class CClientIFP : public CClientEntity, CFileReader
12
12
13
13
struct SBase
14
14
{
15
- char FourCC[4 ];
16
- uint32_t Size;
15
+ char FourCC[4 ];
16
+ std:: uint32_t Size;
17
17
};
18
18
19
19
struct SInfo
20
20
{
21
- SBase Base;
22
- int32_t Entries;
23
- char Name[24 ];
21
+ SBase Base;
22
+ std:: int32_t Entries;
23
+ char Name[24 ];
24
24
};
25
25
26
26
struct SAnpk
@@ -47,16 +47,16 @@ class CClientIFP : public CClientEntity, CFileReader
47
47
48
48
struct SAnim
49
49
{
50
- SBase Base;
51
- char Name[28 ];
52
- int32_t Frames;
53
- int32_t Unk;
54
- int32_t Next;
55
- int32_t Previous;
50
+ SBase Base;
51
+ char Name[28 ];
52
+ std:: int32_t Frames;
53
+ std:: int32_t Unk;
54
+ std:: int32_t Next;
55
+ std:: int32_t Previous;
56
56
57
57
// According to https://www.gtamodding.com/wiki/IFP, Unk2 should not exist, but for some reason, it's there
58
58
// I don't know why. Let's just go with the flow and ignore it. The value seems to be always zero.
59
- int32_t Unk2;
59
+ std:: int32_t Unk2;
60
60
};
61
61
62
62
struct SKfrm
@@ -97,18 +97,18 @@ class CClientIFP : public CClientEntity, CFileReader
97
97
98
98
struct SCompressedQuaternion
99
99
{
100
- int16_t X, Y, Z, W;
100
+ std:: int16_t X, Y, Z, W;
101
101
};
102
102
103
103
struct SCompressedCVector
104
104
{
105
- int16_t X, Y, Z;
105
+ std:: int16_t X, Y, Z;
106
106
};
107
107
108
108
struct SCompressed_KR00
109
109
{
110
110
SCompressedQuaternion Rotation;
111
- int16_t Time;
111
+ std:: int16_t Time;
112
112
};
113
113
114
114
struct SCompressed_KRT0 : SCompressed_KR00
@@ -128,27 +128,25 @@ class CClientIFP : public CClientEntity, CFileReader
128
128
129
129
struct SIFPHeaderV2
130
130
{
131
- int32_t OffsetEOF;
132
- char InternalFileName[24 ];
133
- int32_t TotalAnimations;
131
+ std:: int32_t OffsetEOF;
132
+ char InternalFileName[24 ];
133
+ std:: int32_t TotalAnimations;
134
134
};
135
135
136
136
struct SAnimationHeaderV2
137
137
{
138
- char Name[24 ];
139
- int32_t TotalObjects;
140
- int32_t FrameSize;
141
- int32_t isCompressed; // The value is always 1
138
+ char Name[24 ];
139
+ std:: int32_t TotalObjects;
140
+ std:: int32_t FrameSize;
141
+ std:: int32_t isCompressed; // The value is always 1
142
142
};
143
143
144
144
struct SSequenceHeaderV2
145
145
{
146
- // 24 + 4 + 4 + 4 = 36 bytes
147
-
148
- char Name[24 ];
149
- int32_t FrameType;
150
- int32_t TotalFrames;
151
- int32_t BoneID;
146
+ char Name[24 ];
147
+ std::int32_t FrameType;
148
+ std::int32_t TotalFrames;
149
+ std::int32_t BoneID;
152
150
};
153
151
154
152
enum eBoneType
@@ -213,51 +211,52 @@ class CClientIFP : public CClientEntity, CFileReader
213
211
void ReadIFPVersion1 (void );
214
212
void ReadIFPVersion2 (bool bAnp3);
215
213
216
- WORD ReadSequencesWithDummies (std::unique_ptr<CAnimBlendHierarchy>& pAnimationHierarchy);
217
- WORD ReadSequences (std::unique_ptr<CAnimBlendHierarchy>& pAnimationHierarchy, std::map<DWORD, CAnimBlendSequenceSAInterface>& MapOfSequences);
218
- WORD ReadSequencesVersion1 (std::unique_ptr<CAnimBlendHierarchy>& pAnimationHierarchy, std::map<DWORD, CAnimBlendSequenceSAInterface>& MapOfSequences);
219
- WORD ReadSequencesVersion2 (std::unique_ptr<CAnimBlendHierarchy>& pAnimationHierarchy, std::map<DWORD, CAnimBlendSequenceSAInterface>& MapOfSequences);
220
- int32_t ReadSequenceVersion1 (SAnim& Anim);
221
- void ReadSequenceVersion2 (SSequenceHeaderV2& ObjectNode);
214
+ WORD ReadSequencesWithDummies (std::unique_ptr<CAnimBlendHierarchy>& pAnimationHierarchy);
215
+ WORD ReadSequences (std::unique_ptr<CAnimBlendHierarchy>& pAnimationHierarchy, std::map<DWORD, CAnimBlendSequenceSAInterface>& MapOfSequences);
216
+ WORD ReadSequencesVersion1 (std::unique_ptr<CAnimBlendHierarchy>& pAnimationHierarchy, std::map<DWORD, CAnimBlendSequenceSAInterface>& MapOfSequences);
217
+ WORD ReadSequencesVersion2 (std::unique_ptr<CAnimBlendHierarchy>& pAnimationHierarchy, std::map<DWORD, CAnimBlendSequenceSAInterface>& MapOfSequences);
218
+ std:: int32_t ReadSequenceVersion1 (SAnim& Anim);
219
+ void ReadSequenceVersion2 (SSequenceHeaderV2& ObjectNode);
222
220
223
221
void ReadHeaderVersion1 (SInfo& Info);
224
222
void ReadAnimationNameVersion1 (SAnimation& IfpAnimation);
225
223
void ReadDgan (SDgan& Dgan);
226
224
CClientIFP::eFrameType ReadKfrm (void );
227
225
void ReadAnimationHeaderVersion2 (SAnimationHeaderV2& AnimationNode, bool bAnp3);
228
226
229
- bool ReadSequenceKeyFrames (std::unique_ptr<CAnimBlendSequence>& pAnimationSequence, eFrameType iFrameType, int32_t iFrames );
230
- void ReadKeyFramesAsCompressed (std::unique_ptr<CAnimBlendSequence>& pAnimationSequence, eFrameType iFrameType, int32_t iFrames );
231
- void ReadKrtsFramesAsCompressed (std::unique_ptr<CAnimBlendSequence>& pAnimationSequence, int32_t TotalFrames );
232
- void ReadKrt0FramesAsCompressed (std::unique_ptr<CAnimBlendSequence>& pAnimationSequence, int32_t TotalFrames );
233
- void ReadKr00FramesAsCompressed (std::unique_ptr<CAnimBlendSequence>& pAnimationSequence, int32_t TotalFrames );
227
+ bool ReadSequenceKeyFrames (std::unique_ptr<CAnimBlendSequence>& pAnimationSequence, eFrameType iFrameType, const std:: int32_t & cFrames );
228
+ void ReadKeyFramesAsCompressed (std::unique_ptr<CAnimBlendSequence>& pAnimationSequence, eFrameType iFrameType, const std:: int32_t & cFrames );
229
+ void ReadKrtsFramesAsCompressed (std::unique_ptr<CAnimBlendSequence>& pAnimationSequence, const std:: int32_t & cFrames );
230
+ void ReadKrt0FramesAsCompressed (std::unique_ptr<CAnimBlendSequence>& pAnimationSequence, const std:: int32_t & cFrames );
231
+ void ReadKr00FramesAsCompressed (std::unique_ptr<CAnimBlendSequence>& pAnimationSequence, const std:: int32_t & cFrames );
234
232
235
233
template <class T >
236
- void ReadCompressedFrames (std::unique_ptr<CAnimBlendSequence>& pAnimationSequence, int32_t iFrames)
234
+ void ReadCompressedFrames (std::unique_ptr<CAnimBlendSequence>& pAnimationSequence, std:: int32_t iFrames)
237
235
{
238
236
BYTE* pKeyFrames = pAnimationSequence->GetKeyFrames ();
239
237
size_t iSizeInBytes = sizeof (T) * iFrames;
240
238
ReadBytes (pKeyFrames, iSizeInBytes);
241
239
}
242
240
243
- void InitializeAnimationHierarchy (std::unique_ptr<CAnimBlendHierarchy>& pAnimationHierarchy, const char * szAnimationName, const int32_t iSequences);
244
- void InitializeAnimationSequence (std::unique_ptr<CAnimBlendSequence>& pAnimationSequence, const char * szName, const int32_t iBoneID);
241
+ void InitializeAnimationHierarchy (std::unique_ptr<CAnimBlendHierarchy>& pAnimationHierarchy, const SString& strAnimationName,
242
+ const std::int32_t & iSequences);
243
+ void InitializeAnimationSequence (std::unique_ptr<CAnimBlendSequence>& pAnimationSequence, const SString& strName, const std::int32_t & iBoneID);
245
244
void PreProcessAnimationHierarchy (std::unique_ptr<CAnimBlendHierarchy>& pAnimationHierarchy);
246
245
void CopySequencesWithDummies (std::unique_ptr<CAnimBlendHierarchy>& pAnimationHierarchy, std::map<DWORD, CAnimBlendSequenceSAInterface>& mapOfSequences);
247
246
BYTE* AllocateSequencesMemory (std::unique_ptr<CAnimBlendHierarchy>& pAnimationHierarchy);
248
247
249
- void InsertAnimationDummySequence (std::unique_ptr<CAnimBlendSequence>& pAnimationSequence, std::string & BoneName, DWORD& dwBoneID);
250
- void CopyDummyKeyFrameByBoneID (BYTE* pKeyFrames, DWORD dwBoneID);
251
- std::string ConvertStringToMapKey (const char * szString );
248
+ void InsertAnimationDummySequence (std::unique_ptr<CAnimBlendSequence>& pAnimationSequence, const SString & BoneName, const DWORD& dwBoneID);
249
+ void CopyDummyKeyFrameByBoneID (BYTE* pKeyFrames, DWORD dwBoneID);
250
+ SString ConvertStringToKey (const SString& strBoneName );
252
251
253
- constexpr void RoundSize (uint32_t & u32Size);
252
+ constexpr void RoundSize (std:: uint32_t & u32Size);
254
253
constexpr bool IsKeyFramesTypeRoot (eFrameType iFrameType);
255
254
256
- eFrameType GetFrameTypeFromFourCC (const char * szFourCC);
257
- size_t GetSizeOfCompressedFrame (eFrameType FrameType);
258
- int32_t GetBoneIDFromName ( std::string const & BoneName );
259
- std::string GetCorrectBoneNameFromName (std::string const & BoneName );
260
- std::string GetCorrectBoneNameFromID (int32_t & BoneID );
255
+ eFrameType GetFrameTypeFromFourCC (const char * szFourCC);
256
+ size_t GetSizeOfCompressedFrame (eFrameType FrameType);
257
+ std::int32_t GetBoneIDFromName ( const SString& strBoneName );
258
+ SString GetCorrectBoneNameFromName (const SString& strBoneName );
259
+ SString GetCorrectBoneNameFromID (const std:: int32_t & iBoneID );
261
260
262
261
std::shared_ptr<CIFPAnimations> m_pIFPAnimations;
263
262
SString m_strBlockName;
0 commit comments