diff --git a/FFXIVClientStructs/FFXIV/Component/GUI/AtkUldManager.cs b/FFXIVClientStructs/FFXIV/Component/GUI/AtkUldManager.cs index 2daf46700..08da60966 100644 --- a/FFXIVClientStructs/FFXIV/Component/GUI/AtkUldManager.cs +++ b/FFXIVClientStructs/FFXIV/Component/GUI/AtkUldManager.cs @@ -1,3 +1,4 @@ +using FFXIVClientStructs.FFXIV.Client.System.Memory; using FFXIVClientStructs.FFXIV.Client.System.Resource.Handle; namespace FFXIVClientStructs.FFXIV.Component.GUI; @@ -52,6 +53,33 @@ public unsafe partial struct AtkUldManager { [MemberFunction("E8 ?? ?? ?? ?? 49 8B 55 ?? 0F B7 CD")] public partial AtkResNode* CreateAtkNode(uint type); + [MemberFunction("E8 ?? ?? ?? ?? F6 83 ?? ?? ?? ?? ?? 75 17")] + public partial void SetupFromULDResourceHandle(byte* uldResourceOffset0, byte* uldResoruceOffset1); + + [MemberFunction("40 57 41 56 41 57 48 83 EC 30 45 8B 71 18")] + public partial void SetupTimelineFromULDResourceHandle(IMemorySpace* memSpace, byte* uldResourceOffset0, byte* uldResoruceOffset1, ushort timelineNum); + + [MemberFunction("E8 ?? ?? ?? ?? 49 8B 86 ?? ?? ?? ?? 48 85 C0 74 21")] + public partial void SetupComponentFromULDResourceHandle(byte* uldResourceOffset, uint componentId, ushort* timeline, AtkUldAsset* uldAsset, AtkUldPartsList* uldPartList, ushort assetNum, ushort partsNum, AtkResourceRendererManager* renderManager, bool unkResourceBool, bool keepHandle); + + [MemberFunction("E8 ?? ?? ?? ?? 81 7F ?? ?? ?? ?? ?? 4C 8B CB")] + public partial void SetupComponentTimelineFromULDResourceHandle(byte* uldResourceOffset, uint componetId, AtkTimelineManager* atkTimeLineManager, AtkResNode* node); + + [MemberFunction("E8 ?? ?? ?? ?? 0F B7 47 0E")] + public partial void BindTimeline(byte* uldResourceOffset, AtkUldObjectInfo* objects, byte* nodeData, AtkTimelineManager* atkTimeLineManager); + + [MemberFunction("40 56 48 83 EC 20 48 8B 41 10")] + public partial void SetupText(); + + [MemberFunction("E8 ?? ?? ?? ?? 0F B6 8E ?? ?? ?? ?? 48 8B 86")] + public partial void SetupTexture(IMemorySpace* memSpace, AtkResNode* node, AtkUldPartsList** parts, uint id); + + [MemberFunction("E8 ?? ?? ?? ?? 48 8B 7F 28 66 03 E8")] + public partial int GetNodeCount(AtkResNode* node); + + [MemberFunction("E8 ?? ?? ?? ?? E9 ?? ?? ?? ?? 66 83 F8 04")] + public static partial void ReadAtkTextNodeData(AtkTextNode* node, byte* nodeData,bool unk); + public AtkResNode* CreateAtkNode(NodeType type) => CreateAtkNode((uint)type); diff --git a/ida/data.yml b/ida/data.yml index 5f6dd496a..5b4931225 100644 --- a/ida/data.yml +++ b/ida/data.yml @@ -2468,7 +2468,6 @@ classes: 0x14064EC20: UpdateTextLayouts 0x140649910: PopulateTextLabels 0x140647410: SetupComponentFromULDResourceHandle - 0x140649B40: CreateTimeline 0x140649E00: ReadComponentData 0x14064AA70: ReadTPHD # PartList 0x14064AC80: ReadASHDAndLoadTextures # AssetList @@ -2490,6 +2489,14 @@ classes: 0x14064BFA0: UpdateDrawNodeList 0x14064C210: TraverseNode 0x14064DE50: Finalizer + 0x140649B40: SetupTimelineFromULDResourceHandle # CreateTimeline + 0x1406499D0: SetupComponentTimelineFromULDResourceHandle + 0x140649C80: BindTimeline + 0x140649850: SetupText + 0x14064B560: SetupTexture + 0x14064F230: GetNodeCount + 0x14064A630: ReadAtkTextNodeData + 0x14064A300: ReadAtkResNodeData Component::GUI::AtkTimeline: funcs: 0x14068F770: GetStartFrameIdxForLabelId @@ -7800,7 +7807,6 @@ classes: 0x140642AD0: SetOriginUnsafe 0x140642B40: SetOriginXUnsafe 0x140642B90: SetOriginYUnsafe - 0x14064A300: ReadNodeData 0x14064EBD0: SetComponentSize 0x14066D6E0: GetComponent_2 0x140670800: GetAsAtkComponentButton