removed SDL 2.0 key symbols (using preprocessor) when compiling for SDL 1.2
[rocksndiamonds.git] / src / tools.c
index 903818a414b6b5ea5ca0a23ec70640b7d57a1b22..9e06ab4ad18d4b9b70ac3162f9d48562693cf939 100644 (file)
@@ -1574,6 +1574,10 @@ void getSizedGraphicSourceExt(int graphic, int frame, int tilesize,
 {
   struct GraphicInfo *g = &graphic_info[graphic];
 
+  // if no graphics defined at all, use fallback graphics
+  if (g->bitmaps == NULL)
+    *g = graphic_info[IMG_CHAR_EXCLAM];
+
   // if no in-game graphics defined, always use standard graphic size
   if (g->bitmaps[IMG_BITMAP_GAME] == NULL)
     tilesize = TILESIZE;
@@ -4182,8 +4186,8 @@ static int RequestHandleEvents(unsigned int req_state)
 
              case KSYM_Return:
              case KSYM_y:
-             case KSYM_Y:
 #if defined(TARGET_SDL2)
+             case KSYM_Y:
              case KSYM_Select:
              case KSYM_Menu:
 #if defined(KSYM_Rewind)
@@ -4195,8 +4199,8 @@ static int RequestHandleEvents(unsigned int req_state)
 
              case KSYM_Escape:
              case KSYM_n:
-             case KSYM_N:
 #if defined(TARGET_SDL2)
+             case KSYM_N:
              case KSYM_Back:
 #if defined(KSYM_FastForward)
              case KSYM_FastForward:    /* for Amazon Fire TV remote */
@@ -5150,11 +5154,14 @@ unsigned int MoveDoor(unsigned int door_state)
     {
       /* wait for specified door action post delay */
       if (door_state & DOOR_ACTION_1 && door_state & DOOR_ACTION_2)
-       Delay(MAX(door_1.post_delay, door_2.post_delay));
+       door_delay_value = MAX(door_1.post_delay, door_2.post_delay);
       else if (door_state & DOOR_ACTION_1)
-       Delay(door_1.post_delay);
+       door_delay_value = door_1.post_delay;
       else if (door_state & DOOR_ACTION_2)
-       Delay(door_2.post_delay);
+       door_delay_value = door_2.post_delay;
+
+      while (!DelayReached(&door_delay, door_delay_value))
+       BackToFront();
     }
   }