diff options
| author | 2026-09-21 14:10:55 -0400 | |
|---|---|---|
| committer | 2026-09-21 14:10:55 -0400 | |
| commit | efe79b34954a393346f853c5bb77756286fcccae (patch) | |
| tree | 9a5015c17495d5ee9029eeade0f234ac46bd1342 /Player.cs | |
| parent | 1b71d0d64832f182e06ac71a2163b7a5dea4bbfd (diff) | |
| download | NewCamera-efe79b34954a393346f853c5bb77756286fcccae.tar.gz NewCamera-efe79b34954a393346f853c5bb77756286fcccae.tar.bz2 NewCamera-efe79b34954a393346f853c5bb77756286fcccae.zip | |
Cleanup debugLog/frameTick
Signed-off-by: Andrew Opalach <andrew@akon.city>
Diffstat (limited to 'Player.cs')
| -rw-r--r-- | Player.cs | 82 |
1 files changed, 53 insertions, 29 deletions
@@ -145,6 +145,7 @@ namespace NewCamera private static nint[] playerArmor = new nint[10]; private static nint[] playerJoints = new nint[0xFF]; + private static int lastArmorRefresh = -1; private delegate void UpdateJoints(nint obj); private static Hook<UpdateJoints>? updateJointRotationHook; @@ -481,9 +482,7 @@ namespace NewCamera private static void CollisionCheckHook(nint unknownPtr, nint unknownPtr2) { -#if HOOK_ORDER_ASSERTS - debugLog($"CollisionCheckHook(0x{unknownPtr:X}, 0x{unknownPtr2:X}) @ {frameTick}"); -#endif + debugLog($"CollisionCheckHook(0x{unknownPtr:X}, 0x{unknownPtr2:X}) @ {updateTick}"); Player? player = null; if (enableCrawl && (player = getPlayer()) != null) @@ -510,9 +509,7 @@ namespace NewCamera private static void SetZoneStateHook(nint player, int flags) { -#if HOOK_ORDER_ASSERTS - debugLog($"SetZoneStateHook(0x{player:X}, 0x{flags:X}) @ {frameTick}"); -#endif + debugLog($"SetZoneStateHook(0x{player:X}, 0x{flags:X}) @ {updateTick}"); #if QUARANTINED_FEATURES nint zoneStateAddr = MemoryUtil.Read<nint>(0x1451C42B8); @@ -556,9 +553,7 @@ namespace NewCamera private static void RefreshEntityParamsHook(nint entity, nint unknownPtr2) { -#if HOOK_ORDER_ASSERTS - debugLog($"RefreshEntityParamsHook(0x{entity:X}, 0x{unknownPtr2:X}) @ {frameTick}"); -#endif + debugLog($"RefreshEntityParamsHook(0x{entity:X}, 0x{unknownPtr2:X}) @ {updateTick}"); refreshEntityParamsHook!.Original(entity, unknownPtr2); @@ -1550,22 +1545,22 @@ namespace NewCamera { dropJointOffsets(); } - } - - private static bool usingArmorState() - { - return (bodyRotations.Count > 0 || bodyOffsets.Count > 0 || faceRotations.Count > 0 || faceOffsets.Count > 0) || - (enableFreeCamera && orbitPlayer && orbitJoint >= 0); + lastArmorRefresh = updateTick; } private static void UpdateJointRotationHook(nint model) { -#if HOOK_ORDER_ASSERTS - debugLog($"UpdateJointRotationHook(0x{model:X}) @ {frameTick}"); -#endif - if (usingArmorState()) + debugLog($"UpdateJointRotationHook(0x{model:X}) @ {updateTick}"); + + Player? player = null; + bool updateBody = bodyRotations.Count() > 0 || (enableFreeCamera && orbitPlayer && orbitJoint >= 0); + if (updateBody || faceRotations.Count() > 0) + { + player = getPlayerWithFallback(); + } + + if (updateBody) { - Player? player = getPlayerWithFallback(); if (player != null && model == player.Instance) { refreshArmorState(player); @@ -1581,9 +1576,20 @@ namespace NewCamera } */ } - else if (player != null && model == playerArmor[Armor.Face]) + } + + if (faceRotations.Count() > 0) + { + if (player != null && model == playerArmor[Armor.Face]) { - refreshArmorState(player); + if (!updateBody) + { + refreshArmorState(player); + } + else + { + Assert(lastArmorRefresh == updateTick); + } foreach ((nint addr, List<Vector3> rotations) in faceRotations) { MemoryUtil.GetRef<Quaternion>(addr + 0x70) *= Quaternion.CreateFromYawPitchRoll(rotations[0].X, rotations[0].Y, rotations[0].Z); @@ -1591,18 +1597,25 @@ namespace NewCamera } } + updateJointRotationHook!.Original(model); } private static void UpdateJointPositionHook(nint model) { -#if HOOK_ORDER_ASSERTS - debugLog($"UpdateJointPositionHook(0x{model:X}) @ {frameTick}"); -#endif + debugLog($"UpdateJointPositionHook(0x{model:X}) @ {updateTick}"); + updateJointPositionHook!.Original(model); - if (usingArmorState()) + + Player? player = null; + bool updateBody = bodyOffsets.Count() > 0; + if (updateBody || faceOffsets.Count() > 0) + { + player = getPlayerWithFallback(); + } + + if (updateBody) { - Player? player = getPlayerWithFallback(); if (player != null && model == player.Instance) { refreshArmorState(player); @@ -1611,9 +1624,20 @@ namespace NewCamera MemoryUtil.GetRef<Vector3>(addr + 0x50) += offsets[0]; } } - else if (player != null && model == playerArmor[Armor.Face]) + } + + if (faceOffsets.Count() > 0) + { + if (player != null && model == playerArmor[Armor.Face]) { - refreshArmorState(player); + if (!updateBody) + { + refreshArmorState(player); + } + else + { + Assert(lastArmorRefresh == updateTick); + } foreach ((nint addr, List<Vector3> offsets) in faceOffsets) { MemoryUtil.GetRef<Vector3>(addr + 0x50) += offsets[0]; |