rnd-20070420-2-src
[rocksndiamonds.git] / src / events.c
index d42acf56eff9f1d436eef48395d162c97b1eaa9e..811d8f9ae87e01fdfc9b03eddfa96f93823a7160 100644 (file)
@@ -127,7 +127,7 @@ void EventLoop(void)
 
       while (NextValidEvent(&event))
       {
-       switch(event.type)
+       switch (event.type)
        {
          case EVENT_BUTTONPRESS:
          case EVENT_BUTTONRELEASE:
@@ -194,7 +194,7 @@ void EventLoop(void)
 
 void HandleOtherEvents(Event *event)
 {
-  switch(event->type)
+  switch (event->type)
   {
     case EVENT_EXPOSE:
       HandleExposeEvent((ExposeEvent *) event);
@@ -238,14 +238,18 @@ void ClearEventQueue()
 
     NextEvent(&event);
 
-    switch(event.type)
+    switch (event.type)
     {
       case EVENT_BUTTONRELEASE:
        button_status = MB_RELEASED;
        break;
 
       case EVENT_KEYRELEASE:
+#if 1
+       ClearPlayerAction();
+#else
        key_joystick_mapping = 0;
+#endif
        break;
 
       default:
@@ -277,7 +281,7 @@ void SleepWhileUnmapped()
 
     NextEvent(&event);
 
-    switch(event.type)
+    switch (event.type)
     {
       case EVENT_BUTTONRELEASE:
        button_status = MB_RELEASED;
@@ -663,8 +667,18 @@ void HandleKey(Key key, int key_status)
          element_dropped[pnr] = FALSE;
        }
       }
+#if 1
+      else if (tape.recording && tape.pausing)
+      {
+       /* prevent key release events from un-pausing a paused game */
+       if (key_status == KEY_PRESSED &&
+           (key_action & KEY_ACTION))
+         TapeTogglePause(TAPE_TOGGLE_MANUAL);
+      }
+#else
       else if (tape.recording && tape.pausing && (key_action & KEY_ACTION))
        TapeTogglePause(TAPE_TOGGLE_MANUAL);
+#endif
     }
   }
   else
@@ -697,11 +711,19 @@ void HandleKey(Key key, int key_status)
 
     ToggleFullscreenIfNeeded();
 
+    if (game_status == GAME_MODE_SETUP)
+      RedrawSetupScreenAfterFullscreenToggle();
+
     return;
   }
 
+#if 0
+  if (game_status == GAME_MODE_PLAYING && local_player->LevelSolved_GameEnd &&
+      (key == KSYM_Return || key == setup.shortcut.toggle_pause))
+#else
   if (game_status == GAME_MODE_PLAYING && AllPlayersGone &&
       (key == KSYM_Return || key == setup.shortcut.toggle_pause))
+#endif
   {
     GameEnd();
 
@@ -758,7 +780,7 @@ void HandleKey(Key key, int key_status)
       key = KSYM_UNDEFINED;
   }
 
-  switch(game_status)
+  switch (game_status)
   {
     case GAME_MODE_PSEUDO_TYPENAME:
       HandleTypeName(0, key);
@@ -770,7 +792,7 @@ void HandleKey(Key key, int key_status)
     case GAME_MODE_SETUP:
     case GAME_MODE_INFO:
     case GAME_MODE_SCORES:
-      switch(key)
+      switch (key)
       {
        case KSYM_space:
        case KSYM_Return:
@@ -789,6 +811,9 @@ void HandleKey(Key key, int key_status)
          break;
 
        case KSYM_Escape:
+         if (game_status != GAME_MODE_MAIN)
+           FadeSkipNextFadeIn();
+
          if (game_status == GAME_MODE_TITLE)
            HandleTitleScreen(0, 0, 0, 0, MB_MENU_LEAVE);
           else if (game_status == GAME_MODE_LEVELS)
@@ -841,7 +866,7 @@ void HandleKey(Key key, int key_status)
 
     case GAME_MODE_PLAYING:
     {
-      switch(key)
+      switch (key)
       {
         case KSYM_Escape:
          RequestQuitGame(setup.ask_on_escape);
@@ -1006,7 +1031,7 @@ void HandleJoystick()
   int dx       = (left ? -1    : right ? 1     : 0);
   int dy       = (up   ? -1    : down  ? 1     : 0);
 
-  switch(game_status)
+  switch (game_status)
   {
     case GAME_MODE_TITLE:
     case GAME_MODE_MAIN:
@@ -1045,7 +1070,11 @@ void HandleJoystick()
       if (tape.playing || keyboard)
        newbutton = ((joy & JOY_BUTTON) != 0);
 
+#if 0
+      if (local_player->LevelSolved_GameEnd && newbutton)
+#else
       if (AllPlayersGone && newbutton)
+#endif
       {
        GameEnd();