aboutsummaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
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);