mirror of
https://codeberg.org/icewind/vbspview.git
synced 2026-06-03 10:14:10 +02:00
add option to disable prop loading
This commit is contained in:
parent
d8cb4acc49
commit
b00334b822
2 changed files with 12 additions and 7 deletions
10
src/bsp.rs
10
src/bsp.rs
|
|
@ -9,12 +9,14 @@ use three_d::{CpuModel, Positions, Vec3};
|
||||||
use three_d_asset::{Geometry, Primitive, TriMesh};
|
use three_d_asset::{Geometry, Primitive, TriMesh};
|
||||||
use vbsp::{Bsp, Handle};
|
use vbsp::{Bsp, Handle};
|
||||||
|
|
||||||
pub fn load_map(data: &[u8], loader: &mut Loader) -> Result<Vec<CpuModel>, Error> {
|
pub fn load_map(data: &[u8], loader: &mut Loader, props: bool) -> Result<Vec<CpuModel>, Error> {
|
||||||
let (world, bsp) = load_world(data, loader)?;
|
let (world, bsp) = load_world(data, loader)?;
|
||||||
let props = load_props(loader, bsp.static_props())?;
|
let mut models = Vec::with_capacity(bsp.static_props().count() + 1);
|
||||||
let mut models = Vec::with_capacity(props.len() + 1);
|
|
||||||
models.push(world);
|
models.push(world);
|
||||||
models.extend(props);
|
if props {
|
||||||
|
let props = load_props(loader, bsp.static_props())?;
|
||||||
|
models.extend(props);
|
||||||
|
}
|
||||||
Ok(models)
|
Ok(models)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -30,8 +30,11 @@ use vmt_parser::VdfError;
|
||||||
struct Args {
|
struct Args {
|
||||||
/// Path of the demo or map file
|
/// Path of the demo or map file
|
||||||
path: String,
|
path: String,
|
||||||
/// Name of the player to follow
|
/// Name of the player to follow, when using a demo file
|
||||||
player: Option<String>,
|
player: Option<String>,
|
||||||
|
/// Disable loading and showing props in the map
|
||||||
|
#[arg(long)]
|
||||||
|
no_props: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Error)]
|
#[derive(Debug, Error)]
|
||||||
|
|
@ -101,13 +104,13 @@ fn main() -> Result<(), Error> {
|
||||||
.load(&format!("maps/{}.bsp", demo.map))?
|
.load(&format!("maps/{}.bsp", demo.map))?
|
||||||
.ok_or(Error::ResourceNotFound(demo.map.clone()))?;
|
.ok_or(Error::ResourceNotFound(demo.map.clone()))?;
|
||||||
|
|
||||||
let models = load_map(&map, &mut loader)?;
|
let models = load_map(&map, &mut loader, !args.no_props)?;
|
||||||
play(window, DemoCamera::new(demo), models)
|
play(window, DemoCamera::new(demo), models)
|
||||||
} else {
|
} else {
|
||||||
let mut loader = Loader::new()?;
|
let mut loader = Loader::new()?;
|
||||||
let map = fs::read(args.path)?;
|
let map = fs::read(args.path)?;
|
||||||
|
|
||||||
let models = load_map(&map, &mut loader)?;
|
let models = load_map(&map, &mut loader, !args.no_props)?;
|
||||||
play(window, FirstPerson::new(0.1), models)
|
play(window, FirstPerson::new(0.1), models)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue