added new screen definition for global animations in the hall of fame
[rocksndiamonds.git] / src / main.h
index 4f48f30bf6eb09277de195c4b4092fa44a51dd63..3d6055a8b797f989f62555dc6bdba0f3ade54b01 100644 (file)
 #define MAX_ANDROID_ELEMENTS   32
 #define MAX_ANDROID_ELEMENTS_OLD 16    // (extended since version 4.2.0.0)
 
+#define MAX_ISO_DATE_LEN       10
+#define MAX_PLATFORM_TEXT_LEN  16
+#define MAX_VERSION_TEXT_LEN   16
+#define MAX_COUNTRY_CODE_LEN   2
+#define MAX_COUNTRY_NAME_LEN   64
+
 // values for elements with content
 #define MIN_ELEMENT_CONTENTS   1
 #define STD_ELEMENT_CONTENTS   4
@@ -2293,6 +2299,7 @@ enum
 enum
 {
   GFX_SPECIAL_ARG_DEFAULT = 0,
+  GFX_SPECIAL_ARG_LOADING_INITIAL,
   GFX_SPECIAL_ARG_LOADING,
   GFX_SPECIAL_ARG_TITLE_INITIAL,
   GFX_SPECIAL_ARG_TITLE_INITIAL_1,
@@ -2311,6 +2318,7 @@ enum
   GFX_SPECIAL_ARG_LEVELS,
   GFX_SPECIAL_ARG_LEVELNR,
   GFX_SPECIAL_ARG_SCORES,
+  GFX_SPECIAL_ARG_SCOREINFO,
   GFX_SPECIAL_ARG_EDITOR,
   GFX_SPECIAL_ARG_INFO,
   GFX_SPECIAL_ARG_SETUP,
@@ -2322,6 +2330,7 @@ enum
   GFX_SPECIAL_ARG_CRUMBLED,
   GFX_SPECIAL_ARG_MAINONLY,
   GFX_SPECIAL_ARG_NAMESONLY,
+  GFX_SPECIAL_ARG_SCORESONLY,
   GFX_SPECIAL_ARG_TYPENAME,
   GFX_SPECIAL_ARG_TYPENAMES,
   GFX_SPECIAL_ARG_SUBMENU,
@@ -2544,6 +2553,7 @@ enum
 
 // values for game_status (must match special image configuration suffixes)
 #define GAME_MODE_DEFAULT              GFX_SPECIAL_ARG_DEFAULT
+#define GAME_MODE_LOADING_INITIAL      GFX_SPECIAL_ARG_LOADING_INITIAL
 #define GAME_MODE_LOADING              GFX_SPECIAL_ARG_LOADING
 #define GAME_MODE_TITLE_INITIAL                GFX_SPECIAL_ARG_TITLE_INITIAL
 #define GAME_MODE_TITLE_INITIAL_1      GFX_SPECIAL_ARG_TITLE_INITIAL_1
@@ -2562,6 +2572,7 @@ enum
 #define GAME_MODE_LEVELS               GFX_SPECIAL_ARG_LEVELS
 #define GAME_MODE_LEVELNR              GFX_SPECIAL_ARG_LEVELNR
 #define GAME_MODE_SCORES               GFX_SPECIAL_ARG_SCORES
+#define GAME_MODE_SCOREINFO            GFX_SPECIAL_ARG_SCOREINFO
 #define GAME_MODE_EDITOR               GFX_SPECIAL_ARG_EDITOR
 #define GAME_MODE_INFO                 GFX_SPECIAL_ARG_INFO
 #define GAME_MODE_SETUP                        GFX_SPECIAL_ARG_SETUP
@@ -2573,6 +2584,7 @@ enum
 #define GAME_MODE_PSEUDO_CRUMBLED      GFX_SPECIAL_ARG_CRUMBLED
 #define GAME_MODE_PSEUDO_MAINONLY      GFX_SPECIAL_ARG_MAINONLY
 #define GAME_MODE_PSEUDO_NAMESONLY     GFX_SPECIAL_ARG_NAMESONLY
+#define GAME_MODE_PSEUDO_SCORESONLY    GFX_SPECIAL_ARG_SCORESONLY
 #define GAME_MODE_PSEUDO_TYPENAME      GFX_SPECIAL_ARG_TYPENAME
 #define GAME_MODE_PSEUDO_TYPENAMES     GFX_SPECIAL_ARG_TYPENAMES
 #define GAME_MODE_PSEUDO_SUBMENU       GFX_SPECIAL_ARG_SUBMENU
@@ -2798,6 +2810,19 @@ struct MenuSetupInfo
   struct MenuSetupButtonInfo button;
 };
 
+struct MenuScoresButtonInfo
+{
+  struct MenuPosInfo prev_level;
+  struct MenuPosInfo next_level;
+  struct MenuPosInfo prev_score;
+  struct MenuPosInfo next_score;
+};
+
+struct MenuScoresInfo
+{
+  struct MenuScoresButtonInfo button;
+};
+
 struct TitleFadingInfo
 {
   int fade_mode;
@@ -2887,6 +2912,7 @@ struct MenuInfo
 
   struct MenuMainInfo main;
   struct MenuSetupInfo setup;
+  struct MenuScoresInfo scores;
 };
 
 struct DoorInfo
@@ -3071,6 +3097,14 @@ struct ScoreEntry
   char name[MAX_PLAYER_NAME_LEN + 1];
   int score;
   int time;            // time (in frames) or steps played
+
+  // additional score information for score info screen
+  int id;
+  char tape_date[MAX_ISO_DATE_LEN + 1];
+  char platform[MAX_PLATFORM_TEXT_LEN + 1];
+  char version[MAX_VERSION_TEXT_LEN + 1];
+  char country_code[MAX_COUNTRY_CODE_LEN + 1];
+  char country_name[MAX_COUNTRY_NAME_LEN + 1];
 };
 
 struct ScoreInfo
@@ -3084,6 +3118,8 @@ struct ScoreInfo
   int num_entries;
   int last_added;
   int last_added_local;
+  int last_level_nr;
+  int last_entry_nr;
 
   boolean updated;
   boolean uploaded;