X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fmain.h;h=d47b40686a75dfdf113932272fd9e2b48df710fe;hb=9991027ba0e61f105a15d517461614fce184ba48;hp=4bd8335428844ae4078f843f5ca7e46d77ecb714;hpb=7992b03de18aad8527835dfa03375f3a30a7e673;p=rocksndiamonds.git diff --git a/src/main.h b/src/main.h index 4bd83354..d47b4068 100644 --- a/src/main.h +++ b/src/main.h @@ -358,6 +358,8 @@ #define CA_SET_CE_VALUE 16 #define CA_SET_ENGINE_SCAN_MODE 17 #define CA_SET_PLAYER_INVENTORY 18 +#define CA_SET_CE_ARTWORK 19 +#define CA_SET_LEVEL_RANDOM_SEED 20 #define CA_HEADLINE_LEVEL_ACTIONS 250 #define CA_HEADLINE_PLAYER_ACTIONS 251 @@ -465,9 +467,12 @@ #define CA_ARG_SCAN_MODE_HEADLINE (CA_ARG_SCAN_MODE + 999) #define CA_ARG_INVENTORY 18000 #define CA_ARG_INVENTORY_RESET (CA_ARG_INVENTORY + 0) -#define CA_ARG_INVENTORY_RM_FIRST (CA_ARG_INVENTORY + 1) -#define CA_ARG_INVENTORY_RM_LAST (CA_ARG_INVENTORY + 2) -#define CA_ARG_INVENTORY_RM_ALL (CA_ARG_INVENTORY + 3) +#define CA_ARG_INVENTORY_RM_TARGET (CA_ARG_INVENTORY + 1) +#define CA_ARG_INVENTORY_RM_TRIGGER (CA_ARG_INVENTORY + 2) +#define CA_ARG_INVENTORY_RM_ACTION (CA_ARG_INVENTORY + 3) +#define CA_ARG_INVENTORY_RM_FIRST (CA_ARG_INVENTORY + 4) +#define CA_ARG_INVENTORY_RM_LAST (CA_ARG_INVENTORY + 5) +#define CA_ARG_INVENTORY_RM_ALL (CA_ARG_INVENTORY + 6) #define CA_ARG_INVENTORY_HEADLINE (CA_ARG_INVENTORY + 998) #define CA_ARG_INVENTORY_RM_HEADLINE (CA_ARG_INVENTORY + 999) #define CA_ARG_UNDEFINED 65535 @@ -754,8 +759,12 @@ #define IS_DC_STEELWALL_2(e) ((e) >= EL_DC_STEELWALL_2_LEFT && \ (e) <= EL_DC_STEELWALL_2_SINGLE) +#if 1 +#define GFX_ELEMENT(e) (element_info[e].gfx_element) +#else #define GFX_ELEMENT(e) (element_info[e].use_gfx_element ? \ element_info[e].gfx_element : e) +#endif /* !!! CHECK THIS !!! */ #if 1 @@ -1982,7 +1991,7 @@ /* program information and versioning definitions */ #define PROGRAM_VERSION_MAJOR 3 #define PROGRAM_VERSION_MINOR 2 -#define PROGRAM_VERSION_PATCH 5 +#define PROGRAM_VERSION_PATCH 6 #define PROGRAM_VERSION_BUILD 0 #define PROGRAM_TITLE_STRING "Rocks'n'Diamonds" @@ -2285,6 +2294,8 @@ struct LevelInfo char name[MAX_LEVEL_NAME_LEN + 1]; char author[MAX_LEVEL_AUTHOR_LEN + 1]; + int random_seed; + struct EnvelopeInfo envelope[NUM_ENVELOPES]; int score[LEVEL_SCORE_ELEMENTS]; @@ -2350,6 +2361,7 @@ struct LevelInfo int initial_inventory_content[MAX_PLAYERS][MAX_INITIAL_INVENTORY_SIZE]; boolean em_slippery_gems; /* EM style "gems slip from wall" behaviour */ + boolean em_explodes_by_fire; /* EM style chain explosion behaviour */ boolean use_spring_bug; /* for compatibility with old levels */ boolean use_time_orb_bug; /* for compatibility with old levels */ boolean instant_relocation; /* no visual delay when relocating player */ @@ -2516,7 +2528,7 @@ struct ElementInfo unsigned long properties[NUM_EP_BITFIELDS]; /* element base properties */ boolean use_gfx_element; /* use custom graphic element */ - int gfx_element; /* optional custom graphic element */ + int gfx_element_initial; /* initial optional custom graphic element */ int access_direction; /* accessible from which direction */ @@ -2567,6 +2579,8 @@ struct ElementInfo boolean in_group[NUM_GROUP_ELEMENTS]; + int gfx_element; /* runtime optional custom graphic element */ + int collect_score; /* runtime score value for collecting */ /* count of this element on playfield, calculated after each frame */