X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fmisc.h;h=12c28c3264c8a0b69fd79f77cb1c8c3735419e6a;hb=297ee9b33dab3bca9433befc81d7c7ce91450dd0;hp=a42a75846b8184ab05aceb5f816e7fde42d4ceda;hpb=f3ab1f12fc514251aad3f8efcb30b7f1620fffdb;p=rocksndiamonds.git diff --git a/src/libgame/misc.h b/src/libgame/misc.h index a42a7584..12c28c32 100644 --- a/src/libgame/misc.h +++ b/src/libgame/misc.h @@ -16,6 +16,7 @@ #include #include +#include #include "system.h" @@ -25,7 +26,7 @@ #define READ_COUNTER 1 /* values for InitRND() */ -#define NEW_RANDOMIZE -1 +#define NEW_RANDOMIZE 0 #define RANDOM_ENGINE 0 #define RANDOM_SIMPLE 1 @@ -36,8 +37,8 @@ #define GetSimpleRandom(max) get_random_number(RANDOM_SIMPLE, max) /* values for Error() */ -#define ERR_RETURN 0 -#define ERR_RETURN_LINE (1 << 0) +#define ERR_INFO 0 +#define ERR_INFO_LINE (1 << 0) #define ERR_WARN (1 << 1) #define ERR_EXIT (1 << 2) #define ERR_HELP (1 << 3) @@ -69,6 +70,36 @@ /* values for general username handling stuff */ #define MAX_USERNAME_LEN 1024 +#if defined(PLATFORM_ANDROID) +/* values for Android asset handling */ +#define ASSET_TOC_BASENAME ".toc" +#endif + + +/* structure definitions */ + +struct DirectoryEntry +{ + boolean is_directory; + char *basename; + char *filename; +}; + +struct Directory +{ + char *filename; + DIR *dir; + struct DirectoryEntry *dir_entry; + +#if defined(PLATFORM_ANDROID) + boolean directory_is_asset; + SDL_RWops *asset_toc_file; + char *current_entry; +#endif +}; + + +/* function definitions */ void fprintf_line(FILE *, char *, int); void printf_line(char *, int); @@ -77,19 +108,23 @@ char *int2str(int, int); char *i_to_a(unsigned int); int log_2(unsigned int); +boolean getTokenValueFromString(char *, char **, char **); + 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); +unsigned int Counter(void); +void Delay(unsigned int); +boolean FrameReached(unsigned int *, unsigned int); +boolean DelayReached(unsigned int *, unsigned int); +void WaitUntilDelayReached(unsigned int *, unsigned int); -unsigned int init_random_number(int, long); +unsigned int init_random_number(int, int); unsigned int get_random_number(int, int); char *getLoginName(void); char *getRealName(void); +time_t getFileTimestampEpochSeconds(char *); + char *getBasePath(char *); char *getBaseName(char *); char *getBaseNamePtr(char *); @@ -101,9 +136,15 @@ char *getStringCat3(char *, char *, char *); char *getPath2(char *, char *); char *getPath3(char *, char *, char*); char *getStringCopy(char *); +char *getStringCopyN(char *, int); char *getStringToLower(char *); void setString(char **, char *); boolean strEqual(char *, char *); +boolean strEqualN(char *, char *, int); +boolean strPrefix(char *, char *); +boolean strSuffix(char *, char *); +boolean strPrefixLower(char *, char *); +boolean strSuffixLower(char *, char *); void GetOptions(char **, void (*print_usage_function)(void)); @@ -111,10 +152,11 @@ 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); +void *checked_malloc(unsigned int); +void *checked_calloc(unsigned int); +void *checked_realloc(void *, unsigned int); void checked_free(void *); +void clear_mem(void *, unsigned int); void swap_numbers(int *, int *); void swap_number_pairs(int *, int *, int *, int *); @@ -131,11 +173,11 @@ int putFileChunk(FILE *, char *, int, int); int getFileVersion(FILE *); int putFileVersion(FILE *, int); -void ReadBytesFromFile(FILE *, byte *, unsigned long); -void WriteBytesToFile(FILE *, byte *, unsigned long); +void ReadBytesFromFile(FILE *, byte *, unsigned int); +void WriteBytesToFile(FILE *, byte *, unsigned int); -void ReadUnusedBytesFromFile(FILE *, unsigned long); -void WriteUnusedBytesToFile(FILE *, unsigned long); +void ReadUnusedBytesFromFile(FILE *, unsigned int); +void WriteUnusedBytesToFile(FILE *, unsigned int); #define getFile8Bit(f) getFile8BitInteger(f) #define putFile8Bit(f,x) putFile8BitInteger(f,x) @@ -158,9 +200,11 @@ char *getX11KeyNameFromKey(Key); Key getKeyFromKeyName(char *); Key getKeyFromX11KeyName(char *); char getCharFromKey(Key); +char getValidConfigValueChar(char); int get_integer_from_string(char *); boolean get_boolean_from_string(char *); +int get_switch3_from_string(char *); ListNode *newListNode(void); void addNodeToList(ListNode **, char *, void *); @@ -168,6 +212,11 @@ void deleteNodeFromList(ListNode **, char *, void (*function)(void *)); ListNode *getNodeFromKey(ListNode *, char *); int getNumNodes(ListNode *); +struct Directory *openDirectory(char *); +int closeDirectory(struct Directory *); +struct DirectoryEntry *readDirectory(struct Directory *); +void freeDirectoryEntry(struct DirectoryEntry *); + boolean fileExists(char *); boolean FileIsGraphic(char *); boolean FileIsSound(char *); @@ -177,7 +226,6 @@ boolean FileIsArtworkType(char *, int); char *get_mapped_token(char *); int get_parameter_value(char *, char *, int); -int get_auto_parameter_value(char *, char *); struct ScreenModeInfo *get_screen_mode_from_string(char *); void get_aspect_ratio_from_screen_mode(struct ScreenModeInfo *, int *x, int *y);