diff options
author | Robert Vollmert <rvollmert@gmx.net> | 2009-11-10 12:09:41 +0100 |
---|---|---|
committer | Robert Vollmert <rvollmert@gmx.net> | 2009-11-10 12:10:21 +0100 |
commit | 1569a7ec6ccfc1d9aafe1a92c70bba132adf6bf7 (patch) | |
tree | d00d8d91033373d37b15fd436d6aa41c01c53d83 /crawl-ref/source/random.cc | |
parent | 272eaa7b97e83624ad01b6edbac34408ce971365 (diff) | |
download | crawl-ref-1569a7ec6ccfc1d9aafe1a92c70bba132adf6bf7.tar.gz crawl-ref-1569a7ec6ccfc1d9aafe1a92c70bba132adf6bf7.zip |
Make types and bounds in random2 a bit more explicit.
Diffstat (limited to 'crawl-ref/source/random.cc')
-rw-r--r-- | crawl-ref/source/random.cc | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/crawl-ref/source/random.cc b/crawl-ref/source/random.cc index d121c2002b..ec1cb2bb42 100644 --- a/crawl-ref/source/random.cc +++ b/crawl-ref/source/random.cc @@ -91,20 +91,22 @@ int random_choose_weighted(int weight, int first, ...) return (chosen); } +#define UINT32_MAX ((uint32_t)(-1)) + int random2(int max) { if (max <= 1) return (0); - unsigned long partn = 0xFFFFFFFFUL / max; + uint32_t partn = UINT32_MAX / max; while (true) { - unsigned long bits = random_int(); - unsigned long val = bits / partn; + uint32_t bits = random_int(); + uint32_t val = bits / partn; - if (val < (unsigned long)(max)) - return val; + if (val < (uint32_t)max) + return ((int)val); } } |