added using separate constants for tiles in EM engine caves and game logic
[rocksndiamonds.git] / src / game_em / export.h
index acd000b55d44408cbb3406306093e58294749726..b769d9dc10fba0cf64c3d5cc0b7fada874369aa7 100644 (file)
@@ -6,6 +6,7 @@
 // ============================================================================
 
 #include "emerald.h"
+#include "cave.h"
 
 
 // ----------------------------------------------------------------------------
@@ -27,30 +28,31 @@ struct GlobalInfo_EM
 
 struct GameInfo_EM
 {
+  unsigned int random;
+
   boolean level_solved;
   boolean game_over;
 
   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];
 
-  struct LEVEL *lev;
+  struct LOGIC *lev;
   struct PLAYER *ply[MAX_PLAYERS];
+
+  // flags to handle bugs in and changes between different engine versions
+  boolean use_single_button;
+  boolean use_snap_key_bug;
+  boolean use_old_explosions;
 };
 
 struct LevelInfo_EM
 {
   int file_version;
 
-  short cave[CAVE_WIDTH][CAVE_HEIGHT];
-
-  struct LEVEL *lev;
-  struct PLAYER *ply[MAX_PLAYERS];
+  struct CAVE *cav;
 };
 
 struct GraphicInfo_EM
@@ -75,12 +77,12 @@ struct GraphicInfo_EM
 struct EngineSnapshotInfo_EM
 {
   struct GameInfo_EM game_em;
-  unsigned int RandomEM;
-  struct LEVEL lev;
+  struct LOGIC lev;
   struct PLAYER ply[MAX_PLAYERS];
+
+  int frame;
   int screen_x;
   int screen_y;
-  int frame;
 };
 
 
@@ -119,4 +121,7 @@ void SaveEngineSnapshotValues_EM(void);
 
 boolean checkIfAllPlayersFitToScreen(void);
 
+int map_em_element_C_to_X(int);
+int map_em_element_X_to_C(int);
+
 #endif // EXPORT_H