rnd-20020318-3-src
[rocksndiamonds.git] / src / main.h
index 852f04bf09b4788dfce3c04696d99114d0964d3e..27cc057bde42de7ad8d069aac1422924ab4a964d 100644 (file)
@@ -262,13 +262,6 @@ struct SetupInfo
   struct SetupInputInfo input[MAX_PLAYERS];
 };
 
-struct SetupFileList
-{
-  char *token;
-  char *value;
-  struct SetupFileList *next;
-};
-
 struct PlayerInfo
 {
   boolean present;             /* player present in level playfield */
@@ -278,7 +271,7 @@ struct PlayerInfo
   int index_nr, client_nr, element_nr;
 
   byte action;                 /* action from local input device */
-  byte effective_action;       /* action aknowledged from network server
+  byte effective_action;       /* action acknowledged from network server
                                   or summarized over all configured input
                                   devices when in single player mode */
   byte programmed_action;      /* action forced by game itself (like moving
@@ -322,9 +315,11 @@ 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 */
-  boolean encoding_16bit; /* level contains 16-bit elements */
+  int file_version;            /* version of file the level was stored with */
+  int game_version;            /* version of game engine to play this level */
+  boolean encoding_16bit_field;                /* level contains 16-bit elements */
+  boolean encoding_16bit_yamyam;       /* yamyam contains 16-bit elements */
+  boolean encoding_16bit_amoeba;       /* amoeba contains 16-bit elements */
 
   int fieldx;
   int fieldy;
@@ -362,6 +357,7 @@ struct TapeInfo
   boolean fast_forward;
   boolean changed;
   boolean player_participates[MAX_PLAYERS];
+  int num_participating_players;
   struct
   {
     byte action[MAX_PLAYERS];
@@ -1530,7 +1526,11 @@ extern int               num_element_info;
 #define SETUPINPUT             9
 #define CALIBRATION            10
 
+#define PROGRAM_VERSION_MAJOR  2
+#define PROGRAM_VERSION_MINOR  0
+#define PROGRAM_VERSION_PATCH  1
 #define PROGRAM_VERSION_STRING "2.0.1"
+
 #define PROGRAM_TITLE_STRING   "Rocks'n'Diamonds"
 #define PROGRAM_AUTHOR_STRING  "Holger Schemel"
 #define PROGRAM_RIGHTS_STRING  "Copyright ^1995-2001 by"
@@ -1552,16 +1552,24 @@ extern int              num_element_info;
 **     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_1_0       VERSION_IDENT(1,0,0)
+#define FILE_VERSION_1_2       VERSION_IDENT(1,2,0)
+#define FILE_VERSION_1_4       VERSION_IDENT(1,4,0)
+#define FILE_VERSION_2_0       VERSION_IDENT(2,0,0)
+
+/* file version does not change for every program version, but is changed
+   when new features are introduced that are incompatible with older file
+   versions, so that they can be treated accordingly */
 #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
+
+#define GAME_VERSION_ACTUAL    VERSION_IDENT(PROGRAM_VERSION_MAJOR, \
+                                             PROGRAM_VERSION_MINOR, \
+                                             PROGRAM_VERSION_PATCH)
 
 /* for DrawGraphicAnimation() [tools.c] and AnimateToon() [cartoons.c] */
 #define ANIM_NORMAL            0