X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Fmain.h;h=c3029da06b48620deb840d8c00048e27ab4760d0;hp=c9f7a15a90301b69a49a26bb9f8368fd897384ec;hb=ba02ca3953ce33b6fe1c568cd45e567a7d682fb4;hpb=595d248bbf094b2a9f02b60ce38477ece6fa4200 diff --git a/src/main.h b/src/main.h index c9f7a15a..c3029da0 100644 --- a/src/main.h +++ b/src/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)) || \ @@ -2276,6 +2279,7 @@ enum GFX_SPECIAL_ARG_TITLE_4, GFX_SPECIAL_ARG_TITLE_5, GFX_SPECIAL_ARG_MAIN, + GFX_SPECIAL_ARG_NAMES, GFX_SPECIAL_ARG_LEVELS, GFX_SPECIAL_ARG_LEVELNR, GFX_SPECIAL_ARG_SCORES, @@ -2289,7 +2293,9 @@ enum GFX_SPECIAL_ARG_PREVIEW, GFX_SPECIAL_ARG_CRUMBLED, GFX_SPECIAL_ARG_MAINONLY, + GFX_SPECIAL_ARG_NAMESONLY, GFX_SPECIAL_ARG_TYPENAME, + GFX_SPECIAL_ARG_TYPENAMES, GFX_SPECIAL_ARG_SUBMENU, GFX_SPECIAL_ARG_MENU, GFX_SPECIAL_ARG_TOONS, @@ -2524,6 +2530,7 @@ enum #define GAME_MODE_TITLE_4 GFX_SPECIAL_ARG_TITLE_4 #define GAME_MODE_TITLE_5 GFX_SPECIAL_ARG_TITLE_5 #define GAME_MODE_MAIN GFX_SPECIAL_ARG_MAIN +#define GAME_MODE_NAMES GFX_SPECIAL_ARG_NAMES #define GAME_MODE_LEVELS GFX_SPECIAL_ARG_LEVELS #define GAME_MODE_LEVELNR GFX_SPECIAL_ARG_LEVELNR #define GAME_MODE_SCORES GFX_SPECIAL_ARG_SCORES @@ -2537,7 +2544,9 @@ enum #define GAME_MODE_PSEUDO_PREVIEW GFX_SPECIAL_ARG_PREVIEW #define GAME_MODE_PSEUDO_CRUMBLED GFX_SPECIAL_ARG_CRUMBLED #define GAME_MODE_PSEUDO_MAINONLY GFX_SPECIAL_ARG_MAINONLY +#define GAME_MODE_PSEUDO_NAMESONLY GFX_SPECIAL_ARG_NAMESONLY #define GAME_MODE_PSEUDO_TYPENAME GFX_SPECIAL_ARG_TYPENAME +#define GAME_MODE_PSEUDO_TYPENAMES GFX_SPECIAL_ARG_TYPENAMES #define GAME_MODE_PSEUDO_SUBMENU GFX_SPECIAL_ARG_SUBMENU #define GAME_MODE_PSEUDO_MENU GFX_SPECIAL_ARG_MENU #define GAME_MODE_PSEUDO_TOONS GFX_SPECIAL_ARG_TOONS @@ -2561,8 +2570,8 @@ enum // program information and versioning definitions #define PROGRAM_VERSION_SUPER 4 #define PROGRAM_VERSION_MAJOR 2 -#define PROGRAM_VERSION_MINOR 0 -#define PROGRAM_VERSION_PATCH 3 +#define PROGRAM_VERSION_MINOR 2 +#define PROGRAM_VERSION_PATCH 0 #define PROGRAM_VERSION_EXTRA "" #define PROGRAM_TITLE_STRING "Rocks'n'Diamonds" @@ -2641,6 +2650,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 @@ -2648,6 +2658,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 @@ -2879,9 +2890,15 @@ struct RequestInfo int anim_mode; int align; int valign; + int sort_priority; boolean autowrap; boolean centered; boolean wrap_single_words; + + // run-time values + Bitmap *bitmap; + int sx, sy; + int xsize, ysize; }; struct PreviewInfo @@ -3219,6 +3236,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; @@ -3237,6 +3259,8 @@ struct GlobalInfo int anim_status_next; boolean use_envelope_request; + + char **user_names; }; struct ElementChangeInfo @@ -3629,15 +3653,13 @@ extern DrawBuffer *fieldbuffer; extern DrawBuffer *drawto_field; extern int game_status; -extern boolean game_status_last_screen; +extern int 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];