added centering levels that are smaller than the playfield (MM engine)
[rocksndiamonds.git] / src / game_mm / export.h
index 31c01770df18c90b5f1ad8a9f046ff18441ab0d3..2647e829e0c15cd18e95d79dab664ff0884cd34a 100644 (file)
@@ -171,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];
 };
@@ -182,6 +185,26 @@ 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;
 };
 
 
@@ -209,7 +232,7 @@ extern void GameActions_MM(struct MouseActionInfo, boolean);
 
 extern void DrawLaser_MM();
 
-extern void ClickElement(int, int, int);
+extern boolean ClickElement(int, int, int);
 
 extern unsigned int InitEngineRandom_MM(int);
 
@@ -227,4 +250,6 @@ extern void RedrawPlayfield_MM();
 extern void LoadEngineSnapshotValues_MM();
 extern void SaveEngineSnapshotValues_MM(ListNode **);
 
+extern int getButtonFromTouchPosition(int, int, int, int);
+
 #endif /* GAME_MM_EXPORT_H */