#108 forensics block (pre-717): ghost detector + IDs + field envs
The night-11 instrumentation that makes the next ghost/K-D report diagnosable instead of anecdotal: - UNGATED [ghost] stale-replicant detector: ReadUpdateRecord stamps every applied record; the death-handler tick logs ONE line per starvation episode (>600 frames, unburied) with entity id + mode + last position, plus a GHOST matchlog record. Verified both ways: zero false positives on a healthy 2-node session; fires on both nodes at frame 601 after a mid-session relay kill. - Entity IDs on the render forensics (MakeMechRenderables / RemakeEntity / wreck-swap fallbacks) and the replicant un-wreck line un-gated -- ghost triage no longer needs players to set envs. - players/*.bat (steam + both joins): BT_MATCHLOG/BT_SCORE_LOG/BT_DEATH_LOG on for every field session. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
c38377a6d2
commit
81dda84e9b
@@ -401,7 +401,8 @@ HierarchicalDrawComponent*
|
||||
// bring-up diagnostics (counts geometry actually loaded vs. requested)
|
||||
int dbg_obj_requested = 0, dbg_obj_loaded = 0, dbg_eye = 0;
|
||||
DEBUG_STREAM << "[BTrender] MakeMechRenderables: " << segment_count
|
||||
<< " segments, view=" << (int)type << "\n" << std::flush;
|
||||
<< " segments, view=" << (int)type
|
||||
<< " entity=" << entity->GetEntityID() << "\n" << std::flush;
|
||||
|
||||
JointSubsystem *joint_subsystem = jointed_mover->GetJointSubsystem(); // [0x31c]
|
||||
|
||||
@@ -884,7 +885,8 @@ void
|
||||
if (swapped != 0 || getenv("BT_DEATH_LOG"))
|
||||
DEBUG_STREAM << "[BTrender] RemakeEntity: " << swapped
|
||||
<< " mesh(es) swapped (" << mapped << " body segs mapped of "
|
||||
<< checked << " checked)\n" << std::flush;
|
||||
<< checked << " checked) entity="
|
||||
<< entity->GetEntityID() << "\n" << std::flush;
|
||||
}
|
||||
|
||||
|
||||
@@ -1171,13 +1173,15 @@ void
|
||||
if (hulk != NULL && hulk->GetVertCount() == 0)
|
||||
{
|
||||
DEBUG_STREAM << "[BTrender] wreck: '" << hulk_name
|
||||
<< "' is an EMPTY placeholder -> gendbr.bgf fallback\n" << std::flush;
|
||||
<< "' is an EMPTY placeholder -> gendbr.bgf fallback (entity="
|
||||
<< victim->GetEntityID() << ")\n" << std::flush;
|
||||
hulk = NULL;
|
||||
}
|
||||
if (hulk == NULL)
|
||||
{
|
||||
DEBUG_STREAM << "[BTrender] wreck: '" << hulk_name
|
||||
<< "' missing -> gendbr.bgf fallback\n" << std::flush;
|
||||
<< "' missing -> gendbr.bgf fallback (entity="
|
||||
<< victim->GetEntityID() << ")\n" << std::flush;
|
||||
hulk = d3d_OBJECT::LoadObject(GetDevice(), "gendbr.bgf");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user