diff options
author | treeston <treeston.mmoc@gmail.com> | 2016-03-01 23:09:25 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2016-04-08 22:57:01 +0200 |
commit | cf7436b64407ba64a1ca9c6d68163799b8260af3 (patch) | |
tree | 2de5fb27adbf77e087157f14cf385b1aac4b133e /src | |
parent | 3b67e57e0e2730e7ad9bcbcbd1cc86739d21ffd1 (diff) |
Util/Random: Add randtime(Milliseconds const&, Milliseconds const&) to supersede urandms(uint32,uint32) for scripts being ported to std::chrono.
(cherry picked from commit 224b42c53a6ae212f2d1d550903e019ab8a741d6)
Diffstat (limited to 'src')
-rw-r--r-- | src/common/Utilities/Random.cpp | 8 | ||||
-rw-r--r-- | src/common/Utilities/Random.h | 4 |
2 files changed, 12 insertions, 0 deletions
diff --git a/src/common/Utilities/Random.cpp b/src/common/Utilities/Random.cpp index 157ff9b06d3..1c325c38308 100644 --- a/src/common/Utilities/Random.cpp +++ b/src/common/Utilities/Random.cpp @@ -61,6 +61,14 @@ float frand(float min, float max) return float(GetRng()->Random() * (max - min) + min); } +Milliseconds randtime(Milliseconds const& min, Milliseconds const& max) +{ + long long diff = max.count() - min.count(); + ASSERT(diff >= 0); + ASSERT(diff <= (uint32)-1); + return min + Milliseconds(urand(0, diff)); +} + uint32 rand32() { return GetRng()->BRandom(); diff --git a/src/common/Utilities/Random.h b/src/common/Utilities/Random.h index da3df620af8..f1758abfdeb 100644 --- a/src/common/Utilities/Random.h +++ b/src/common/Utilities/Random.h @@ -19,6 +19,7 @@ #define Random_h__ #include "Define.h" +#include "Duration.h" #include <limits> #include <random> @@ -34,6 +35,9 @@ TC_COMMON_API uint32 urandms(uint32 min, uint32 max); /* Return a random number in the range 0 .. UINT32_MAX. */ TC_COMMON_API uint32 rand32(); +/* Return a random time in the range min..max (up to millisecond precision). Only works for values where millisecond difference is a valid uint32. */ +Milliseconds randtime(Milliseconds const& min, Milliseconds const& max); + /* Return a random number in the range min..max */ TC_COMMON_API float frand(float min, float max); |