aboutsummaryrefslogtreecommitdiff
path: root/crates/fparkan-runtime/src
diff options
context:
space:
mode:
Diffstat (limited to 'crates/fparkan-runtime/src')
-rw-r--r--crates/fparkan-runtime/src/lib.rs18
1 files changed, 11 insertions, 7 deletions
diff --git a/crates/fparkan-runtime/src/lib.rs b/crates/fparkan-runtime/src/lib.rs
index 1d7c499..512ba9b 100644
--- a/crates/fparkan-runtime/src/lib.rs
+++ b/crates/fparkan-runtime/src/lib.rs
@@ -191,7 +191,7 @@ enum MissionAssetScope {
/// Prepare every reachable asset; required by normal runtime loading.
#[default]
Full,
- /// Prepare one root at a time until a mesh-backed preview model is found.
+ /// Prepare only the first mission root for a static preview.
FirstMeshPreview,
}
@@ -476,9 +476,9 @@ pub fn load_mission(
/// Loads a mission using the bounded static-preview asset scope.
///
/// This mode preserves map, TMA, graph, construction and registration work,
-/// but prepares only the first root that supplies a mesh-backed model. It is
-/// intended solely for the opt-in static Vulkan preview and must not be used
-/// for normal gameplay, where all reachable assets remain required.
+/// but visits only the first mission root. It is intended solely for the
+/// opt-in static Vulkan preview and must not be used for normal gameplay,
+/// where all reachable assets remain required.
///
/// # Errors
///
@@ -630,8 +630,12 @@ fn load_mission_with_options_and_progress(
.iter()
.map(|object| resource_name(&object.resource_name.raw))
.collect();
+ let scoped_graph_roots = match options.asset_scope {
+ MissionAssetScope::Full => graph_roots.as_slice(),
+ MissionAssetScope::FirstMeshPreview => graph_roots.get(..1).unwrap_or_default(),
+ };
let (mut prototype_graph, resolved_prototypes, mut prototype_report) =
- build_prototype_graph_report(&repository, vfs.as_ref(), &graph_roots);
+ build_prototype_graph_report(&repository, vfs.as_ref(), scoped_graph_roots);
extend_graph_report_with_visual_dependencies(
&repository,
&mut prototype_report,
@@ -649,7 +653,7 @@ fn load_mission_with_options_and_progress(
&prototype_graph.root_prototype_request_spans,
&resolved_prototypes,
),
- MissionAssetScope::FirstMeshPreview => prepare_first_mesh_preview_assets(
+ MissionAssetScope::FirstMeshPreview => prepare_first_preview_assets(
&asset_manager,
&prototype_graph.root_prototype_request_spans,
&resolved_prototypes,
@@ -769,7 +773,7 @@ fn record_load_phase(
}
}
-fn prepare_first_mesh_preview_assets<R: ResourceRepository>(
+fn prepare_first_preview_assets<R: ResourceRepository>(
asset_manager: &AssetManager<R>,
root_spans: &[std::ops::Range<usize>],
prototypes: &[fparkan_prototype::EffectivePrototype],