aboutsummaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
authortaw27 <taw27@84d2e878-0bd5-11dd-ad15-13eda11d74c5>2008-07-25 22:37:03 +0000
committertaw27 <taw27@84d2e878-0bd5-11dd-ad15-13eda11d74c5>2008-07-25 22:37:03 +0000
commit624f89ba0f43fd38787817b9ae42bb6adde5241b (patch)
tree73eda21101a603052b031f44d0a7f69399a94ccf /src/main.c
parentd6d128b9a8734ee430f96228ceaf8f1f945189b5 (diff)
Initial mouse stuff (needs work)
git-svn-id: svn://cook.msm.cam.ac.uk:745/thrust3d/thrust3d@172 84d2e878-0bd5-11dd-ad15-13eda11d74c5
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c21
1 files changed, 15 insertions, 6 deletions
diff --git a/src/main.c b/src/main.c
index 0614679..8f00f69 100644
--- a/src/main.c
+++ b/src/main.c
@@ -71,6 +71,11 @@ static void main_help(const char *n) {
main_version();
}
+int main_event_filter(const SDL_Event *event) {
+ if ( event->type == SDL_MOUSEMOTION ) return 0;
+ return 1;
+}
+
int main(int argc, char *argv[]) {
SDL_Event event;
@@ -188,8 +193,9 @@ int main(int argc, char *argv[]) {
}
SDL_WM_SetCaption("Thrust3D", "Thrust3D");
- SDL_ShowCursor(SDL_ENABLE);
- SDL_WM_GrabInput(SDL_GRAB_ON);
+ SDL_ShowCursor(SDL_DISABLE);
+ //SDL_WM_GrabInput(SDL_GRAB_ON);
+ SDL_SetEventFilter(main_event_filter);
/* World setup */
Game *game;
@@ -199,6 +205,8 @@ int main(int argc, char *argv[]) {
finished = 0;
while ( !finished ) {
+ int mx, my;
+
/* Timer advances only when game is not paused */
if ( !game->paused ) {
game->tlast = t;
@@ -230,10 +238,6 @@ int main(int argc, char *argv[]) {
if ( event.key.keysym.sym == SDLK_DOWN ) game->reverse = 0;
if ( event.key.keysym.sym == SDLK_p ) game->pause_rel = 1;
break;
- case SDL_MOUSEMOTION :
- printf("Mouse! %i\n", event.motion.y);
- //game->view_angle -= event.motion.yrel*0.001;
- break;
case SDL_VIDEOEXPOSE :
/* Don't bother redrawing if not paused - not long to wait! */
if ( game->paused ) render_draw(game, t);
@@ -242,6 +246,11 @@ int main(int argc, char *argv[]) {
finished = 1;
break;
}
+
+ SDL_GetMouseState(&mx, &my);
+ game->view_yaw = mx*0.005;
+ game->view_angle = my*0.005;
+
if ( !game->paused ) {
physics_step(game, t);
render_draw(game, t);