X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fmain.h;h=4452a9bdc0f7bf2996f26156b7f06741b02e883f;hb=52a2f0ac5b1b0c92a284eec850c044fbc1da5aea;hp=6c6c9830b5f51e03783e2ecbcc12afd8f64d0085;hpb=372e96f519a2866624c49616c894ebf2b24a316b;p=rocksndiamonds.git diff --git a/src/main.h b/src/main.h index 6c6c9830..4452a9bd 100644 --- a/src/main.h +++ b/src/main.h @@ -4,7 +4,7 @@ // (c) 1995-2014 by Artsoft Entertainment // Holger Schemel // info@artsoft.org -// http://www.artsoft.org/ +// https://www.artsoft.org/ // ---------------------------------------------------------------------------- // main.h // ============================================================================ @@ -808,6 +808,9 @@ #define IS_DC_STEELWALL_2(e) ((e) >= EL_DC_STEELWALL_2_LEFT && \ (e) <= EL_DC_STEELWALL_2_SINGLE) +// !!! IMPROVE THIS !!! +#define IS_EM_ELEMENT(e) (map_element_EM_to_RND_cave(map_element_RND_to_EM_cave(e)) == (e)) + #define MM_WALL_BASE(e) ((e) & 0xfff0) #define MM_WALL_BITS(e) ((e) & 0x000f) @@ -817,13 +820,13 @@ #if 1 #define TILE_GFX_ELEMENT(x, y) \ (GfxElement[x][y] != EL_UNDEFINED && \ - Feld[x][y] != EL_EXPLOSION ? \ - GfxElement[x][y] : Feld[x][y]) + Tile[x][y] != EL_EXPLOSION ? \ + GfxElement[x][y] : Tile[x][y]) #else #define TILE_GFX_ELEMENT(x, y) \ GFX_ELEMENT(GfxElement[x][y] != EL_UNDEFINED && \ - Feld[x][y] != EL_EXPLOSION ? \ - GfxElement[x][y] : Feld[x][y]) + Tile[x][y] != EL_EXPLOSION ? \ + GfxElement[x][y] : Tile[x][y]) #endif // !!! "use sound" deactivated due to problems with level "bug machine" !!! @@ -844,12 +847,12 @@ #define IS_PLAYER(x, y) (ELEM_IS_PLAYER(StorePlayer[x][y])) -#define IS_FREE(x, y) (Feld[x][y] == EL_EMPTY && !IS_PLAYER(x, y)) -#define IS_FREE_OR_PLAYER(x, y) (Feld[x][y] == EL_EMPTY) +#define IS_FREE(x, y) (Tile[x][y] == EL_EMPTY && !IS_PLAYER(x, y)) +#define IS_FREE_OR_PLAYER(x, y) (Tile[x][y] == EL_EMPTY) #define IS_MOVING(x,y) (MovPos[x][y] != 0) #define IS_FALLING(x,y) (MovPos[x][y] != 0 && MovDir[x][y] == MV_DOWN) -#define IS_BLOCKED(x,y) (Feld[x][y] == EL_BLOCKED) +#define IS_BLOCKED(x,y) (Tile[x][y] == EL_BLOCKED) #define IS_MV_DIAGONAL(x) ((x) & MV_HORIZONTAL && (x) & MV_VERTICAL) @@ -880,9 +883,9 @@ #define PLAYERINFO(x,y) (&stored_player[StorePlayer[x][y]-EL_PLAYER_1]) #define SHIELD_ON(p) ((p)->shield_normal_time_left > 0) -#define ENEMY_PROTECTED_FIELD(x,y) (IS_PROTECTED(Feld[x][y]) || \ +#define ENEMY_PROTECTED_FIELD(x,y) (IS_PROTECTED(Tile[x][y]) || \ IS_PROTECTED(Back[x][y])) -#define EXPLOSION_PROTECTED_FIELD(x,y) (IS_EXPLOSION_PROOF(Feld[x][y])) +#define EXPLOSION_PROTECTED_FIELD(x,y) (IS_EXPLOSION_PROOF(Tile[x][y])) #define PLAYER_ENEMY_PROTECTED(x,y) (SHIELD_ON(PLAYERINFO(x, y)) || \ ENEMY_PROTECTED_FIELD(x, y)) #define PLAYER_EXPLOSION_PROTECTED(x,y) (SHIELD_ON(PLAYERINFO(x, y)) || \ @@ -963,7 +966,7 @@ #define MAX_ELEMENTS_IN_GROUP 16 #define MIN_ANDROID_ELEMENTS 1 #define MAX_ANDROID_ELEMENTS 32 -#define MAX_ANDROID_ELEMENTS_OLD 16 // (extended after version 4.1.4.1) +#define MAX_ANDROID_ELEMENTS_OLD 16 // (extended since version 4.2.0.0) // values for elements with content #define MIN_ELEMENT_CONTENTS 1 @@ -1898,7 +1901,10 @@ #define EL_MM_END_2 (EL_DF_START2 + 430) #define EL_MM_END EL_MM_END_2 -#define NUM_FILE_ELEMENTS 1215 +#define EL_SPRING_LEFT 1215 +#define EL_SPRING_RIGHT 1216 + +#define NUM_FILE_ELEMENTS 1217 // "real" (and therefore drawable) runtime elements @@ -2557,15 +2563,15 @@ enum // program information and versioning definitions #define PROGRAM_VERSION_SUPER 4 -#define PROGRAM_VERSION_MAJOR 1 -#define PROGRAM_VERSION_MINOR 4 -#define PROGRAM_VERSION_PATCH 2 +#define PROGRAM_VERSION_MAJOR 2 +#define PROGRAM_VERSION_MINOR 0 +#define PROGRAM_VERSION_PATCH 6 #define PROGRAM_VERSION_EXTRA "" #define PROGRAM_TITLE_STRING "Rocks'n'Diamonds" #define PROGRAM_AUTHOR_STRING "Holger Schemel" #define PROGRAM_EMAIL_STRING "info@artsoft.org" -#define PROGRAM_WEBSITE_STRING "http://www.artsoft.org/" +#define PROGRAM_WEBSITE_STRING "https://www.artsoft.org/" #define PROGRAM_COPYRIGHT_STRING "Copyright \xa9""1995-2020 by Holger Schemel" #define PROGRAM_COMPANY_STRING "A Game by Artsoft Entertainment" @@ -2638,6 +2644,7 @@ enum #define AUTOPLAY_FFWD (1 << 1) #define AUTOPLAY_WARP (1 << 2) #define AUTOPLAY_TEST (1 << 3) +#define AUTOPLAY_FIX (1 << 4) #define AUTOPLAY_WARP_NO_DISPLAY AUTOPLAY_TEST #define AUTOPLAY_MODE_NONE 0 @@ -2645,6 +2652,7 @@ enum #define AUTOPLAY_MODE_FFWD (AUTOPLAY_MODE_PLAY | AUTOPLAY_FFWD) #define AUTOPLAY_MODE_WARP (AUTOPLAY_MODE_FFWD | AUTOPLAY_WARP) #define AUTOPLAY_MODE_TEST (AUTOPLAY_MODE_WARP | AUTOPLAY_TEST) +#define AUTOPLAY_MODE_FIX (AUTOPLAY_MODE_TEST | AUTOPLAY_FIX) #define AUTOPLAY_MODE_WARP_NO_DISPLAY AUTOPLAY_MODE_TEST @@ -3216,6 +3224,11 @@ struct GlobalInfo boolean autoplay_all; boolean autoplay_mode; + char *patchtapes_mode; + char *patchtapes_leveldir; + int patchtapes_level[MAX_TAPES_PER_SET]; + boolean patchtapes_all; + char *convert_leveldir; int convert_level_nr; @@ -3629,12 +3642,10 @@ extern int game_status; extern boolean game_status_last_screen; extern boolean level_editor_test_game; extern boolean network_playing; -extern boolean network_server; -extern SDL_Thread *server_thread; extern int key_joystick_mapping; -extern short Feld[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +extern short Tile[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; extern short Last[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; extern short MovPos[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; extern short MovDir[MAX_LEV_FIELDX][MAX_LEV_FIELDY];