editor/src/main.rs
2021-01-09 14:03:04 -06:00

59 lines
1.2 KiB
Rust

#[macro_use]
extern crate anyhow;
#[allow(unused_macros, unused_imports)]
#[macro_use]
extern crate log;
extern crate bass_sys as bass;
mod audio;
mod beatmap;
mod game;
mod hitobject;
mod skin;
use std::path::PathBuf;
use anyhow::Result;
use ggez::{
conf::{WindowMode, WindowSetup},
event, ContextBuilder,
};
use structopt::StructOpt;
use crate::game::Game;
#[derive(StructOpt)]
struct Opt {
path: Option<PathBuf>,
/// Verbose mode (-v, -vv, -vvv, etc)
#[structopt(short = "v", long = "verbose", parse(from_occurrences))]
verbose: usize,
}
fn main() -> Result<()> {
let opt = Opt::from_args();
stderrlog::new()
.module("editor")
.module("bass_sys")
.verbosity(opt.verbose)
.init()
.unwrap();
let cb = ContextBuilder::new("osu_editor", "ggez")
.add_resource_path("skin")
.window_setup(WindowSetup::default().title("OSU editor"))
.window_mode(WindowMode::default().dimensions(1024.0, 768.0));
let (mut ctx, mut event_loop) = cb.build()?;
let mut game = Game::new()?;
game.skin.load_all(&mut ctx)?;
if let Some(path) = opt.path {
game.load_beatmap(path)?;
}
event::run(&mut ctx, &mut event_loop, &mut game)?;
Ok(())
}