+// ============================================================================
+// Rocks'n'Diamonds - McDuffin Strikes Back!
+// ----------------------------------------------------------------------------
+// (c) 1995-2024 by Artsoft Entertainment
+// Holger Schemel
+// info@artsoft.org
+// https://www.artsoft.org/
+// ----------------------------------------------------------------------------
+// main_em.h
+// ============================================================================
+
#ifndef MAIN_EM_H
#define MAIN_EM_H
// external functions and definitions imported from main program to game_em
// ============================================================================
-#include "../engines.h"
+#include "import_em.h"
// ============================================================================
// functions and definitions that are exported from game_em to main program
// ============================================================================
-#include "export.h"
+#include "export_em.h"
// ============================================================================
extern int SCR_FIELDX, SCR_FIELDY;
-#define MAX_BUF_XSIZE (SCR_FIELDX + 2)
-#define MAX_BUF_YSIZE (SCR_FIELDY + 2)
+#define MAX_BUF_XSIZE (SCR_FIELDX + 2 * CAVE_BUFFER_XOFFSET)
+#define MAX_BUF_YSIZE (SCR_FIELDY + 2 * CAVE_BUFFER_YOFFSET)
/* often used screen positions */
#define DISPLAY_TIME(x) ROUNDED_DIVIDE(x, FRAMES_PER_SECOND)
+#define CAVE_POS_X(x) ((x) - lev.left)
+#define CAVE_POS_Y(x) ((x) - lev.top)
+
// ----------------------------------------------------------------------------
// data structure definitions
extern struct PLAYER ply[MAX_PLAYERS];
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_object[GAME_TILE_MAX][8];
extern struct GraphicInfo_EM graphic_info_em_player[MAX_PLAYERS][PLY_MAX][8];
extern struct GameInfo_EM game_em;
-extern unsigned char tab_blank[TILE_MAX];
-extern unsigned char tab_acid[TILE_MAX];
-extern unsigned char tab_fake_acid[TILE_MAX];
-extern unsigned char tab_amoeba[TILE_MAX];
-extern unsigned char tab_android_move[TILE_MAX];
-extern unsigned short tab_explode_normal[TILE_MAX];
-extern unsigned short tab_explode_dynamite[TILE_MAX];
-
extern Bitmap *screenBitmap;