1 /* 2 =========================================================================== 3 Copyright (C) 1999-2005 Id Software, Inc. 4 5 This file is part of Quake III Arena source code. 6 7 Quake III Arena source code is free software; you can redistribute it 8 and/or modify it under the terms of the GNU General Public License as 9 published by the Free Software Foundation; either version 2 of the License, 10 or (at your option) any later version. 11 12 Quake III Arena source code is distributed in the hope that it will be 13 useful, but WITHOUT ANY WARRANTY; without even the implied warranty of 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 GNU General Public License for more details. 16 17 You should have received a copy of the GNU General Public License 18 along with Quake III Arena source code; if not, write to the Free Software 19 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 20 =========================================================================== 21 */ 22 // cmdlib.h 23 24 #ifndef __CMDLIB__ 25 #define __CMDLIB__ 26 27 #ifdef _MSC_VER 28 #pragma warning(disable : 4244) // MIPS 29 #pragma warning(disable : 4136) // X86 30 #pragma warning(disable : 4051) // ALPHA 31 32 #pragma warning(disable : 4018) // signed/unsigned mismatch 33 #pragma warning(disable : 4305) // truncate from double to float 34 35 #pragma check_stack(off) 36 37 #endif 38 39 #include <stdio.h> 40 #include <string.h> 41 #include <stdlib.h> 42 #include <errno.h> 43 #include <ctype.h> 44 #include <time.h> 45 #include <stdarg.h> 46 47 #ifdef _MSC_VER 48 49 #pragma intrinsic( memset, memcpy ) 50 51 #endif 52 53 #ifndef __BYTEBOOL__ 54 #define __BYTEBOOL__ 55 typedef enum { qfalse, qtrue } qboolean; 56 typedef unsigned char byte; 57 #endif 58 59 #define MAX_OS_PATH 1024 60 #define MEM_BLOCKSIZE 4096 61 62 // the dec offsetof macro doesnt work very well... 63 #define myoffsetof(type,identifier) ((size_t)&((type *)0)->identifier) 64 65 66 // set these before calling CheckParm 67 extern int myargc; 68 extern char **myargv; 69 70 char *strupr (char *in); 71 char *strlower (char *in); 72 int Q_strncasecmp( const char *s1, const char *s2, int n ); 73 int Q_stricmp( const char *s1, const char *s2 ); 74 void Q_getwd( char *out ); 75 76 int Q_filelength (FILE *f); 77 int FileTime( const char *path ); 78 79 void Q_mkdir( const char *path ); 80 81 extern char qdir[1024]; 82 extern char gamedir[1024]; 83 extern char writedir[1024]; 84 void SetQdirFromPath( const char *path ); 85 char *ExpandArg( const char *path ); // from cmd line 86 char *ExpandPath( const char *path ); // from scripts 87 char *ExpandGamePath (const char *path); 88 char *ExpandPathAndArchive( const char *path ); 89 90 91 double I_FloatTime( void ); 92 93 void Error( const char *error, ... ); 94 int CheckParm( const char *check ); 95 96 FILE *SafeOpenWrite( const char *filename ); 97 FILE *SafeOpenRead( const char *filename ); 98 void SafeRead (FILE *f, void *buffer, int count); 99 void SafeWrite (FILE *f, const void *buffer, int count); 100 101 int LoadFile( const char *filename, void **bufferptr ); 102 int LoadFileBlock( const char *filename, void **bufferptr ); 103 int TryLoadFile( const char *filename, void **bufferptr ); 104 void SaveFile( const char *filename, const void *buffer, int count ); 105 qboolean FileExists( const char *filename ); 106 107 void DefaultExtension( char *path, const char *extension ); 108 void DefaultPath( char *path, const char *basepath ); 109 void StripFilename( char *path ); 110 void StripExtension( char *path ); 111 112 void ExtractFilePath( const char *path, char *dest ); 113 void ExtractFileBase( const char *path, char *dest ); 114 void ExtractFileExtension( const char *path, char *dest ); 115 116 int ParseNum (const char *str); 117 118 char *COM_Parse (char *data); 119 120 extern char com_token[1024]; 121 extern qboolean com_eof; 122 123 char *copystring(const char *s); 124 125 126 void CRC_Init(unsigned short *crcvalue); 127 void CRC_ProcessByte(unsigned short *crcvalue, byte data); 128 unsigned short CRC_Value(unsigned short crcvalue); 129 130 void CreatePath( const char *path ); 131 void QCopyFile( const char *from, const char *to ); 132 133 extern qboolean archive; 134 extern char archivedir[1024]; 135 136 137 extern qboolean verbose; 138 void qprintf( const char *format, ... ); 139 void _printf( const char *format, ... ); 140 141 void ExpandWildcards( int *argc, char ***argv ); 142 143 144 // for compression routines 145 typedef struct 146 { 147 void *data; 148 int count, width, height; 149 } cblock_t; 150 151 152 #endif 153