U32 MRandomLCG::randI() was using longs

32 and 64 bit windows can handle that. 64 bit linux no likey mixing longs and ints.
This commit is contained in:
Azaezel 2015-09-09 15:22:19 -05:00
parent 82bafd9f35
commit 58ae331609
2 changed files with 3 additions and 3 deletions

View file

@ -88,13 +88,13 @@ void MRandomLCG::setSeed(S32 s)
U32 MRandomLCG::randI()
{
if ( mSeed <= msQuotient )
mSeed = (mSeed * 16807L) % S32_MAX;
mSeed = (mSeed * 16807) % S32_MAX;
else
{
S32 high_part = mSeed / msQuotient;
S32 low_part = mSeed % msQuotient;
S32 test = (16807L * low_part) - (msRemainder * high_part);
S32 test = (16807 * low_part) - (msRemainder * high_part);
if ( test > 0 )
mSeed = test;

View file

@ -54,7 +54,7 @@ public:
inline F32 MRandomGenerator::randF()
{
// default: multiply by 1/(2^31)
return F32(randI()) * (1.0f/2147483647.0f);
return F32(randI()) * (1.0f / S32_MAX);
}
inline S32 MRandomGenerator::randI(S32 i, S32 n)