use boll::*;
-use common::{Point, Dimension};
use core::controller::ControllerManager;
use core::render::Renderer;
-use point; // defined in common, but loaded from main...
+use geometry::{Point, Dimension};
+use point;
use rand::Rng;
use sdl2::event::{Event, WindowEvent};
use sdl2::keyboard::Keycode;
event_pump,
sprites,
states: vec!(self.state.unwrap_or_else(|| Box::new(ActiveState::new(screen)))),
- ctrl_man: ControllerManager::new(context.joystick()?, context.haptic()?),
+ ctrl_man: ControllerManager::new(context.game_controller()?, context.haptic()?),
})
}
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() {
// 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 => {
}
_ => {
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)
}
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();
}
}