#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
/* 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_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 - Version 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
char *convert_leveldir;
int convert_level_nr;
+ char *create_images_dir;
+
int num_toons;
float frames_per_second;
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 */
/* ---------- 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);
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 */
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;
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];