changed file format of score files from plain text to IFF
[rocksndiamonds.git] / src / main.h
index d8bdb3f37540a406f1672bb091f1227b3b071579..9979d8308225393b06b18358a0423d157d9698cc 100644 (file)
 #define CH_SIDE_TOP_BOTTOM             MV_VERTICAL
 #define CH_SIDE_ANY                    MV_ANY_DIRECTION
 
+#define CH_SIDE_FROM_BUTTON(b) ((b) == MB_LEFTBUTTON   ? CH_SIDE_LEFT :       \
+                                (b) == MB_RIGHTBUTTON  ? CH_SIDE_RIGHT :      \
+                                (b) == MB_MIDDLEBUTTON ? CH_SIDE_TOP_BOTTOM : \
+                                CH_SIDE_NONE)
+
 // values for change player for custom elements
 #define CH_PLAYER_NONE                 PLAYER_BITS_NONE
 #define CH_PLAYER_1                    PLAYER_BITS_1
@@ -2570,7 +2575,7 @@ enum
 // program information and versioning definitions
 #define PROGRAM_VERSION_SUPER          4
 #define PROGRAM_VERSION_MAJOR          2
-#define PROGRAM_VERSION_MINOR          2
+#define PROGRAM_VERSION_MINOR          3
 #define PROGRAM_VERSION_PATCH          2
 #define PROGRAM_VERSION_EXTRA          ""
 
@@ -2578,7 +2583,7 @@ enum
 #define PROGRAM_AUTHOR_STRING          "Holger Schemel"
 #define PROGRAM_EMAIL_STRING           "info@artsoft.org"
 #define PROGRAM_WEBSITE_STRING         "https://www.artsoft.org/"
-#define PROGRAM_COPYRIGHT_STRING       "Copyright \xa9""1995-2020 by Holger Schemel"
+#define PROGRAM_COPYRIGHT_STRING       "Copyright \xa9""1995-2021 by Holger Schemel"
 #define PROGRAM_COMPANY_STRING         "A Game by Artsoft Entertainment"
 
 #define PROGRAM_ICON_FILENAME          "RocksIcon32x32.png"
@@ -3039,6 +3044,17 @@ struct HiScore
   int Score;
 };
 
+struct ScoreInfo
+{
+  int file_version;    // file format version the score is stored with
+  int game_version;    // game release version the score was created with
+
+  char level_identifier[MAX_FILENAME_LEN + 1];
+  int level_nr;
+
+  int num_entries;
+};
+
 struct Content
 {
   int e[3][3];
@@ -3397,6 +3413,8 @@ struct ElementInfo
   int drop_delay_random;       // additional random delay after dropping
   int move_delay_fixed;                // constant delay after moving
   int move_delay_random;       // additional random delay after moving
+  int step_delay_fixed;                // constant delay while moving
+  int step_delay_random;       // additional random delay while moving
 
   int move_pattern;            // direction movable element moves to
   int move_direction_initial;  // initial direction element moves to
@@ -3743,6 +3761,7 @@ extern int                        graphics_action_mapping[];
 
 extern struct LevelInfo                level, level_template;
 extern struct HiScore          highscore[];
+extern struct ScoreInfo                scores;
 extern struct TapeInfo         tape;
 extern struct GlobalInfo       global;
 extern struct BorderInfo       border;