added optional button to restart game (door, panel and touch variants)
[rocksndiamonds.git] / src / game_mm / mm_init.c
index 73ab232dc4a2fc9072f568eda0619f408f2e86c4..b7dcbe35ebcfb424bacc353ca5164cbb728cbb8f 100644 (file)
@@ -4,7 +4,7 @@
 // (c) 1994-2017 by Artsoft Entertainment
 //                         Holger Schemel
 //                 info@artsoft.org
-//                 http://www.artsoft.org/
+//                 https://www.artsoft.org/
 // ----------------------------------------------------------------------------
 // mm_init.c
 // ============================================================================
 #include "mm_main.h"
 
 
+Bitmap *drawto_mm;
+
 struct EngineSnapshotInfo_MM engine_snapshot_mm;
 
 
+void InitGfxBuffers_MM(void)
+{
+  ReCreateBitmap(&drawto_mm, video.width, video.height);
+}
+
 unsigned int InitEngineRandom_MM(int seed)
 {
   return InitEngineRandom(seed);
 }
 
-void InitElementProperties_MM()
+void InitElementProperties_MM(void)
 {
-  int i,j;
+  int i, j;
 
   static int ep_grid[] =
   {
@@ -171,6 +178,15 @@ void InitElementProperties_MM()
   };
   static int ep_pacman_num = sizeof(ep_pacman) / sizeof(int);
 
+  static int ep_envelope[] =
+  {
+    EL_ENVELOPE_1,
+    EL_ENVELOPE_2,
+    EL_ENVELOPE_3,
+    EL_ENVELOPE_4,
+  };
+  static int ep_envelope_num = sizeof(ep_envelope) / sizeof(int);
+
   static long ep_bit[] =
   {
     EP_BIT_GRID,
@@ -186,6 +202,7 @@ void InitElementProperties_MM()
     EP_BIT_INACTIVE,
     EP_BIT_WALL,
     EP_BIT_PACMAN,
+    EP_BIT_ENVELOPE,
   };
   static int *ep_array[] =
   {
@@ -202,6 +219,7 @@ void InitElementProperties_MM()
     ep_inactive,
     ep_wall,
     ep_pacman,
+    ep_envelope,
   };
   static int *ep_num[] =
   {
@@ -218,28 +236,25 @@ void InitElementProperties_MM()
     &ep_inactive_num,
     &ep_wall_num,
     &ep_pacman_num,
+    &ep_envelope_num,
   };
   static int num_properties = sizeof(ep_num) / sizeof(int *);
 
-  for(i = 0; i < MAX_ELEMENTS; i++)
+  for (i = 0; i < MAX_ELEMENTS; i++)
     Elementeigenschaften[i] = 0;
 
-  for(i = 0; i < num_properties; i++)
-    for(j = 0; j < *(ep_num[i]); j++)
+  for (i = 0; i < num_properties; i++)
+    for (j = 0; j < *(ep_num[i]); j++)
       Elementeigenschaften[(ep_array[i])[j]] |= ep_bit[i];
 
-  for(i = EL_CHAR_START; i <= EL_CHAR_END; i++)
+  for (i = EL_CHAR_START; i <= EL_CHAR_END; i++)
     Elementeigenschaften[i] |= (EP_BIT_CHAR | EP_BIT_INACTIVE);
 
-  for(i = EL_WALL_START; i <= EL_WALL_END; i++)
+  for (i = EL_WALL_START; i <= EL_WALL_END; i++)
     Elementeigenschaften[i] |= EP_BIT_WALL;
 }
 
-void mm_open_all()
+void mm_open_all(void)
 {
   InitElementProperties_MM();
 }
-
-void mm_close_all()
-{
-}