X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Flibgame%2Fmisc.h;h=431d59139850d925f7343340dc26dcdfeb06ff57;hb=142d88521dfcde187ea315279d79203c00e1b0f3;hp=34499610e2633ea978a4b11553a32cceb9a34105;hpb=4a8368abd71c718621838773eed914b5bbd4e1d8;p=rocksndiamonds.git diff --git a/src/libgame/misc.h b/src/libgame/misc.h index 34499610..431d5913 100644 --- a/src/libgame/misc.h +++ b/src/libgame/misc.h @@ -16,6 +16,7 @@ #include #include +#include #include "system.h" @@ -69,6 +70,48 @@ /* 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 */ + +typedef struct +{ + char *filename; + FILE *file; + boolean end_of_file; + +#if defined(PLATFORM_ANDROID) + boolean file_is_asset; + SDL_RWops *asset_file; +#endif +} File; + +typedef struct +{ + boolean is_directory; + char *basename; + char *filename; +} DirectoryEntry; + +typedef struct +{ + char *filename; + DIR *dir; + DirectoryEntry *dir_entry; + +#if defined(PLATFORM_ANDROID) + boolean directory_is_asset; + SDL_RWops *asset_toc_file; + char *current_entry; +#endif +} Directory; + + +/* function definitions */ void fprintf_line(FILE *, char *, int); void printf_line(char *, int); @@ -80,13 +123,13 @@ 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); @@ -121,11 +164,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 long); +void clear_mem(void *, unsigned int); void swap_numbers(int *, int *); void swap_number_pairs(int *, int *, int *, int *); @@ -142,11 +185,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) @@ -181,6 +224,16 @@ void deleteNodeFromList(ListNode **, char *, void (*function)(void *)); ListNode *getNodeFromKey(ListNode *, char *); int getNumNodes(ListNode *); +File *openFile(char *, char *); +int closeFile(File *); +int checkEndOfFile(File *); +char *getStringFromFile(File *, char *, int); + +Directory *openDirectory(char *); +int closeDirectory(Directory *); +DirectoryEntry *readDirectory(Directory *); +void freeDirectoryEntry(DirectoryEntry *); + boolean fileExists(char *); boolean FileIsGraphic(char *); boolean FileIsSound(char *);