-/* File: z-rand.c */
+/* File: z-rand.c */
/*
* Copyright (c) 1997 Ben Harrison, and others
/* Purpose: a simple random number generator -BEN- */
#include "term/z-rand.h"
-#include "util/rng-xoshiro.h"
-#include "world/world.h"
-
+#include "system/angband-system.h"
#include <algorithm>
#include <cmath>
#include <limits>
std::generate(Rand_state.begin(), Rand_state.end(), [&dist, &rd] { return dist(rd); });
} while (std::all_of(Rand_state.begin(), Rand_state.end(), [](auto s) { return s == 0; }));
- w_ptr->rng.set_state(Rand_state);
+ AngbandSystem::get_instance().rng.set_state(Rand_state);
}
int rand_range(int a, int b)
return a;
}
std::uniform_int_distribution<> d(a, b);
- return d(w_ptr->rng);
+ return d(AngbandSystem::get_instance().rng);
}
/*
return static_cast<int16_t>(mean);
}
std::normal_distribution<> d(mean, stand);
- auto result = std::round(d(w_ptr->rng));
+ auto result = std::round(d(AngbandSystem::get_instance().rng));
return static_cast<int16_t>(result);
}
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);
}
std::uniform_int_distribution<> d(0, m - 1);
- return d(urbg_external.value());
+ return d(*urbg_external);
}