diff options
author | Adam Borowski <kilobyte@angband.pl> | 2013-06-26 19:40:09 +0200 |
---|---|---|
committer | Adam Borowski <kilobyte@angband.pl> | 2013-06-26 19:40:48 +0200 |
commit | bcb461393b077b9926b9d7e27c75852bf88cc074 (patch) | |
tree | 92e9420fff9262dcd53dab09e6ae5e8282a803f3 /crawl-ref/source/random-pick.h | |
parent | e7f48cfcf7d5b98fdce22488ac48501fade58869 (diff) | |
download | crawl-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.h | 8 |
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) { |