feat(render) Campaign FW1: port the exact retail degrade selection
UpdateViewerDistance @0x0050e030 + get_degrade @0x0051e4b0 ported with live-pinned globals: distance measured to the part SCALED SORT CENTER, effective = max(0, dist - s_rDegradeDistance [live 100]), level = first with effective < IdealDist (the live auto_update_deg_mul<=0 arm), else the last level. WalkBuildingDegradeLevel carries the full authored bands; the adapter fills sort centers; the replay context measures to the transformed sort center. Sweep state after the rule: the level-0 building set is now correct; the residual divergence is the per-portal side/clip gate (my arms punch a near-complement of retail two) - the sweep driver carries the next instrument in its Skip note. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
844a6c097d
commit
e23a589a6b
4 changed files with 41 additions and 17 deletions
|
|
@ -24,12 +24,14 @@ public sealed class WalkLookInGateSweepTests
|
|||
public void Emit(in WalkEvent walkEvent) => Events.Add(walkEvent);
|
||||
}
|
||||
|
||||
[Fact(Skip = "FW1 adjudication driver (2026-08-30 state): the degrade-level "
|
||||
+ "BSP gate killed every wrong punch — remaining deltas are the near "
|
||||
+ "buildings 001a/0022 (50/28 m center distance vs the 48 m level-0 "
|
||||
+ "band: port UpdateViewerDistance's sphere-adjusted distance + "
|
||||
+ "hysteresis) and the ring-1 frustum boundary pair "
|
||||
+ "(aab50002 extra / a9b3003c missing). Re-enable to re-adjudicate.")]
|
||||
[Fact(Skip = "FW1 adjudication driver (2026-08-30 final state): with the "
|
||||
+ "exact get_degrade rule (slack 100, ideal thresholds, sort-center "
|
||||
+ "distance) the level-0 set is correct — the residual divergence is "
|
||||
+ "the per-portal side/clip gate: my arms punch {0017,001e,0026,0036}, "
|
||||
+ "retail punched exactly {001a,0022} — a near-complement suggesting "
|
||||
+ "one more polarity at the building-portal gate. Next instrument: "
|
||||
+ "per-portal dump for 001a (retail punches) vs 001e (retail doesn't): "
|
||||
+ "side values, plane orientation, eye side, clip result per arm.")]
|
||||
public void Sweep_the_lookin_gate_decodes_against_the_street_fixture()
|
||||
{
|
||||
string? datDir = CornerFloodReplayTests.ResolveDatDir();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue