Convert usages of PseudoRandom to PcgRandom for ore and deco placement

In addition to being a better random, this fixes #3228
This commit is contained in:
kwolekr 2015-11-08 23:40:18 -05:00
parent c3e179f256
commit f3ac2517ea
3 changed files with 13 additions and 13 deletions

View File

@ -87,7 +87,7 @@ void Decoration::resolveNodeNames()
size_t Decoration::placeDeco(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax)
{
PseudoRandom ps(blockseed + 53);
PcgRandom ps(blockseed + 53);
int carea_size = nmax.X - nmin.X + 1;
// Divide area into parts
@ -170,7 +170,7 @@ size_t Decoration::placeDeco(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax)
#if 0
void Decoration::placeCutoffs(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax)
{
PseudoRandom pr(blockseed + 53);
PcgRandom pr(blockseed + 53);
std::vector<CutoffData> handled_cutoffs;
// Copy over the cutoffs we're interested in so we don't needlessly hold a lock
@ -286,7 +286,7 @@ bool DecoSimple::canPlaceDecoration(MMVManip *vm, v3s16 p)
}
size_t DecoSimple::generate(MMVManip *vm, PseudoRandom *pr, v3s16 p)
size_t DecoSimple::generate(MMVManip *vm, PcgRandom *pr, v3s16 p)
{
if (!canPlaceDecoration(vm, p))
return 0;
@ -327,7 +327,7 @@ DecoSchematic::DecoSchematic()
}
size_t DecoSchematic::generate(MMVManip *vm, PseudoRandom *pr, v3s16 p)
size_t DecoSchematic::generate(MMVManip *vm, PcgRandom *pr, v3s16 p)
{
// Schematic could have been unloaded but not the decoration
// In this case generate() does nothing (but doesn't *fail*)

View File

@ -27,7 +27,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
class Mapgen;
class MMVManip;
class PseudoRandom;
class PcgRandom;
class Schematic;
enum DecorationType {
@ -71,7 +71,7 @@ public:
size_t placeDeco(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax);
//size_t placeCutoffs(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax);
virtual size_t generate(MMVManip *vm, PseudoRandom *pr, v3s16 p) = 0;
virtual size_t generate(MMVManip *vm, PcgRandom *pr, v3s16 p) = 0;
virtual int getHeight() = 0;
u32 flags;
@ -90,7 +90,7 @@ public:
class DecoSimple : public Decoration {
public:
virtual size_t generate(MMVManip *vm, PseudoRandom *pr, v3s16 p);
virtual size_t generate(MMVManip *vm, PcgRandom *pr, v3s16 p);
bool canPlaceDecoration(MMVManip *vm, v3s16 p);
virtual int getHeight();
@ -107,7 +107,7 @@ class DecoSchematic : public Decoration {
public:
DecoSchematic();
virtual size_t generate(MMVManip *vm, PseudoRandom *pr, v3s16 p);
virtual size_t generate(MMVManip *vm, PcgRandom *pr, v3s16 p);
virtual int getHeight();
Rotation rotation;

View File

@ -126,7 +126,7 @@ size_t Ore::placeOre(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax)
void OreScatter::generate(MMVManip *vm, int mapseed, u32 blockseed,
v3s16 nmin, v3s16 nmax, u8 *biomemap)
{
PseudoRandom pr(blockseed);
PcgRandom pr(blockseed);
MapNode n_ore(c_ore, 0, ore_param2);
u32 sizex = (nmax.X - nmin.X + 1);
@ -175,7 +175,7 @@ void OreScatter::generate(MMVManip *vm, int mapseed, u32 blockseed,
void OreSheet::generate(MMVManip *vm, int mapseed, u32 blockseed,
v3s16 nmin, v3s16 nmax, u8 *biomemap)
{
PseudoRandom pr(blockseed + 4234);
PcgRandom pr(blockseed + 4234);
MapNode n_ore(c_ore, 0, ore_param2);
u16 max_height = column_height_max;
@ -240,7 +240,7 @@ OrePuff::~OrePuff()
void OrePuff::generate(MMVManip *vm, int mapseed, u32 blockseed,
v3s16 nmin, v3s16 nmax, u8 *biomemap)
{
PseudoRandom pr(blockseed + 4234);
PcgRandom pr(blockseed + 4234);
MapNode n_ore(c_ore, 0, ore_param2);
int y_start = pr.range(nmin.Y, nmax.Y);
@ -313,7 +313,7 @@ void OrePuff::generate(MMVManip *vm, int mapseed, u32 blockseed,
void OreBlob::generate(MMVManip *vm, int mapseed, u32 blockseed,
v3s16 nmin, v3s16 nmax, u8 *biomemap)
{
PseudoRandom pr(blockseed + 2404);
PcgRandom pr(blockseed + 2404);
MapNode n_ore(c_ore, 0, ore_param2);
u32 sizex = (nmax.X - nmin.X + 1);
@ -391,7 +391,7 @@ OreVein::~OreVein()
void OreVein::generate(MMVManip *vm, int mapseed, u32 blockseed,
v3s16 nmin, v3s16 nmax, u8 *biomemap)
{
PseudoRandom pr(blockseed + 520);
PcgRandom pr(blockseed + 520);
MapNode n_ore(c_ore, 0, ore_param2);
u32 sizex = (nmax.X - nmin.X + 1);