2 Copyright (C) 1999-2007 id Software, Inc. and contributors.
\r
3 For a list of contributors, see the accompanying CONTRIBUTORS file.
\r
5 This file is part of GtkRadiant.
\r
7 GtkRadiant is free software; you can redistribute it and/or modify
\r
8 it under the terms of the GNU General Public License as published by
\r
9 the Free Software Foundation; either version 2 of the License, or
\r
10 (at your option) any later version.
\r
12 GtkRadiant is distributed in the hope that it will be useful,
\r
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
\r
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
\r
15 GNU General Public License for more details.
\r
17 You should have received a copy of the GNU General Public License
\r
18 along with GtkRadiant; if not, write to the Free Software
\r
19 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
\r
23 Camera plugin for GtkRadiant
\r
24 Copyright (C) 2002 Splash Damage Ltd.
\r
29 void Sys_ERROR( char* text, ... )
\r
34 va_start (argptr,text);
\r
35 vsprintf (buf, text,argptr);
\r
38 Sys_Printf("Camera::ERROR->%s", buf);
\r
41 char* UnixToDosPath( char* path )
\r
46 for(char* p = path; *p; p++)
\r
55 void ExtractFilePath( const char *path, char *dest )
\r
59 src = path + strlen(path) - 1;
\r
62 // back up until a \ or the start
\r
64 while (src != path && *(src-1) != '/' && *(src-1) != '\\')
\r
67 memcpy (dest, path, src-path);
\r
71 const char* ExtractFilename( const char* path )
\r
73 char* p = (char *)strrchr(path, '/');
\r
76 p = (char *)strrchr(path, '\\');
\r
84 int Q_stricmp (const char *s1, const char *s2) {
\r
85 return stricmp( s1, s2 );
\r
93 bool FileExists (const char *filename)
\r
97 f = fopen( filename, "r" );
\r
106 // empty wrappers, don't really use them here
\r
108 void Cbuf_AddText( const char *text ) {};
\r
109 void Cbuf_Execute (void) {};
\r
115 void CDECL Com_Error( int level, const char *error, ... )
\r
120 va_start (argptr,error);
\r
121 vsprintf (buf, error,argptr);
\r
124 Sys_Printf("Camera::ERROR->%s", buf);
\r
127 void CDECL Com_Printf( const char* msg, ... )
\r
132 va_start (argptr,msg);
\r
133 vsprintf (buf, msg,argptr);
\r
136 Sys_Printf("Camera::%s", buf);
\r
139 void CDECL Com_DPrintf( const char* msg, ... )
\r
145 va_start (argptr,msg);
\r
146 vsprintf (buf, msg,argptr);
\r
149 Sys_Printf("Camera::%s", buf);
\r
153 void *Com_Allocate( int bytes ) {
\r
154 return( malloc( bytes ) );
\r
157 void Com_Dealloc( void *ptr ) {
\r
166 #pragma warning(disable : 4311)
\r
167 #pragma warning(disable : 4312)
\r
170 int FS_Read( void *buffer, int len, fileHandle_t f ) {
\r
171 return fread( buffer, len, 1, (FILE *)f );
\r
174 int FS_Write( const void *buffer, int len, fileHandle_t h ) {
\r
175 return fwrite( buffer, len, 1, (FILE *)h );
\r
178 int FS_ReadFile( const char *qpath, void **buffer ) {
\r
185 len = FS_FOpenFileRead( qpath, &h, qfalse );
\r
195 buf = (byte *)Com_Allocate( len + 1 );
\r
199 FS_Read (buf, len, h);
\r
202 FS_FCloseFile( h );
\r
207 void FS_FreeFile( void *buffer ) {
\r
208 Com_Dealloc( buffer );
\r
211 int FS_FOpenFileRead( const char *filename, fileHandle_t *file, qboolean uniqueFILE ) {
\r
215 fh = fopen( filename, "rb" );
\r
216 *file = *(fileHandle_t *)&fh;
\r
220 fseek (fh, 0, SEEK_END);
\r
229 fileHandle_t FS_FOpenFileWrite( const char *filename ) {
\r
233 memset( &f, 0, sizeof(f) );
\r
235 fh = fopen( filename, "wb" );
\r
237 f = (fileHandle_t)fh;
\r
241 void FS_FCloseFile( fileHandle_t f ) {
\r
242 fclose( (FILE *)f );
\r