aboutsummaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
authortaw27 <taw27@84d2e878-0bd5-11dd-ad15-13eda11d74c5>2008-07-26 22:10:20 +0000
committertaw27 <taw27@84d2e878-0bd5-11dd-ad15-13eda11d74c5>2008-07-26 22:10:20 +0000
commitabe68923dd00e7585914352fa5fe0cb32bda5697 (patch)
tree34bd6b1b9a54316ff70160b7cfcd8a25c3d4f227 /src/main.c
parent02e398005e6268b32cbd18e7102f9632fc08b61f (diff)
Camera position stuff
git-svn-id: svn://cook.msm.cam.ac.uk:745/thrust3d/thrust3d@174 84d2e878-0bd5-11dd-ad15-13eda11d74c5
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/main.c b/src/main.c
index 8f00f69..b096342 100644
--- a/src/main.c
+++ b/src/main.c
@@ -87,6 +87,7 @@ int main(int argc, char *argv[]) {
ScreenResolution res;
Uint32 t = 0;
GameOptions gameopts;
+ Uint16 cx, cy;
gameopts.disable_vbos = 0;
gameopts.disable_fbos = 0;
@@ -196,6 +197,8 @@ int main(int argc, char *argv[]) {
SDL_ShowCursor(SDL_DISABLE);
//SDL_WM_GrabInput(SDL_GRAB_ON);
SDL_SetEventFilter(main_event_filter);
+ cx = width/2; cy = height/2;
+ SDL_WarpMouse(cx, cy);
/* World setup */
Game *game;
@@ -228,6 +231,7 @@ int main(int argc, char *argv[]) {
if ( event.key.keysym.sym == SDLK_p ) game_pause(game);
if ( event.key.keysym.sym == SDLK_q ) finished = 1;
if ( event.key.keysym.sym == SDLK_ESCAPE ) finished = 1;
+ if ( event.key.keysym.sym == SDLK_r ) SDL_WarpMouse(cx, cy);
break;
case SDL_KEYUP :
/* Process key releases even when paused */
@@ -248,8 +252,10 @@ int main(int argc, char *argv[]) {
}
SDL_GetMouseState(&mx, &my);
- game->view_yaw = mx*0.005;
- game->view_angle = my*0.005;
+ game->view_yaw = -(mx-cx)*0.005;
+ game->view_angle = deg2rad(-20.0) + (my-cy)*0.005;
+ if ( game->view_angle > deg2rad(89.0) ) game->view_angle = deg2rad(89.0);
+ if ( game->view_angle < deg2rad(-89.0) ) game->view_angle = deg2rad(-89.0);
if ( !game->paused ) {
physics_step(game, t);