105 lines
1.9 KiB
C++
105 lines
1.9 KiB
C++
|
#include "common_headers.h"
|
||
|
|
||
|
#ifdef _IMMERSION
|
||
|
|
||
|
//#include "ff_utils.h"
|
||
|
|
||
|
extern cvar_t *ff_developer;
|
||
|
|
||
|
//
|
||
|
// Didn't know about strrchr. This is slightly different anyway.
|
||
|
//
|
||
|
int _rcpos( const char* string, char c, int pos )
|
||
|
{
|
||
|
int length = strlen( string );
|
||
|
length = ( pos >= 0 && pos < length ? pos : length );
|
||
|
for ( int i = length - 1; i >= 0; i-- )
|
||
|
if ( string[i] == c )
|
||
|
return i;
|
||
|
return -1;
|
||
|
}
|
||
|
|
||
|
void* LoadFile( const char *filename )
|
||
|
{
|
||
|
void *buffer;
|
||
|
|
||
|
int length = FS_ReadFile( filename, &buffer );
|
||
|
|
||
|
return length != -1 ? buffer : NULL;
|
||
|
}
|
||
|
|
||
|
const char *UncommonDirectory( const char *target, const char *comp )
|
||
|
{
|
||
|
const char *pos = target;
|
||
|
|
||
|
for
|
||
|
( int i = 0
|
||
|
; target[ i ] && comp[ i ] && target[ i ] == comp[ i ]
|
||
|
; i++
|
||
|
){
|
||
|
if ( target[ i ] == '/' )
|
||
|
pos = target + i + 1;
|
||
|
}
|
||
|
|
||
|
if ( !comp[ i ] && target[ i ] == '/' )
|
||
|
pos = target + i + 1;
|
||
|
else
|
||
|
if ( !target[ i ] && comp[ i ] == '/' )
|
||
|
pos = target + i;
|
||
|
|
||
|
return pos;
|
||
|
}
|
||
|
|
||
|
////-------
|
||
|
/// RightOf
|
||
|
//-----------
|
||
|
//
|
||
|
//
|
||
|
// Parameters:
|
||
|
//
|
||
|
// Returns:
|
||
|
//
|
||
|
const char* RightOf( const char *str, const char *str2 )
|
||
|
{
|
||
|
if ( !str || !str2 )
|
||
|
return NULL;
|
||
|
|
||
|
const char *s = str;
|
||
|
int len1 = strlen( str );
|
||
|
int len2 = strlen( str2 );
|
||
|
|
||
|
if ( (len2)
|
||
|
&& (len1 >= len2)
|
||
|
){
|
||
|
s = strstr( str, str2 );
|
||
|
if ( s )
|
||
|
{
|
||
|
if ( ((s == str) && (*(s + len2) == '/'))
|
||
|
|| ((*(s - 1) == '/') && (*(s + len2) == '/'))
|
||
|
){
|
||
|
s += len2 + 1;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return s ? s : str;
|
||
|
}
|
||
|
|
||
|
#ifdef FF_PRINT
|
||
|
|
||
|
void ConsoleParseError( const char *message, const char *line, int pos /*=0*/)
|
||
|
{
|
||
|
if ( ff_developer && ff_developer->integer )
|
||
|
{
|
||
|
Com_Printf( "Parse error: %s\n%s\n%*c\n", message, line, pos + 1, '^' );
|
||
|
}
|
||
|
}
|
||
|
|
||
|
qboolean FS_VerifyName( const char *src, const char *name, char *out, int maxlen )
|
||
|
{
|
||
|
return qtrue;
|
||
|
}
|
||
|
|
||
|
#endif // FF_PRINT
|
||
|
|
||
|
#endif // _IMMERSION
|