X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fmain.h;h=f44d1e30e37d2fafe41e07ad5f71eb888c2342d4;hb=dc10681f0cac355f8b3a7197e058d9e50471181b;hp=336fe8c9a806eb1493c343759489d395874a3d33;hpb=9568a8a313939c3cafcc1e25b9f5625403797373;p=rocksndiamonds.git diff --git a/src/main.h b/src/main.h index 336fe8c9..f44d1e30 100644 --- a/src/main.h +++ b/src/main.h @@ -680,13 +680,26 @@ #define IS_DF_ELEMENT(e) ((e) >= EL_DF_START && \ (e) <= EL_DF_END) +#define IS_MM_MCDUFFIN(e) ((e) >= EL_MM_MCDUFFIN_START && \ + (e) <= EL_MM_MCDUFFIN_END) + +#define IS_DF_LASER(e) ((e) >= EL_DF_LASER_START && \ + (e) <= EL_DF_LASER_END) + #define IS_MM_WALL(e) (((e) >= EL_MM_WALL_START && \ (e) <= EL_MM_WALL_END) || \ ((e) >= EL_DF_WALL_START && \ (e) <= EL_DF_WALL_END)) -#define IS_DF_WALL(e) (((e) >= EL_DF_WALL_START && \ - (e) <= EL_DF_WALL_END)) +#define IS_DF_WALL(e) ((e) >= EL_DF_WALL_START && \ + (e) <= EL_DF_WALL_END) + +#define IS_MM_WALL_EDITOR(e) ((e) == EL_MM_STEEL_WALL || \ + (e) == EL_MM_WOODEN_WALL || \ + (e) == EL_MM_ICE_WALL || \ + (e) == EL_MM_AMOEBA_WALL || \ + (e) == EL_DF_STEEL_WALL || \ + (e) == EL_DF_WOODEN_WALL) #define IS_ENVELOPE(e) ((e) >= EL_ENVELOPE_1 && \ (e) <= EL_ENVELOPE_4) @@ -777,6 +790,9 @@ #define IS_DC_STEELWALL_2(e) ((e) >= EL_DC_STEELWALL_2_LEFT && \ (e) <= EL_DC_STEELWALL_2_SINGLE) +#define MM_WALL_BASE(e) ((e) & 0xfff0) +#define MM_WALL_BITS(e) ((e) & 0x000f) + #define GFX_ELEMENT(e) (element_info[e].gfx_element) /* !!! CHECK THIS !!! */ @@ -1634,8 +1650,13 @@ #define EL_MM_WOODEN_GRID_FIXED_END EL_MM_WOODEN_GRID_FIXED_03 #define EL_MM_FUEL_EMPTY (EL_MM_START + 155) -#define EL_MM_END_1 (EL_MM_START + 155) -#define EL_MM_START_2 (EL_MM_START + 156) +#define EL_MM_UNUSED_156 (EL_MM_START + 156) +#define EL_MM_UNUSED_157 (EL_MM_START + 157) +#define EL_MM_UNUSED_158 (EL_MM_START + 158) +#define EL_MM_UNUSED_159 (EL_MM_START + 159) + +#define EL_MM_END_1 (EL_MM_START + 159) +#define EL_MM_START_2 (EL_MM_START + 160) #define EL_DF_START EL_MM_START_2 #define EL_DF_START2 (EL_DF_START - 240) @@ -1836,22 +1857,22 @@ #define EL_MM_BEAMER_BLUE_16 (EL_MM_BEAMER_BLUE_START + 15) #define EL_MM_BEAMER_BLUE_END EL_MM_BEAMER_BLUE_16 -#define EL_MM_MCDUFFIN 1200 -#define EL_MM_PACMAN 1201 -#define EL_MM_FUSE 1202 -#define EL_MM_STEEL_WALL 1203 -#define EL_MM_WOODEN_WALL 1204 -#define EL_MM_ICE_WALL 1205 -#define EL_MM_AMOEBA_WALL 1206 -#define EL_DF_LASER 1207 -#define EL_DF_RECEIVER 1208 -#define EL_DF_STEEL_WALL 1209 -#define EL_DF_WOODEN_WALL 1210 +#define EL_MM_MCDUFFIN 1204 +#define EL_MM_PACMAN 1205 +#define EL_MM_FUSE 1206 +#define EL_MM_STEEL_WALL 1207 +#define EL_MM_WOODEN_WALL 1208 +#define EL_MM_ICE_WALL 1209 +#define EL_MM_AMOEBA_WALL 1210 +#define EL_DF_LASER 1211 +#define EL_DF_RECEIVER 1212 +#define EL_DF_STEEL_WALL 1213 +#define EL_DF_WOODEN_WALL 1214 #define EL_MM_END_2 (EL_DF_START2 + 430) #define EL_MM_END EL_MM_END_2 -#define NUM_FILE_ELEMENTS 1211 +#define NUM_FILE_ELEMENTS 1215 /* "real" (and therefore drawable) runtime elements */ @@ -2934,6 +2955,7 @@ struct LevelInfo int time; /* available time (seconds) */ int gems_needed; + boolean auto_count_gems; char name[MAX_LEVEL_NAME_LEN + 1]; char author[MAX_LEVEL_AUTHOR_LEN + 1]; @@ -3020,6 +3042,11 @@ struct LevelInfo boolean block_last_field; /* player blocks previous field while moving */ boolean sp_block_last_field; /* player blocks previous field while moving */ + /* values for MM/DF elements */ + boolean mm_laser_red, mm_laser_green, mm_laser_blue; + boolean df_laser_red, df_laser_green, df_laser_blue; + int mm_time_fuse; + /* ('int' instead of 'boolean' because used as selectbox value in editor) */ int use_step_counter; /* count steps instead of seconds for level */