added overlay touch buttons for door request dialog
[rocksndiamonds.git] / src / init.c
index eb18b6da49da8f47cdd69267a4e5742512550655..1e77ca470bac29a2fb1da646ca27480fc3ef0540 100644 (file)
@@ -275,6 +275,13 @@ static void InitBitmapPointers(void)
 
 void InitImageTextures(void)
 {
+  static int texture_graphics[] =
+  {
+    IMG_GFX_REQUEST_BUTTON_TOUCH_YES,
+    IMG_GFX_REQUEST_BUTTON_TOUCH_NO,
+    IMG_GFX_REQUEST_BUTTON_TOUCH_CONFIRM,
+    -1
+  };
   int i, j, k;
 
   FreeAllImageTextures();
@@ -300,6 +307,9 @@ void InitImageTextures(void)
       }
     }
   }
+
+  for (i = 0; texture_graphics[i] > -1; i++)
+    CreateImageTextures(texture_graphics[i]);
 }
 
 #if 1
@@ -1476,7 +1486,7 @@ static void set_graphic_parameters_ext(int graphic, int *parameter,
   else
     g->anim_frames = 1;
 
-  if (g->anim_frames == 0)             // frames must be at least 1
+  if (g->anim_frames < 1)              // frames must be at least 1
     g->anim_frames = 1;
 
   g->anim_frames_per_line =
@@ -1484,7 +1494,7 @@ static void set_graphic_parameters_ext(int graphic, int *parameter,
      parameter[GFX_ARG_FRAMES_PER_LINE] : anim_frames_per_line);
 
   g->anim_delay = parameter[GFX_ARG_DELAY];
-  if (g->anim_delay == 0)              // delay must be at least 1
+  if (g->anim_delay < 1)               // delay must be at least 1
     g->anim_delay = 1;
 
   g->anim_mode = parameter[GFX_ARG_ANIM_MODE];
@@ -1552,6 +1562,9 @@ static void set_graphic_parameters_ext(int graphic, int *parameter,
   g->x            = parameter[GFX_ARG_X];      // (may be uninitialized,
   g->y            = parameter[GFX_ARG_Y];      // unlike src_x and src_y)
 
+  if (g->step_delay < 1)                       // delay must be at least 1
+    g->step_delay = 1;
+
   // this is only used for drawing font characters
   g->draw_xoffset = parameter[GFX_ARG_DRAW_XOFFSET];
   g->draw_yoffset = parameter[GFX_ARG_DRAW_YOFFSET];