Fix melting of big piles of stuff by ridiculously heavy fallout
meltitems() computes #items * etus per update * fallout in type long. Theoretical maximum is ITEM_MAX * etus * FALLOUT_MAX = 99980001 * etus. Can overflow 32 bits for etus > 21. Has been broken since the introduction of fallout in KSU. Compute the product in double instead.
This commit is contained in:
parent
24408e65b4
commit
5ed02791f5
1 changed files with 1 additions and 1 deletions
|
@ -159,7 +159,7 @@ meltitems(int etus, int fallout, int own, short *vec,
|
|||
int melt;
|
||||
|
||||
for (n = I_NONE + 1; n <= I_MAX; n++) {
|
||||
melt = roundavg(vec[n] * etus * (long)fallout
|
||||
melt = roundavg(vec[n] * etus * (double)fallout
|
||||
/ (1000.0 * ichr[n].i_melt_denom));
|
||||
if (melt > vec[n])
|
||||
melt = vec[n];
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue