mirror of
https://github.com/VCMP-SqMod/SqMod.git
synced 2025-02-22 04:37:13 +01:00
Add a secondary seed function that fills the entire seed size. Even on x64 windows. Where long is 32 bit.
This commit is contained in:
parent
d52507e824
commit
68e00bce02
@ -82,6 +82,29 @@ SizeT GenerateSeed()
|
||||
return c;
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------------------------
|
||||
SizeT GenerateSeed2()
|
||||
{
|
||||
struct {
|
||||
std::clock_t c;
|
||||
std::time_t t;
|
||||
#ifdef SQMOD_OS_WINDOWS
|
||||
int p;
|
||||
#else
|
||||
pid_t p;
|
||||
#endif
|
||||
} data;
|
||||
data.c = std::clock();
|
||||
data.t = std::time(nullptr);
|
||||
#ifdef SQMOD_OS_WINDOWS
|
||||
data.p = _getpid();
|
||||
#else
|
||||
data.p = getpid();
|
||||
#endif
|
||||
// Mangle and return result
|
||||
return FnvHash(reinterpret_cast< const uint8_t * >(&data), sizeof(data));
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------------------------
|
||||
void ReseedRandom()
|
||||
{
|
||||
@ -382,6 +405,7 @@ void Register_Random(HSQUIRRELVM vm)
|
||||
{
|
||||
RootTable(vm).Bind(_SC("SqRand"), Table(vm)
|
||||
.Func(_SC("GenSeed"), &GenerateSeed)
|
||||
.Func(_SC("GenSeed2"), &GenerateSeed2)
|
||||
.Overload< void (*)(void) >(_SC("Reseed"), &ReseedRandom)
|
||||
.Overload< void (*)(Uint32) >(_SC("Reseed"), &ReseedRandom)
|
||||
.Overload< void (*)(void) >(_SC("Reseed32"), &ReseedRandom32)
|
||||
|
Loading…
x
Reference in New Issue
Block a user