added using new screen fading option ".auto_delay_unit"
[rocksndiamonds.git] / src / game_mm / export.h
index ba805a2a47b5553cfcfbcb43fd8007b16e722e4b..37c3eec18c06817157ceb181209fb2b9043832c1 100644 (file)
@@ -1,13 +1,13 @@
 #ifndef GAME_MM_EXPORT_H
 #define GAME_MM_EXPORT_H
 
-/* ========================================================================= */
-/* functions and definitions exported from game_mm to main program           */
-/* ========================================================================= */
+// ============================================================================
+// functions and definitions exported from game_mm to main program
+// ============================================================================
 
-/* ------------------------------------------------------------------------- */
-/* constant definitions                                                      */
-/* ------------------------------------------------------------------------- */
+// ----------------------------------------------------------------------------
+// constant definitions
+// ----------------------------------------------------------------------------
 
 #define MM_MAX_PLAYFIELD_WIDTH         MAX_PLAYFIELD_WIDTH
 #define MM_MAX_PLAYFIELD_HEIGHT                MAX_PLAYFIELD_HEIGHT
 #define EL_MM_DUMMY_START_NATIVE       700
 #define EL_MM_DUMMY_END_NATIVE         709
 
-/* elements to be specially mapped */
+// elements to be specially mapped
 #define EL_MM_EMPTY_NATIVE             0
 #define EL_DF_EMPTY_NATIVE             304
 
+// sounds
+#define SND_MM_GAME_LEVELTIME_CHARGING 0
+#define SND_MM_GAME_HEALTH_CHARGING    1
 
-/* ------------------------------------------------------------------------- */
-/* data structure definitions                                                */
-/* ------------------------------------------------------------------------- */
+
+// ----------------------------------------------------------------------------
+// data structure definitions
+// ----------------------------------------------------------------------------
 
 struct GlobalInfo_MM
 {
@@ -147,13 +151,14 @@ struct GameInfo_MM
   boolean cheat_no_explosion;
 
   int laser_overload_value;
+  boolean laser_enabled;
 };
 
 struct LevelInfo_MM
 {
-  int file_version;            /* version of file the level was stored with */
-  int game_version;            /* version of game engine to play this level */
-  boolean encoding_16bit_field;                /* level contains 16-bit elements */
+  int file_version;            // version of file the level was stored with
+  int game_version;            // version of game engine to play this level
+  boolean encoding_16bit_field;                // level contains 16-bit elements
 
   int fieldx;
   int fieldy;
@@ -166,6 +171,9 @@ struct LevelInfo_MM
   int score[MM_LEVEL_SCORE_ELEMENTS];
   int amoeba_speed;
   int time_fuse;
+  int time_bomb;
+  int time_ball;
+  int time_block;
 
   short field[MAX_PLAYFIELD_WIDTH][MAX_PLAYFIELD_HEIGHT];
 };
@@ -177,12 +185,32 @@ struct GraphicInfo_MM
 struct EngineSnapshotInfo_MM
 {
   struct GameInfo_MM game_mm;
+
+  struct LaserInfo laser;
+
+  short Ur[MAX_PLAYFIELD_WIDTH][MAX_PLAYFIELD_HEIGHT];
+  short Hit[MAX_PLAYFIELD_WIDTH][MAX_PLAYFIELD_HEIGHT];
+  short Box[MAX_PLAYFIELD_WIDTH][MAX_PLAYFIELD_HEIGHT];
+  short Angle[MAX_PLAYFIELD_WIDTH][MAX_PLAYFIELD_HEIGHT];
+  short Frame[MAX_PLAYFIELD_WIDTH][MAX_PLAYFIELD_HEIGHT];
+
+  short LX,LY, XS,YS, ELX,ELY;
+  short CT,Ct;
+
+  int last_LX, last_LY, last_hit_mask;
+  int hold_x, hold_y;
+  int pacman_nr;
+
+  unsigned int rotate_delay;
+  unsigned int pacman_delay;
+  unsigned int energy_delay;
+  unsigned int overload_delay;
 };
 
 
-/* ------------------------------------------------------------------------- */
-/* exported functions                                                        */
-/* ------------------------------------------------------------------------- */
+// ----------------------------------------------------------------------------
+// exported functions
+// ----------------------------------------------------------------------------
 
 extern struct GlobalInfo_MM global_mm_info;
 extern struct GameInfo_MM game_mm;
@@ -191,33 +219,37 @@ extern struct EngineSnapshotInfo_MM engine_snapshot_mm;
 
 extern short Ur[MM_MAX_PLAYFIELD_WIDTH][MM_MAX_PLAYFIELD_HEIGHT];
 
-extern void mm_open_all();
-extern void mm_close_all();
+void mm_open_all(void);
+void mm_close_all(void);
+
+void InitElementProperties_MM(void);
+
+void InitGfxBuffers_MM(void);
 
-void InitElementProperties_MM();
+void InitGameEngine_MM(void);
+void InitGameActions_MM(void);
+void GameActions_MM(struct MouseActionInfo, boolean);
 
-extern void InitGfxBuffers_MM();
+void DrawLaser_MM(void);
 
-extern void InitGameEngine_MM();
-extern void InitGameActions_MM();
-extern void GameActions_MM(byte *, boolean);
+boolean ClickElement(int, int, int);
 
-extern void ClickElement(int, int, int);
+unsigned int InitEngineRandom_MM(int);
 
-extern unsigned int InitEngineRandom_MM(int);
+void setLevelInfoToDefaults_MM(void);
+void copyInternalEngineVars_MM(void);
+boolean LoadNativeLevel_MM(char *, boolean);
+void SaveNativeLevel_MM(char *);
 
-extern void setLevelInfoToDefaults_MM();
-extern void copyInternalEngineVars_MM();
-extern boolean LoadNativeLevel_MM(char *, boolean);
-extern void SaveNativeLevel_MM(char *);
+int getFieldbufferOffsetX_MM(void);
+int getFieldbufferOffsetY_MM(void);
 
-extern int getFieldbufferOffsetX_MM();
-extern int getFieldbufferOffsetY_MM();
+void BlitScreenToBitmap_MM(Bitmap *);
+void RedrawPlayfield_MM(void);
 
-extern void BlitScreenToBitmap_MM(Bitmap *);
-extern void RedrawPlayfield_MM();
+void LoadEngineSnapshotValues_MM(void);
+void SaveEngineSnapshotValues_MM(ListNode **);
 
-extern void LoadEngineSnapshotValues_MM();
-extern void SaveEngineSnapshotValues_MM(ListNode **);
+int getButtonFromTouchPosition(int, int, int, int);
 
-#endif /* GAME_MM_EXPORT_H */
+#endif // GAME_MM_EXPORT_H