From d9ccf7f64debe8baeb829bd917e911c4c0df1c5d Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Sat, 18 Jul 2026 18:23:40 +0400 Subject: [PATCH] feat(game): preview all mission roots by default --- apps/fparkan-game/src/main.rs | 12 ++++++++---- docs/tomes/05-render.md | 11 ++++++----- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/apps/fparkan-game/src/main.rs b/apps/fparkan-game/src/main.rs index b93eb39..f229d95 100644 --- a/apps/fparkan-game/src/main.rs +++ b/apps/fparkan-game/src/main.rs @@ -1012,7 +1012,11 @@ impl Args { let mut frames = 1; let mut backend = RenderBackendMode::Planning; let mut load_progress = None; - let mut preview_roots = NonZeroUsize::MIN; + // A native static-Vulkan invocation is the usable mission preview, so + // its default scope covers every root. `PreviewRoots` is clamped by the + // runtime to the decoded mission length; an explicit --preview-roots N + // remains available for bounded diagnostic work. + let mut preview_roots = NonZeroUsize::MAX; let mut legacy_camera_capture = None; let mut iter = args.iter(); while let Some(arg) = iter.next() { @@ -1224,7 +1228,7 @@ mod tests { frames: 3, backend: RenderBackendMode::Planning, load_progress: None, - preview_roots: NonZeroUsize::MIN, + preview_roots: NonZeroUsize::MAX, legacy_camera_capture: None, }) ); @@ -1247,7 +1251,7 @@ mod tests { frames: 1, backend: RenderBackendMode::StaticVulkan, load_progress: None, - preview_roots: NonZeroUsize::MIN, + preview_roots: NonZeroUsize::MAX, legacy_camera_capture: None, }) ); @@ -1305,7 +1309,7 @@ mod tests { frames: 1, backend: RenderBackendMode::Planning, load_progress: Some(PathBuf::from("target/probe.txt")), - preview_roots: NonZeroUsize::MIN, + preview_roots: NonZeroUsize::MAX, legacy_camera_capture: None, }) ); diff --git a/docs/tomes/05-render.md b/docs/tomes/05-render.md index e23a182..7bdabf4 100644 --- a/docs/tomes/05-render.md +++ b/docs/tomes/05-render.md @@ -972,11 +972,12 @@ of the first-root static-preview bridge, not a claim that the two games' full mission renderers are compatible. The preview now has an explicit root-prefix contract. `--preview-roots N` -prepares the first non-zero `N` TMA roots for the opt-in static Vulkan path; -the default remains one root. Normal mission loading remains full and -transactional, so this is not a hidden relaxation of gameplay validation. The -previous all-root probe timed out at `Graph`; the prefix makes broader scene -work measurable without pretending that a bounded preview is the full game. +prepares the first non-zero `N` TMA roots for the opt-in static Vulkan path. +Without that diagnostic limiter, the static Vulkan path now requests every TMA +root (the runtime clamps the request to the decoded mission length), so a +normal native preview no longer silently displays just root zero. Normal mission +loading remains full and transactional; the prefix is retained for bounded +investigation rather than as a hidden relaxation of gameplay validation. ### Shared terrain/root diagnostic frame