X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fmisc.h;h=6213ae1becb60e190251707fabe826ba1c3d5bdd;hb=e20a5f598ac5ef3280c4a881fe63e44463dff086;hp=f838df1a9ea7fec89508c41495cf875b902f0b77;hpb=3d07b68a314ce189f207e42d95f786979662410d;p=rocksndiamonds.git diff --git a/src/libgame/misc.h b/src/libgame/misc.h index f838df1a..6213ae1b 100644 --- a/src/libgame/misc.h +++ b/src/libgame/misc.h @@ -1,14 +1,14 @@ /*********************************************************** -* Rocks'n'Diamonds -- McDuffin Strikes Back! * +* Artsoft Retro-Game Library * *----------------------------------------------------------* -* (c) 1995-98 Artsoft Entertainment * -* Holger Schemel * -* Oststrasse 11a * -* 33604 Bielefeld * -* phone: ++49 +521 290471 * -* email: aeglos@valinor.owl.de * +* (c) 1994-2001 Artsoft Entertainment * +* Holger Schemel * +* Detmolder Strasse 189 * +* 33604 Bielefeld * +* Germany * +* e-mail: info@artsoft.org * *----------------------------------------------------------* -* misc.h * +* misc.h * ***********************************************************/ #ifndef 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); @@ -66,12 +105,16 @@ void GetOptions(char **); void Error(int, char *, ...); void *checked_malloc(unsigned long); void *checked_calloc(unsigned long); +void *checked_realloc(void *, unsigned long); short getFile16BitInteger(FILE *, int); void putFile16BitInteger(FILE *, short, int); int getFile32BitInteger(FILE *, int); void putFile32BitInteger(FILE *, int, int); -void getFileChunk(FILE *, char *, 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 *); @@ -98,8 +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(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();