added "last played level sets" sub-menu to level set selection screen
[rocksndiamonds.git] / src / libgame / setup.h
index cbd0edf5ee9dd5dfad7790644840143c0dbf338a..116ab776c4860ee47f1a107379becda621824264 100644 (file)
@@ -4,7 +4,7 @@
 // (c) 1995-2014 by Artsoft Entertainment
 //                         Holger Schemel
 //                 info@artsoft.org
-//                 http://www.artsoft.org/
+//                 https://www.artsoft.org/
 // ----------------------------------------------------------------------------
 // setup.h
 // ============================================================================
 #define TYPE_EMPTY                     (1 << 20)
 #define TYPE_SKIPPABLE                 (1 << 21)
 #define TYPE_KEYTEXT                   (1 << 22)
+#define TYPE_HEADLINE                  (1 << 23)
 
-#define TYPE_GHOSTED                   (1 << 23)
-#define TYPE_QUERY                     (1 << 24)
+#define TYPE_GHOSTED                   (1 << 24)
+#define TYPE_QUERY                     (1 << 25)
 
 // additional values for internal purposes
-#define TYPE_BITFIELD                  (1 << 25)
-#define TYPE_CONTENT                   (1 << 26)
-#define TYPE_ELEMENT_LIST              (1 << 27)
-#define TYPE_CONTENT_LIST              (1 << 28)
+#define TYPE_BITFIELD                  (1 << 26)
+#define TYPE_CONTENT                   (1 << 27)
+#define TYPE_ELEMENT_LIST              (1 << 28)
+#define TYPE_CONTENT_LIST              (1 << 29)
 
 // derived values for setup file handling
 #define TYPE_BOOLEAN_STYLE             (TYPE_BOOLEAN | \
@@ -74,6 +75,7 @@
                                         TYPE_SKIPPABLE         | \
                                         TYPE_KEY               | \
                                         TYPE_STRING            | \
+                                        TYPE_HEADLINE          | \
                                         TYPE_GHOSTED)
 
 #define TYPE_ENTER                     (TYPE_ENTER_SCREEN      | \
@@ -265,7 +267,7 @@ boolean validLevelSeries(TreeInfo *);
 TreeInfo *getFirstValidTreeInfoEntry(TreeInfo *);
 TreeInfo *getTreeInfoFirstGroupEntry(TreeInfo *);
 int numTreeInfoInGroup(TreeInfo *);
-int posTreeInfo(TreeInfo *);
+int getPosFromTreeInfo(TreeInfo *);
 TreeInfo *getTreeInfoFromPos(TreeInfo *, int);
 TreeInfo *getTreeInfoFromIdentifier(TreeInfo *, char *);
 void dumpTreeInfo(TreeInfo *, int);
@@ -278,14 +280,17 @@ void freeTreeInfo(TreeInfo *);
 char *getHomeDir(void);
 char *getCommonDataDir(void);
 char *getPersonalDataDir(void);
+char *getMainUserGameDataDir(void);
 char *getUserGameDataDir(void);
 char *getSetupDir(void);
+char *getLevelDirFromTreeInfo(TreeInfo *);
 char *getUserLevelDir(char *);
 char *getNetworkLevelDir(char *);
 char *getCurrentLevelDir(void);
 char *getNewUserLevelSubdir(void);
 
 void createDirectory(char *, char *, int);
+void InitMainUserDataDirectory(void);
 void InitUserDataDirectory(void);
 void SetFilePermissions(char *, int);
 
@@ -321,6 +326,10 @@ int GetZipFileTreeType(char *);
 char *ExtractZipFileIntoDirectory(char *, char *, int);
 
 boolean AdjustGraphicsForEMC(void);
+boolean AdjustSoundsForEMC(void);
+
+void SetCurrentArtwork(int);
+void ChangeCurrentArtworkIfNeeded(int);
 
 void LoadLevelInfo(void);
 void LoadArtworkInfo(void);
@@ -330,10 +339,12 @@ char *getArtworkIdentifierForUserLevelSet(int);
 TreeInfo *getArtworkTreeInfoForUserLevelSet(int);
 boolean checkIfCustomArtworkExistsForCurrentLevelSet(void);
 void AddUserLevelSetToLevelInfo(char *);
-void AddUserArtworkSetToArtworkInfo(char *, int);
+void AddTreeSetToTreeInfo(TreeInfo *, char *, char *, int);
 boolean UpdateUserLevelSet(char *, char *, char *, int);
 boolean CreateUserLevelSet(char *, char *, char *, int, boolean);
 
+void UpdateLastPlayedLevels_TreeInfo(void);
+
 void LoadLevelSetup_LastSeries(void);
 void SaveLevelSetup_LastSeries(void);
 void SaveLevelSetup_LastSeries_Deactivate(void);
@@ -347,4 +358,7 @@ void LevelStats_setSolved(int, int);
 void LevelStats_incPlayed(int);
 void LevelStats_incSolved(int);
 
+void LoadUserSetup(void);
+void SaveUserSetup(void);
+
 #endif // MISC_H