rnd-20040129-1-src
[rocksndiamonds.git] / src / main.h
index f449795aac7722dd4d1ed5999ff376df10a72d55..9d78b18a008fdf70bded85d3c9fdaea6cbce07db 100644 (file)
 #define EL_EXPANDABLE_WALL_GROWING     (EL_FIRST_RUNTIME_UNREAL + 8)
 #define EL_FLAMES                      (EL_FIRST_RUNTIME_UNREAL + 9)
 #define EL_PLAYER_IS_LEAVING           (EL_FIRST_RUNTIME_UNREAL + 10)
-#define EL_QUICKSAND_FILLING           (EL_FIRST_RUNTIME_UNREAL + 11)
-#define EL_MAGIC_WALL_FILLING          (EL_FIRST_RUNTIME_UNREAL + 12)
-#define EL_BD_MAGIC_WALL_FILLING       (EL_FIRST_RUNTIME_UNREAL + 13)
+#define EL_PLAYER_IS_EXPLODING_1       (EL_FIRST_RUNTIME_UNREAL + 11)
+#define EL_PLAYER_IS_EXPLODING_2       (EL_FIRST_RUNTIME_UNREAL + 12)
+#define EL_PLAYER_IS_EXPLODING_3       (EL_FIRST_RUNTIME_UNREAL + 13)
+#define EL_PLAYER_IS_EXPLODING_4       (EL_FIRST_RUNTIME_UNREAL + 14)
+#define EL_QUICKSAND_FILLING           (EL_FIRST_RUNTIME_UNREAL + 15)
+#define EL_MAGIC_WALL_FILLING          (EL_FIRST_RUNTIME_UNREAL + 16)
+#define EL_BD_MAGIC_WALL_FILLING       (EL_FIRST_RUNTIME_UNREAL + 17)
 
 /* dummy elements (never used as game elements, only used as graphics) */
-#define EL_FIRST_DUMMY                 (EL_FIRST_RUNTIME_UNREAL + 14)
+#define EL_FIRST_DUMMY                 (EL_FIRST_RUNTIME_UNREAL + 18)
 
 #define EL_STEELWALL_TOPLEFT                   (EL_FIRST_DUMMY + 0)
 #define EL_STEELWALL_TOPRIGHT                  (EL_FIRST_DUMMY + 1)
@@ -1318,6 +1322,8 @@ struct LevelFileInfo
 {
   int nr;
   int type;
+  boolean packed;
+  char *basename;
   char *filename;
 };
 
@@ -1477,12 +1483,16 @@ struct ElementGroupInfo
   int num_elements;                    /* number of elements in this group */
   short element[MAX_ELEMENTS_IN_GROUP];        /* list of elements in this group */
 
+  int choice_mode;             /* how to choose element from group */
+
   /* ---------- internal values used at runtime when playing ---------- */
 
   /* the following is the same as above, but with recursively resolved group
      elements (group elements may also contain further group elements!) */
   int num_elements_resolved;
   short element_resolved[NUM_FILE_ELEMENTS];
+
+  int choice_pos;              /* current element choice position */
 };
 
 struct ElementInfo