@@ -52,6 +52,10 @@ struct IFP_ANIM
52
52
int32_t Unk;
53
53
int32_t Next;
54
54
int32_t Previous;
55
+
56
+ // According to https://www.gtamodding.com/wiki/IFP, Unk2 should not exist, but for some reason, it's there
57
+ // I don't know why. Let's just go with the flow and ignore it. The value "seems" to be always zero.
58
+ int32_t Unk2;
55
59
};
56
60
57
61
struct IFP_KFRM
@@ -128,13 +132,11 @@ struct IFPHeaderV2
128
132
int32_t TotalAnimations;
129
133
};
130
134
131
- struct IFP : FileLoader
132
- {
133
- bool isVersion1;
134
- IFPHeaderV2 HeaderV2;
135
- std::vector <_CAnimBlendHierarchy> AnimationHierarchies;
136
- std::vector <_CAnimBlendSequence> AnimationSequences;
137
- unsigned char * KeyFramesArray;
135
+ struct IFP_Animation
136
+ {
137
+ _CAnimBlendHierarchy Hierarchy;
138
+ // std::vector <_CAnimBlendSequence> Sequences;
139
+ char * pSequencesMemory;
138
140
};
139
141
140
142
struct Animation
@@ -205,16 +207,6 @@ typedef void *(__cdecl* hCMemoryMgr_Malloc)
205
207
);
206
208
207
209
208
- void LoadIFPFile (const char * FilePath);
209
- void ReadIFPVersion1 ();
210
- void ReadIFPVersion2 ( bool anp3);
211
-
212
- void insertAnimDummySequence (bool anp3, _CAnimBlendHierarchy * pAnimHierarchy, size_t SequenceIndex);
213
- int32_t getBoneIDFromName (std::string const & BoneName);
214
- std::string getCorrectBoneNameFromName (std::string const & BoneName);
215
- std::string getCorrectBoneNameFromID (int32_t & BoneID);
216
- size_t getCorrectBoneIndexFromID (int32_t & BoneID);
217
-
218
210
void _CAnimBlendHierarchy_Constructor (_CAnimBlendHierarchy * pAnimHierarchy);
219
211
void _CAnimBlendSequence_Constructor (_CAnimBlendSequence * pSequence);
220
212
0 commit comments