From b14d5a7e5669a5391776f49a9d603b5db1109e79 Mon Sep 17 00:00:00 2001 From: Quaternions Date: Tue, 12 Mar 2024 18:25:18 -0700 Subject: [PATCH] not quite right --- src/rbx.rs | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/rbx.rs b/src/rbx.rs index 4086555..ae15c50 100644 --- a/src/rbx.rs +++ b/src/rbx.rs @@ -750,13 +750,18 @@ impl PartialMap1{ let mut wormhole_id_to_out_model=HashMap::new(); //decode roblox meshes - //generate mesh_id map based on meshes that failed to load - let mut meshes=meshpart_meshes.into_iter().flat_map(|(old_mesh_id,roblox_mesh_bytes)|{ + //generate mesh_id_map based on meshes that failed to load + let (meshes,mesh_id_map):(Vec,HashMap)= + meshpart_meshes.into_iter().flat_map(|(old_mesh_id,roblox_mesh_bytes)| Ok((old_mesh_id,crate::mesh::convert(roblox_mesh_bytes)?)) - }).collect(); + ).enumerate().map(|(new_mesh_id,(old_mesh_id,mesh))| + (mesh,(old_mesh_id,model::MeshId::new(new_mesh_id as u32))) + ).unzip(); //now that the meshes are loaded, these models can be generated let models_owned_attributes=self.deferred_models_deferred_attributes.into_iter().map(|deferred_model_deferred_attributes|{ - let render=deferred_model_deferred_attributes.render;//what does this do? + let render=deferred_model_deferred_attributes.render; + //meshes need to be cloned with a new id when they are reused with a new render_id + //insert into primitive_meshes ModelDeferredAttributes{ mesh:deferred_model_deferred_attributes.model.mesh, deferred_attributes:deferred_model_deferred_attributes.model.deferred_attributes,