Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2008-05-01 21:08:40 +0000
committerStijn Buys <ingar@osirion.org>2008-05-01 21:08:40 +0000
commit36ce28a7557c4b2b73316621471558354024ca54 (patch)
tree3aeb4502b3a4f91a54df5d25bedfd262e61d1cec /src/client/input.cc
parenta22542f273de28d06ecaf2bd6fd741821e98512b (diff)
roll control
Diffstat (limited to 'src/client/input.cc')
-rw-r--r--src/client/input.cc24
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);
}
}