rnd-20020318-3-src
[rocksndiamonds.git] / src / libgame / misc.h
index 08d667bfee2cf81a0ff0c864e268a88a7a5532b9..978cb23b965ba5ed535c52919190db37beef716b 100644 (file)
@@ -1,7 +1,7 @@
 /***********************************************************
 * Artsoft Retro-Game Library                               *
 *----------------------------------------------------------*
-* (c) 1994-2000 Artsoft Entertainment                      *
+* (c) 1994-2001 Artsoft Entertainment                      *
 *               Holger Schemel                             *
 *               Detmolder Strasse 189                      *
 *               33604 Bielefeld                            *
 #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
 #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;
+};
+
 void InitCounter(void);
 unsigned long Counter(void);
 void Delay(unsigned long);
@@ -66,12 +98,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 +134,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();