25#include <entt/entt.hpp>
26#include <glm/vec3.hpp>
62 return static_cast<PhaseFlag>(
static_cast<uint32_t
>(a) |
static_cast<uint32_t
>(b));
71 return static_cast<uint32_t
>(a) != 0u;
103void recordFrame(const PlayerFrame& frame) noexcept;
109void annotate(entt::entity entity, std::string_view label) noexcept;
Definition DeterminismHash.cpp:16
PhaseFlag
Bitfield flags attached to each logged row — auto-detected.
Definition PhaseDiagnostic.hpp:34
@ DepenCancelled
Depen found overlaps but the aggregated push direction cancelled out (rare; either trapped between mi...
Definition PhaseDiagnostic.hpp:47
@ LedgeGrabbing
Definition PhaseDiagnostic.hpp:40
@ DeepPenetration
Depen had to push the player by >20 u in one tick — the player was deep inside geometry before depen.
Definition PhaseDiagnostic.hpp:50
@ SuspectedPhase
Actual per-tick position delta exceeded velocity * dt by > 2× + 5 u — the player likely tunnelled thr...
Definition PhaseDiagnostic.hpp:57
@ DoubleJumped
Definition PhaseDiagnostic.hpp:42
@ BumpExhausted
The bump loop consumed all 4 iterations and still had remainingTime > 0 — the player was grinding aga...
Definition PhaseDiagnostic.hpp:54
@ GrappleActive
Definition PhaseDiagnostic.hpp:41
@ None
Definition PhaseDiagnostic.hpp:35
@ Grounded
Definition PhaseDiagnostic.hpp:36
@ Climbing
Definition PhaseDiagnostic.hpp:39
@ WallRunning
Definition PhaseDiagnostic.hpp:37
@ GravityFlipped
Definition PhaseDiagnostic.hpp:43
@ Sliding
Definition PhaseDiagnostic.hpp:38
PhaseFlag operator|(PhaseFlag a, PhaseFlag b) noexcept
Definition PhaseDiagnostic.hpp:60
void recordDepenContact(const DepenContact &c) noexcept
Append one depen-contact row to its own CSV log (depen-trace-<timestamp>.csv in the working dir).
Definition PhaseDiagnostic.cpp:232
void consumeAnnotation(entt::entity entity, char(&out)[48]) noexcept
Drain any queued annotation for entity into out, then clear it.
Definition PhaseDiagnostic.cpp:140
PhaseFlag & operator|=(PhaseFlag &a, PhaseFlag b) noexcept
Definition PhaseDiagnostic.hpp:64
void annotate(entt::entity entity, std::string_view label) noexcept
Attach a text annotation to the NEXT frame recorded for the given entity.
Definition PhaseDiagnostic.cpp:132
bool isEnabled() noexcept
Definition PhaseDiagnostic.cpp:127
void setEnabled(bool on) noexcept
Enable / disable telemetry.
Definition PhaseDiagnostic.cpp:122
bool any(PhaseFlag a) noexcept
Definition PhaseDiagnostic.hpp:69
void recordFrame(const PlayerFrame &f) noexcept
Append a player's per-tick frame to the open CSV log.
Definition PhaseDiagnostic.cpp:155
One row of telemetry — captured per player per tick.
Definition PhaseDiagnostic.hpp:77
glm::vec3 posAfter
Final position, after bump loop + slope snap.
Definition PhaseDiagnostic.hpp:82
glm::vec3 velBefore
Velocity at tick start (already integrated by movement).
Definition PhaseDiagnostic.hpp:83
int bumpHits
Number of bump iterations that hit something.
Definition PhaseDiagnostic.hpp:87
int moveMode
MoveMode enum cast to int.
Definition PhaseDiagnostic.hpp:88
glm::vec3 posBefore
Position at tick start, BEFORE depen.
Definition PhaseDiagnostic.hpp:80
char note[48]
Free-form annotation slot (e.g., "wallrun-enter").
Definition PhaseDiagnostic.hpp:92
PhaseFlag flags
Definition PhaseDiagnostic.hpp:91
glm::vec3 velAfter
Velocity at tick end.
Definition PhaseDiagnostic.hpp:84
glm::vec3 posAfterDepen
After depen, BEFORE bump loop.
Definition PhaseDiagnostic.hpp:81
uint64_t tick
Definition PhaseDiagnostic.hpp:78
int jumpCount
Definition PhaseDiagnostic.hpp:90
glm::vec3 lastHitNormal
Normal of the last sweep hit in the bump loop (or 0).
Definition PhaseDiagnostic.hpp:85
float depenPushDistance
|posAfterDepen - posBefore|.
Definition PhaseDiagnostic.hpp:86
entt::entity entity
Definition PhaseDiagnostic.hpp:79
int wallrunSide
WallSide enum (None=0, Left=1, Right=2).
Definition PhaseDiagnostic.hpp:89