… | |
… | |
97 | diff = max - min + 1; |
97 | diff = max - min + 1; |
98 | ((diff > 2) ? (base = 20) : (base = 50)); /* d2 and d3 are corner cases */ |
98 | ((diff > 2) ? (base = 20) : (base = 50)); /* d2 and d3 are corner cases */ |
99 | |
99 | |
100 | if (max < 1 || diff < 1) |
100 | if (max < 1 || diff < 1) |
101 | { |
101 | { |
102 | LOG (llevError, "Calling random_roll with min=%lld max=%lld\n", min, max); |
102 | LOG (llevError, "Calling random_roll with min=%" PRId64 " max=%" PRId64 "\n", min, max); |
103 | return (min); /* avoids a float exception */ |
103 | return (min); /* avoids a float exception */ |
104 | } |
104 | } |
105 | |
105 | |
106 | /* Don't know of a portable call to get 64 bit random values. |
106 | /* Don't know of a portable call to get 64 bit random values. |
107 | * So make a call to get two 32 bit random numbers, and just to |
107 | * So make a call to get two 32 bit random numbers, and just to |
… | |
… | |
254 | if (op->material & M_ICE && MAP_TEMP (m) > 32) |
254 | if (op->material & M_ICE && MAP_TEMP (m) > 32) |
255 | destroy = 1; |
255 | destroy = 1; |
256 | } |
256 | } |
257 | /* adjust overall chance below */ |
257 | /* adjust overall chance below */ |
258 | if (destroy && rndm (0, 1)) |
258 | if (destroy && rndm (0, 1)) |
259 | { |
259 | op->destroy (); |
260 | remove_ob (op); |
|
|
261 | free_object (op); |
|
|
262 | } |
|
|
263 | } |
260 | } |
264 | } |
261 | } |
265 | |
262 | |
266 | /* convert materialname to materialtype_t */ |
263 | /* convert materialname to materialtype_t */ |
267 | |
264 | |