X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame_em%2Fmain_em.h;h=3bbbcfe02e01208ca2c4628d763608c40c2baca9;hb=200ef56170d80105ec6a2c499361a33b9fd3c3c9;hp=2daa1e86f574c7d070b72213f3b96d3cf3740322;hpb=fbc0c609bdd53fdab1d4f3b2b680dbe22aad3515;p=rocksndiamonds.git diff --git a/src/game_em/main_em.h b/src/game_em/main_em.h index 2daa1e86..3bbbcfe0 100644 --- a/src/game_em/main_em.h +++ b/src/game_em/main_em.h @@ -1,3 +1,14 @@ +// ============================================================================ +// 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 @@ -5,14 +16,14 @@ // 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" // ============================================================================ @@ -26,18 +37,18 @@ // constant definitions // ---------------------------------------------------------------------------- -/* values for native Emerald Mine game version */ +// values for native Emerald Mine game version #define FILE_VERSION_EM_UNKNOWN 0 #define FILE_VERSION_EM_V1 1 #define FILE_VERSION_EM_V2 2 #define FILE_VERSION_EM_V3 3 -#define FILE_VERSION_EM_V4 4 /* (there really was no version 4) */ +#define FILE_VERSION_EM_V4 4 // (there really was no version 4) #define FILE_VERSION_EM_V5 5 #define FILE_VERSION_EM_V6 6 #define FILE_VERSION_EM_ACTUAL FILE_VERSION_EM_V6 -/* screen sizes and positions for EM engine */ +// screen sizes and positions for EM engine #define TILESIZE 32 @@ -48,17 +59,17 @@ extern int TILESIZE_VAR; 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 */ +// often used screen positions extern int SX, SY; #define SXSIZE (SCR_FIELDX * TILEX) #define SYSIZE (SCR_FIELDY * TILEY) -/* other settings */ +// other settings #define PLAY_ELEMENT_SOUND FALSE @@ -76,6 +87,9 @@ extern int SX, SY; #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 @@ -90,18 +104,10 @@ 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_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;