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;
|
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()
|
void ReseedRandom()
|
||||||
{
|
{
|
||||||
@ -382,6 +405,7 @@ void Register_Random(HSQUIRRELVM vm)
|
|||||||
{
|
{
|
||||||
RootTable(vm).Bind(_SC("SqRand"), Table(vm)
|
RootTable(vm).Bind(_SC("SqRand"), Table(vm)
|
||||||
.Func(_SC("GenSeed"), &GenerateSeed)
|
.Func(_SC("GenSeed"), &GenerateSeed)
|
||||||
|
.Func(_SC("GenSeed2"), &GenerateSeed2)
|
||||||
.Overload< void (*)(void) >(_SC("Reseed"), &ReseedRandom)
|
.Overload< void (*)(void) >(_SC("Reseed"), &ReseedRandom)
|
||||||
.Overload< void (*)(Uint32) >(_SC("Reseed"), &ReseedRandom)
|
.Overload< void (*)(Uint32) >(_SC("Reseed"), &ReseedRandom)
|
||||||
.Overload< void (*)(void) >(_SC("Reseed32"), &ReseedRandom32)
|
.Overload< void (*)(void) >(_SC("Reseed32"), &ReseedRandom32)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user