rnd-20030421-1-src
[rocksndiamonds.git] / src / main.c
index bcd5dce7d742449b346de7d08f1e968a5650ae7d..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",
@@ -995,64 +998,64 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] =
     "letter 'Z'"
   },
   {
-    "char_ae",
+    "char_bracketleft",
     "char",
-    "letter 'Ä'"
+    "letter '['"
   },
   {
-    "char_oe",
+    "char_backslash",
     "char",
-    "letter 'Ö'"
+    "letter '\\'"
   },
   {
-    "char_ue",
+    "char_bracketright",
     "char",
-    "letter 'Ü'"
+    "letter ']'"
   },
   {
-    "char_copyright",
+    "char_asciicircum",
     "char",
     "letter '^'"
   },
   {
     "char_underscore",
     "char",
-    "letter ''"
+    "letter '_'"
   },
   {
-    "char_empty",
+    "char_copyright",
     "char",
-    "letter ''"
+    "letter '©'"
   },
   {
-    "char_degree",
+    "char_aumlaut",
     "char",
-    "letter ''"
+    "letter 'Ä'"
   },
   {
-    "char_tm",
+    "char_oumlaut",
     "char",
-    "letter ''"
+    "letter 'Ö'"
   },
   {
-    "char_cursor",
+    "char_uumlaut",
     "char",
-    "letter ''"
+    "letter 'Ü'"
   },
   {
-    "char_unused",
+    "char_degree",
     "char",
-    "letter ''"
+    "letter '°'"
   },
   {
-    "char_unused",
+    "char_trademark",
     "char",
-    "letter ''"
+    "letter '®'"
   },
   {
-    "char_unused",
+    "char_cursor",
     "char",
-    "letter ''"
+    "letter ' '"
   },
   {
     "char_unused",
@@ -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                  */