rnd-20040928-1-src
[rocksndiamonds.git] / src / main.h
index cf06472772eddc6dfaf243b48c13352489bf0ba9..d5afcf7211c8e0d9ae8cf530fe4dcf9cce9e7be3 100644 (file)
 #define EL_SP_GRAVITY_OFF_PORT_LEFT    665
 #define EL_SP_GRAVITY_OFF_PORT_UP      666
 
-#define NUM_FILE_ELEMENTS              667
+
+/* 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_GATE_1                  680
+#define EL_EMC_GATE_2                  681
+#define EL_EMC_GATE_3                  682
+#define EL_EMC_GATE_4                  683
+#define EL_EMC_GATE_5                  684
+#define EL_EMC_GATE_6                  685
+#define EL_EMC_GATE_7                  686
+#define EL_EMC_GATE_8                  687
+#define EL_EMC_GATE_1_GRAY             688
+#define EL_EMC_GATE_2_GRAY             689
+#define EL_EMC_GATE_3_GRAY             690
+#define EL_EMC_GATE_4_GRAY             691
+#define EL_EMC_GATE_5_GRAY             692
+#define EL_EMC_GATE_6_GRAY             693
+#define EL_EMC_GATE_7_GRAY             694
+#define EL_EMC_GATE_8_GRAY             695
+#define EL_EMC_KEY_1                   696
+#define EL_EMC_KEY_2                   697
+#define EL_EMC_KEY_3                   698
+#define EL_EMC_KEY_4                   799
+#define EL_EMC_KEY_5                   700
+#define EL_EMC_KEY_6                   701
+#define EL_EMC_KEY_7                   702
+#define EL_EMC_KEY_8                   703
+#define EL_EMC_BUMPER                  704
+#define EL_EMC_PLANT                   705
+#define EL_EMC_LENSES                  706
+#define EL_EMC_MAGNIFIER               707
+
+#define NUM_FILE_ELEMENTS              708
 
 
 /* "real" (and therefore drawable) runtime elements */
 #define GFX_ARG_POST_DELAY_FIXED               28
 #define GFX_ARG_POST_DELAY_RANDOM              29
 #define GFX_ARG_NAME                           30
+#define GFX_ARG_SCALE_UP_FACTOR                        31
 
-#define NUM_GFX_ARGS                           31
+#define NUM_GFX_ARGS                           32
 
 
 /* values for sound configuration suffixes */
 #define SND_ARG_MODE_LOOP                      0
+#define SND_ARG_VOLUME                         1
+#define SND_ARG_PRIORITY                       2
 
-#define NUM_SND_ARGS                           1
+#define NUM_SND_ARGS                           3
 
 
 /* values for music configuration suffixes */
@@ -1475,6 +1522,13 @@ struct LevelFileInfo
 
 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;
+
   int file_version;    /* file format version the level is stored with    */
   int game_version;    /* game release version the level was created with */
 
@@ -1815,6 +1869,7 @@ struct GraphicInfo
   int crumbled_like;           /* element for cloning crumble graphics */
   int diggable_like;           /* element for cloning digging graphics */
   int border_size;             /* border size for "crumbled" graphics */
+  int scale_up_factor;         /* optional factor for scaling image up */
 
   int anim_delay_fixed;                /* optional delay values for bored and   */
   int anim_delay_random;       /* sleeping player animations (animation */
@@ -1837,6 +1892,8 @@ struct GraphicInfo
 struct SoundInfo
 {
   boolean loop;
+  int volume;
+  int priority;
 };
 
 struct MusicInfo