X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fmain.h;h=38a5bcbf7900b82cc6f01578cf648f97b84a6b05;hb=5ba7f2d9a3f07f342afdf215a3307d5487cb6d43;hp=a20cb5ff496470201abefcad7e3c8e523d06f23c;hpb=59ee2ed2390984e3dbe586363ee6ae01802916a7;p=rocksndiamonds.git diff --git a/src/main.h b/src/main.h index a20cb5ff..38a5bcbf 100644 --- a/src/main.h +++ b/src/main.h @@ -24,6 +24,7 @@ #include "libgame/libgame.h" #include "game_em/game_em.h" +#include "game_sp/game_sp.h" #include "conf_gfx.h" /* include auto-generated data structure definitions */ #include "conf_snd.h" /* include auto-generated data structure definitions */ @@ -359,6 +360,7 @@ #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 @@ -466,9 +468,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 @@ -755,8 +760,23 @@ #define IS_DC_STEELWALL_2(e) ((e) >= EL_DC_STEELWALL_2_LEFT && \ (e) <= EL_DC_STEELWALL_2_SINGLE) +#if 1 + #if 1 #define GFX_ELEMENT(e) (element_info[e].gfx_element) +#else +#define GFX_ELEMENT(e) (element_info[e].gfx_element == \ + (element_info[e].use_gfx_element ? \ + element_info[e].gfx_element : e) ? \ + element_info[e].gfx_element : \ + element_info[e].gfx_element + \ + 0 * printf("::: %d: %d <-> %d\n", \ + e, \ + element_info[e].gfx_element, \ + element_info[e].use_gfx_element ? \ + element_info[e].gfx_element : e)) +#endif + #else #define GFX_ELEMENT(e) (element_info[e].use_gfx_element ? \ element_info[e].gfx_element : e) @@ -1987,12 +2007,12 @@ /* program information and versioning definitions */ #define PROGRAM_VERSION_MAJOR 3 #define PROGRAM_VERSION_MINOR 2 -#define PROGRAM_VERSION_PATCH 5 -#define PROGRAM_VERSION_BUILD 0 +#define PROGRAM_VERSION_PATCH 6 +#define PROGRAM_VERSION_BUILD 2 #define PROGRAM_TITLE_STRING "Rocks'n'Diamonds" #define PROGRAM_AUTHOR_STRING "Holger Schemel" -#define PROGRAM_COPYRIGHT_STRING "Copyright ©1995-2008 by Holger Schemel" +#define PROGRAM_COPYRIGHT_STRING "Copyright ©1995-2009 by Holger Schemel" #define PROGRAM_EMAIL_STRING "info@artsoft.org" #define PROGRAM_WEBSITE_STRING "http://www.artsoft.org/" #define PROGRAM_GAME_BY_STRING "A Game by Artsoft Entertainment" @@ -2080,8 +2100,9 @@ #define GAME_ENGINE_TYPE_UNKNOWN LEVEL_FILE_TYPE_UNKNOWN #define GAME_ENGINE_TYPE_RND LEVEL_FILE_TYPE_RND #define GAME_ENGINE_TYPE_EM LEVEL_FILE_TYPE_EM +#define GAME_ENGINE_TYPE_SP LEVEL_FILE_TYPE_SP -#define NUM_ENGINE_TYPES 3 +#define NUM_ENGINE_TYPES 4 struct BorderInfo @@ -2290,6 +2311,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]; @@ -2355,6 +2378,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 */