From 6d6ce2091931c8c375bf2a02ebeb6b194e681714 Mon Sep 17 00:00:00 2001 From: Jan Laupetin Date: Sat, 21 Mar 2026 11:11:54 +0100 Subject: [PATCH] chore: add XAnimPartType to all games --- src/Common/Game/IW3/IW3_Assets.h | 18 +++++++++++++++++- src/Common/Game/IW4/IW4_Assets.h | 18 +++++++++++++++++- src/Common/Game/IW5/IW5_Assets.h | 18 +++++++++++++++++- src/Common/Game/T5/T5_Assets.h | 18 +++++++++++++++++- src/Common/Game/T6/T6_Assets.h | 18 +++++++++++++++++- 5 files changed, 85 insertions(+), 5 deletions(-) diff --git a/src/Common/Game/IW3/IW3_Assets.h b/src/Common/Game/IW3/IW3_Assets.h index d654aecb..b584db21 100644 --- a/src/Common/Game/IW3/IW3_Assets.h +++ b/src/Common/Game/IW3/IW3_Assets.h @@ -249,6 +249,22 @@ namespace IW3 XAnimDeltaPartQuat* quat; }; + enum XAnimPartType + { + PART_TYPE_NO_QUAT = 0x0, + PART_TYPE_HALF_QUAT = 0x1, + PART_TYPE_FULL_QUAT = 0x2, + PART_TYPE_HALF_QUAT_NO_SIZE = 0x3, + PART_TYPE_FULL_QUAT_NO_SIZE = 0x4, + PART_TYPE_SMALL_TRANS = 0x5, + PART_TYPE_TRANS = 0x6, + PART_TYPE_TRANS_NO_SIZE = 0x7, + PART_TYPE_NO_TRANS = 0x8, + PART_TYPE_ALL = 0x9, + + PART_TYPE_COUNT + }; + struct XAnimParts { const char* name; @@ -260,7 +276,7 @@ namespace IW3 uint16_t numframes; bool bLoop; bool bDelta; - unsigned char boneCount[10]; + unsigned char boneCount[PART_TYPE_COUNT]; char notifyCount; char assetType; bool isDefault; diff --git a/src/Common/Game/IW4/IW4_Assets.h b/src/Common/Game/IW4/IW4_Assets.h index f24b869f..befd213e 100644 --- a/src/Common/Game/IW4/IW4_Assets.h +++ b/src/Common/Game/IW4/IW4_Assets.h @@ -379,6 +379,22 @@ namespace IW4 XAnimDeltaPartQuat* quat; }; + enum XAnimPartType + { + PART_TYPE_NO_QUAT = 0x0, + PART_TYPE_HALF_QUAT = 0x1, + PART_TYPE_FULL_QUAT = 0x2, + PART_TYPE_HALF_QUAT_NO_SIZE = 0x3, + PART_TYPE_FULL_QUAT_NO_SIZE = 0x4, + PART_TYPE_SMALL_TRANS = 0x5, + PART_TYPE_TRANS = 0x6, + PART_TYPE_TRANS_NO_SIZE = 0x7, + PART_TYPE_NO_TRANS = 0x8, + PART_TYPE_ALL = 0x9, + + PART_TYPE_COUNT + }; + struct XAnimParts { const char* name; @@ -389,7 +405,7 @@ namespace IW4 uint16_t randomDataIntCount; uint16_t numframes; char flags; - unsigned char boneCount[10]; + unsigned char boneCount[PART_TYPE_COUNT]; char notifyCount; char assetType; bool isDefault; diff --git a/src/Common/Game/IW5/IW5_Assets.h b/src/Common/Game/IW5/IW5_Assets.h index 647586f8..7e7001c5 100644 --- a/src/Common/Game/IW5/IW5_Assets.h +++ b/src/Common/Game/IW5/IW5_Assets.h @@ -382,6 +382,22 @@ namespace IW5 XAnimDeltaPartQuat* quat; }; + enum XAnimPartType + { + PART_TYPE_NO_QUAT = 0x0, + PART_TYPE_HALF_QUAT = 0x1, + PART_TYPE_FULL_QUAT = 0x2, + PART_TYPE_HALF_QUAT_NO_SIZE = 0x3, + PART_TYPE_FULL_QUAT_NO_SIZE = 0x4, + PART_TYPE_SMALL_TRANS = 0x5, + PART_TYPE_TRANS = 0x6, + PART_TYPE_TRANS_NO_SIZE = 0x7, + PART_TYPE_NO_TRANS = 0x8, + PART_TYPE_ALL = 0x9, + + PART_TYPE_COUNT + }; + struct XAnimParts { const char* name; @@ -392,7 +408,7 @@ namespace IW5 unsigned short randomDataIntCount; unsigned short numframes; unsigned char flags; - unsigned char boneCount[10]; + unsigned char boneCount[PART_TYPE_COUNT]; unsigned char notifyCount; unsigned char assetType; bool isDefault; diff --git a/src/Common/Game/T5/T5_Assets.h b/src/Common/Game/T5/T5_Assets.h index 077a82ef..abcb728a 100644 --- a/src/Common/Game/T5/T5_Assets.h +++ b/src/Common/Game/T5/T5_Assets.h @@ -368,6 +368,22 @@ namespace T5 XAnimDeltaPartQuat* quat; }; + enum XAnimPartType + { + PART_TYPE_NO_QUAT = 0x0, + PART_TYPE_HALF_QUAT = 0x1, + PART_TYPE_FULL_QUAT = 0x2, + PART_TYPE_HALF_QUAT_NO_SIZE = 0x3, + PART_TYPE_FULL_QUAT_NO_SIZE = 0x4, + PART_TYPE_SMALL_TRANS = 0x5, + PART_TYPE_TRANS = 0x6, + PART_TYPE_TRANS_NO_SIZE = 0x7, + PART_TYPE_NO_TRANS = 0x8, + PART_TYPE_ALL = 0x9, + + PART_TYPE_COUNT + }; + struct XAnimParts { const char* name; @@ -382,7 +398,7 @@ namespace T5 bool bLeftHandGripIK; bool bStreamable; unsigned int streamedFileSize; - unsigned char boneCount[10]; + unsigned char boneCount[PART_TYPE_COUNT]; unsigned char notifyCount; char assetType; bool isDefault; diff --git a/src/Common/Game/T6/T6_Assets.h b/src/Common/Game/T6/T6_Assets.h index 8522c3fe..1eda8896 100644 --- a/src/Common/Game/T6/T6_Assets.h +++ b/src/Common/Game/T6/T6_Assets.h @@ -473,6 +473,22 @@ namespace T6 void* data; }; + enum XAnimPartType + { + PART_TYPE_NO_QUAT = 0x0, + PART_TYPE_HALF_QUAT = 0x1, + PART_TYPE_FULL_QUAT = 0x2, + PART_TYPE_HALF_QUAT_NO_SIZE = 0x3, + PART_TYPE_FULL_QUAT_NO_SIZE = 0x4, + PART_TYPE_SMALL_TRANS = 0x5, + PART_TYPE_TRANS = 0x6, + PART_TYPE_TRANS_NO_SIZE = 0x7, + PART_TYPE_NO_TRANS = 0x8, + PART_TYPE_ALL = 0x9, + + PART_TYPE_COUNT + }; + struct XAnimParts { const char* name; @@ -487,7 +503,7 @@ namespace T6 bool bDelta3D; bool bLeftHandGripIK; unsigned int streamedFileSize; - unsigned char boneCount[10]; + unsigned char boneCount[PART_TYPE_COUNT]; unsigned char notifyCount; char assetType; bool isDefault;