use argh::FromArgs; use game::Game; use graphics::WindowBuilder; /// Play a dungeon crawl game #[derive(FromArgs)] struct Args { /// enable vsync #[argh(switch)] vsync: bool, /// enable verbose logging #[argh(switch, short = 'v')] verbose: bool, /// set the map seed #[argh(option)] seed: Option, } fn run() -> graphics::Result<()> { // Parse arguments let args: Args = argh::from_env(); // Load the window let window = WindowBuilder::new() .vsync(args.vsync) .verbose(args.verbose) .build()?; Game::new(window, args.seed).run(); Ok(()) } pub fn main() { if let Err(err) = run() { eprintln!("error: {err}"); } }