#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 */
-/* ------------------------------------------------------------------------- */
-struct GlobalInfo_MM
-{
-};
+// ----------------------------------------------------------------------------
+// data structure definitions
+// ----------------------------------------------------------------------------
struct CycleList
{
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;
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];
};
-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;
extern struct LevelInfo_MM native_mm_level;
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);
+void DrawTileCursor_MM(int, boolean);
-extern void InitGameEngine_MM();
-extern void InitGameEngine_MM_AfterFadingIn();
-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