/* =========================================================================== Return to Castle Wolfenstein multiplayer GPL Source Code Copyright (C) 1999-2010 id Software LLC, a ZeniMax Media company. This file is part of the Return to Castle Wolfenstein multiplayer GPL Source Code (“RTCW MP Source Code”). RTCW MP Source Code is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. RTCW MP Source Code is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with RTCW MP Source Code. If not, see . In addition, the RTCW MP Source Code is also subject to certain additional terms. You should have received a copy of these additional terms immediately following the terms and conditions of the GNU General Public License which accompanied the RTCW MP Source Code. If not, please request a copy in writing from id Software at the address below. If you have questions concerning this license or the applicable additional terms, you may contact in writing id Software LLC, c/o ZeniMax Media Inc., Suite 120, Rockville, Maryland 20850 USA. =========================================================================== */ // cmdlib.h #ifndef SIN #define SIN #endif //SIN #ifndef __CMDLIB__ #define __CMDLIB__ #ifdef _WIN32 #pragma warning(disable : 4244) // MIPS #pragma warning(disable : 4136) // X86 #pragma warning(disable : 4051) // ALPHA #pragma warning(disable : 4018) // signed/unsigned mismatch #pragma warning(disable : 4305) // truncate from double to float #endif #include #include #include #include #include #include #include #ifndef __BYTEBOOL__ #define __BYTEBOOL__ typedef enum {false, true} qboolean; typedef unsigned char byte; #endif // the dec offsetof macro doesnt work very well... #define myoffsetof( type,identifier ) ( (size_t)&( (type *)0 )->identifier ) // set these before calling CheckParm extern int myargc; extern char **myargv; char *strupr( char *in ); char *strlower( char *in ); int Q_strncasecmp( char *s1, char *s2, int n ); int Q_strcasecmp( char *s1, char *s2 ); void Q_getwd( char *out ); int Q_filelength( FILE *f ); int FileTime( char *path ); void Q_mkdir( char *path ); extern char qdir[1024]; extern char gamedir[1024]; void SetQdirFromPath( char *path ); char *ExpandArg( char *path ); // from cmd line char *ExpandPath( char *path ); // from scripts char *ExpandPathAndArchive( char *path ); double I_FloatTime( void ); void Error( char *error, ... ); void Warning( char *warning, ... ); int CheckParm( char *check ); FILE *SafeOpenWrite( char *filename ); FILE *SafeOpenRead( char *filename ); void SafeRead( FILE *f, void *buffer, int count ); void SafeWrite( FILE *f, void *buffer, int count ); int LoadFile( char *filename, void **bufferptr, int offset, int length ); int TryLoadFile( char *filename, void **bufferptr ); void SaveFile( char *filename, void *buffer, int count ); qboolean FileExists( char *filename ); void DefaultExtension( char *path, char *extension ); void DefaultPath( char *path, char *basepath ); void StripFilename( char *path ); void StripExtension( char *path ); void ExtractFilePath( char *path, char *dest ); void ExtractFileBase( char *path, char *dest ); void ExtractFileExtension( char *path, char *dest ); int ParseNum( char *str ); short BigShort( short l ); short LittleShort( short l ); int BigLong( int l ); int LittleLong( int l ); float BigFloat( float l ); float LittleFloat( float l ); #ifdef SIN unsigned short BigUnsignedShort( unsigned short l ); unsigned short LittleUnsignedShort( unsigned short l ); unsigned BigUnsigned( unsigned l ); unsigned LittleUnsigned( unsigned l ); #endif char *COM_Parse( char *data ); extern char com_token[1024]; extern qboolean com_eof; char *copystring( char *s ); void CRC_Init( unsigned short *crcvalue ); void CRC_ProcessByte( unsigned short *crcvalue, byte data ); unsigned short CRC_Value( unsigned short crcvalue ); void CreatePath( char *path ); void QCopyFile( char *from, char *to ); extern qboolean archive; extern char archivedir[1024]; extern qboolean verbose; void qprintf( char *format, ... ); void ExpandWildcards( int *argc, char ***argv ); // for compression routines typedef struct { byte *data; int count; } cblock_t; #endif