X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fmisc.h;h=6213ae1becb60e190251707fabe826ba1c3d5bdd;hb=e20a5f598ac5ef3280c4a881fe63e44463dff086;hp=3af58389d25d9186d86d59620af76d7d0bbf431c;hpb=d5f5329a0cf3d0cb533fe0e1e90d4363e93889b1;p=rocksndiamonds.git diff --git a/src/libgame/misc.h b/src/libgame/misc.h index 3af58389..6213ae1b 100644 --- a/src/libgame/misc.h +++ b/src/libgame/misc.h @@ -20,6 +20,12 @@ #include "system.h" +/* functions for version handling */ +#define VERSION_IDENT(x,y,z) ((x) * 10000 + (y) * 100 + (z)) +#define VERSION_MAJOR(x) ((x) / 10000) +#define VERSION_MINOR(x) (((x) % 10000) / 100) +#define VERSION_PATCH(x) ((x) % 100) + /* values for InitCounter() and Counter() */ #define INIT_COUNTER 0 #define READ_COUNTER 1 @@ -45,6 +51,39 @@ #define BYTE_ORDER_BIG_ENDIAN 0 #define BYTE_ORDER_LITTLE_ENDIAN 1 +/* values for createDirectory() */ +#define PERMS_PRIVATE 0 +#define PERMS_PUBLIC 1 + +/* values for general file handling stuff */ +#define MAX_FILENAME_LEN 256 +#define MAX_LINE_LEN 1000 + +/* values for setup file stuff */ +#define TYPE_BOOLEAN 1 +#define TYPE_SWITCH 2 +#define TYPE_KEY 3 +#define TYPE_INTEGER 4 +#define TYPE_STRING 5 + +#define TOKEN_STR_FILE_IDENTIFIER "file_identifier" + +#define TOKEN_VALUE_POSITION 30 + +struct SetupFileList +{ + char *token; + char *value; + struct SetupFileList *next; +}; + +struct TokenInfo +{ + int type; + void *value; + char *text; +}; + void InitCounter(void); unsigned long Counter(void); void Delay(unsigned long); @@ -73,6 +112,9 @@ int getFile32BitInteger(FILE *, int); void putFile32BitInteger(FILE *, int, int); boolean getFileChunk(FILE *, char *, int *, int); void putFileChunk(FILE *, char *, int, int); +void ReadUnusedBytesFromFile(FILE *, unsigned long); +void WriteUnusedBytesToFile(FILE *, unsigned long); + char *getKeyNameFromKey(Key); char *getX11KeyNameFromKey(Key); Key getKeyFromX11KeyName(char *); @@ -99,12 +141,20 @@ inline void swap_numbers(int *, int *); inline void swap_number_pairs(int *, int *, int *, int *); char *getUserDataDir(void); -void createDirectory(char *, char *); +char *getSetupDir(void); +void createDirectory(char *, char *, int); void InitUserDataDirectory(void); -void SetFilePermissions_Level(char *); -void SetFilePermissions_Tape(char *); -void SetFilePermissions_Score(char *); -void SetFilePermissions_Setup(char *); +void SetFilePermissions(char *, int); +int getFileVersionFromCookieString(const char *); +boolean checkCookieString(const char *, const char *); + +int get_string_integer_value(char *); +boolean get_string_boolean_value(char *); +char *getFormattedSetupEntry(char *, char *); +void freeSetupFileList(struct SetupFileList *); +char *getTokenValue(struct SetupFileList *, char *); +struct SetupFileList *loadSetupFileList(char *); +void checkSetupFileListIdentifier(struct SetupFileList *, char *); #if !defined(PLATFORM_UNIX) void initErrorFile();