summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/random.cc
diff options
context:
space:
mode:
authorRobert Vollmert <rvollmert@gmx.net>2009-11-10 12:09:41 +0100
committerRobert Vollmert <rvollmert@gmx.net>2009-11-10 12:10:21 +0100
commit1569a7ec6ccfc1d9aafe1a92c70bba132adf6bf7 (patch)
treed00d8d91033373d37b15fd436d6aa41c01c53d83 /crawl-ref/source/random.cc
parent272eaa7b97e83624ad01b6edbac34408ce971365 (diff)
downloadcrawl-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.cc12
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);
}
}