From 48aa068b036f565d6b94d4207242066ba655afe4 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Sat, 9 Feb 2008 17:48:16 +0000 Subject: entities, step 1 --- src/client/input.cc | 42 ++++++++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 18 deletions(-) (limited to 'src/client/input.cc') diff --git a/src/client/input.cc b/src/client/input.cc index ccfd998..d3b2900 100644 --- a/src/client/input.cc +++ b/src/client/input.cc @@ -30,40 +30,49 @@ void shutdown() con_print << "Shutting down input..." << std::endl; } -// handle pressed keys for the game world -void keypressed(const SDL_keysym &keysym) +// handle key release for the game world +void keyreleased(const SDL_keysym &keysym) { switch( keysym.sym) { case SDLK_SPACE: - camera::nextmode(); + camera::next_mode(); + break; + default: break; + } +} + +// handle key press events for the game world +void keypressed(const SDL_keysym &keysym) +{ + switch( keysym.sym) { case SDLK_LEFT: - camera::rotate_left(); + camera::key_left(); break; case SDLK_RIGHT: - camera::rotate_right(); + camera::key_right(); break; case SDLK_UP: - camera::rotate_up(); + camera::key_up(); break; case SDLK_DOWN: - camera::rotate_down(); + camera::key_down(); break; case SDLK_KP_PLUS: // TODO set core entity params - game.ship.set_thrust(game.ship.thrust() + 0.08f); + game.ship->set_thrust(game.ship->thrust() + 0.08f); break; case SDLK_KP_MINUS: // TODO set core entity params - game.ship.set_thrust(game.ship.thrust() - 0.1f); + game.ship->set_thrust(game.ship->thrust() - 0.1f); break; case SDLK_KP4: // TODO set core entity params - game.ship.set_yaw(game.ship.yaw() + 10); + game.ship->set_yaw(game.ship->yaw() + 10); break; case SDLK_KP6: // TODO set core entity params - game.ship.set_yaw(game.ship.yaw() - 10); + game.ship->set_yaw(game.ship->yaw() - 10); break; default: break; @@ -78,10 +87,11 @@ void frame(float seconds) while( SDL_PollEvent( &event ) ) { switch( event.type ) { + case SDL_KEYUP: + if (!console::visible() && core::connected()) + keyreleased(event.key.keysym ); + break; case SDL_KEYDOWN: - /*if (event.key.keysym.sym == SDLK_ESCAPE) { - client::application.shutdown(); - } else */ if (event.key.keysym.sym == '`' || event.key.keysym.sym == '~') { console::toggle(); } else if (console::visible()) { @@ -92,10 +102,6 @@ void frame(float seconds) keypressed(event.key.keysym ); } break; - - case SDL_KEYUP: - break; - case SDL_QUIT: core::application()->shutdown(); break; -- cgit v1.2.3