X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fmisc.h;h=6213ae1becb60e190251707fabe826ba1c3d5bdd;hb=e20a5f598ac5ef3280c4a881fe63e44463dff086;hp=3002844e00ff8dd397c948e8790b9009f5c870b9;hpb=da14f69fd95c7bd5a0d70cdf4935af06f1f20a04;p=rocksndiamonds.git diff --git a/src/libgame/misc.h b/src/libgame/misc.h index 3002844e..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 @@ -17,7 +17,14 @@ #include #include -#include "libgame.h" +#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 @@ -44,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); @@ -61,18 +101,20 @@ char *getPath2(char *, char *); char *getPath3(char *, char *, char*); char *getStringCopy(char *); char *getStringToLower(char *); -void MarkTileDirty(int, int); -void SetBorderElement(); 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,6 +140,28 @@ void sortLevelDirInfo(struct LevelDirInfo **, inline void swap_numbers(int *, int *); inline void swap_number_pairs(int *, int *, int *, int *); +char *getUserDataDir(void); +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(); +FILE *openErrorFile(); +void dumpErrorFile(); +#endif + void debug_print_timestamp(int, char *); #endif /* MISC_H */