The nav trace was measuring the wrong five seconds

It sampled the first five sweeps, which run while the mission is still
coming up and nothing has registered with the renderer yet. So it reported
"0 static, 0 moving" on a POD, whose map demonstrably works - and I took
that reading at face value and concluded the map was broken for everyone.
It was the instrument, not the game.

Now sampled on a clock like the ranking trace, every five seconds, and the
bounds line repeats too so the centre can be seen tracking. The real
baseline from a pod race:

  CamLog: nav in bounds - 0 static, 0 moving      (first sample, loading)
  CamLog: nav in bounds - 44 static, 1 moving     (running, and stays)

44 static is the track, 1 moving is the player, and the centre walks with
the vehicle. That is what a working nav display looks like, so a camera
station can now be compared against something real rather than against a
startup artefact.

Found by putting the pod's map on screen next to its own trace, which is
what should have happened before the first conclusion.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Cyd
2026-08-10 17:43:07 -05:00
co-authored by Claude Opus 5
parent 04f72d4e3f
commit 2adbeba6c4
+18 -10
View File
@@ -1648,17 +1648,17 @@ void
Test_Tell("z= " << zMin << "..." << zMax << "\n");
//
// RP412CAMLOG. Once, not per sweep - this runs at the gauge rate and
// would drown the log. Says whether the nav display has a sane centre
// and scale at all, which is the first question when the map comes up
// empty on a camera station.
// RP412CAMLOG, on a clock rather than every sweep - this runs at the
// gauge rate and would drown the log. Says whether the nav display has
// a sane centre and scale, and repeats so the centre can be seen
// tracking (or not tracking) as the camera moves.
//
if (RPCameraLog())
{
static int said = 0;
if (!said)
static Scalar next_bounds_say = 0.0f;
if ((Scalar) Now() >= next_bounds_say)
{
said = 1;
next_bounds_say = ((Scalar) Now()) + 5.0f;
DEBUG_STREAM << "CamLog: nav scale " << currentScale
<< "m across, " << pixelsPerMeter << " px/m, centre "
<< viewing_position.x << "," << viewing_position.z
@@ -1703,12 +1703,20 @@ void
// drawing steps are not being reached. Reported for the first few
// sweeps only - the lists are rebuilt at the gauge rate.
//
//
// Sampled on a clock, NOT for the first N sweeps. The first sweeps run
// while the mission is still coming up and nothing has registered
// with the renderer yet, so they report zero on a station whose map
// then works perfectly - which is exactly the false reading this trace
// gave the first time it was written.
//
if (RPCameraLog())
{
static int sweeps = 0;
if (sweeps < 5)
static Scalar next_nav_say = 0.0f;
if ((Scalar) Now() >= next_nav_say)
{
++sweeps;
next_nav_say = ((Scalar) Now()) + 5.0f;
ChainIteratorOf<Entity*> statics(staticEntityList.GetInstanceList());
ChainIteratorOf<Entity*> movers(movingEntityList.GetInstanceList());
DEBUG_STREAM << "CamLog: nav in bounds - " << statics.GetSize()