summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/random-pick.h
diff options
context:
space:
mode:
authorAdam Borowski <kilobyte@angband.pl>2013-06-26 19:40:09 +0200
committerAdam Borowski <kilobyte@angband.pl>2013-06-26 19:40:48 +0200
commitbcb461393b077b9926b9d7e27c75852bf88cc074 (patch)
tree92e9420fff9262dcd53dab09e6ae5e8282a803f3 /crawl-ref/source/random-pick.h
parente7f48cfcf7d5b98fdce22488ac48501fade58869 (diff)
downloadcrawl-ref-bcb461393b077b9926b9d7e27c75852bf88cc074.tar.gz
crawl-ref-bcb461393b077b9926b9d7e27c75852bf88cc074.zip
Multiply before division, not after.
Diffstat (limited to 'crawl-ref/source/random-pick.h')
-rw-r--r--crawl-ref/source/random-pick.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/crawl-ref/source/random-pick.h b/crawl-ref/source/random-pick.h
index 3ebdb3447e..8d7dda73a8 100644
--- a/crawl-ref/source/random-pick.h
+++ b/crawl-ref/source/random-pick.h
@@ -60,9 +60,7 @@ T random_picker<T, max>::pick(const random_pick_entry<T> *weights, int level,
if (veto(pop->value))
continue;
- // 2520 is divisible by any number 1..10, and provides enough scale
- // to make round-off errors even for degenerate distributions ok.
- int rar = rarity_at(pop, level) * 2520;
+ int rar = rarity_at(pop, level);
ASSERTM(rar > 0, "Rarity %d: %d at level %d", rar, pop->value, level);
valid[nvalid].value = pop->value;
@@ -86,7 +84,9 @@ T random_picker<T, max>::pick(const random_pick_entry<T> *weights, int level,
template <typename T, int max>
int random_picker<T, max>::rarity_at(const random_pick_entry<T> *pop, int depth)
{
- int rar = pop->rarity;
+ // 2520 is divisible by any number 1..10, and provides enough scale
+ // to make round-off errors even for degenerate distributions ok.
+ int rar = pop->rarity * 2520;
int len = pop->maxr - pop->minr;
switch (pop->distrib)
{