added optional button to restart game (door, panel and touch variants)
[rocksndiamonds.git] / src / game_mm / export.h
index e9d84fda44a870cfea5940571bdbf5e6595275c8..1d063969510dadd2c37382dd25e1875d9ef50b76 100644 (file)
@@ -34,7 +34,7 @@
 
 
 #define EL_MM_START_1_NATIVE           0
-#define EL_MM_END_1_NATIVE             155
+#define EL_MM_END_1_NATIVE             159
 
 #define EL_MM_CHAR_START_NATIVE                160
 #define EL_MM_CHAR_END_NATIVE          239
@@ -42,6 +42,9 @@
 #define EL_MM_START_2_NATIVE           240
 #define EL_MM_END_2_NATIVE             430
 
+#define EL_MM_START_3_NATIVE           431
+#define EL_MM_END_3_NATIVE             450
+
 #define EL_MM_RUNTIME_START_NATIVE     500
 #define EL_MM_RUNTIME_END_NATIVE       504
 
@@ -141,10 +144,13 @@ struct GameInfo_MM
   int lights_still_needed;
   int num_keys;
   int ball_choice_pos;         // current content element choice position
+  boolean laser_red, laser_green, laser_blue;
 
+  boolean has_mcduffin;
   boolean level_solved;
   boolean game_over;
   int game_over_cause;
+  char *game_over_message;
 
   boolean cheat_no_overload;
   boolean cheat_no_explosion;
@@ -164,7 +170,8 @@ struct LevelInfo_MM
   int time;
   int kettles_needed;
   boolean auto_count_kettles;
-  boolean laser_red, laser_green, laser_blue;
+  boolean mm_laser_red, mm_laser_green, mm_laser_blue;
+  boolean df_laser_red, df_laser_green, df_laser_blue;
   char name[MM_MAX_LEVEL_NAME_LEN + 1];
   char author[MM_MAX_LEVEL_AUTHOR_LEN + 1];
   int score[MM_LEVEL_SCORE_ELEMENTS];
@@ -177,6 +184,8 @@ struct LevelInfo_MM
   int num_ball_contents;
   int ball_choice_mode;
   int ball_content[MM_MAX_BALL_CONTENTS];
+  boolean rotate_ball_content;
+  boolean explode_ball;
 
   short field[MAX_PLAYFIELD_WIDTH][MAX_PLAYFIELD_HEIGHT];
 };
@@ -192,8 +201,10 @@ struct EngineSnapshotInfo_MM
   short Box[MAX_PLAYFIELD_WIDTH][MAX_PLAYFIELD_HEIGHT];
   short Angle[MAX_PLAYFIELD_WIDTH][MAX_PLAYFIELD_HEIGHT];
 
-  short LX,LY, XS,YS, ELX,ELY;
-  short CT,Ct;
+  short LX, LY;
+  short XS, YS;
+  short ELX, ELY;
+  short CT, Ct;
 
   int last_LX, last_LY, last_hit_mask;
   int hold_x, hold_y;
@@ -227,7 +238,7 @@ void InitGameActions_MM(void);
 void GameActions_MM(struct MouseActionInfo);
 
 void DrawLaser_MM(void);
-void DrawTileCursor_MM(int, boolean);
+void DrawTileCursor_MM(int, int, boolean);
 
 boolean ClickElement(int, int, int);
 
@@ -241,6 +252,10 @@ void SaveNativeLevel_MM(char *);
 int getFieldbufferOffsetX_MM(void);
 int getFieldbufferOffsetY_MM(void);
 
+int getFlippedTileX_MM(int);
+int getFlippedTileY_MM(int);
+int getFlippedTileXY_MM(int);
+
 void BlitScreenToBitmap_MM(Bitmap *);
 void RedrawPlayfield_MM(void);