mirror of
https://github.com/xivdev/Penumbra.git
synced 2025-12-12 10:17:22 +01:00
Handle some TODOs.
This commit is contained in:
parent
4e788f7c2b
commit
f5f6dd3246
5 changed files with 5 additions and 10 deletions
|
|
@ -63,8 +63,7 @@ public sealed unsafe class LoadTimelineResources : FastHook<LoadTimelineResource
|
||||||
{
|
{
|
||||||
if (timeline != null)
|
if (timeline != null)
|
||||||
{
|
{
|
||||||
// TODO: Clientstructify
|
var idx = timeline->GetOwningGameObjectIndex();
|
||||||
var idx = ((delegate* unmanaged<SchedulerTimeline*, int>**)timeline)[0][29](timeline);
|
|
||||||
if (idx >= 0 && idx < objects.TotalCount)
|
if (idx >= 0 && idx < objects.TotalCount)
|
||||||
{
|
{
|
||||||
var obj = objects[idx];
|
var obj = objects[idx];
|
||||||
|
|
|
||||||
|
|
@ -434,7 +434,7 @@ public sealed unsafe class ShaderReplacementFixer : IDisposable, IRequiredServic
|
||||||
private static MaterialResourceHandle* GetMaterialResourceHandle(ModelRendererStructs.UnkPayload* unkPayload)
|
private static MaterialResourceHandle* GetMaterialResourceHandle(ModelRendererStructs.UnkPayload* unkPayload)
|
||||||
{
|
{
|
||||||
// TODO ClientStructs-ify
|
// TODO ClientStructs-ify
|
||||||
var unkPointer = *(nint*)((nint)unkPayload->ModelResourceHandle + 0xE8) + unkPayload->UnkIndex * 0x24;
|
var unkPointer = unkPayload->ModelResourceHandle.*(nint*)((nint)unkPayload->ModelResourceHandle + 0xE8) + unkPayload->UnkIndex * 0x24;
|
||||||
var materialIndex = *(ushort*)(unkPointer + 8);
|
var materialIndex = *(ushort*)(unkPointer + 8);
|
||||||
var material = unkPayload->Params->Model->Materials[materialIndex];
|
var material = unkPayload->Params->Model->Materials[materialIndex];
|
||||||
if (material == null)
|
if (material == null)
|
||||||
|
|
|
||||||
|
|
@ -242,10 +242,10 @@ public class ResourceTree(
|
||||||
}
|
}
|
||||||
|
|
||||||
private unsafe void AddSkeleton(List<ResourceNode> nodes, ResolveContext context, CharacterBase* model, string prefix = "")
|
private unsafe void AddSkeleton(List<ResourceNode> nodes, ResolveContext context, CharacterBase* model, string prefix = "")
|
||||||
=> AddSkeleton(nodes, context, model->EID, model->Skeleton, model->BonePhysicsModule, *(void**)((nint)model + 0x160), prefix);
|
=> AddSkeleton(nodes, context, model->EID, model->Skeleton, model->BonePhysicsModule, model->BoneKineDriverModule, prefix);
|
||||||
|
|
||||||
private unsafe void AddSkeleton(List<ResourceNode> nodes, ResolveContext context, void* eid, Skeleton* skeleton, BonePhysicsModule* physics,
|
private unsafe void AddSkeleton(List<ResourceNode> nodes, ResolveContext context, void* eid, Skeleton* skeleton, BonePhysicsModule* physics,
|
||||||
void* kineDriver, string prefix = "")
|
BoneKineDriverModule* kineDriver, string prefix = "")
|
||||||
{
|
{
|
||||||
var eidNode = context.CreateNodeFromEid((ResourceHandle*)eid);
|
var eidNode = context.CreateNodeFromEid((ResourceHandle*)eid);
|
||||||
if (eidNode != null)
|
if (eidNode != null)
|
||||||
|
|
|
||||||
|
|
@ -66,11 +66,8 @@ internal static class StructExtensions
|
||||||
|
|
||||||
public static unsafe CiByteString ResolveKdbPathAsByteString(ref this CharacterBase character, uint partialSkeletonIndex)
|
public static unsafe CiByteString ResolveKdbPathAsByteString(ref this CharacterBase character, uint partialSkeletonIndex)
|
||||||
{
|
{
|
||||||
// TODO ClientStructs-ify (aers/FFXIVClientStructs#1561)
|
|
||||||
var vf80 = (delegate* unmanaged<CharacterBase*, byte*, nuint, uint, byte*>)((nint*)character.VirtualTable)[80];
|
|
||||||
var pathBuffer = stackalloc byte[CharacterBase.PathBufferSize];
|
var pathBuffer = stackalloc byte[CharacterBase.PathBufferSize];
|
||||||
return ToOwnedByteString(vf80((CharacterBase*)Unsafe.AsPointer(ref character), pathBuffer, CharacterBase.PathBufferSize,
|
return ToOwnedByteString(character.ResolveKdbPath(pathBuffer, CharacterBase.PathBufferSize, partialSkeletonIndex));
|
||||||
partialSkeletonIndex));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static unsafe CiByteString ToOwnedByteString(CStringPointer str)
|
private static unsafe CiByteString ToOwnedByteString(CStringPointer str)
|
||||||
|
|
|
||||||
|
|
@ -372,7 +372,6 @@ public class ModMerger : IDisposable, IService
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// TODO DataContainer <> Option.
|
|
||||||
var (group, _, _) = _editor.FindOrAddModGroup(result, originalGroup.Type, originalGroup.Name);
|
var (group, _, _) = _editor.FindOrAddModGroup(result, originalGroup.Type, originalGroup.Name);
|
||||||
var (option, _, _) = _editor.FindOrAddOption(group!, originalOption.GetName());
|
var (option, _, _) = _editor.FindOrAddOption(group!, originalOption.GetName());
|
||||||
var folder = Path.Combine(dir.FullName, group!.Name, option!.Name);
|
var folder = Path.Combine(dir.FullName, group!.Name, option!.Name);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue