version number set to 4.3.0.1
[rocksndiamonds.git] / src / main.h
index fe3e025c566fee4518c9a9263f71c6bc0bfd67cf..f153b244e09a7e963208d14807b343941c9e1ddd 100644 (file)
 #define GFX_CRUMBLED(e)                HAS_PROPERTY(GFX_ELEMENT(e), EP_GFX_CRUMBLED)
 
 // macros for pre-defined properties
-#define ELEM_IS_PLAYER(e)      HAS_PROPERTY(e, EP_PLAYER)
+#define IS_PLAYER_ELEMENT(e)   HAS_PROPERTY(e, EP_PLAYER)
 #define CAN_PASS_MAGIC_WALL(e) HAS_PROPERTY(e, EP_CAN_PASS_MAGIC_WALL)
 #define CAN_PASS_DC_MAGIC_WALL(e) HAS_PROPERTY(e, EP_CAN_PASS_DC_MAGIC_WALL)
 #define IS_SWITCHABLE(e)       HAS_PROPERTY(e, EP_SWITCHABLE)
        (ge == EL_ANY_ELEMENT ? TRUE :                                  \
         IS_GROUP_ELEMENT(ge) ? IS_IN_GROUP(e, GROUP_NR(ge)) : (e) == (ge))
 
-#define IS_PLAYER(x, y)                (ELEM_IS_PLAYER(StorePlayer[x][y]))
+#define IS_PLAYER(x, y)                (IS_PLAYER_ELEMENT(StorePlayer[x][y]))
 
 #define IS_FREE(x, y)          (Tile[x][y] == EL_EMPTY && !IS_PLAYER(x, y))
 #define IS_FREE_OR_PLAYER(x, y)        (Tile[x][y] == EL_EMPTY)
@@ -2574,9 +2574,9 @@ enum
 
 // program information and versioning definitions
 #define PROGRAM_VERSION_SUPER          4
-#define PROGRAM_VERSION_MAJOR          2
-#define PROGRAM_VERSION_MINOR          3
-#define PROGRAM_VERSION_PATCH          2
+#define PROGRAM_VERSION_MAJOR          3
+#define PROGRAM_VERSION_MINOR          0
+#define PROGRAM_VERSION_PATCH          1
 #define PROGRAM_VERSION_EXTRA          ""
 
 #define PROGRAM_TITLE_STRING           "Rocks'n'Diamonds"
@@ -2624,7 +2624,7 @@ enum
 // values for game_emulation
 #define EMU_NONE                       0
 #define EMU_BOULDERDASH                        1
-#define EMU_SOKOBAN                    2
+#define EMU_UNUSED_2                   2
 #define EMU_SUPAPLEX                   3
 
 // values for level file type identifier
@@ -2655,7 +2655,9 @@ enum
 #define AUTOPLAY_FFWD                  (1 << 1)
 #define AUTOPLAY_WARP                  (1 << 2)
 #define AUTOPLAY_TEST                  (1 << 3)
-#define AUTOPLAY_FIX                   (1 << 4)
+#define AUTOPLAY_SAVE                  (1 << 4)
+#define AUTOPLAY_UPLOAD                        (1 << 5)
+#define AUTOPLAY_FIX                   (1 << 6)
 #define AUTOPLAY_WARP_NO_DISPLAY       AUTOPLAY_TEST
 
 #define AUTOPLAY_MODE_NONE             0
@@ -2663,6 +2665,8 @@ enum
 #define AUTOPLAY_MODE_FFWD             (AUTOPLAY_MODE_PLAY | AUTOPLAY_FFWD)
 #define AUTOPLAY_MODE_WARP             (AUTOPLAY_MODE_FFWD | AUTOPLAY_WARP)
 #define AUTOPLAY_MODE_TEST             (AUTOPLAY_MODE_WARP | AUTOPLAY_TEST)
+#define AUTOPLAY_MODE_SAVE             (AUTOPLAY_MODE_TEST | AUTOPLAY_SAVE)
+#define AUTOPLAY_MODE_UPLOAD           (AUTOPLAY_MODE_TEST | AUTOPLAY_UPLOAD)
 #define AUTOPLAY_MODE_FIX              (AUTOPLAY_MODE_TEST | AUTOPLAY_FIX)
 #define AUTOPLAY_MODE_WARP_NO_DISPLAY  AUTOPLAY_MODE_TEST
 
@@ -3059,6 +3063,7 @@ struct ScoreInfo
   int last_added_local;
 
   boolean updated;
+  boolean uploaded;
   boolean force_last_added;
 
   struct ScoreEntry entry[MAX_SCORE_ENTRIES];
@@ -3213,6 +3218,7 @@ struct LevelInfo
   boolean auto_exit_sokoban;   // automatically finish solved Sokoban levels
   boolean solved_by_one_player;        // level is solved if one player enters exit
   boolean finish_dig_collect;  // only finished dig/collect triggers ce action
+  boolean keep_walkable_ce;    // keep walkable CE if it changes to the player
 
   boolean continuous_snapping; // repeated snapping without releasing key
   boolean block_snap_field;    // snapping blocks field to show animation
@@ -3262,8 +3268,9 @@ struct GlobalInfo
 {
   char *autoplay_leveldir;
   int autoplay_level[MAX_TAPES_PER_SET];
+  int autoplay_mode;
   boolean autoplay_all;
-  boolean autoplay_mode;
+  time_t autoplay_time;
 
   char *patchtapes_mode;
   char *patchtapes_leveldir;
@@ -3279,7 +3286,8 @@ struct GlobalInfo
   char *dumptape_leveldir;
   int dumptape_level_nr;
 
-  char *create_images_dir;
+  char *create_sketch_images_dir;
+  char *create_collect_images_dir;
 
   int num_toons;