rnd-20010120-3-src
[rocksndiamonds.git] / src / main.h
index 96c62a664ff34538cd0110724777f733ec22d604..f82ff3336500ed7b7be233bc7200eaf1e44875fc 100644 (file)
@@ -1,7 +1,7 @@
 /***********************************************************
 * Rocks'n'Diamonds -- McDuffin Strikes Back!               *
 *----------------------------------------------------------*
-* (c) 1995-2000 Artsoft Entertainment                      *
+* (c) 1995-2001 Artsoft Entertainment                      *
 *               Holger Schemel                             *
 *               Detmolder Strasse 189                      *
 *               33604 Bielefeld                            *
@@ -319,6 +319,8 @@ struct PlayerInfo
 
 struct LevelInfo
 {
+  int file_version;    /* version of file this level was stored with */
+  int game_version;    /* version of game engine to play this level */
   int fieldx;
   int fieldy;
   int time;
@@ -340,6 +342,9 @@ struct LevelInfo
 
 struct TapeInfo
 {
+  int file_version;    /* version of file this level tape was stored with */
+  int game_version;    /* version of game engine to play this tapeĀ“s level */
+  int version;
   int level_nr;
   unsigned long random_seed;
   unsigned long date;
@@ -361,6 +366,7 @@ struct TapeInfo
 
 struct GameInfo
 {
+  int version;
   int emulation;
   int yam_content_nr;
   boolean magic_wall_active;
@@ -901,6 +907,9 @@ extern int          num_element_info;
 #define EL_TRAP_ACTIVE         522
 #define EL_SPRING_MOVING       523
 #define EL_SP_MURPHY_CLONE     524
+#define EL_QUICKSAND_EMPTYING  525
+#define EL_MAGIC_WALL_EMPTYING 526
+#define EL_MAGIC_WALL_BD_EMPTYING 527
 
 /* "unreal" (and therefore not drawable) runtime elements */
 #define EL_BLOCKED             600
@@ -913,6 +922,9 @@ extern int          num_element_info;
 #define EL_MAUERND             607
 #define EL_BURNING             608
 #define EL_PLAYER_IS_LEAVING   609
+#define EL_QUICKSAND_FILLING   610
+#define EL_MAGIC_WALL_FILLING  611
+#define EL_MAGIC_WALL_BD_FILLING 612
 
 /* game graphics:
 **       0 -  255: graphics from "RocksScreen"
@@ -1513,7 +1525,7 @@ extern int                num_element_info;
 #define PROGRAM_VERSION_STRING "2.0.0"
 #define PROGRAM_TITLE_STRING   "Rocks'n'Diamonds"
 #define PROGRAM_AUTHOR_STRING  "Holger Schemel"
-#define PROGRAM_RIGHTS_STRING  "Copyright ^1995-2000 by"
+#define PROGRAM_RIGHTS_STRING  "Copyright ^1995-2001 by"
 #define PROGRAM_DOS_PORT_STRING        "DOS port done by Guido Schulz"
 #define PROGRAM_IDENT_STRING   PROGRAM_VERSION_STRING " " TARGET_STRING
 #define WINDOW_TITLE_STRING    PROGRAM_TITLE_STRING " " PROGRAM_IDENT_STRING
@@ -1525,6 +1537,24 @@ extern int               num_element_info;
 #define X11_ICONMASK_FILENAME  "rocks_iconmask.xbm"
 #define MSDOS_POINTER_FILENAME "mouse.pcx"
 
+/* file version numbers for resource files (levels, tapes, score, setup, etc.)
+** currently supported/known file version numbers:
+**     1.0 (old)
+**     1.2 (still in use)
+**     1.4 (still in use)
+**     2.0 (actual)
+*/
+#define FILE_VERSION_1_0       10
+#define FILE_VERSION_1_2       12
+#define FILE_VERSION_1_4       14
+#define FILE_VERSION_2_0       20
+#define FILE_VERSION_ACTUAL    FILE_VERSION_2_0
+#define GAME_VERSION_1_0       FILE_VERSION_1_0
+#define GAME_VERSION_1_2       FILE_VERSION_1_2
+#define GAME_VERSION_1_4       FILE_VERSION_1_4
+#define GAME_VERSION_2_0       FILE_VERSION_2_0
+#define GAME_VERSION_ACTUAL    GAME_VERSION_2_0
+
 /* for DrawGraphicAnimation() [tools.c] and AnimateToon() [cartoons.c] */
 #define ANIM_NORMAL            0
 #define ANIM_OSCILLATE         1