mirror of
https://codeberg.org/icewind/vbspview.git
synced 2026-06-03 18:24:09 +02:00
add both demo and map view mode
This commit is contained in:
parent
bc82d29c4f
commit
067e1f99df
2 changed files with 24 additions and 7 deletions
29
src/main.rs
29
src/main.rs
|
|
@ -4,10 +4,12 @@ mod demo;
|
|||
mod loader;
|
||||
mod renderer;
|
||||
mod ui;
|
||||
|
||||
use clap::Parser;
|
||||
use std::fs;
|
||||
|
||||
use crate::bsp::load_map;
|
||||
use crate::control::DemoCamera;
|
||||
use crate::control::{Control, DemoCamera};
|
||||
use crate::demo::DemoInfo;
|
||||
use crate::renderer::Renderer;
|
||||
use crate::ui::DebugUI;
|
||||
|
|
@ -76,13 +78,28 @@ fn main() -> Result<(), Error> {
|
|||
..Default::default()
|
||||
})?;
|
||||
|
||||
let demo = DemoInfo::new(args.path, &args.player)?;
|
||||
let mut loader = Loader::new()?;
|
||||
let map = loader.load(&format!("maps/{}.bsp", demo.map))?;
|
||||
if args.path.ends_with(".dem") {
|
||||
let demo = DemoInfo::new(args.path, &args.player)?;
|
||||
let mut loader = Loader::new()?;
|
||||
let map = loader.load(&format!("maps/{}.bsp", demo.map))?;
|
||||
|
||||
let mut renderer = Renderer::new(&window, DemoCamera::new(demo))?;
|
||||
let meshes = load_map(&map, &mut loader)?;
|
||||
play(window, DemoCamera::new(demo), meshes)
|
||||
} else {
|
||||
let mut loader = Loader::new()?;
|
||||
let map = fs::read(args.path)?;
|
||||
|
||||
let meshes = load_map(&map, &mut loader)?;
|
||||
let meshes = load_map(&map, &mut loader)?;
|
||||
play(window, FirstPerson::new(0.1), meshes)
|
||||
}
|
||||
}
|
||||
|
||||
fn play<C: Control + 'static>(
|
||||
window: Window,
|
||||
control: C,
|
||||
meshes: Vec<CPUMesh>,
|
||||
) -> Result<(), Error> {
|
||||
let mut renderer = Renderer::new(&window, control)?;
|
||||
let material = PhysicalMaterial {
|
||||
albedo: Color {
|
||||
r: 128,
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
use crate::control::{Control, DebugToggle};
|
||||
use crate::{DebugUI, FirstPerson};
|
||||
use crate::DebugUI;
|
||||
use three_d::*;
|
||||
|
||||
pub struct Renderer<C: Control> {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue