X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fmain.h;h=6448eb4bed7a296376e6c3549f447d6222485936;hb=72e44014938c9042261b67213a6cd37b7a17488f;hp=a3ce361adbe422a512545977d6e7bad967a7e627;hpb=5f23eef52ec62dc30c388b1016aea87b80873d20;p=rocksndiamonds.git diff --git a/src/main.h b/src/main.h index a3ce361a..6448eb4b 100644 --- a/src/main.h +++ b/src/main.h @@ -60,89 +60,121 @@ #define IN_SCR_FIELD(x,y) ((x)>=BX1 && (x)<=BX2 && (y)>=BY1 &&(y)<=BY2) #define IN_LEV_FIELD(x,y) ((x)>=0 && (x)=0 &&(y)= EL_CUSTOM_START && \ (e) <= EL_CUSTOM_END) @@ -173,7 +205,8 @@ #define PLAYERINFO(x,y) (&stored_player[StorePlayer[x][y]-EL_PLAYER_1]) #define SHIELD_ON(p) ((p)->shield_normal_time_left > 0) -#define PROTECTED_FIELD(x,y) (IS_TUBE(Feld[x][y])) +#define PROTECTED_FIELD(x,y) (IS_ACCESSIBLE_INSIDE(Feld[x][y]) && \ + IS_INDESTRUCTIBLE(Feld[x][y])) #define PLAYER_PROTECTED(x,y) (SHIELD_ON(PLAYERINFO(x, y)) || \ PROTECTED_FIELD(x, y)) @@ -442,21 +475,6 @@ #define EL_CHAR(c) (EL_CHAR_ASCII0 + MAP_FONT_ASCII(c)) -#if 0 -#define EL_CHAR(x) ((x) == 'Ä' ? EL_CHAR_AE : \ - (x) == 'Ö' ? EL_CHAR_OE : \ - (x) == 'Ü' ? EL_CHAR_UE : \ - (x) == 'ä' ? EL_CHAR_AE : \ - (x) == 'ö' ? EL_CHAR_OE : \ - (x) == 'ü' ? EL_CHAR_UE : \ - (x) == '©' ? EL_CHAR_COPYRIGHT : \ - (x) == '_' ? EL_CHAR_UNDERSCORE : \ - (x) == '°' ? EL_CHAR_DEGREE : \ - (x) == '´' ? EL_CHAR_TM : \ - (x) == '|' ? EL_CHAR_CURSOR : \ - EL_CHAR_A + (x) - 'A') -#endif - #define EL_EXPANDABLE_WALL_HORIZONTAL 200 #define EL_EXPANDABLE_WALL_VERTICAL 201 #define EL_EXPANDABLE_WALL_ANY 202 @@ -826,17 +844,20 @@ #define FONT_TEXT_2 9 #define FONT_TEXT_3 10 #define FONT_TEXT_4 11 -#define FONT_INPUT 12 -#define FONT_INPUT_ACTIVE 13 -#define FONT_OPTION_OFF 14 -#define FONT_OPTION_ON 15 -#define FONT_VALUE_1 16 -#define FONT_VALUE_2 17 -#define FONT_VALUE_OLD 18 -#define FONT_TAPE_RECORDER 19 -#define FONT_LEVEL_NUMBER 20 - -#define NUM_FONTS 21 +#define FONT_INPUT_1 12 +#define FONT_INPUT_1_ACTIVE 13 +#define FONT_INPUT_2 14 +#define FONT_INPUT_2_ACTIVE 15 +#define FONT_OPTION_OFF 16 +#define FONT_OPTION_ON 17 +#define FONT_VALUE_1 18 +#define FONT_VALUE_2 19 +#define FONT_VALUE_OLD 20 +#define FONT_LEVEL_NUMBER 21 +#define FONT_TAPE_RECORDER 22 +#define FONT_GAME_INFO 23 + +#define NUM_FONTS 24 #define NUM_INITIAL_FONTS 4 /* values for game_status */ @@ -1001,6 +1022,8 @@ struct LevelInfo boolean gravity; boolean em_slippery_gems; /* EM style "gems slip from wall" behaviour */ + short custom_element_successor[NUM_CUSTOM_ELEMENTS]; + boolean no_level_file; }; @@ -1188,8 +1211,7 @@ extern short AmoebaCnt2[MAX_NUM_AMOEBA]; extern short ExplodePhase[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; extern short ExplodeField[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; -extern unsigned long Properties1[MAX_NUM_ELEMENTS]; -extern unsigned long Properties2[MAX_NUM_ELEMENTS]; +extern unsigned long Properties[MAX_NUM_ELEMENTS][NUM_EP_BITFIELDS]; extern int GfxFrame[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; extern int GfxAction[MAX_LEV_FIELDX][MAX_LEV_FIELDY];