rnd-20041017-2-src
[rocksndiamonds.git] / src / main.h
index e0b60503eca362496070f7b37088b89a5ec7ac87..134ce8033b2017703137d83a6a9e4c947616f729 100644 (file)
 #define MIN_ELEMENT_CONTENTS   1
 #define STD_ELEMENT_CONTENTS   4
 #define MAX_ELEMENT_CONTENTS   8
+#define NUM_MAGIC_BALL_CONTENTS        8
 
 #define LEVEL_SCORE_ELEMENTS   16      /* level elements with score */
 
 
 /* the following EMC style elements are currently not implemented in R'n'D */
 #define EL_BALLOON_SWITCH_NONE         667
-#define EL_EMC_LEVEL_BORDER            668
-#define EL_EMC_ANDROID                 669
-#define EL_EMC_ANDROID_RIGHT           670
-#define EL_EMC_ANDROID_UP              671
-#define EL_EMC_ANDROID_LEFT            672
-#define EL_EMC_ANDROID_DOWN            673
-#define EL_EMC_ANDROID_LEFT_UP         674
-#define EL_EMC_ANDROID_LEFT_DOWN       675
-#define EL_EMC_ANDROID_RIGHT_UP                676
-#define EL_EMC_ANDROID_RIGHT_DOWN      677
-#define EL_EMC_GRASS                   678
-#define EL_EMC_GENERATOR_BALL          679
-#define EL_EMC_GROW                    680
-#define EL_EMC_GATE_1                  681
-#define EL_EMC_GATE_2                  682
-#define EL_EMC_GATE_3                  683
-#define EL_EMC_GATE_4                  684
-#define EL_EMC_GATE_5                  685
-#define EL_EMC_GATE_6                  686
-#define EL_EMC_GATE_7                  687
-#define EL_EMC_GATE_8                  688
-#define EL_EMC_GATE_1_GRAY             689
-#define EL_EMC_GATE_2_GRAY             690
-#define EL_EMC_GATE_3_GRAY             691
-#define EL_EMC_GATE_4_GRAY             692
-#define EL_EMC_GATE_5_GRAY             693
-#define EL_EMC_GATE_6_GRAY             694
-#define EL_EMC_GATE_7_GRAY             695
-#define EL_EMC_GATE_8_GRAY             696
-#define EL_EMC_KEY_1                   697
-#define EL_EMC_KEY_2                   698
-#define EL_EMC_KEY_3                   699
-#define EL_EMC_KEY_4                   700
-#define EL_EMC_KEY_5                   701
-#define EL_EMC_KEY_6                   702
-#define EL_EMC_KEY_7                   703
-#define EL_EMC_KEY_8                   704
-#define EL_EMC_BUMPER                  705
-#define EL_EMC_PLANT                   706
-#define EL_EMC_LENSES                  707
-#define EL_EMC_MAGNIFIER               708
-
-#define NUM_FILE_ELEMENTS              709
+#define EL_EM_GATE_5                   668
+#define EL_EM_GATE_6                   669
+#define EL_EM_GATE_7                   670
+#define EL_EM_GATE_8                   671
+#define EL_EM_GATE_5_GRAY              672
+#define EL_EM_GATE_6_GRAY              673
+#define EL_EM_GATE_7_GRAY              674
+#define EL_EM_GATE_8_GRAY              675
+#define EL_EM_KEY_5                    676
+#define EL_EM_KEY_6                    677
+#define EL_EM_KEY_7                    678
+#define EL_EM_KEY_8                    679
+#define EL_EMC_ANDROID                 680
+#define EL_EMC_GRASS                   681
+#define EL_EMC_MAGIC_BALL              682
+#define EL_EMC_MAGIC_BALL_SWITCH       683
+#define EL_EMC_SPRING_BUMPER           684
+#define EL_EMC_PLANT                   685
+#define EL_EMC_LENSES                  686
+#define EL_EMC_MAGNIFIER               687
+#define EL_EMC_WALL_9                  688
+#define EL_EMC_WALL_10                 689
+#define EL_EMC_WALL_11                 690
+#define EL_EMC_WALL_12                 691
+#define EL_EMC_WALL_13                 692
+#define EL_EMC_WALL_14                 693
+#define EL_EMC_WALL_15                 694
+#define EL_EMC_WALL_16                 695
+#define EL_EMC_WALL_SLIPPERY_1         696
+#define EL_EMC_WALL_SLIPPERY_2         697
+#define EL_EMC_WALL_SLIPPERY_3         698
+#define EL_EMC_WALL_SLIPPERY_4         699
+#define EL_EMC_DRIPPER                 700
+
+#define NUM_FILE_ELEMENTS              701
 
 
 /* "real" (and therefore drawable) runtime elements */
@@ -1525,11 +1518,11 @@ struct LevelInfo
 {
   struct LevelFileInfo file_info;
 
-  /* level stored in native format for the native game engines */
-  struct LevelInfo_EM *native_em_level;
-
   int game_engine_type;
 
+  /* level stored in native format for the alternative native game engines */
+  struct LevelInfo_EM *native_em_level;
+
   int file_version;    /* file format version the level is stored with    */
   int game_version;    /* game release version the level was created with */
 
@@ -1539,7 +1532,7 @@ struct LevelInfo
 
   int fieldx, fieldy;
 
-  int time;
+  int time;                            /* available time (seconds) */
   int gems_needed;
 
   char name[MAX_LEVEL_NAME_LEN + 1];
@@ -1561,6 +1554,21 @@ struct LevelInfo
   int time_light;
   int time_timegate;
 
+  /* values for the new EMC elements */
+  int android_move_time;
+  int android_clone_time;
+  boolean ball_random;
+  boolean ball_state_initial;
+  int ball_time;
+  int lenses_score;
+  int magnify_score;
+  int slurp_score;
+  int lenses_time;
+  int magnify_time;
+  int wind_direction_initial;
+  int ball_content[NUM_MAGIC_BALL_CONTENTS][3][3];
+  boolean android_array[16];
+
   int can_move_into_acid_bits; /* bitfield to store property for elements */
   int dont_collide_with_bits;  /* bitfield to store property for elements */