From f17a56b4d508213db2c48525a051adea51eab40d Mon Sep 17 00:00:00 2001 From: Mozz3d <163353426+Mozz3d@users.noreply.github.com> Date: Sun, 18 Jan 2026 10:44:39 -0500 Subject: [PATCH] Decoded MorphTargetSkinnedMeshComponent fields --- .../entMorphTargetSkinnedMeshComponent.hpp | 46 +++++++++++-------- 1 file changed, 26 insertions(+), 20 deletions(-) diff --git a/include/RED4ext/Scripting/Natives/entMorphTargetSkinnedMeshComponent.hpp b/include/RED4ext/Scripting/Natives/entMorphTargetSkinnedMeshComponent.hpp index 7a5adeb5d..6172fa1a9 100644 --- a/include/RED4ext/Scripting/Natives/entMorphTargetSkinnedMeshComponent.hpp +++ b/include/RED4ext/Scripting/Natives/entMorphTargetSkinnedMeshComponent.hpp @@ -21,26 +21,32 @@ struct __declspec(align(0x10)) MorphTargetSkinnedMeshComponent : ent::ISkinTarge static constexpr const char* NAME = "entMorphTargetSkinnedMeshComponent"; static constexpr const char* ALIAS = NAME; - uint8_t unk1E0[0x1E8 - 0x1E0]; // 1E0 - SharedPtr renderProxy; // 1E8 - uint8_t unk1F0[0x200 - 0x1F8]; // 1F8 - RaRef morphResource; // 200 - Handle meshHandle; // 208 - uint8_t unk208[0x238 - 0x218]; // 218 - CName meshAppearance; // 238 - uint64_t chunkMask; // 240 - uint8_t unk248[0x2E8 - 0x248]; // 248 - CName renderingPlaneAnimationParam; // 2E8 - CName visibilityAnimationParam; // 2F0 - uint8_t unk2F8[0x308 - 0x2F8]; // 2F8 - red::TagList tags; // 308 - uint8_t unk318[0x35C - 0x318]; // 318 - shadows::ShadowCastingMode castShadows; // 35C - shadows::ShadowCastingMode castLocalShadows; // 35D - bool acceptDismemberment; // 35E - uint8_t unk35F[0x361 - 0x35F]; // 35F - uint8_t version; // 361 - uint8_t unk362[0x370 - 0x362]; // 362 + uint8_t unk1E0[0x1E8 - 0x1E0]; // 1E0 + SharedPtr renderProxy; // 1E8 + uint8_t unk1F0[0x200 - 0x1F8]; // 1F8 + RaRef morphResource; // 200 + Handle meshHandle; // 208 + uint8_t unk208[0x228 - 0x218]; // 218 - Handle + Handle meshAppearanceHandle; // 228 + CName meshAppearance; // 238 + uint64_t chunkMask; // 240 + uint8_t unk248[0x2E8 - 0x248]; // 248 + CName renderingPlaneAnimationParam; // 2E8 + CName visibilityAnimationParam; // 2F0 + DynArray cachedBindPoseMatrices; // 2F8 + red::TagList tags; // 308 + DynArray> garmentChunksMorphOffsetScales; // 318 + DynArray garmentChunksMorphOffsetScalesHashes; // 328 + void* unk338; // 338 - TRenderPtr + Handle garmentParamHandle; // 340 + GarmentParameterComponentData* garmentParamData; // 350 + uint32_t cachedBindPoseMatricesHash; // 358 + shadows::ShadowCastingMode castShadows; // 35C + shadows::ShadowCastingMode castLocalShadows; // 35D + bool acceptDismemberment; // 35E + uint8_t unk35F[0x361 - 0x35F]; // 35F + uint8_t version; // 361 + uint8_t unk362[0x370 - 0x362]; // 362 }; RED4EXT_ASSERT_SIZE(MorphTargetSkinnedMeshComponent, 0x370); } // namespace ent