diff options
| author | 2026-09-21 14:10:55 -0400 | |
|---|---|---|
| committer | 2026-09-21 14:10:55 -0400 | |
| commit | efe79b34954a393346f853c5bb77756286fcccae (patch) | |
| tree | 9a5015c17495d5ee9029eeade0f234ac46bd1342 | |
| 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>
| -rw-r--r-- | Player.cs | 82 | ||||
| -rwxr-xr-x | Plugin.cs | 56 |
2 files changed, 75 insertions, 63 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]; @@ -391,16 +391,15 @@ namespace NewCamera private string typedPositionName = "";
private string selectedPositionName = "";
+ public static int updateTick = 0;
+
#if HOOK_ORDER_ASSERTS
private int hookOrder = 0;
- private int frameTick = 0;
#endif
- private void debugLog(string message)
+ public static void debugLog(string message)
{
#if LOG_DEBUG_MESSAGES
- Log.Info(message);
-#else
Log.Debug(message);
#endif
}
@@ -790,12 +789,14 @@ namespace NewCamera public void OnUpdate(float deltaTime)
{
+ if (updateTick == int.MaxValue) updateTick = 0;
+ else updateTick++;
+
+ debugLog($"OnUpdate() @ {updateTick}");
+
#if HOOK_ORDER_ASSERTS
Assert(hookOrder == 0 || hookOrder == 4);
hookOrder = 0;
- if (frameTick == int.MaxValue) frameTick = 0;
- else frameTick++;
- debugLog($"OnUpdate() @ {frameTick}");
#endif
#if MOUSE_AND_KEYBOARD_LAYER
@@ -1419,8 +1420,9 @@ namespace NewCamera private void SetCameraHook(nint cameraPointer)
{
+ debugLog($"SetCameraHook(0x{cameraPointer:X}) @ {updateTick}");
+
#if HOOK_ORDER_ASSERTS
- debugLog($"SetCameraHook(0x{cameraPointer:X}) @ {frameTick}");
Assert(hookOrder == 0);
hookOrder = 1;
#endif
@@ -1462,8 +1464,9 @@ namespace NewCamera // If camera.Move = false, this hook won't run.
private void CalculateCameraHook(nint cameraPointer)
{
+ debugLog($"CalculateCameraHook(0x{cameraPointer:X}) @ {updateTick}");
+
#if HOOK_ORDER_ASSERTS
- debugLog($"CalculateCameraHook(0x{cameraPointer:X}) @ {frameTick}");
Assert(hookOrder == 2);
hookOrder = 3;
#endif
@@ -1538,8 +1541,9 @@ namespace NewCamera private void CheckCameraHook(nint cameraPointer)
{
+ debugLog($"CheckCameraHook(0x{cameraPointer:X}) @ {updateTick}");
+
#if HOOK_ORDER_ASSERTS
- debugLog($"CheckCameraHook(0x{cameraPointer:X}) @ {frameTick}");
Assert(hookOrder == 1);
hookOrder = 2;
#endif
@@ -1565,9 +1569,7 @@ namespace NewCamera private void StartViewModeHook(nint viewModeObject)
{
-#if HOOK_ORDER_ASSERTS
- debugLog($"StartViewMode(0x{viewModeObject:X}) @ {frameTick}");
-#endif
+ debugLog($"StartViewMode(0x{viewModeObject:X}) @ {updateTick}");
if (overrideViewMode && vCamera != null)
{
@@ -1578,10 +1580,8 @@ namespace NewCamera private void SetCameraTentHook(nint unknownPtr)
{
-#if HOOK_ORDER_ASSERTS
// The order of this hook between SetCameraHook() and CalculateCameraHook() is inconsistent.
- debugLog($"SetCameraTentHook(0x{unknownPtr:X}) @ {frameTick}");
-#endif
+ debugLog($"SetCameraTentHook(0x{unknownPtr:X}) @ {updateTick}");
if (freeCamera && vCamera != null)
{
@@ -1603,9 +1603,7 @@ namespace NewCamera private void SetCameraCutsceneHook(nint unknownPtr)
{
-#if HOOK_ORDER_ASSERTS
- debugLog($"SetCameraCutsceneHook(0x{unknownPtr:X}) @ {frameTick}");
-#endif
+ debugLog($"SetCameraCutsceneHook(0x{unknownPtr:X}) @ {updateTick}");
setCameraCutsceneHook!.Original(unknownPtr);
@@ -1667,9 +1665,7 @@ namespace NewCamera // This can undoubtedly be simplified.
private void WritePadInputHook(nint unknownPtr, nint unknownPtr2, nint unknownPtr3)
{
-#if HOOK_ORDER_ASSERTS
- debugLog($"WritePadInputHook(0x{unknownPtr:X}, 0x{unknownPtr2:X}, 0x{unknownPtr3:X}) @ {frameTick}");
-#endif
+ debugLog($"WritePadInputHook(0x{unknownPtr:X}, 0x{unknownPtr2:X}, 0x{unknownPtr3:X}) @ {updateTick}");
// Assume the primary pad always comes first.
if (primaryPad == 0x0) primaryPad = unknownPtr2;
@@ -1973,9 +1969,7 @@ namespace NewCamera private float CheckMovementHook(int stickValue, float alwaysZero)
{
-#if HOOK_ORDER_ASSERTS
- debugLog($"CheckMovementHook({stickValue:X}, {alwaysZero}) @ {frameTick}");
-#endif
+ debugLog($"CheckMovementHook({stickValue:X}, {alwaysZero}) @ {updateTick}");
if (freeCamera)
{
@@ -1998,9 +1992,7 @@ namespace NewCamera private void UnderwaterCheckHook(nint unknownPtr)
{
-#if HOOK_ORDER_ASSERTS
- debugLog($"UnderwaterCheckHook(0x{unknownPtr:X}) @ {frameTick}");
-#endif
+ debugLog($"UnderwaterCheckHook(0x{unknownPtr:X}) @ {updateTick}");
underwaterCheckHook!.Original(unknownPtr);
@@ -2012,9 +2004,7 @@ namespace NewCamera private void CameraEffectHook(nint unknownPtr, nint unknownPtr2, nint unknownPtr3)
{
-#if HOOK_ORDER_ASSERTS
- debugLog($"CameraEffectHook(0x{unknownPtr:X}, 0x{unknownPtr2:X}, 0x{unknownPtr3:X}) @ {frameTick}");
-#endif
+ debugLog($"CameraEffectHook(0x{unknownPtr:X}, 0x{unknownPtr2:X}, 0x{unknownPtr3:X}) @ {updateTick}");
if (!enableUnderwaterCamera)
{
@@ -2405,9 +2395,7 @@ namespace NewCamera public void OnImGuiRender()
{
-#if HOOK_ORDER_ASSERTS
- debugLog($"OnImGuiRender() @ {frameTick}");
-#endif
+ debugLog($"OnImGuiRender() @ {updateTick}");
float width = ImGui.GetWindowWidth();
width /= width / 600.0f;
|