Skip to content

Commit f3ac251

Browse files
committedNov 9, 2015
Convert usages of PseudoRandom to PcgRandom for ore and deco placement
In addition to being a better random, this fixes #3228
1 parent c3e179f commit f3ac251

File tree

3 files changed

+13
-13
lines changed

3 files changed

+13
-13
lines changed
 

Diff for: ‎src/mg_decoration.cpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ void Decoration::resolveNodeNames()
8787

8888
size_t Decoration::placeDeco(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax)
8989
{
90-
PseudoRandom ps(blockseed + 53);
90+
PcgRandom ps(blockseed + 53);
9191
int carea_size = nmax.X - nmin.X + 1;
9292

9393
// Divide area into parts
@@ -170,7 +170,7 @@ size_t Decoration::placeDeco(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax)
170170
#if 0
171171
void Decoration::placeCutoffs(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax)
172172
{
173-
PseudoRandom pr(blockseed + 53);
173+
PcgRandom pr(blockseed + 53);
174174
std::vector<CutoffData> handled_cutoffs;
175175

176176
// 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)
286286
}
287287

288288

289-
size_t DecoSimple::generate(MMVManip *vm, PseudoRandom *pr, v3s16 p)
289+
size_t DecoSimple::generate(MMVManip *vm, PcgRandom *pr, v3s16 p)
290290
{
291291
if (!canPlaceDecoration(vm, p))
292292
return 0;
@@ -327,7 +327,7 @@ DecoSchematic::DecoSchematic()
327327
}
328328

329329

330-
size_t DecoSchematic::generate(MMVManip *vm, PseudoRandom *pr, v3s16 p)
330+
size_t DecoSchematic::generate(MMVManip *vm, PcgRandom *pr, v3s16 p)
331331
{
332332
// Schematic could have been unloaded but not the decoration
333333
// In this case generate() does nothing (but doesn't *fail*)

Diff for: ‎src/mg_decoration.h

+4-4
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
2727

2828
class Mapgen;
2929
class MMVManip;
30-
class PseudoRandom;
30+
class PcgRandom;
3131
class Schematic;
3232

3333
enum DecorationType {
@@ -71,7 +71,7 @@ class Decoration : public ObjDef, public NodeResolver {
7171
size_t placeDeco(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax);
7272
//size_t placeCutoffs(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax);
7373

74-
virtual size_t generate(MMVManip *vm, PseudoRandom *pr, v3s16 p) = 0;
74+
virtual size_t generate(MMVManip *vm, PcgRandom *pr, v3s16 p) = 0;
7575
virtual int getHeight() = 0;
7676

7777
u32 flags;
@@ -90,7 +90,7 @@ class Decoration : public ObjDef, public NodeResolver {
9090

9191
class DecoSimple : public Decoration {
9292
public:
93-
virtual size_t generate(MMVManip *vm, PseudoRandom *pr, v3s16 p);
93+
virtual size_t generate(MMVManip *vm, PcgRandom *pr, v3s16 p);
9494
bool canPlaceDecoration(MMVManip *vm, v3s16 p);
9595
virtual int getHeight();
9696

@@ -107,7 +107,7 @@ class DecoSchematic : public Decoration {
107107
public:
108108
DecoSchematic();
109109

110-
virtual size_t generate(MMVManip *vm, PseudoRandom *pr, v3s16 p);
110+
virtual size_t generate(MMVManip *vm, PcgRandom *pr, v3s16 p);
111111
virtual int getHeight();
112112

113113
Rotation rotation;

Diff for: ‎src/mg_ore.cpp

+5-5
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ size_t Ore::placeOre(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax)
126126
void OreScatter::generate(MMVManip *vm, int mapseed, u32 blockseed,
127127
v3s16 nmin, v3s16 nmax, u8 *biomemap)
128128
{
129-
PseudoRandom pr(blockseed);
129+
PcgRandom pr(blockseed);
130130
MapNode n_ore(c_ore, 0, ore_param2);
131131

132132
u32 sizex = (nmax.X - nmin.X + 1);
@@ -175,7 +175,7 @@ void OreScatter::generate(MMVManip *vm, int mapseed, u32 blockseed,
175175
void OreSheet::generate(MMVManip *vm, int mapseed, u32 blockseed,
176176
v3s16 nmin, v3s16 nmax, u8 *biomemap)
177177
{
178-
PseudoRandom pr(blockseed + 4234);
178+
PcgRandom pr(blockseed + 4234);
179179
MapNode n_ore(c_ore, 0, ore_param2);
180180

181181
u16 max_height = column_height_max;
@@ -240,7 +240,7 @@ OrePuff::~OrePuff()
240240
void OrePuff::generate(MMVManip *vm, int mapseed, u32 blockseed,
241241
v3s16 nmin, v3s16 nmax, u8 *biomemap)
242242
{
243-
PseudoRandom pr(blockseed + 4234);
243+
PcgRandom pr(blockseed + 4234);
244244
MapNode n_ore(c_ore, 0, ore_param2);
245245

246246
int y_start = pr.range(nmin.Y, nmax.Y);
@@ -313,7 +313,7 @@ void OrePuff::generate(MMVManip *vm, int mapseed, u32 blockseed,
313313
void OreBlob::generate(MMVManip *vm, int mapseed, u32 blockseed,
314314
v3s16 nmin, v3s16 nmax, u8 *biomemap)
315315
{
316-
PseudoRandom pr(blockseed + 2404);
316+
PcgRandom pr(blockseed + 2404);
317317
MapNode n_ore(c_ore, 0, ore_param2);
318318

319319
u32 sizex = (nmax.X - nmin.X + 1);
@@ -391,7 +391,7 @@ OreVein::~OreVein()
391391
void OreVein::generate(MMVManip *vm, int mapseed, u32 blockseed,
392392
v3s16 nmin, v3s16 nmax, u8 *biomemap)
393393
{
394-
PseudoRandom pr(blockseed + 520);
394+
PcgRandom pr(blockseed + 520);
395395
MapNode n_ore(c_ore, 0, ore_param2);
396396

397397
u32 sizex = (nmax.X - nmin.X + 1);

0 commit comments

Comments
 (0)
Please sign in to comment.