#ifndef MAIN_EM_H
#define MAIN_EM_H
-/* ========================================================================= */
-/* external functions and definitions imported from main program to game_em */
-/* ========================================================================= */
+// ============================================================================
+// external functions and definitions imported from main program to game_em
+// ============================================================================
#include "../engines.h"
-/* ========================================================================= */
-/* functions and definitions that are exported from game_em to main program */
-/* ========================================================================= */
+// ============================================================================
+// functions and definitions that are exported from game_em to main program
+// ============================================================================
#include "export.h"
-/* ========================================================================= */
-/* internal functions and definitions that are not exported to main program */
-/* ========================================================================= */
+// ============================================================================
+// internal functions and definitions that are not exported to main program
+// ============================================================================
#include "global.h"
-#include "sample.h"
-/* ------------------------------------------------------------------------- */
-/* constant definitions */
-/* ------------------------------------------------------------------------- */
+// ----------------------------------------------------------------------------
+// constant definitions
+// ----------------------------------------------------------------------------
/* values for native Emerald Mine game version */
#define FILE_VERSION_EM_UNKNOWN 0
#define FILE_VERSION_EM_ACTUAL FILE_VERSION_EM_V6
-/* level sizes and positions for EM engine */
+/* screen sizes and positions for EM engine */
-#define WIDTH EM_MAX_CAVE_WIDTH
-#define HEIGHT EM_MAX_CAVE_HEIGHT
+#define TILESIZE 32
-/* screen sizes and positions for EM engine */
+extern int TILESIZE_VAR;
+
+#define TILEX TILESIZE_VAR
+#define TILEY TILESIZE_VAR
+
+extern int SCR_FIELDX, SCR_FIELDY;
-#define ORIG_TILEX 16
-#define ORIG_TILEY 16
-#define ORIG_SCOREX 8
-#define ORIG_SCOREY 9
-#define ORIG_GFXMENUFONTX 14
-#define ORIG_GFXMENUFONTY 16
-#define ORIG_MENUFONTX 12
-#define ORIG_MENUFONTY 16
-
-#define ZOOM_FACTOR 2
-
-#define TILEX (ORIG_TILEX * ZOOM_FACTOR)
-#define TILEY (ORIG_TILEY * ZOOM_FACTOR)
-#define SCOREX (ORIG_SCOREX * ZOOM_FACTOR)
-#define SCOREY (ORIG_SCOREY * ZOOM_FACTOR)
-#define GFXMENUFONTX (ORIG_GFXMENUFONTX * ZOOM_FACTOR)
-#define GFXMENUFONTY (ORIG_GFXMENUFONTY * ZOOM_FACTOR)
-#define MENUFONTX (ORIG_MENUFONTX * ZOOM_FACTOR)
-#define MENUFONTY (ORIG_MENUFONTY * ZOOM_FACTOR)
-
-#define ORIG_SCR_MENUX 20
-#define ORIG_SCR_MENUY 12
-#define SCR_MENUX 17
-#define SCR_MENUY 12
-#define SCR_FIELDX 17
-#define SCR_FIELDY 17
-#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 ORIG_MENU_SX ((ORIG_SCR_MENUX - SCR_MENUX) * TILEX / 2)
-#define ORIG_MENU_SY 0
-#define SY 8
-#define SX 8
-#define SY 8
+
+extern int SX, SY;
+
#define SXSIZE (SCR_FIELDX * TILEX)
#define SYSIZE (SCR_FIELDY * TILEY)
+/* other settings */
+#define PLAY_ELEMENT_SOUND FALSE
-/* ------------------------------------------------------------------------- */
-/* macro function definitions */
-/* ------------------------------------------------------------------------- */
+
+// ----------------------------------------------------------------------------
+// macro function definitions
+// ----------------------------------------------------------------------------
#define ROUNDED_DIVIDE(x, y) (((x) + (y) - 1) / (y))
#define DISPLAY_TIME(x) ROUNDED_DIVIDE(x, FRAMES_PER_SECOND)
-/* ------------------------------------------------------------------------- */
-/* data structure definitions */
-/* ------------------------------------------------------------------------- */
-
-/* ------------------------------------------------------------------------- */
-/* exported variables */
-/* ------------------------------------------------------------------------- */
+// ----------------------------------------------------------------------------
+// data structure definitions
+// ----------------------------------------------------------------------------
-extern unsigned long RandomEM;
+// ----------------------------------------------------------------------------
+// exported variables
+// ----------------------------------------------------------------------------
-extern struct LEVEL lev;
+extern struct CAVE cav;
+extern struct LOGIC lev;
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_player[MAX_PLAYERS][SPR_MAX][8];
-
-extern short **Boom;
-extern short **Cave;
-extern short **Next;
-extern short **Draw;
-
+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_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 unsigned short map_obj[8][TILE_MAX];
-extern unsigned short map_spr[2][8][SPR_MAX];
-extern unsigned short map_ttl[128];
-
extern Bitmap *screenBitmap;
-extern Bitmap *scoreBitmap;
-
-extern Bitmap *objBitmap;
-extern Bitmap *sprBitmap;
-extern Bitmap *ttlBitmap;
-extern Bitmap *botBitmap;
-
-extern Pixmap screenPixmap;
-extern Pixmap scorePixmap;
-extern Pixmap spriteBitmap;
-
-extern Pixmap objmaskBitmap;
-extern Pixmap sprmaskBitmap;
-
-extern GC spriteGC;
-/* ------------------------------------------------------------------------- */
-/* exported functions */
-/* ------------------------------------------------------------------------- */
+// ----------------------------------------------------------------------------
+// exported functions
+// ----------------------------------------------------------------------------
-#endif /* MAIN_EM_H */
+#endif // MAIN_EM_H