X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Flibgame%2Fmisc.h;h=caf1bb64542aa72bc916ce40b59382ffd4c5578d;hp=3af58389d25d9186d86d59620af76d7d0bbf431c;hb=601cca5b35649856ff49e1bcb3806592b736662c;hpb=d5f5329a0cf3d0cb533fe0e1e90d4363e93889b1 diff --git a/src/libgame/misc.h b/src/libgame/misc.h index 3af58389..caf1bb64 100644 --- a/src/libgame/misc.h +++ b/src/libgame/misc.h @@ -1,7 +1,7 @@ /*********************************************************** * Artsoft Retro-Game Library * *----------------------------------------------------------* -* (c) 1994-2001 Artsoft Entertainment * +* (c) 1994-2002 Artsoft Entertainment * * Holger Schemel * * Detmolder Strasse 189 * * 33604 Bielefeld * @@ -29,12 +29,13 @@ /* values for Error() */ #define ERR_RETURN 0 -#define ERR_WARN (1 << 0) -#define ERR_EXIT (1 << 1) -#define ERR_HELP (1 << 2) -#define ERR_SOUND_SERVER (1 << 3) -#define ERR_NETWORK_SERVER (1 << 4) -#define ERR_NETWORK_CLIENT (1 << 5) +#define ERR_RETURN_LINE (1 << 0) +#define ERR_WARN (1 << 1) +#define ERR_EXIT (1 << 2) +#define ERR_HELP (1 << 3) +#define ERR_SOUND_SERVER (1 << 4) +#define ERR_NETWORK_SERVER (1 << 5) +#define ERR_NETWORK_CLIENT (1 << 6) #define ERR_FROM_SERVER (ERR_SOUND_SERVER | ERR_NETWORK_SERVER) #define ERR_EXIT_HELP (ERR_EXIT | ERR_HELP) #define ERR_EXIT_SOUND_SERVER (ERR_EXIT | ERR_SOUND_SERVER) @@ -45,66 +46,104 @@ #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 fprintf_line(FILE *, char *, int); +void printf_line(char *, int); +char *int2str(int, int); + void InitCounter(void); unsigned long Counter(void); void Delay(unsigned long); boolean FrameReached(unsigned long *, unsigned long); boolean DelayReached(unsigned long *, unsigned long); void WaitUntilDelayReached(unsigned long *, unsigned long); -char *int2str(int, int); + unsigned int SimpleRND(unsigned int); unsigned int RND(unsigned int); unsigned int InitRND(long); + char *getLoginName(void); char *getRealName(void); char *getHomeDir(void); + char *getPath2(char *, char *); char *getPath3(char *, char *, char*); +char *getStringCat2(char *, char *); char *getStringCopy(char *); char *getStringToLower(char *); +void setString(char **, 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); 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 *); +int get_integer_from_string(char *); +boolean get_boolean_from_string(char *); + +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); + +int get_parameter_value(int, char *); -char *getUserDataDir(void); -void createDirectory(char *, char *); -void InitUserDataDirectory(void); -void SetFilePermissions_Level(char *); -void SetFilePermissions_Tape(char *); -void SetFilePermissions_Score(char *); -void SetFilePermissions_Setup(char *); +struct FileInfo *getFileListFromConfigList(struct ConfigInfo *, + struct ConfigInfo *, int); +void LoadArtworkConfig(struct ArtworkListInfo *); +void ReloadCustomArtworkList(struct ArtworkListInfo *); +void FreeCustomArtworkLists(struct ArtworkListInfo *); #if !defined(PLATFORM_UNIX) void initErrorFile();