X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Flibgame%2Fsetup.h;h=90a53154576f894e73fab3f24ab086d2096a00f9;hp=5679506daccf361bf41d10c78f48750484e91a6d;hb=c3e9cc5a7524e88ca789982a803b805272448c0b;hpb=cb69ffb72a904eb0704c7f0e6c593bfee19562df diff --git a/src/libgame/setup.h b/src/libgame/setup.h index 5679506d..90a53154 100644 --- a/src/libgame/setup.h +++ b/src/libgame/setup.h @@ -27,27 +27,29 @@ #define TYPE_KEY_X11 (1 << 7) #define TYPE_INTEGER (1 << 8) #define TYPE_STRING (1 << 9) -#define TYPE_ELEMENT (1 << 10) -#define TYPE_GRAPHIC (1 << 11) +#define TYPE_PLAYER (1 << 10) +#define TYPE_ELEMENT (1 << 11) +#define TYPE_GRAPHIC (1 << 12) /* additional values for setup screen */ -#define TYPE_ENTER_SCREEN (1 << 12) -#define TYPE_LEAVE_SCREEN (1 << 13) -#define TYPE_ENTER_MENU (1 << 14) -#define TYPE_LEAVE_MENU (1 << 15) -#define TYPE_ENTER_LIST (1 << 16) -#define TYPE_LEAVE_LIST (1 << 17) -#define TYPE_EMPTY (1 << 18) -#define TYPE_KEYTEXT (1 << 19) - -#define TYPE_GHOSTED (1 << 20) -#define TYPE_QUERY (1 << 21) +#define TYPE_ENTER_SCREEN (1 << 13) +#define TYPE_LEAVE_SCREEN (1 << 14) +#define TYPE_ENTER_MENU (1 << 15) +#define TYPE_LEAVE_MENU (1 << 16) +#define TYPE_ENTER_LIST (1 << 17) +#define TYPE_LEAVE_LIST (1 << 18) +#define TYPE_EMPTY (1 << 19) +#define TYPE_SKIPPABLE (1 << 20) +#define TYPE_KEYTEXT (1 << 21) + +#define TYPE_GHOSTED (1 << 22) +#define TYPE_QUERY (1 << 23) /* additional values for internal purposes */ -#define TYPE_BITFIELD (1 << 22) -#define TYPE_CONTENT (1 << 23) -#define TYPE_ELEMENT_LIST (1 << 24) -#define TYPE_CONTENT_LIST (1 << 25) +#define TYPE_BITFIELD (1 << 24) +#define TYPE_CONTENT (1 << 25) +#define TYPE_ELEMENT_LIST (1 << 26) +#define TYPE_CONTENT_LIST (1 << 27) /* derived values for setup file handling */ #define TYPE_BOOLEAN_STYLE (TYPE_BOOLEAN | \ @@ -63,10 +65,12 @@ TYPE_KEY_X11 | \ TYPE_INTEGER | \ TYPE_STRING | \ + TYPE_PLAYER | \ TYPE_ELEMENT | \ TYPE_GRAPHIC) #define TYPE_SKIP_ENTRY (TYPE_EMPTY | \ + TYPE_SKIPPABLE | \ TYPE_KEY | \ TYPE_STRING | \ TYPE_GHOSTED) @@ -222,6 +226,7 @@ typedef struct hashtable SetupFileHash; char *setLevelArtworkDir(TreeInfo *); +char *getProgramMainDataPath(char *, char *); char *getProgramConfigFilename(char *); char *getTapeFilename(int); char *getSolutionTapeFilename(int); @@ -245,6 +250,7 @@ char *getCustomMusicDirectory(void); void InitTapeDirectory(char *); void InitScoreDirectory(char *); void InitUserLevelDirectory(char *); +void InitNetworkLevelDirectory(char *); void InitLevelSetupDirectory(char *); TreeInfo *newTreeInfo(); @@ -270,6 +276,8 @@ char *getCommonDataDir(void); char *getPersonalDataDir(void); char *getUserGameDataDir(void); char *getSetupDir(void); +char *getUserLevelDir(char *); +char *getNetworkLevelDir(char *); char *getCurrentLevelDir(void); char *getNewUserLevelSubdir(void); @@ -311,8 +319,12 @@ void LoadLevelInfo(void); void LoadArtworkInfo(void); void LoadLevelArtworkInfo(void); -boolean UpdateUserLevelSet(char *, char *, char *, int, int); -boolean CreateUserLevelSet(char *, char *, char *, int, int); +char *getArtworkIdentifierForUserLevelSet(int); +TreeInfo *getArtworkTreeInfoForUserLevelSet(int); +boolean checkIfCustomArtworkExistsForCurrentLevelSet(); +void AddUserLevelSetToLevelInfo(char *); +boolean UpdateUserLevelSet(char *, char *, char *, int); +boolean CreateUserLevelSet(char *, char *, char *, int, boolean); void LoadLevelSetup_LastSeries(void); void SaveLevelSetup_LastSeries(void);