From cf7436b64407ba64a1ca9c6d68163799b8260af3 Mon Sep 17 00:00:00 2001 From: treeston Date: Tue, 1 Mar 2016 23:09:25 +0100 Subject: 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) --- src/common/Utilities/Random.cpp | 8 ++++++++ src/common/Utilities/Random.h | 4 ++++ 2 files changed, 12 insertions(+) (limited to 'src') 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 #include @@ -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); -- cgit v1.2.3