From a3017d55a521afd193c8ab1ee31f9804c44a0940 Mon Sep 17 00:00:00 2001 From: Andrew Opalach Date: Wed, 20 May 2026 09:51:49 -0400 Subject: Document some stuff Signed-off-by: Andrew Opalach --- Plugin.cs | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) (limited to 'Plugin.cs') diff --git a/Plugin.cs b/Plugin.cs index 13a5161..7de7a7c 100755 --- a/Plugin.cs +++ b/Plugin.cs @@ -48,6 +48,8 @@ using WorldTuningTool; // - Open Poses Menu // @TODO: +// - Collect armor parts logic. +// - Map joints to parts. // - pCamera refactor. // - Structured tuning tool interop. // - Attempt to document all test cases I can think of. @@ -354,6 +356,7 @@ namespace NewCamera nint rcx = MemoryUtil.Read(0x145013950); if (saveSlotIndex >= 0) { + // MonsterHunterWorld.exe+ADC442 - imul rdx,rcx,0026CC00 nint rax = saveSlotIndex * 0x26CC00; rax += MemoryUtil.Read(rcx + 0xA8); return rax; @@ -913,14 +916,19 @@ namespace NewCamera saveSlotIndex = -1; return null; } + // MonsterHunterWorld.exe+ADC42F - movsxd rcx,dword ptr [rax+00000334] saveSlotIndex = MemoryUtil.Read(guiAddr + 0x334); + if (saveSlotIndex == -1) + { + return null; + } + // MonsterHunterWorld.exe+1B42047 - add r8,00000740 nint offset = (sPlayer.Instance + 0x40) + (0x740 * saveSlotIndex); - nint playerAddr = MemoryUtil.Read(offset); - if (playerAddr != 0x1433FE588) + if (offset == 0x0 || MemoryUtil.Read(offset) != 0x1433FE588) { return null; } - playerAddr = MemoryUtil.Read(offset + 0x18); + nint playerAddr = MemoryUtil.Read(offset + 0x18); if (playerAddr == 0x0) { return null; @@ -2947,7 +2955,7 @@ namespace NewCamera chestBone1 = 0x0; chestBone2 = 0x0; } - ImGui.Text($"{partName} ({fullString} @ {addr:X}):"); + ImGui.Text($"{partName} ({baseAddr:X}, {fullString} @ {addr:X}):"); int parts = MemoryUtil.Read(addr + 0x54C); nint baseInner = MemoryUtil.Read(addr + 0xC8); nint offset = MemoryUtil.Read(addr + 0x408); @@ -3162,14 +3170,22 @@ namespace NewCamera nint childAddr = MemoryUtil.Read(next + 0x548); if (childAddr != 0x0) { - nint childVtable = MemoryUtil.Read(childAddr); - if (childVtable == 0x143451520) + if (childAddr == player.Instance) + { + // Owned by + } + if (MemoryUtil.Read(childAddr) == 0x143451520) { partAddr = MemoryUtil.Read(childAddr + 0x2A0); if (partAddr != 0x0) { drawArmorParts(childAddr, partAddr); } + childAddr = MemoryUtil.Read(childAddr + 0x998); + if (childAddr == player.Instance) + { + // Owned by + } } } } -- cgit v1.2.3-101-g0448