rnd-19981022-1
[rocksndiamonds.git] / src / tools.c
index 84b651c9895e014d1900bbbecfb9be46a0197fe5..033c75be1efafb6ed6f743b956d9ab2eb5773e59 100644 (file)
@@ -1381,24 +1381,16 @@ boolean Request(char *text, unsigned int req_state)
 
   button_status = MB_RELEASED;
 
-  while(result<0)
+  while(result < 0)
   {
-    DoAnimation();
-    Delay(10);
-
     if (XPending(display))
     {
       XEvent event;
 
       XNextEvent(display, &event);
+
       switch(event.type)
       {
-       case Expose:
-         HandleExposeEvent((XExposeEvent *) &event);
-         break;
-       case UnmapNotify:
-         SleepWhileUnmapped();
-         break;
        case ButtonPress:
        case ButtonRelease:
        case MotionNotify:
@@ -1440,6 +1432,7 @@ boolean Request(char *text, unsigned int req_state)
            case BUTTON_CONFIRM:
              result = TRUE | FALSE;
              break;
+
            case BUTTON_PLAYER_1:
              result = 1;
              break;
@@ -1452,11 +1445,13 @@ boolean Request(char *text, unsigned int req_state)
            case BUTTON_PLAYER_4:
              result = 4;
              break;
+
            default:
              break;
          }
          break;
        }
+
        case KeyPress:
          switch(XLookupKeysym((XKeyEvent *)&event,
                               ((XKeyEvent *)&event)->state))
@@ -1464,24 +1459,24 @@ boolean Request(char *text, unsigned int req_state)
            case XK_Return:
              result = 1;
              break;
+
            case XK_Escape:
              result = 0;
              break;
+
+           default:
+             break;
          }
          if (req_state & REQ_PLAYER)
            result = 0;
          break;
+
        case KeyRelease:
          key_joystick_mapping = 0;
          break;
-       case FocusIn:
-       case FocusOut:
-         HandleFocusEvent((XFocusChangeEvent *) &event);
-         break;
-        case ClientMessage:
-         HandleClientMessageEvent((XClientMessageEvent *) &event);
-         break;
+
        default:
+         HandleOtherEvents(&event);
          break;
       }
     }
@@ -1494,6 +1489,11 @@ boolean Request(char *text, unsigned int req_state)
       else if (joy & JOY_BUTTON_2)
        result = 0;
     }
+
+    DoAnimation();
+
+    /* don't eat all CPU time */
+    Delay(10);
   }
 
   if (game_status != MAINMENU)
@@ -1676,6 +1676,9 @@ unsigned int MoveDoor(unsigned int door_state)
     }
   }
 
+  if (setup.quick_doors)
+    StopSound(SND_OEFFNEN);
+
   if (door_state & DOOR_ACTION_1)
     door1 = door_state & DOOR_ACTION_1;
   if (door_state & DOOR_ACTION_2)