mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-22 02:04:52 +01:00
Merge pull request #4582 from Chaplain/cleanup4
Core/Utilities: Implement random generator for float values. NOTE: Actually just casts the outcome of int randgen to float
This commit is contained in:
@@ -30,17 +30,22 @@
|
||||
typedef ACE_TSS<SFMTRand> SFMTRandTSS;
|
||||
static SFMTRandTSS sfmtRand;
|
||||
|
||||
int32 irand (int32 min, int32 max)
|
||||
int32 irand(int32 min, int32 max)
|
||||
{
|
||||
return int32(sfmtRand->IRandom(min, max));
|
||||
}
|
||||
|
||||
uint32 urand (uint32 min, uint32 max)
|
||||
uint32 urand(uint32 min, uint32 max)
|
||||
{
|
||||
return sfmtRand->URandom(min, max);
|
||||
}
|
||||
|
||||
int32 rand32 ()
|
||||
float frand(float min, float max)
|
||||
{
|
||||
return float(sfmtRand->Random() * (max - min) + min);
|
||||
}
|
||||
|
||||
int32 rand32()
|
||||
{
|
||||
return int32(sfmtRand->BRandom());
|
||||
}
|
||||
@@ -50,27 +55,33 @@ double rand_norm(void)
|
||||
return sfmtRand->Random();
|
||||
}
|
||||
|
||||
double rand_chance (void)
|
||||
double rand_chance(void)
|
||||
{
|
||||
return sfmtRand->Random() * 100.0;
|
||||
}
|
||||
|
||||
#else
|
||||
typedef ACE_TSS<MTRand> MTRandTSS;
|
||||
static MTRandTSS mtRand;
|
||||
|
||||
int32 irand(int32 min, int32 max)
|
||||
{
|
||||
return int32(mtRand->randInt (max - min)) + min;
|
||||
return int32(mtRand->randInt(max - min)) + min;
|
||||
}
|
||||
|
||||
uint32 urand(uint32 min, uint32 max)
|
||||
{
|
||||
return mtRand->randInt (max - min) + min;
|
||||
return mtRand->randInt(max - min) + min;
|
||||
}
|
||||
|
||||
float frand(float min, float max)
|
||||
{
|
||||
return float(mtRand->randExc(max - min) + min);
|
||||
}
|
||||
|
||||
int32 rand32()
|
||||
{
|
||||
return mtRand->randInt ();
|
||||
return mtRand->randInt();
|
||||
}
|
||||
|
||||
double rand_norm(void)
|
||||
|
||||
@@ -64,6 +64,9 @@ inline uint32 secsToTimeBitFields(time_t secs)
|
||||
/* Return a random number in the range 0 .. RAND32_MAX. */
|
||||
int32 rand32();
|
||||
|
||||
/* Return a random number in the range min..max */
|
||||
float frand(float min, float max);
|
||||
|
||||
/* Return a random double from 0.0 to 1.0 (exclusive). Floats support only 7 valid decimal digits.
|
||||
* A double supports up to 15 valid decimal digits and is used internally (RAND32_MAX has 10 digits).
|
||||
* With an FPU, there is usually no difference in performance between float and double. */
|
||||
|
||||
Reference in New Issue
Block a user