X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fmisc.h;h=521ba1b16e0a375e66c4249fd5c7bc26f6391fc3;hb=467fb3a191a20318590ac5681e21bcfefb0eb2ad;hp=880c83e4b4858f897ff29a0d8a1dcca99a259833;hpb=c4e1a476135ce36417cdd797481feeaaff4301af;p=rocksndiamonds.git diff --git a/src/libgame/misc.h b/src/libgame/misc.h index 880c83e4..521ba1b1 100644 --- a/src/libgame/misc.h +++ b/src/libgame/misc.h @@ -1,7 +1,7 @@ /*********************************************************** * Artsoft Retro-Game Library * *----------------------------------------------------------* -* (c) 1994-2000 Artsoft Entertainment * +* (c) 1994-2002 Artsoft Entertainment * * Holger Schemel * * Detmolder Strasse 189 * * 33604 Bielefeld * @@ -45,6 +45,14 @@ #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 + void InitCounter(void); unsigned long Counter(void); void Delay(unsigned long); @@ -62,45 +70,65 @@ char *getPath2(char *, char *); char *getPath3(char *, char *, char*); char *getStringCopy(char *); char *getStringToLower(char *); + void GetOptions(char **); + +void SetError(char *, ...); +char *GetError(void); void Error(int, char *, ...); + void *checked_malloc(unsigned long); void *checked_calloc(unsigned long); void *checked_realloc(void *, unsigned long); +inline void swap_numbers(int *, int *); +inline void swap_number_pairs(int *, int *, int *, int *); + 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); +int getFileVersion(FILE *); +void putFileVersion(FILE *, int); +void ReadUnusedBytesFromFile(FILE *, unsigned long); +void WriteUnusedBytesToFile(FILE *, unsigned long); + +#define getFile16BitBE(f) getFile16BitInteger(f,BYTE_ORDER_BIG_ENDIAN) +#define getFile16BitLE(f) getFile16BitInteger(f,BYTE_ORDER_LITTLE_ENDIAN) +#define putFile16BitBE(f,x) putFile16BitInteger(f,x,BYTE_ORDER_BIG_ENDIAN) +#define putFile16BitLE(f,x) putFile16BitInteger(f,x,BYTE_ORDER_LITTLE_ENDIAN) +#define getFile32BitBE(f) getFile32BitInteger(f,BYTE_ORDER_BIG_ENDIAN) +#define getFile32BitLE(f) getFile32BitInteger(f,BYTE_ORDER_LITTLE_ENDIAN) +#define putFile32BitBE(f,x) putFile32BitInteger(f,x,BYTE_ORDER_BIG_ENDIAN) +#define putFile32BitLE(f,x) putFile32BitInteger(f,x,BYTE_ORDER_LITTLE_ENDIAN) +#define getFileChunkBE(f,s,x) getFileChunk(f,s,x,BYTE_ORDER_BIG_ENDIAN) +#define getFileChunkLE(f,s,x) getFileChunk(f,s,x,BYTE_ORDER_LITTLE_ENDIAN) +#define putFileChunkBE(f,s,x) putFileChunk(f,s,x,BYTE_ORDER_BIG_ENDIAN) +#define putFileChunkLE(f,s,x) putFileChunk(f,s,x,BYTE_ORDER_LITTLE_ENDIAN) + char *getKeyNameFromKey(Key); char *getX11KeyNameFromKey(Key); +Key getKeyFromKeyName(char *); Key getKeyFromX11KeyName(char *); char getCharFromKey(Key); -char *getJoyNameFromJoySymbol(int); -int getJoySymbolFromJoyName(char *); -int getJoystickNrFromDeviceName(char *); - -struct LevelDirInfo *newLevelDirInfo(); -void pushLevelDirInfo(struct LevelDirInfo **, struct LevelDirInfo *); -int numLevelDirInfo(struct LevelDirInfo *); -boolean validLevelSeries(struct LevelDirInfo *); -struct LevelDirInfo *getFirstValidLevelSeries(struct LevelDirInfo *); -struct LevelDirInfo *getLevelDirInfoFirstGroupEntry(struct LevelDirInfo *); -int numLevelDirInfoInGroup(struct LevelDirInfo *); -int posLevelDirInfo(struct LevelDirInfo *); -struct LevelDirInfo *getLevelDirInfoFromPos(struct LevelDirInfo *, int); -struct LevelDirInfo *getLevelDirInfoFromFilename(char *); -void dumpLevelDirInfo(struct LevelDirInfo *, int); -void sortLevelDirInfo(struct LevelDirInfo **, - int (*compare_function)(const void *, const void *)); -inline void swap_numbers(int *, int *); -inline void swap_number_pairs(int *, int *, int *, int *); -char *getUserDataDir(void); -void createDirectory(char *, char *); -void InitUserDataDirectory(void); +ListNode *newListNode(void); +void addNodeToList(ListNode **, char *, void *); +void deleteNodeFromList(ListNode **, char *, void (*function)(void *)); +ListNode *getNodeFromKey(ListNode *, char *); +int getNumNodes(ListNode *); + + +boolean FileIsGraphic(char *); +boolean FileIsSound(char *); +boolean FileIsMusic(char *); +boolean FileIsArtworkType(char *, int); + +void ReloadCustomArtworkList(struct ArtworkListInfo *); +void FreeCustomArtworkList(struct ArtworkListInfo *); + #if !defined(PLATFORM_UNIX) void initErrorFile();