removed unneeded 'extern' keyword for function declarations in header files
[rocksndiamonds.git] / src / game_em / export.h
index 9801d0cb55b94f84f1cd42464606b26f976f226a..ae5f9a1b468cd2a922f7ffa42bcf3b4421e776f6 100644 (file)
@@ -353,6 +353,12 @@ enum
   Xsand_stonesand_2,
   Xsand_stonesand_3,
   Xsand_stonesand_4,
+
+#ifdef EM_ENGINE_USE_ADDITIONAL_ELEMENTS
+  Xsand_stonesand_quickout_1,
+  Xsand_stonesand_quickout_2,
+#endif
+
   Xsand_stoneout_1,
   Xsand_stoneout_2,
   Xsand_sandstone_1,
@@ -616,6 +622,8 @@ struct LEVEL
   short ball_array[8][8];      /* ball data */
   short android_array[TILE_MAX];/* android clone table */
   int num_ball_arrays;         /* number of ball data arrays used */
+
+  int exit_x, exit_y;          /* kludge for playing player exit sound */
 };
 
 struct PLAYER
@@ -657,6 +665,11 @@ struct GlobalInfo_EM
 struct GameInfo_EM
 {
   boolean any_player_moving;
+  boolean any_player_snapping;
+
+  boolean use_single_button;
+  boolean use_snap_key_bug;
+
   int last_moving_player;
   int last_player_direction[MAX_PLAYERS];
 };
@@ -669,6 +682,9 @@ struct LevelInfo_EM
 
   struct LEVEL *lev;
   struct PLAYER *ply[MAX_PLAYERS];
+
+  /* used for runtime values */
+  struct GameInfo_EM *game_em;
 };
 
 struct GraphicInfo_EM
@@ -682,6 +698,7 @@ struct GraphicInfo_EM
   Bitmap *crumbled_bitmap;
   int crumbled_src_x, crumbled_src_y;
   int crumbled_border_size;
+  int crumbled_tile_size;
 
   boolean has_crumbled_graphics;
   boolean preserve_background;
@@ -689,29 +706,60 @@ struct GraphicInfo_EM
   int unique_identifier;       /* used to identify needed screen updates */
 };
 
+struct EngineSnapshotInfo_EM
+{
+  struct GameInfo_EM game_em;
+  unsigned int RandomEM;
+  struct LEVEL lev;
+  struct PLAYER ply[MAX_PLAYERS];
+  short Array[4][EM_MAX_CAVE_HEIGHT][EM_MAX_CAVE_WIDTH];
+  int screen_x;
+  int screen_y;
+  int frame;
+  short **Boom;
+  short **Cave;
+  short **Next;
+  short **Draw;
+};
+
 
 /* ------------------------------------------------------------------------- */
 /* exported functions                                                        */
 /* ------------------------------------------------------------------------- */
 
 extern struct GlobalInfo_EM global_em_info;
+extern struct GameInfo_EM game_em;
 extern struct LevelInfo_EM native_em_level;
 extern struct GraphicInfo_EM graphic_info_em_object[TILE_MAX][8];
 extern struct GraphicInfo_EM graphic_info_em_player[MAX_PLAYERS][SPR_MAX][8];
+extern struct EngineSnapshotInfo_EM engine_snapshot_em;
+
+void em_open_all(void);
+void em_close_all(void);
+
+void InitGfxBuffers_EM(void);
+
+void InitGameEngine_EM(void);
+void GameActions_EM(byte *, boolean);
+
+unsigned int InitEngineRandom_EM(int);
+
+void setLevelInfoToDefaults_EM(void);
+boolean LoadNativeLevel_EM(char *, boolean);
 
-extern void em_open_all();
-extern void em_close_all();
+int getFieldbufferOffsetX_EM(void);
+int getFieldbufferOffsetY_EM(void);
 
-extern void InitGameEngine_EM();
-extern void GameActions_EM(byte *, boolean);
+void BackToFront_EM(void);
+void BlitScreenToBitmap_EM(Bitmap *);
+void RedrawPlayfield_EM(boolean);
 
-extern unsigned int InitEngineRND_EM(long);
+void LoadEngineSnapshotValues_EM(void);
+void SaveEngineSnapshotValues_EM(void);
 
-extern void setLevelInfoToDefaults_EM();
-extern boolean LoadNativeLevel_EM(char *);
+boolean checkIfAllPlayersFitToScreen(void);
 
-extern void BlitScreenToBitmap_EM(Bitmap *);
-extern void RedrawPlayfield_EM(boolean);
-extern void DrawGameDoorValues_EM();
+void tab_generate(void);
+void tab_generate_graphics_info_em(void);
 
 #endif /* EXPORT_H */