/*
===========================================================================
Return to Castle Wolfenstein single player GPL Source Code
Copyright (C) 1999-2010 id Software LLC, a ZeniMax Media company.
This file is part of the Return to Castle Wolfenstein single player GPL Source Code (RTCW SP Source Code).
RTCW SP 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 SP 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 SP Source Code. If not, see .
In addition, the RTCW SP 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 SP 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