X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=src%2Fcore%2Fapp.rs;h=f5452fdaab2f5b34c2ab6f603ccf50c01cb12171;hb=953b4c960649b82f4e186c2a9afee5367270f0fc;hp=434f56c53a1273d37e9856acf20bd522e2d4a26d;hpb=1f42d724d84ed1c014ff40ccc91058472391be0c;p=kaka%2Frust-sdl-test.git diff --git a/src/core/app.rs b/src/core/app.rs index 434f56c..f5452fd 100644 --- a/src/core/app.rs +++ b/src/core/app.rs @@ -1,7 +1,7 @@ use boll::*; -use common::{Point, Dimension}; use core::controller::ControllerManager; use core::render::Renderer; +use geometry::{Point, Dimension}; use point; // defined in common, but loaded from main... use rand::Rng; use sdl2::event::{Event, WindowEvent}; @@ -141,7 +141,7 @@ impl App { pub fn start(&mut self) { let mut last_time = Instant::now(); - self.states[0].enter(&mut self.ctrl_man); + self.states[0].enter(&self.ctrl_man); loop { if let Some(change) = self.handle_events() { @@ -171,7 +171,7 @@ impl App { // if let Some(s) = self.states.last_mut() { // s.pause(); // } - state.enter(&mut self.ctrl_man); + state.enter(&self.ctrl_man); self.states.push(state); } StateChange::Pop => { @@ -248,7 +248,9 @@ impl App { } _ => { if let Some(state) = self.states.last_mut() { - return state.handle_event(event) + if let Some(change) = state.handle_event(event) { + return Some(change); + } } else { return Some(StateChange::Exit) } @@ -260,7 +262,7 @@ impl App { fn render(&mut self) { self.renderer.clear(); - self.states.last_mut().unwrap().render(&mut self.renderer, &mut self.sprites); + self.states.last_mut().unwrap().render(&mut self.renderer, &self.sprites); self.renderer.present(); } }