X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fmain.h;h=3f88801ccdb440ae79b8d6671371a41cebb798b2;hb=695b9e3d2e2ee94c93d2e804aa3c23dd34f68a25;hp=c191f6ac3e3a685889700bcfffed32211914c62d;hpb=66a60ab1d501cd3a7a666b3012702455927b3b13;p=rocksndiamonds.git diff --git a/src/main.h b/src/main.h index c191f6ac..3f88801c 100644 --- a/src/main.h +++ b/src/main.h @@ -108,6 +108,7 @@ #define EP_THROWABLE 28 #define EP_CAN_EXPLODE 29 #define EP_GRAVITY_REACHABLE 30 +#define EP_DONT_GET_HIT_BY 31 /* values for pre-defined properties */ /* (from here on, values can be changed by inserting new values) */ @@ -548,6 +549,7 @@ #define IS_THROWABLE(e) HAS_PROPERTY(e, EP_THROWABLE) #define CAN_EXPLODE(e) HAS_PROPERTY(e, EP_CAN_EXPLODE) #define IS_GRAVITY_REACHABLE(e) HAS_PROPERTY(e, EP_GRAVITY_REACHABLE) +#define DONT_GET_HIT_BY(e) HAS_PROPERTY(e, EP_DONT_GET_HIT_BY) /* macros for special configurable properties */ #define IS_EM_SLIPPERY_WALL(e) HAS_PROPERTY(e, EP_EM_SLIPPERY_WALL) @@ -929,6 +931,12 @@ #define MICROLABEL1_YPOS (MICROLEVEL_YPOS - 36) #define MICROLABEL2_YPOS (MICROLEVEL_YPOS + MICROLEVEL_YSIZE + 7) +/* values for GfxRedraw */ +#define GFX_REDRAW_NONE (0) +#define GFX_REDRAW_TILE (1 << 0) +#define GFX_REDRAW_TILE_CRUMBLED (1 << 1) +#define GFX_REDRAW_TILE_CRUMBLED_NEIGHBOURS (1 << 2) +#define GFX_REDRAW_TILE_TWINKLED (1 << 3) /* score for elements */ #define SC_EMERALD 0 @@ -1949,22 +1957,22 @@ /* program information and versioning definitions */ #define PROGRAM_VERSION_MAJOR 3 #define PROGRAM_VERSION_MINOR 2 -#define PROGRAM_VERSION_PATCH 4 -#define PROGRAM_VERSION_BUILD 2 +#define PROGRAM_VERSION_PATCH 5 +#define PROGRAM_VERSION_BUILD 0 #define PROGRAM_TITLE_STRING "Rocks'n'Diamonds" #define PROGRAM_AUTHOR_STRING "Holger Schemel" -#define PROGRAM_COPYRIGHT_STRING "Copyright ©1995-2007 by Holger Schemel" +#define PROGRAM_COPYRIGHT_STRING "Copyright ©1995-2008 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" #define PROGRAM_UNIX_DATADIR_STRING ".rocksndiamonds" -#if CREATE_SPECIAL_EDITION_RND_JUE +#if defined(CREATE_SPECIAL_EDITION_RND_JUE) #undef PROGRAM_TITLE_STRING -#define PROGRAM_TITLE_STRING "R'n'D - jue" +#define PROGRAM_TITLE_STRING "R'n'D jue" #undef PROGRAM_UNIX_DATADIR_STRING -#define PROGRAM_UNIX_DATADIR_STRING ".rocksndiamonds-jue" +#define PROGRAM_UNIX_DATADIR_STRING ".rnd_jue" #endif #define ICON_TITLE_STRING PROGRAM_TITLE_STRING @@ -2346,6 +2354,8 @@ struct GlobalInfo char *convert_leveldir; int convert_level_nr; + char *create_images_dir; + int num_toons; float frames_per_second; @@ -2376,7 +2386,7 @@ struct ElementChangeInfo int delay_random; /* added frame delay before changed (random) */ int delay_frames; /* either 1 (frames) or 50 (seconds; 50 fps) */ - int trigger_element; /* element triggering change */ + int initial_trigger_element; /* initial element triggering change */ struct Content target_content;/* elements for extended change target */ boolean use_target_content; /* use extended change target */ @@ -2394,6 +2404,8 @@ struct ElementChangeInfo /* ---------- internal values used at runtime when playing ---------- */ + int trigger_element; /* element triggering change */ + /* functions that are called before, while and after the change of an element -- currently only used for non-custom elements */ void (*pre_change_function)(int x, int y); @@ -2403,6 +2415,7 @@ struct ElementChangeInfo short actual_trigger_element; /* element that actually triggered change */ int actual_trigger_side; /* element side that triggered the change */ int actual_trigger_player; /* player which actually triggered change */ + int actual_trigger_player_bits; /* player bits of triggering players */ int actual_trigger_ce_value; /* CE value of element that triggered change */ int actual_trigger_ce_score; /* CE score of element that triggered change */ @@ -2685,6 +2698,7 @@ extern Bitmap *bitmap_db_cross; extern Bitmap *bitmap_db_field; extern Bitmap *bitmap_db_panel; extern Bitmap *bitmap_db_door; +extern Bitmap *bitmap_db_toons; extern Pixmap tile_clipmask[]; extern DrawBuffer *fieldbuffer; extern DrawBuffer *drawto_field; @@ -2736,6 +2750,7 @@ extern int GfxRandom[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; extern int GfxElement[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; extern int GfxAction[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; extern int GfxDir[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +extern int GfxRedraw[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; extern int ActiveElement[MAX_NUM_ELEMENTS]; extern int ActiveButton[NUM_IMAGE_FILES];