diff options
author | Stijn Buys <ingar@osirion.org> | 2008-05-01 21:08:40 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2008-05-01 21:08:40 +0000 |
commit | 36ce28a7557c4b2b73316621471558354024ca54 (patch) | |
tree | 3aeb4502b3a4f91a54df5d25bedfd262e61d1cec /src/client/input.cc | |
parent | a22542f273de28d06ecaf2bd6fd741821e98512b (diff) |
roll control
Diffstat (limited to 'src/client/input.cc')
-rw-r--r-- | src/client/input.cc | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/src/client/input.cc b/src/client/input.cc index d10c8bc..87492c4 100644 --- a/src/client/input.cc +++ b/src/client/input.cc @@ -27,8 +27,8 @@ namespace input // local controls float local_turn = 0.0f; float local_pitch = 0.0f; -float local_roll = 0.0f; float local_thrust = 0.0f; +float local_roll = 0.0f; // last controlled entity unsigned int last_control = 0; @@ -84,6 +84,14 @@ void keyreleased(const SDL_keysym &keysym) local_turn = 0.0f; break; + case SDLK_KP_DIVIDE: // roll left + local_roll = 0.0f; + break; + + case SDLK_KP_MULTIPLY: // roll light + local_roll = 0.0f; + break; + default: break; } @@ -132,9 +140,18 @@ void keypressed(const SDL_keysym &keysym) local_turn = -1.0f; break; - case SDLK_KP5: + case SDLK_KP5: // level local_turn = 0; local_pitch = 0; + local_roll = 0; + break; + + case SDLK_KP_DIVIDE: // roll left + local_roll = 1.0f; + break; + + case SDLK_KP_MULTIPLY: // roll light + local_roll = -1.0f; break; @@ -165,8 +182,10 @@ void frame(float seconds) if (core::localcontrol() && (last_control != core::localcontrol()->id())) { local_turn = 0.0f; local_pitch = 0.0f; + local_roll = 0.0f; local_thrust = core::localcontrol()->thrust(); last_control = core::localcontrol()->id(); + camera::reset(); } SDL_Event event; @@ -281,6 +300,7 @@ void frame(float seconds) core::localcontrol()->set_thrust(local_thrust); core::localcontrol()->set_direction(local_turn); core::localcontrol()->set_pitch(local_pitch / video::aspect ); + core::localcontrol()->set_roll(local_roll); } } |