Great idea, just we don’t want out pak files to be inside “My Games\OpenWolf” folder, maybe in the future we will use this
diff --git a/src/engine/framework/FileSystem.cpp b/src/engine/framework/FileSystem.cpp
index a046553..023a255 100644
--- a/src/engine/framework/FileSystem.cpp
+++ b/src/engine/framework/FileSystem.cpp
@@ -3786,7 +3786,6 @@ bool idFileSystemLocal::ComparePaks( valueType* neededpaks, sint len, bool dlstr
{
searchpath_t* sp;
bool havepak, badchecksum;
- valueType* origpos = neededpaks;
sint i;
if( !fs_numServerReferencedPaks )
@@ -3808,13 +3807,6 @@ bool idFileSystemLocal::ComparePaks( valueType* neededpaks, sint len, bool dlstr
continue;
}
- // Make sure the server cannot make us write to non-quake3 directories.
- if( strstr( fs_serverReferencedPakNames[i], "../" ) || strstr( fs_serverReferencedPakNames[i], "..\\" ) )
- {
- Com_Printf( "WARNING: Invalid download name %s\n", fs_serverReferencedPakNames[i] );
- continue;
- }
-
for( sp = fs_searchpaths ; sp ; sp = sp->next )
{
if( sp->pack && sp->pack->checksum == fs_serverReferencedPaks[i] )
@@ -3830,8 +3822,6 @@ bool idFileSystemLocal::ComparePaks( valueType* neededpaks, sint len, bool dlstr
if( dlstring )
{
- origpos += ::strlen( origpos );
-
// Remote name
Q_strcat( neededpaks, len, "@" );
Q_strcat( neededpaks, len, fs_serverReferencedPakNames[i] );
@@ -3853,12 +3843,6 @@ bool idFileSystemLocal::ComparePaks( valueType* neededpaks, sint len, bool dlstr
Q_strcat( neededpaks, len, fs_serverReferencedPakNames[i] );
Q_strcat( neededpaks, len, ".pk3" );
}
-
- if( ::strlen( origpos ) + ( origpos - neededpaks ) >= len - 1 )
- {
- *origpos = '\0';
- break;
- }
}
else
{
@@ -4477,7 +4461,7 @@ checksums to see if any pk3 files need to be auto-downloaded.
*/
void idFileSystemLocal::PureServerSetReferencedPaks( pointer pakSums, pointer pakNames )
{
- sint i, c, d = 0;
+ sint i, c, d;
cmdSystem->TokenizeString( pakSums );
@@ -4487,7 +4471,14 @@ void idFileSystemLocal::PureServerSetReferencedPaks( pointer pakSums, pointer pa
c = MAX_SEARCH_PATHS;
}
- for( i = 0 ; i < sizeof( fs_serverReferencedPakNames ) / sizeof( *fs_serverReferencedPakNames ); i++ )
+ fs_numServerReferencedPaks = c;
+
+ for( i = 0 ; i < c ; i++ )
+ {
+ fs_serverReferencedPaks[i] = atoi( cmdSystem->Argv( i ) );
+ }
+
+ for( i = 0 ; i < c ; i++ )
{
if( fs_serverReferencedPakNames[i] )
{
@@ -4507,23 +4498,12 @@ void idFileSystemLocal::PureServerSetReferencedPaks( pointer pakSums, pointer pa
{
d = MAX_SEARCH_PATHS;
}
- else if( d > c )
- {
- d = c;
- }
for( i = 0 ; i < d ; i++ )
{
fs_serverReferencedPakNames[i] = CopyString( cmdSystem->Argv( i ) );
}
}
-
- if( d < c )
- {
- c = d;
- }
-
- fs_numServerReferencedPaks = c;
}
/*
diff --git a/src/engine/qcommon/q_math.cpp b/src/engine/qcommon/q_math.cpp
index b9c87ca..6b5aef2 100644
--- a/src/engine/qcommon/q_math.cpp
+++ b/src/engine/qcommon/q_math.cpp
@@ -240,20 +240,14 @@ vec3_t bytedirs[NUMVERTEXNORMALS] =
//==============================================================
-sint Q_rand( sint* seed )
-{
- *seed = ( 69069 * *seed + 1 );
- return *seed;
-}
-
float32 Q_random( sint* seed )
{
- return ( Q_rand( seed ) & 0xffff ) / ( float32 )0x10000;
+ return ( ( rand() & 0x7FFF ) / ( ( float32 )0x8000 ) );
}
float32 Q_crandom( sint* seed )
{
- return 2.0f * ( Q_random( seed ) - 0.5f );
+ return ( 2.0f * ( ( ( rand() & 0x7FFF ) / ( ( float32 )0x7FFF ) ) - 0.5f ) );
}
diff --git a/src/engine/qcommon/q_shared.h b/src/engine/qcommon/q_shared.h
index e341d9e..8d0a1ab 100644
--- a/src/engine/qcommon/q_shared.h
+++ b/src/engine/qcommon/q_shared.h
@@ -571,12 +571,11 @@ sint NearestPowerOfTwo( sint val );
sint Q_log2( sint val );
float32 Q_acos( float32 c );
sint Q_isnan( float32 x );
-sint Q_rand( sint* seed );
float32 Q_random( sint* seed );
float32 Q_crandom( sint* seed );
-#define random() ( ( rand() & 0x7fff ) / ( (float32)0x7fff ) )
-#define crandom() ( 2.0 * ( random() - 0.5 ) )
+#define random() ( ( rand() & 0x7FFF ) / ( ( float32 )0x8000 ) )
+#define crandom() ( 2.0f * ( ( ( rand() & 0x7FFF ) / ( ( float32 )0x7FFF ) ) - 0.5f ) )
void vectoangles( const vec3_t value1, vec3_t angles );
GitHub
sha: 0cc6f9ba