X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fdarkplaces.git;a=blobdiff_plain;f=common.h;h=b1a7b90b2b6f9a52edee790c8a81beb7b0e779ba;hp=97c6e799557dc010f670fe22c802343a3192c9b6;hb=679f31232d927e129a0d37d0325a9e62ff8845ad;hpb=ac4cb312f454a6097b0f152c947cb8c9698d4bd1 diff --git a/common.h b/common.h index 97c6e799..b1a7b90b 100644 --- a/common.h +++ b/common.h @@ -63,6 +63,10 @@ unsigned short CRC_Block(const unsigned char *data, size_t size); unsigned char COM_BlockSequenceCRCByteQW(unsigned char *base, int length, int sequence); +// these are actually md4sum (mdfour.c) +unsigned Com_BlockChecksum (void *buffer, int length); +void Com_BlockFullChecksum (void *buffer, int len, unsigned char *outbuf); + //============================================================================ // Endianess handling @@ -80,8 +84,9 @@ unsigned char COM_BlockSequenceCRCByteQW(unsigned char *base, int length, int se #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) @@ -206,10 +211,9 @@ extern const char **com_argv; int COM_CheckParm (const char *parm); void COM_Init (void); void COM_Shutdown (void); -void COM_InitArgv (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 @@ -221,9 +225,22 @@ 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) +// LordHavoc: added #undef lines here to avoid warnings in Linux +#undef strcat +#define strcat DO_NOT_USE_STRCAT__USE_STRLCAT_OR_MEMCPY +#undef strncat +#define strncat DO_NOT_USE_STRNCAT__USE_STRLCAT_OR_MEMCPY +#undef strcpy +#define strcpy DO_NOT_USE_STRCPY__USE_STRLCPY_OR_MEMCPY +#undef strncpy +#define strncpy DO_NOT_USE_STRNCPY__USE_STRLCPY_OR_MEMCPY +//#undef sprintf +//#define sprintf DO_NOT_USE_SPRINTF__USE_DPSNPRINTF + //============================================================================ @@ -242,7 +259,6 @@ typedef enum gamemode_e GAME_TEU, GAME_BATTLEMECH, GAME_ZYMOTIC, - GAME_FNIGGIUM, GAME_SETHERAL, GAME_SOM, GAME_TENEBRAE, // full of evil hackery @@ -252,6 +268,8 @@ typedef enum gamemode_e GAME_NETHERWORLD, GAME_THEHUNTED, GAME_DEFEATINDETAIL2, + GAME_DARSANA, + GAME_CONTAGIONTHEORY, } gamemode_t; @@ -271,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(char *in, 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); +int matchpattern(const char *in, const char *pattern, int caseinsensitive); +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);