- Introduce seeding of the random number generator at startup
- Replaced all engine-side occurances of rand() with random()
This commit is contained in:
parent
7aed7e8861
commit
b40f1507ea
5 changed files with 28 additions and 17 deletions
|
@ -2500,6 +2500,22 @@ static void Com_DetectAltivec(void)
|
|||
}
|
||||
|
||||
|
||||
/*
|
||||
=================
|
||||
Com_InitRand
|
||||
Seed the random number generator, if possible with an OS supplied random seed.
|
||||
=================
|
||||
*/
|
||||
static void Com_InitRand(void)
|
||||
{
|
||||
unsigned int seed;
|
||||
|
||||
if(Sys_Random(&seed, sizeof(seed)))
|
||||
srand(seed);
|
||||
else
|
||||
srand(time(NULL));
|
||||
}
|
||||
|
||||
/*
|
||||
=================
|
||||
Com_Init
|
||||
|
@ -2519,8 +2535,11 @@ void Com_Init( char *commandLine ) {
|
|||
Com_Memset( &eventQueue[ 0 ], 0, MAX_QUEUED_EVENTS * sizeof( sysEvent_t ) );
|
||||
Com_Memset( &sys_packetReceived[ 0 ], 0, MAX_MSGLEN * sizeof( byte ) );
|
||||
|
||||
// do this before anything else decides to push events
|
||||
Com_InitPushEvent();
|
||||
// initialize the weak pseudo-random number generator for use later.
|
||||
Com_InitRand();
|
||||
|
||||
// do this before anything else decides to push events
|
||||
Com_InitPushEvent();
|
||||
|
||||
Com_InitSmallZoneMemory();
|
||||
Cvar_Init ();
|
||||
|
@ -3322,8 +3341,7 @@ void Com_RandomBytes( byte *string, int len )
|
|||
return;
|
||||
|
||||
Com_Printf( "Com_RandomBytes: using weak randomization\n" );
|
||||
srand( time( 0 ) );
|
||||
for( i = 0; i < len; i++ )
|
||||
string[i] = (unsigned char)( rand() % 255 );
|
||||
string[i] = (unsigned char)( random() % 255 );
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue