summaryrefslogtreecommitdiff
path: root/pixel-client/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'pixel-client/src/main.rs')
-rw-r--r--pixel-client/src/main.rs26
1 files changed, 16 insertions, 10 deletions
diff --git a/pixel-client/src/main.rs b/pixel-client/src/main.rs
index 8b0887e5..c43680ae 100644
--- a/pixel-client/src/main.rs
+++ b/pixel-client/src/main.rs
@@ -22,7 +22,7 @@ use config::Config;
use game::Game;
use hurrycurry_client_lib::network::sync::Network;
use hurrycurry_protocol::glam::Vec2;
-use menu::main::MainMenu;
+use menu::{ingame::IngameMenu, main::MainMenu};
use profiler::ProfilerOverlay;
use render::Renderer;
use sdl2::{event::Event, keyboard::KeyboardState, mouse::MouseState, pixels::Color};
@@ -54,7 +54,7 @@ pub enum Action {
}
pub enum State {
- Ingame(Box<Game>),
+ Ingame(IngameMenu),
MainMenu(MainMenu),
Quit,
}
@@ -94,7 +94,7 @@ fn main() -> Result<()> {
let mut state = match args.action.unwrap_or_default() {
Action::Menu => State::MainMenu(MainMenu::new(renderer.atlas_layout())),
- Action::Join { server_address } => State::Ingame(Box::new(Game::new(
+ Action::Join { server_address } => State::Ingame(IngameMenu::new(Game::new(
Network::connect(&server_address)?,
&config,
renderer.atlas_layout(),
@@ -121,7 +121,9 @@ fn main() -> Result<()> {
let dt = actual_dt.min(Duration::from_secs_f32(1. / 30.));
let next = match &mut state {
- State::Ingame(x) => x.tick(dt.as_secs_f32(), &keyboard, renderer.atlas_layout()),
+ State::Ingame(x) => {
+ x.tick(dt.as_secs_f32(), &keyboard, &mouse, renderer.atlas_layout())
+ }
State::MainMenu(x) => {
x.tick(dt.as_secs_f32(), &keyboard, &mouse, renderer.atlas_layout())
}
@@ -133,7 +135,7 @@ fn main() -> Result<()> {
renderer.set_ui_view(4.);
match &mut state {
- State::Ingame(x) => x.draw(&mut renderer),
+ State::Ingame(x) => x.draw(&mut renderer, &mut config),
State::MainMenu(x) => x.draw(&mut renderer, &mut config),
State::Quit => (),
}
@@ -151,19 +153,23 @@ fn main() -> Result<()> {
keycode: Some(keycode),
..
} => match &mut state {
- State::Ingame(_) => (),
- State::MainMenu(menu) => menu.keyboard_event(keycode, false),
+ State::Ingame(g) => g.keyboard_event(keycode, false),
+ State::MainMenu(g) => g.keyboard_event(keycode, false),
_ => (),
},
Event::KeyDown {
keycode: Some(keycode),
..
} => match &mut state {
- State::Ingame(_) => (),
- State::MainMenu(menu) => menu.keyboard_event(keycode, true),
+ State::Ingame(g) => g.keyboard_event(keycode, true),
+ State::MainMenu(g) => g.keyboard_event(keycode, true),
+ _ => (),
+ },
+ Event::TextInput { text, .. } => match &mut state {
+ State::Ingame(g) => g.ui_state.text_input(text),
+ State::MainMenu(g) => g.ui_state.text_input(text),
_ => (),
},
- Event::TextInput { text, .. } => if let State::MainMenu(menu) = &mut state { menu.ui_state.text_input(text) },
_ => {}
}
}