-/* File: z-rand.c */
+/* File: z-rand.c */
/*
* Copyright (c) 1997 Ben Harrison, and others
*/
int16_t randnor(int mean, int stand)
{
+ if (stand <= 0) {
+ return static_cast<int16_t>(mean);
+ }
std::normal_distribution<> d(mean, stand);
auto result = std::round(d(w_ptr->rng));
return static_cast<int16_t>(result);
int16_t damroll(DICE_NUMBER num, DICE_SID sides)
{
int i, sum = 0;
- for (i = 0; i < num; i++)
+ for (i = 0; i < num; i++) {
sum += randint1(sides);
+ }
return (int16_t)(sum);
}
*/
int16_t maxroll(DICE_NUMBER num, DICE_SID sides)
{
- return (num * sides);
+ return num * sides;
}
/*
int32_t tmp;
/* Refuse to divide by zero */
- if (!d)
- return (n);
+ if (!d) {
+ return n;
+ }
/* Division */
tmp = n / d;
/* Rounding */
if ((std::abs(n) % std::abs(d)) > randint0(std::abs(d))) {
/* Increase the absolute value */
- if (n * d > 0L)
+ if (n * d > 0L) {
tmp += 1L;
- else
+ } else {
tmp -= 1L;
+ }
}
/* Return */
- return (tmp);
+ return tmp;
}
/*
static std::optional<Xoshiro128StarStar> urbg_external;
- if (!urbg_external.has_value()) {
+ if (!urbg_external) {
/* Initialize with new seed */
auto seed = static_cast<uint32_t>(time(nullptr));
urbg_external = Xoshiro128StarStar(seed);