X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fdarkplaces.git;a=blobdiff_plain;f=common.h;h=b1a7b90b2b6f9a52edee790c8a81beb7b0e779ba;hp=0cb18bfb59c901b32bc56b8db8ac25f37203301a;hb=679f31232d927e129a0d37d0325a9e62ff8845ad;hpb=62bc56e9c2d45afe69ba3f1ebb87f40d5753eeab diff --git a/common.h b/common.h index 0cb18bfb..b1a7b90b 100644 --- a/common.h +++ b/common.h @@ -84,8 +84,9 @@ void Com_BlockFullChecksum (void *buffer, int len, unsigned char *outbuf); #endif // If we still don't know the CPU endianess at this point, we try to guess +// normally including sys/types.h includes endian.h for the platform, which defines BYTE_ORDER, LITTLE_ENDIAN, and BIG_ENDIAN, however endian.h is a BSD-ism, and may not be present on all platforms (particularly windows) #ifndef BYTE_ORDER -# if defined(WIN32) +# if defined(WIN32) || defined (__i386) || defined(__amd64) # define BYTE_ORDER LITTLE_ENDIAN # else # if defined(SUNOS) @@ -212,7 +213,7 @@ void COM_Init (void); void COM_Shutdown (void); void COM_InitGameType (void); -char *va(const char *format, ...); +char *va(const char *format, ...) DP_FUNC_PRINTF(1); // does a varargs printf into a temp buffer @@ -224,7 +225,7 @@ char *va(const char *format, ...); // return the number of printed characters, excluding the final '\0' // or return -1 if the buffer isn't big enough to contain the entire string. // buffer is ALWAYS null-terminated -extern int dpsnprintf (char *buffer, size_t buffersize, const char *format, ...); +extern int dpsnprintf (char *buffer, size_t buffersize, const char *format, ...) DP_FUNC_PRINTF(3); extern int dpvsnprintf (char *buffer, size_t buffersize, const char *format, va_list args); // A bunch of functions are forbidden for security reasons (and also to please MSVS 2005, for some of them) @@ -267,6 +268,8 @@ typedef enum gamemode_e GAME_NETHERWORLD, GAME_THEHUNTED, GAME_DEFEATINDETAIL2, + GAME_DARSANA, + GAME_CONTAGIONTHEORY, } gamemode_t; @@ -286,16 +289,18 @@ int COM_ReadAndTokenizeLine(const char **text, char **argv, int maxargc, char *t typedef struct stringlist_s { - struct stringlist_s *next; - char *text; + // maxstrings changes as needed, causing reallocation of strings[] array + int maxstrings; + int numstrings; + char **strings; } stringlist_t; int matchpattern(const char *in, const char *pattern, int caseinsensitive); -stringlist_t *stringlistappend(stringlist_t *current, char *text); -void stringlistfree(stringlist_t *current); -stringlist_t *stringlistsort(stringlist_t *start); -stringlist_t *listdirectory(const char *path); -void freedirectory(stringlist_t *list); +void stringlistinit(stringlist_t *list); +void stringlistfreecontents(stringlist_t *list); +void stringlistappend(stringlist_t *list, char *text); +void stringlistsort(stringlist_t *list); +void listdirectory(stringlist_t *list, const char *path); char *SearchInfostring(const char *infostring, const char *key);