Skip to content

Conversation

@Loskh
Copy link
Contributor

@Loskh Loskh commented Dec 26, 2025

Add some functions used in https://github.com/Loskh/PartyHotbar/blob/ddfc426925aa5d23c780e13bd87b802593dcbf3b/Node/Component/Base.cs#L99.
It can be used to create components via ULD files.

Copy link
Collaborator

@wolfcomp wolfcomp left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A bunch of more correct types for things.

public partial AtkResNode* CreateAtkNode(uint type);

[MemberFunction("E8 ?? ?? ?? ?? F6 83 ?? ?? ?? ?? ?? 75 17")]
public partial void SetupFromULDResourceHandle(nint* resourceHandle0, nint* resourceHandle1);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
public partial void SetupFromULDResourceHandle(nint* resourceHandle0, nint* resourceHandle1);
public partial void SetupFromULDResourceHandle(byte* uldResourceOffset0, byte* uldResoruceOffset1);

uldResourceOffset0 has the TPHD and ASHD with loading textures.
uldResourceOffset1 has node information

public partial void SetupFromULDResourceHandle(nint* resourceHandle0, nint* resourceHandle1);

[MemberFunction("40 57 41 56 41 57 48 83 EC 30 45 8B 71 18")]
public partial void SetupTimelineFromULDResourceHandle(nint* memSpace, nint* resourceHandle0, nint* resourceHandle1, ushort timelineNum);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
public partial void SetupTimelineFromULDResourceHandle(nint* memSpace, nint* resourceHandle0, nint* resourceHandle1, ushort timelineNum);
public partial void SetupTimelineFromULDResourceHandle(IMemorySpace* memSpace, byte* uldResourceOffset0, byte* uldResoruceOffset1, ushort timelineNum);

Function is also inlined into SetupFromULDResourceHandle

public partial void SetupTimelineFromULDResourceHandle(nint* memSpace, nint* resourceHandle0, nint* resourceHandle1, ushort timelineNum);

[MemberFunction("E8 ?? ?? ?? ?? 49 8B 86 ?? ?? ?? ?? 48 85 C0 74 21")]
public partial void SetupComponentFromULDResourceHandle(nint* resourceHandle, uint componentId, ushort* timeline, AtkUldAsset* uldAsset, AtkUldPartsList* uldPartList, ushort assetNum, ushort partsNum, AtkResourceRendererManager* renderManager, bool a, bool b);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
public partial void SetupComponentFromULDResourceHandle(nint* resourceHandle, uint componentId, ushort* timeline, AtkUldAsset* uldAsset, AtkUldPartsList* uldPartList, ushort assetNum, ushort partsNum, AtkResourceRendererManager* renderManager, bool a, bool b);
public partial void SetupComponentFromULDResourceHandle(byte* uldResourceOffset, uint componentId, ushort* timeline, AtkUldAsset* uldAsset, AtkUldPartsList* uldPartList, ushort assetNum, ushort partsNum, AtkResourceRendererManager* renderManager, bool unkResourceBool, bool keepHandle);

uldResourceOffset comes from SetupFromULDResourceHandle with its uldResourceOffset0

public partial void SetupComponentFromULDResourceHandle(nint* resourceHandle, uint componentId, ushort* timeline, AtkUldAsset* uldAsset, AtkUldPartsList* uldPartList, ushort assetNum, ushort partsNum, AtkResourceRendererManager* renderManager, bool a, bool b);

[MemberFunction("48 89 6C 24 ?? 48 89 74 24 ?? 41 56 48 83 EC 30 4C 89 49")]
public partial void SetupComponentTimelineFromULDResourceHandle(nint* resourceHandle, uint componetId, AtkTimelineManager* atkTimeLineManager, AtkResNode* node);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
public partial void SetupComponentTimelineFromULDResourceHandle(nint* resourceHandle, uint componetId, AtkTimelineManager* atkTimeLineManager, AtkResNode* node);
public partial void SetupComponentTimelineFromULDResourceHandle(byte* uldResourceOffset, uint componetId, AtkTimelineManager* atkTimeLineManager, AtkResNode* node);

public partial void SetupComponentTimelineFromULDResourceHandle(nint* resourceHandle, uint componetId, AtkTimelineManager* atkTimeLineManager, AtkResNode* node);

[MemberFunction("E8 ?? ?? ?? ?? 0F B7 47 0E")]
public partial void BindTimeline(nint* resourceHandle, AtkUldObjectInfo* objects, byte* nodeData, AtkTimelineManager* atkTimeLineManager);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
public partial void BindTimeline(nint* resourceHandle, AtkUldObjectInfo* objects, byte* nodeData, AtkTimelineManager* atkTimeLineManager);
public partial void BindTimeline(byte* uldResourceOffset, AtkUldObjectInfo* objects, byte* nodeData, AtkTimelineManager* atkTimeLineManager);

public partial void SetupText();

[MemberFunction("E8 ?? ?? ?? ?? 0F B6 8E ?? ?? ?? ?? 48 8B 86")]
public partial void SetupTexture(nint* memSpace,AtkResNode* node, AtkUldPartsList* parts,uint id);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
public partial void SetupTexture(nint* memSpace,AtkResNode* node, AtkUldPartsList* parts,uint id);
public partial void SetupTexture(IMemorySpace* memSpace, AtkResNode* node, AtkUldPartsList** parts, uint id);

public partial int GetNodeCount(AtkResNode* node);

[MemberFunction("E8 ?? ?? ?? ?? E9 ?? ?? ?? ?? 66 83 F8 04")]
public partial void ReadAtkTextNodeData(AtkTextNode* node, byte* nodeData,bool unk);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
public partial void ReadAtkTextNodeData(AtkTextNode* node, byte* nodeData,bool unk);
public static partial void ReadAtkTextNodeData(AtkTextNode* node, byte* nodeData, bool unkResourceBool);

@wolfcomp wolfcomp added the requested changes Changes requested through comments label Jan 4, 2026
@github-actions github-actions bot removed the requested changes Changes requested through comments label Jan 5, 2026
@Loskh
Copy link
Contributor Author

Loskh commented Jan 5, 2026

All feedback has been addressed, and thanks for the suggestions!

@Loskh Loskh requested a review from wolfcomp January 5, 2026 11:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants