rnd-20030421-1-src
[rocksndiamonds.git] / src / main.c
index 2c77e70aa0ca8182e7598ac27e2baf28254bef2c..e9817ae3b7e59b8a8dc1cf13b13ad10c8b57f503 100644 (file)
@@ -47,6 +47,7 @@ short                 MovDelay[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 short                  Store[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 short                  Store2[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 short                  StorePlayer[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+short                  Back[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 boolean                        Stop[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 short                  JustStopped[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 short                  AmoebaNr[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
@@ -55,8 +56,7 @@ short                 AmoebaCnt2[MAX_NUM_AMOEBA];
 short                  ExplodePhase[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 short                  ExplodeField[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 
-unsigned long          Properties1[MAX_NUM_ELEMENTS];
-unsigned long          Properties2[MAX_NUM_ELEMENTS];
+unsigned long          Properties[MAX_NUM_ELEMENTS][NUM_EP_BITFIELDS];
 
 int                    GfxFrame[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 int                    GfxAction[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
@@ -289,42 +289,45 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] =
     "blue key"
   },
   {
-    "gate_1",
+    "gate_1_closed",
     "gate",
     "red door"
   },
   {
-    "gate_2",
+    "gate_2_closed",
     "gate",
     "yellow door"
   },
   {
-    "gate_3",
+    "gate_3_closed",
     "gate",
     "green door"
   },
   {
-    "gate_4",
+    "gate_4_closed",
     "gate",
     "blue door"
   },
   {
-    "gate_1_gray",
+    "gate_1_gray_closed",
     "gate",
     "gray door (opened by red key)"
   },
   {
-    "gate_2_gray",
+    "gate_2_gray_closed",
     "gate",
-    "gray door (opened by yellow key)"},
+    "gray door (opened by yellow key)"
+  },
   {
-    "gate_3_gray",
+    "gate_3_gray_closed",
     "gate",
-    "gray door (opened by green key)"},
+    "gray door (opened by green key)"
+  },
   {
-    "gate_4_gray",
+    "gate_4_gray_closed",
     "gate",
-    "gray door (opened by blue key)"},
+    "gray door (opened by blue key)"
+  },
   {
     "dynamite",
     "dynamite",
@@ -1115,22 +1118,22 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] =
     "growing wall (any direction)"
   },
   {
-    "em_gate_1",
+    "em_gate_1_closed",
     "gate",
     "red door (EM style)"
   },
   {
-    "em_gate_2",
+    "em_gate_2_closed",
     "gate",
     "yellow door (EM style)"
   },
   {
-    "em_gate_3",
+    "em_gate_3_closed",
     "gate",
     "green door (EM style)"
   },
   {
-    "em_gate_4",
+    "em_gate_4_closed",
     "gate",
     "blue door (EM style)"
   },
@@ -1350,22 +1353,22 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] =
     "chip (lower half)"
   },
   {
-    "em_gate_1_gray",
+    "em_gate_1_gray_closed",
     "gate",
     "gray door (EM style, red key)"
   },
   {
-    "em_gate_2_gray",
+    "em_gate_2_gray_closed",
     "gate",
     "gray door (EM style, yellow key)"
   },
   {
-    "em_gate_3_gray",
+    "em_gate_3_gray_closed",
     "gate",
     "gray door (EM style, green key)"
   },
   {
-    "em_gate_4_gray",
+    "em_gate_4_gray_closed",
     "gate",
     "gray door (EM style, blue key)"
   },
@@ -2774,6 +2777,86 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] =
     "magic_wall",
     "-"
   },
+  {
+    "gate_1_open",
+    "gate",
+    "red door"
+  },
+  {
+    "gate_2_open",
+    "gate",
+    "yellow door"
+  },
+  {
+    "gate_3_open",
+    "gate",
+    "green door"
+  },
+  {
+    "gate_4_open",
+    "gate",
+    "blue door"
+  },
+  {
+    "gate_1_gray_open",
+    "gate",
+    "gray door (opened by red key)"
+  },
+  {
+    "gate_2_gray_open",
+    "gate",
+    "gray door (opened by yellow key)"
+  },
+  {
+    "gate_3_gray_open",
+    "gate",
+    "gray door (opened by green key)"
+  },
+  {
+    "gate_4_gray_open",
+    "gate",
+    "gray door (opened by blue key)"
+  },
+  {
+    "em_gate_1_open",
+    "gate",
+    "red door (EM style)"
+  },
+  {
+    "em_gate_2_open",
+    "gate",
+    "yellow door (EM style)"
+  },
+  {
+    "em_gate_3_open",
+    "gate",
+    "green door (EM style)"
+  },
+  {
+    "em_gate_4_open",
+    "gate",
+    "blue door (EM style)"
+  },
+  {
+    "em_gate_1_gray_open",
+    "gate",
+    "gray door (EM style, red key)"
+  },
+  {
+    "em_gate_2_gray_open",
+    "gate",
+    "gray door (EM style, yellow key)"
+  },
+  {
+    "em_gate_3_gray_open",
+    "gate",
+    "gray door (EM style, green key)"
+  },
+  {
+    "em_gate_4_gray_open",
+    "gate",
+    "gray door (EM style, blue key)"
+  },
 
   /* ----------------------------------------------------------------------- */
   /* "unreal" (and therefore not drawable) runtime elements                  */