rnd-20080122-1-src
[rocksndiamonds.git] / src / main.h
index 33b771ae3fab35293c398f3844299ba4df8d6bd4..3f88801ccdb440ae79b8d6671371a41cebb798b2 100644 (file)
 #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) */
 #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)
 #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
 
 #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);
@@ -2686,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;
@@ -2737,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];