Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/input.cc')
-rw-r--r--src/client/input.cc42
1 files changed, 24 insertions, 18 deletions
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;