summaryrefslogtreecommitdiff
path: root/Plugin.cs
diff options
context:
space:
mode:
authorAndrew Opalach <andrew@akon.city> 2026-05-20 09:51:49 -0400
committerAndrew Opalach <andrew@akon.city> 2026-05-20 09:51:49 -0400
commita3017d55a521afd193c8ab1ee31f9804c44a0940 (patch)
tree557cfd1292ce6446057d9a67b05eb619708309b8 /Plugin.cs
parentab4637241f0ae3d219643f256c5cdfd98c5c189d (diff)
downloadNewCamera-a3017d55a521afd193c8ab1ee31f9804c44a0940.tar.gz
NewCamera-a3017d55a521afd193c8ab1ee31f9804c44a0940.tar.bz2
NewCamera-a3017d55a521afd193c8ab1ee31f9804c44a0940.zip
Document some stuff
Signed-off-by: Andrew Opalach <andrew@akon.city>
Diffstat (limited to 'Plugin.cs')
-rwxr-xr-xPlugin.cs28
1 files changed, 22 insertions, 6 deletions
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<nint>(0x145013950);
if (saveSlotIndex >= 0)
{
+ // MonsterHunterWorld.exe+ADC442 - imul rdx,rcx,0026CC00
nint rax = saveSlotIndex * 0x26CC00;
rax += MemoryUtil.Read<nint>(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<int>(guiAddr + 0x334);
+ if (saveSlotIndex == -1)
+ {
+ return null;
+ }
+ // MonsterHunterWorld.exe+1B42047 - add r8,00000740
nint offset = (sPlayer.Instance + 0x40) + (0x740 * saveSlotIndex);
- nint playerAddr = MemoryUtil.Read<nint>(offset);
- if (playerAddr != 0x1433FE588)
+ if (offset == 0x0 || MemoryUtil.Read<nint>(offset) != 0x1433FE588)
{
return null;
}
- playerAddr = MemoryUtil.Read<nint>(offset + 0x18);
+ nint playerAddr = MemoryUtil.Read<nint>(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<int>(addr + 0x54C);
nint baseInner = MemoryUtil.Read<nint>(addr + 0xC8);
nint offset = MemoryUtil.Read<nint>(addr + 0x408);
@@ -3162,14 +3170,22 @@ namespace NewCamera
nint childAddr = MemoryUtil.Read<nint>(next + 0x548);
if (childAddr != 0x0)
{
- nint childVtable = MemoryUtil.Read<nint>(childAddr);
- if (childVtable == 0x143451520)
+ if (childAddr == player.Instance)
+ {
+ // Owned by
+ }
+ if (MemoryUtil.Read<nint>(childAddr) == 0x143451520)
{
partAddr = MemoryUtil.Read<nint>(childAddr + 0x2A0);
if (partAddr != 0x0)
{
drawArmorParts(childAddr, partAddr);
}
+ childAddr = MemoryUtil.Read<nint>(childAddr + 0x998);
+ if (childAddr == player.Instance)
+ {
+ // Owned by
+ }
}
}
}