changed "http" to "https" in URLs
[rocksndiamonds.git] / src / init.c
index 1d4243db2667c5052b4948793df41d5e58281d2e..2b43180b42f937d8bb27bf2fb4d4ceea0b6cb754 100644 (file)
@@ -4,7 +4,7 @@
 // (c) 1995-2014 by Artsoft Entertainment
 //                         Holger Schemel
 //                 info@artsoft.org
-//                 http://www.artsoft.org/
+//                 https://www.artsoft.org/
 // ----------------------------------------------------------------------------
 // init.c
 // ============================================================================
@@ -77,6 +77,11 @@ static int copy_properties[][5] =
     EL_MOLE_LEFT,              EL_MOLE_RIGHT,
     EL_MOLE_UP,                        EL_MOLE_DOWN
   },
+  {
+    EL_SPRING,
+    EL_SPRING_LEFT,            EL_SPRING_RIGHT,
+    EL_SPRING_LEFT,            EL_SPRING_RIGHT,        // (to match array size)
+  },
   {
     -1,
     -1, -1, -1, -1
@@ -275,6 +280,19 @@ 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,
+    IMG_GFX_GAME_BUTTON_TOUCH_STOP,
+    IMG_GFX_GAME_BUTTON_TOUCH_PAUSE,
+    IMG_MENU_BUTTON_TOUCH_BACK,
+    IMG_MENU_BUTTON_TOUCH_NEXT,
+    IMG_MENU_BUTTON_TOUCH_BACK2,
+    IMG_MENU_BUTTON_TOUCH_NEXT2,
+    -1
+  };
   int i, j, k;
 
   FreeAllImageTextures();
@@ -300,24 +318,10 @@ void InitImageTextures(void)
       }
     }
   }
-}
 
-#if 1
-// !!! FIX THIS (CHANGE TO USING NORMAL ELEMENT GRAPHIC DEFINITIONS) !!!
-void SetBitmaps_EM(Bitmap **em_bitmap)
-{
-  em_bitmap[0] = graphic_info[IMG_EMC_OBJECT].bitmap;
-  em_bitmap[1] = graphic_info[IMG_EMC_SPRITE].bitmap;
+  for (i = 0; texture_graphics[i] > -1; i++)
+    CreateImageTextures(texture_graphics[i]);
 }
-#endif
-
-#if 0
-// !!! FIX THIS (CHANGE TO USING NORMAL ELEMENT GRAPHIC DEFINITIONS) !!!
-void SetBitmaps_SP(Bitmap **sp_bitmap)
-{
-  *sp_bitmap = graphic_info[IMG_SP_OBJECTS].bitmap;
-}
-#endif
 
 static int getFontBitmapID(int font_nr)
 {
@@ -1314,6 +1318,7 @@ static void set_graphic_parameters_ext(int graphic, int *parameter,
   g->fade_delay = -1;
   g->post_delay = -1;
   g->auto_delay = -1;
+  g->auto_delay_unit = AUTO_DELAY_UNIT_DEFAULT;
   g->align = ALIGN_CENTER;             // default for title screens
   g->valign = VALIGN_MIDDLE;           // default for title screens
   g->sort_priority = 0;                        // default for title screens
@@ -1475,7 +1480,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 =
@@ -1483,7 +1488,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];
@@ -1551,6 +1556,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];
@@ -1581,6 +1589,8 @@ static void set_graphic_parameters_ext(int graphic, int *parameter,
     g->post_delay = parameter[GFX_ARG_POST_DELAY];
   if (parameter[GFX_ARG_AUTO_DELAY] != ARG_UNDEFINED_VALUE)
     g->auto_delay = parameter[GFX_ARG_AUTO_DELAY];
+  if (parameter[GFX_ARG_AUTO_DELAY_UNIT] != ARG_UNDEFINED_VALUE)
+    g->auto_delay_unit = parameter[GFX_ARG_AUTO_DELAY_UNIT];
   if (parameter[GFX_ARG_ALIGN] != ARG_UNDEFINED_VALUE)
     g->align = parameter[GFX_ARG_ALIGN];
   if (parameter[GFX_ARG_VALIGN] != ARG_UNDEFINED_VALUE)
@@ -2352,6 +2362,8 @@ static int get_special_property_bit(int element, int property_bit_nr)
     { EL_SP_ELECTRON,          15      },
     { EL_BALLOON,              16      },
     { EL_SPRING,               17      },
+    { EL_SPRING_LEFT,          17      },
+    { EL_SPRING_RIGHT,         17      },
     { EL_EMC_ANDROID,          18      },
 
     { -1,                      -1      },
@@ -2857,6 +2869,7 @@ void InitElementPropertiesStatic(void)
     EL_BOMB,
     EL_NUT,
     EL_AMOEBA_DROP,
+    EL_AMOEBA_DROPPING,
     EL_QUICKSAND_FULL,
     EL_QUICKSAND_FAST_FULL,
     EL_MAGIC_WALL_FULL,
@@ -5903,6 +5916,7 @@ void ReloadCustomArtwork(int force_reload)
   InitOverrideArtwork();
 
   force_reload_gfx |= AdjustGraphicsForEMC();
+  force_reload_snd |= AdjustSoundsForEMC();
 
   gfx_new_identifier = getNewArtworkIdentifier(ARTWORK_TYPE_GRAPHICS);
   snd_new_identifier = getNewArtworkIdentifier(ARTWORK_TYPE_SOUNDS);