fix #434: delete the unreachable DebugPanel/DebugVM surface and the comments that advertised it
DebugPanel and DebugVM have not been constructible since Campaign V slice
V11 removed the ImGui frontend that hosted them: nothing in src/ ever
called their constructors, only a test did. Two consequences, both fixed
here — 35 environment reads inside them were unreachable, and roughly forty
XML doc comments across the diagnostics owners promised a runtime checkbox
that no longer exists. A flag documented as runtime-toggleable when it is
startup-only sends the next investigation down a path that cannot work.
Deleted DebugPanel.cs (340 lines), DebugVM.cs (548) and DebugVMTests.cs
(327). Corrected the surviving claims in PhysicsDiagnostics,
RenderingDiagnostics, CameraDiagnostics, PhysicsEngine and GameWindow to say
what is actually true: these flags are set from the environment at startup
or by direct assignment.
The one real dependant was CombatFeedbackSlot, whose binding target was
DebugVM. It now takes a plain Action<string>, which removes the dependency
without changing behavior — and makes visible that there is no behavior:
nothing binds the slot, so the combat refusals it carries ("No monster
target", "Enter melee or missile combat first") have been discarded all
along. Filed as #436 and pinned by a test, rather than papered over with an
invented chat message; the retail text and channel need the oracle first.
Deliberately untouched: F1's AcdreamToggleDebugPanel binding, which
GameplayInputCommandController consumes as a documented no-op so the key
does not fall through to a lower input scope; and the
DebugVmRenderFactsPublisher / DevToolsRuntimeSources chain, which is still
wired into production composition and deserves its own dead-code pass
instead of being pulled into this one.
Full hermetic suite 15,333 passed / 0 failed.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
e77dd7c413
commit
05bfe8d162
11 changed files with 129 additions and 1294 deletions
|
|
@ -6,10 +6,12 @@ namespace AcDream.Core.Physics;
|
|||
|
||||
/// <summary>
|
||||
/// L.2a slice 1 (2026-05-12) — runtime-toggleable physics probe flags.
|
||||
/// Initialized from env vars at process start; flippable at runtime via
|
||||
/// the DebugPanel mirror (or by direct assignment). Log call sites read
|
||||
/// these statics so a checkbox toggle takes effect on the next resolve
|
||||
/// without relaunching.
|
||||
/// Initialized from env vars at process start; flippable at runtime by
|
||||
/// direct assignment. Log call sites read these statics so a change takes
|
||||
/// effect on the next resolve without relaunching. (#434: these flags used
|
||||
/// to have a DebugPanel checkbox mirror. That panel has been unreachable
|
||||
/// since Campaign V slice V11 removed its ImGui host, so every flag here is
|
||||
/// startup-or-assignment only.)
|
||||
///
|
||||
/// <para>
|
||||
/// L.2d slice 1 (2026-05-13) adds <see cref="ProbeBuildingEnabled"/> +
|
||||
|
|
@ -157,7 +159,7 @@ public static class PhysicsDiagnostics
|
|||
///
|
||||
/// <para>
|
||||
/// Initial state from <c>ACDREAM_PROBE_BUILDING=1</c>. Mirrorable
|
||||
/// via <c>DebugVM.ProbeBuilding</c> when <c>ACDREAM_DEVTOOLS=1</c>.
|
||||
/// by direct assignment (its DebugVM mirror is gone — #434).
|
||||
/// </para>
|
||||
///
|
||||
/// <para>
|
||||
|
|
@ -891,7 +893,7 @@ public static class PhysicsDiagnostics
|
|||
/// </para>
|
||||
///
|
||||
/// <para>Toggle via env var <c>ACDREAM_PROBE_USEABILITY_FALLBACK=1</c>
|
||||
/// or DebugPanel checkbox.</para>
|
||||
/// by direct assignment.</para>
|
||||
/// </summary>
|
||||
public static bool ProbeUseabilityFallbackEnabled { get; set; } =
|
||||
Environment.GetEnvironmentVariable("ACDREAM_PROBE_USEABILITY_FALLBACK") == "1";
|
||||
|
|
@ -915,7 +917,7 @@ public static class PhysicsDiagnostics
|
|||
/// the post-collision velocity disagrees with retail.</description></item>
|
||||
/// </list>
|
||||
/// Initial state from <c>ACDREAM_DUMP_STEEP_ROOF=1</c>. Runtime-toggleable
|
||||
/// via the property setter; not yet wired to a DebugPanel checkbox (open
|
||||
/// via the property setter (open
|
||||
/// follow-up if a debugging session calls for it).
|
||||
/// </summary>
|
||||
public static bool DumpSteepRoofEnabled { get; set; } =
|
||||
|
|
@ -940,7 +942,7 @@ public static class PhysicsDiagnostics
|
|||
///
|
||||
/// <para>
|
||||
/// Initial state from <c>ACDREAM_PROBE_INDOOR_BSP=1</c>.
|
||||
/// Runtime-toggleable via DebugPanel.
|
||||
/// Runtime-toggleable by direct assignment.
|
||||
/// </para>
|
||||
///
|
||||
/// <para>
|
||||
|
|
@ -967,7 +969,7 @@ public static class PhysicsDiagnostics
|
|||
/// zero poly refs, candidate (b)/(d).</description></item>
|
||||
/// </list>
|
||||
/// This diagnostic fires at most once per EnvCell (cache is no-op after
|
||||
/// first population). It does NOT have a DebugPanel mirror yet — this is
|
||||
/// first population). This is
|
||||
/// a one-shot capture tool, not a persistent toggle. Promote to full
|
||||
/// infrastructure after the root cause is identified.
|
||||
///
|
||||
|
|
@ -1019,7 +1021,7 @@ public static class PhysicsDiagnostics
|
|||
///
|
||||
/// <para>
|
||||
/// Initial state from <c>ACDREAM_PROBE_WALK_MISS=1</c>.
|
||||
/// No DebugPanel mirror — one-shot diagnostic.
|
||||
/// One-shot diagnostic.
|
||||
/// </para>
|
||||
///
|
||||
/// <para>
|
||||
|
|
@ -1047,7 +1049,7 @@ public static class PhysicsDiagnostics
|
|||
///
|
||||
/// <para>
|
||||
/// Initial state from <c>ACDREAM_PROBE_PUSH_BACK=1</c>.
|
||||
/// Runtime-toggleable via DebugVM mirror.
|
||||
/// Runtime-toggleable by direct assignment.
|
||||
/// </para>
|
||||
///
|
||||
/// <para>
|
||||
|
|
@ -2034,7 +2036,7 @@ public static class PhysicsDiagnostics
|
|||
///
|
||||
/// <para>
|
||||
/// Initial state from <c>ACDREAM_PROBE_STEP_WALK=1</c>. One-shot
|
||||
/// diagnostic; no DebugPanel mirror until the root cause is identified.
|
||||
/// diagnostic.
|
||||
/// </para>
|
||||
/// </summary>
|
||||
public static bool ProbeStepWalkEnabled { get; set; } =
|
||||
|
|
|
|||
|
|
@ -2316,7 +2316,7 @@ public sealed class PhysicsEngine
|
|||
// L.2a slice 1 (2026-05-12): general-purpose resolver probe.
|
||||
// One line per call when PhysicsDiagnostics.ProbeResolveEnabled
|
||||
// is set (env var ACDREAM_PROBE_RESOLVE=1 at startup, or the
|
||||
// DebugPanel checkbox flipped at runtime). Captures every
|
||||
// property assigned at runtime). Captures every
|
||||
// dimension L.2 cares about: input/output position, input/output
|
||||
// cell, ok-vs-partial, grounded-in vs contact-out, contact-plane
|
||||
// status, wall normal if hit, walkable polygon valid. Zero cost
|
||||
|
|
|
|||
|
|
@ -6,7 +6,8 @@ namespace AcDream.Core.Rendering;
|
|||
/// Runtime-tunable knobs for the retail-faithful chase camera. Mirrors
|
||||
/// the <see cref="AcDream.Core.Physics.PhysicsDiagnostics"/> pattern:
|
||||
/// static fields seeded from env vars at process start, runtime-settable
|
||||
/// via property setters that the DebugPanel writes to.
|
||||
/// via property setters. (#434: the DebugPanel that used to write them has
|
||||
/// been unreachable since Campaign V slice V11.)
|
||||
///
|
||||
/// <para>
|
||||
/// Spec: <c>docs/superpowers/specs/2026-05-18-retail-chase-camera-design.md</c>.
|
||||
|
|
@ -21,7 +22,7 @@ public static class CameraDiagnostics
|
|||
/// <c>AcDream.App.Rendering.ChaseCamera</c> rigid-follow camera is.
|
||||
/// Initial state from <c>ACDREAM_RETAIL_CHASE</c> — default-on if
|
||||
/// unset, off only when explicitly set to <c>"0"</c>. The legacy
|
||||
/// camera stays available via the DebugPanel toggle pending the
|
||||
/// camera stays available by assigning this property pending the
|
||||
/// follow-up deletion commit.
|
||||
/// </summary>
|
||||
public static bool UseRetailChaseCamera { get; set; } =
|
||||
|
|
|
|||
|
|
@ -8,9 +8,11 @@ namespace AcDream.Core.Rendering;
|
|||
/// <summary>
|
||||
/// 2026-05-19 — runtime-toggleable diagnostic flags for the indoor cell
|
||||
/// rendering pipeline. Initialized from env vars at process start;
|
||||
/// flippable at runtime via the DebugPanel mirror. Log call sites read
|
||||
/// these statics so a checkbox toggle takes effect on the next frame
|
||||
/// without relaunching.
|
||||
/// flippable at runtime by direct assignment. Log call sites read these
|
||||
/// statics so a change takes effect on the next frame without relaunching.
|
||||
/// (#434: these used to have a DebugPanel checkbox mirror. That panel has
|
||||
/// been unreachable since Campaign V slice V11 removed its ImGui host, so
|
||||
/// every flag here is startup-or-assignment only.)
|
||||
///
|
||||
/// <para>
|
||||
/// Mirrors the L.2a <see cref="AcDream.Core.Physics.PhysicsDiagnostics"/>
|
||||
|
|
@ -90,8 +92,8 @@ public static class RenderingDiagnostics
|
|||
/// Initial state from <c>ACDREAM_PROBE_VIS=1</c>.
|
||||
/// <para>
|
||||
/// Phase U.2d (2026-05-30) repurposed this flag from the abandoned A8
|
||||
/// two-pipe stencil pass to the Phase U unified pipeline. The env var name +
|
||||
/// the DebugPanel mirror (<c>DebugVM.ProbeVisibility</c>) are unchanged.
|
||||
/// two-pipe stencil pass to the Phase U unified pipeline. The env var name
|
||||
/// is unchanged (its DebugPanel mirror is gone — #434).
|
||||
/// </para>
|
||||
/// </summary>
|
||||
public static bool ProbeVisibilityEnabled { get; set; } =
|
||||
|
|
@ -352,8 +354,8 @@ public static class RenderingDiagnostics
|
|||
/// (the intensity-100 portal purples + the viewer fill off; statics stay);
|
||||
/// 3 = raw vLit visualization in the fragment shader (texture ignored).
|
||||
/// Discriminates lighting-driven stripes (gone at 1/2, visible in the field
|
||||
/// at 3) from texture/per-pixel machinery (survive 1). Settable for a
|
||||
/// future DebugPanel mirror.
|
||||
/// at 3) from texture/per-pixel machinery (survive 1). Settable at
|
||||
/// runtime by direct assignment.
|
||||
/// </summary>
|
||||
public static int LightDebugMode { get; set; } =
|
||||
int.TryParse(
|
||||
|
|
@ -771,7 +773,7 @@ public static class RenderingDiagnostics
|
|||
/// <c>FrameProfiler</c>'s own class doc. Every backend reports GPU time
|
||||
/// through <c>FrameProfiler.RecordGpuSample</c>.
|
||||
/// Initial state from <c>ACDREAM_FRAME_PROF=1</c>; runtime-toggleable
|
||||
/// via the DebugPanel mirror (<c>DebugVM.FrameProf</c>).
|
||||
/// by direct assignment (its DebugPanel mirror is gone — #434).
|
||||
/// Spec: docs/superpowers/specs/2026-07-05-modern-pipeline-design.md §5.
|
||||
/// </summary>
|
||||
public static bool FrameProfEnabled { get; set; } =
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue