2
0
mirror of https://github.com/Laupetin/OpenAssetTools.git synced 2026-06-27 19:38:07 +00:00

feat: add binary xanim support for remaining games (#818)

* refactor: use generic loader for iw3 xanims

* refactor: use generic dumper for iw3 xanims

* chore: use templating on XAnimDumper

* chore: use templating on XAnimLoader

* feat: dump xanims for T5

* feat: load binary t5 xanims

* feat: load and dump t6 xanims

* feat: load and dump iw4,iw5 xanims

* chore: make sure iw3 and t5 notify about unsupported delta3D

* chore: also use CommonVec3U8 and CommonVec3U16 for non delta trans track
This commit is contained in:
Jan
2026-06-06 16:47:51 +02:00
committed by GitHub
parent e8d84c6d4d
commit 0d0f928267
44 changed files with 3388 additions and 1768 deletions
+8 -1
View File
@@ -395,6 +395,13 @@ namespace IW4
PART_TYPE_COUNT
};
enum XAnimFlags
{
ANIM_LOOP = 0x1,
ANIM_DELTA = 0x2,
ANIM_DELTA_3D = 0x4,
};
struct XAnimParts
{
const char* name;
@@ -404,7 +411,7 @@ namespace IW4
uint16_t randomDataByteCount;
uint16_t randomDataIntCount;
uint16_t numframes;
char flags;
unsigned char flags;
unsigned char boneCount[PART_TYPE_COUNT];
unsigned char notifyCount;
unsigned char assetType;
+7
View File
@@ -419,6 +419,13 @@ namespace IW5
PART_TYPE_COUNT
};
enum XAnimFlags
{
ANIM_LOOP = 0x1,
ANIM_DELTA = 0x2,
ANIM_DELTA_3D = 0x4,
};
struct XAnimParts
{
const char* name;
+3 -9
View File
@@ -5668,7 +5668,7 @@ namespace T6
XAnimPartTransData u;
};
union XAnimDynamicIndicesDeltaQuat2
union XAnimDynamicIndicesQuat
{
unsigned char _1[1];
uint16_t _2[1];
@@ -5682,7 +5682,7 @@ namespace T6
struct type_align32(4) XAnimDeltaPartQuatDataFrames2
{
XQuat2* frames;
XAnimDynamicIndicesDeltaQuat2 indices;
XAnimDynamicIndicesQuat indices;
};
union XAnimDeltaPartQuatData2
@@ -5697,12 +5697,6 @@ namespace T6
XAnimDeltaPartQuatData2 u;
};
union XAnimDynamicIndicesDeltaQuat
{
unsigned char _1[1];
uint16_t _2[1];
};
struct type_align(4) XQuat
{
int16_t value[4];
@@ -5711,7 +5705,7 @@ namespace T6
struct type_align32(4) XAnimDeltaPartQuatDataFrames
{
XQuat* frames;
XAnimDynamicIndicesDeltaQuat indices;
XAnimDynamicIndicesQuat indices;
};
union XAnimDeltaPartQuatData