Skip to content

Commit 93474c4

Browse files
committedMay 19, 2013
Remove no virtual dtor warnings, make MapgenParams contain actual NoiseParams
1 parent f577fac commit 93474c4

11 files changed

+185
-180
lines changed
 

‎src/mapgen.cpp

+25-27
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,12 @@ Ore *createOre(OreType type) {
7171
}
7272

7373

74+
Ore::~Ore() {
75+
delete np;
76+
delete noise;
77+
}
78+
79+
7480
void Ore::resolveNodeNames(INodeDefManager *ndef) {
7581
if (ore == CONTENT_IGNORE) {
7682
ore = ndef->getId(ore_name);
@@ -347,23 +353,18 @@ bool MapgenV6Params::readParams(Settings *settings) {
347353
freq_desert = settings->getFloat("mgv6_freq_desert");
348354
freq_beach = settings->getFloat("mgv6_freq_beach");
349355

350-
np_terrain_base = settings->getNoiseParams("mgv6_np_terrain_base");
351-
np_terrain_higher = settings->getNoiseParams("mgv6_np_terrain_higher");
352-
np_steepness = settings->getNoiseParams("mgv6_np_steepness");
353-
np_height_select = settings->getNoiseParams("mgv6_np_height_select");
354-
np_mud = settings->getNoiseParams("mgv6_np_mud");
355-
np_beach = settings->getNoiseParams("mgv6_np_beach");
356-
np_biome = settings->getNoiseParams("mgv6_np_biome");
357-
np_cave = settings->getNoiseParams("mgv6_np_cave");
358-
np_humidity = settings->getNoiseParams("mgv6_np_humidity");
359-
np_trees = settings->getNoiseParams("mgv6_np_trees");
360-
np_apple_trees = settings->getNoiseParams("mgv6_np_apple_trees");
361-
362-
bool success =
363-
np_terrain_base && np_terrain_higher && np_steepness &&
364-
np_height_select && np_trees && np_mud &&
365-
np_beach && np_biome && np_cave &&
366-
np_humidity && np_apple_trees;
356+
bool success =
357+
settings->getNoiseParams("mgv6_np_terrain_base", np_terrain_base) &&
358+
settings->getNoiseParams("mgv6_np_terrain_higher", np_terrain_higher) &&
359+
settings->getNoiseParams("mgv6_np_steepness", np_steepness) &&
360+
settings->getNoiseParams("mgv6_np_height_select", np_height_select) &&
361+
settings->getNoiseParams("mgv6_np_mud", np_mud) &&
362+
settings->getNoiseParams("mgv6_np_beach", np_beach) &&
363+
settings->getNoiseParams("mgv6_np_biome", np_biome) &&
364+
settings->getNoiseParams("mgv6_np_cave", np_cave) &&
365+
settings->getNoiseParams("mgv6_np_humidity", np_humidity) &&
366+
settings->getNoiseParams("mgv6_np_trees", np_trees) &&
367+
settings->getNoiseParams("mgv6_np_apple_trees", np_apple_trees);
367368
return success;
368369
}
369370

@@ -387,16 +388,13 @@ void MapgenV6Params::writeParams(Settings *settings) {
387388

388389

389390
bool MapgenV7Params::readParams(Settings *settings) {
390-
np_terrain_base = settings->getNoiseParams("mgv7_np_terrain_base");
391-
np_terrain_alt = settings->getNoiseParams("mgv7_np_terrain_alt");
392-
np_terrain_mod = settings->getNoiseParams("mgv7_np_terrain_mod");
393-
np_terrain_persist = settings->getNoiseParams("mgv7_np_terrain_persist");
394-
np_height_select = settings->getNoiseParams("mgv7_np_height_select");
395-
np_ridge = settings->getNoiseParams("mgv7_np_ridge");
396-
397-
bool success =
398-
np_terrain_base && np_terrain_alt && np_terrain_mod &&
399-
np_terrain_persist && np_height_select && np_ridge;
391+
bool success =
392+
settings->getNoiseParams("mgv7_np_terrain_base", np_terrain_base) &&
393+
settings->getNoiseParams("mgv7_np_terrain_alt", np_terrain_alt) &&
394+
settings->getNoiseParams("mgv7_np_terrain_mod", np_terrain_mod) &&
395+
settings->getNoiseParams("mgv7_np_terrain_persist", np_terrain_persist) &&
396+
settings->getNoiseParams("mgv7_np_height_select", np_height_select) &&
397+
settings->getNoiseParams("mgv7_np_ridge", np_ridge);
400398
return success;
401399
}
402400

‎src/mapgen.h

+9-1
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,8 @@ struct MapgenParams {
7474
}
7575

7676
virtual bool readParams(Settings *settings) = 0;
77-
virtual void writeParams(Settings *settings) {};
77+
virtual void writeParams(Settings *settings) = 0;
78+
virtual ~MapgenParams() {}
7879
};
7980

8081
class Mapgen {
@@ -86,6 +87,8 @@ class Mapgen {
8687
ManualMapVoxelManipulator *vm;
8788
INodeDefManager *ndef;
8889

90+
virtual ~Mapgen() {}
91+
8992
void updateLiquid(UniqueQueue<v3s16> *trans_liquid, v3s16 nmin, v3s16 nmax);
9093
void setLighting(v3s16 nmin, v3s16 nmax, u8 light);
9194
void lightSpread(VoxelArea &a, v3s16 p, u8 light);
@@ -105,6 +108,7 @@ struct MapgenFactory {
105108
virtual Mapgen *createMapgen(int mgid, MapgenParams *params,
106109
EmergeManager *emerge) = 0;
107110
virtual MapgenParams *createMapgenParams() = 0;
111+
virtual ~MapgenFactory() {}
108112
};
109113

110114
enum OreType {
@@ -140,18 +144,22 @@ class Ore {
140144
noise = NULL;
141145
}
142146

147+
virtual ~Ore();
148+
143149
void resolveNodeNames(INodeDefManager *ndef);
144150
void placeOre(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax);
145151
virtual void generate(ManualMapVoxelManipulator *vm, int seed,
146152
u32 blockseed, v3s16 nmin, v3s16 nmax) = 0;
147153
};
148154

149155
class OreScatter : public Ore {
156+
~OreScatter() {}
150157
virtual void generate(ManualMapVoxelManipulator *vm, int seed,
151158
u32 blockseed, v3s16 nmin, v3s16 nmax);
152159
};
153160

154161
class OreSheet : public Ore {
162+
~OreSheet() {}
155163
virtual void generate(ManualMapVoxelManipulator *vm, int seed,
156164
u32 blockseed, v3s16 nmin, v3s16 nmax);
157165
};

‎src/mapgen_indev.cpp

+40-48
Original file line numberDiff line numberDiff line change
@@ -84,17 +84,14 @@ void NoiseIndev::transformNoiseMapFarScale(float xx, float yy, float zz) {
8484
MapgenIndev::MapgenIndev(int mapgenid, MapgenIndevParams *params, EmergeManager *emerge)
8585
: MapgenV6(mapgenid, params, emerge)
8686
{
87-
noiseindev_terrain_base = new NoiseIndev(params->npindev_terrain_base, seed, csize.X, csize.Z);
88-
noiseindev_terrain_higher = new NoiseIndev(params->npindev_terrain_higher, seed, csize.X, csize.Z);
89-
noiseindev_steepness = new NoiseIndev(params->npindev_steepness, seed, csize.X, csize.Z);
90-
// noise_height_select = new Noise(params->np_height_select, seed, csize.X, csize.Y);
91-
// noise_trees = new Noise(params->np_trees, seed, csize.X, csize.Y);
92-
noiseindev_mud = new NoiseIndev(params->npindev_mud, seed, csize.X, csize.Z);
93-
// noise_beach = new Noise(params->np_beach, seed, csize.X, csize.Y);
94-
noiseindev_float_islands1 = new NoiseIndev(params->npindev_float_islands1, seed, csize.X, csize.Y, csize.Z);
95-
noiseindev_float_islands2 = new NoiseIndev(params->npindev_float_islands2, seed, csize.X, csize.Y, csize.Z);
96-
noiseindev_float_islands3 = new NoiseIndev(params->npindev_float_islands3, seed, csize.X, csize.Z);
97-
noiseindev_biome = new NoiseIndev(params->npindev_biome, seed, csize.X, csize.Z);
87+
noiseindev_terrain_base = new NoiseIndev(&params->npindev_terrain_base, seed, csize.X, csize.Z);
88+
noiseindev_terrain_higher = new NoiseIndev(&params->npindev_terrain_higher, seed, csize.X, csize.Z);
89+
noiseindev_steepness = new NoiseIndev(&params->npindev_steepness, seed, csize.X, csize.Z);
90+
noiseindev_mud = new NoiseIndev(&params->npindev_mud, seed, csize.X, csize.Z);
91+
noiseindev_float_islands1 = new NoiseIndev(&params->npindev_float_islands1, seed, csize.X, csize.Y, csize.Z);
92+
noiseindev_float_islands2 = new NoiseIndev(&params->npindev_float_islands2, seed, csize.X, csize.Y, csize.Z);
93+
noiseindev_float_islands3 = new NoiseIndev(&params->npindev_float_islands3, seed, csize.X, csize.Z);
94+
noiseindev_biome = new NoiseIndev(&params->npindev_biome, seed, csize.X, csize.Z);
9895
}
9996

10097
MapgenIndev::~MapgenIndev() {
@@ -170,46 +167,41 @@ void MapgenIndev::calculateNoise() {
170167
}
171168

172169
bool MapgenIndevParams::readParams(Settings *settings) {
173-
freq_desert = settings->getFloat("mgv6_freq_desert");
174-
freq_beach = settings->getFloat("mgv6_freq_beach");
175-
176-
npindev_terrain_base = settings->getNoiseIndevParams("mgindev_np_terrain_base");
177-
npindev_terrain_higher = settings->getNoiseIndevParams("mgindev_np_terrain_higher");
178-
npindev_steepness = settings->getNoiseIndevParams("mgindev_np_steepness");
179-
np_height_select = settings->getNoiseParams("mgv6_np_height_select");
180-
np_trees = settings->getNoiseParams("mgv6_np_trees");
181-
npindev_mud = settings->getNoiseIndevParams("mgindev_np_mud");
182-
np_beach = settings->getNoiseParams("mgv6_np_beach");
183-
npindev_biome = settings->getNoiseIndevParams("mgindev_np_biome");
184-
np_cave = settings->getNoiseParams("mgv6_np_cave");
185-
npindev_float_islands1 = settings->getNoiseIndevParams("mgindev_np_float_islands1");
186-
npindev_float_islands2 = settings->getNoiseIndevParams("mgindev_np_float_islands2");
187-
npindev_float_islands3 = settings->getNoiseIndevParams("mgindev_np_float_islands3");
188-
189-
bool success =
190-
npindev_terrain_base && npindev_terrain_higher && npindev_steepness &&
191-
np_height_select && np_trees && npindev_mud &&
192-
np_beach && np_biome && np_cave &&
193-
npindev_float_islands1 && npindev_float_islands2 && npindev_float_islands3;
194-
return success;
170+
freq_desert = settings->getFloat("mgv6_freq_desert");
171+
freq_beach = settings->getFloat("mgv6_freq_beach");
172+
173+
bool success =
174+
settings->getNoiseIndevParams("mgindev_np_terrain_base", npindev_terrain_base) &&
175+
settings->getNoiseIndevParams("mgindev_np_terrain_higher", npindev_terrain_higher) &&
176+
settings->getNoiseIndevParams("mgindev_np_steepness", npindev_steepness) &&
177+
settings->getNoiseParams("mgv6_np_height_select", np_height_select) &&
178+
settings->getNoiseParams("mgv6_np_trees", np_trees) &&
179+
settings->getNoiseIndevParams("mgindev_np_mud", npindev_mud) &&
180+
settings->getNoiseParams("mgv6_np_beach", np_beach) &&
181+
settings->getNoiseIndevParams("mgindev_np_biome", npindev_biome) &&
182+
settings->getNoiseParams("mgv6_np_cave", np_cave) &&
183+
settings->getNoiseIndevParams("mgindev_np_float_islands1", npindev_float_islands1) &&
184+
settings->getNoiseIndevParams("mgindev_np_float_islands2", npindev_float_islands2) &&
185+
settings->getNoiseIndevParams("mgindev_np_float_islands3", npindev_float_islands3);
186+
return success;
195187
}
196188

197189
void MapgenIndevParams::writeParams(Settings *settings) {
198-
settings->setFloat("mgv6_freq_desert", freq_desert);
199-
settings->setFloat("mgv6_freq_beach", freq_beach);
200-
201-
settings->setNoiseIndevParams("mgindev_np_terrain_base", npindev_terrain_base);
202-
settings->setNoiseIndevParams("mgindev_np_terrain_higher", npindev_terrain_higher);
203-
settings->setNoiseIndevParams("mgindev_np_steepness", npindev_steepness);
204-
settings->setNoiseParams("mgv6_np_height_select", np_height_select);
205-
settings->setNoiseParams("mgv6_np_trees", np_trees);
206-
settings->setNoiseIndevParams("mgindev_np_mud", npindev_mud);
207-
settings->setNoiseParams("mgv6_np_beach", np_beach);
208-
settings->setNoiseIndevParams("mgindev_np_biome", npindev_biome);
209-
settings->setNoiseParams("mgv6_np_cave", np_cave);
210-
settings->setNoiseIndevParams("mgindev_np_float_islands1", npindev_float_islands1);
211-
settings->setNoiseIndevParams("mgindev_np_float_islands2", npindev_float_islands2);
212-
settings->setNoiseIndevParams("mgindev_np_float_islands3", npindev_float_islands3);
190+
settings->setFloat("mgv6_freq_desert", freq_desert);
191+
settings->setFloat("mgv6_freq_beach", freq_beach);
192+
193+
settings->setNoiseIndevParams("mgindev_np_terrain_base", npindev_terrain_base);
194+
settings->setNoiseIndevParams("mgindev_np_terrain_higher", npindev_terrain_higher);
195+
settings->setNoiseIndevParams("mgindev_np_steepness", npindev_steepness);
196+
settings->setNoiseParams("mgv6_np_height_select", np_height_select);
197+
settings->setNoiseParams("mgv6_np_trees", np_trees);
198+
settings->setNoiseIndevParams("mgindev_np_mud", npindev_mud);
199+
settings->setNoiseParams("mgv6_np_beach", np_beach);
200+
settings->setNoiseIndevParams("mgindev_np_biome", npindev_biome);
201+
settings->setNoiseParams("mgv6_np_cave", np_cave);
202+
settings->setNoiseIndevParams("mgindev_np_float_islands1", npindev_float_islands1);
203+
settings->setNoiseIndevParams("mgindev_np_float_islands2", npindev_float_islands2);
204+
settings->setNoiseIndevParams("mgindev_np_float_islands3", npindev_float_islands3);
213205
}
214206

215207

‎src/mapgen_indev.h

+31-28
Original file line numberDiff line numberDiff line change
@@ -32,30 +32,33 @@ struct NoiseIndevParams : public NoiseParams {
3232
float farscale;
3333
float farspread;
3434

35-
NoiseIndevParams(){}
36-
NoiseIndevParams(float offset_, float scale_, v3f spread_, int seed_, int octaves_, float persist_, float farscale_ = 1, float farspread_ = 1)
35+
NoiseIndevParams() {}
36+
NoiseIndevParams(float offset_, float scale_, v3f spread_,
37+
int seed_, int octaves_, float persist_,
38+
float farscale_ = 1, float farspread_ = 1)
3739
{
38-
offset = offset_;
39-
scale = scale_;
40-
spread = spread_;
41-
seed = seed_;
40+
offset = offset_;
41+
scale = scale_;
42+
spread = spread_;
43+
seed = seed_;
4244
octaves = octaves_;
4345
persist = persist_;
4446

45-
farscale = farscale_;
47+
farscale = farscale_;
4648
farspread = farspread_;
4749
}
48-
50+
51+
~NoiseIndevParams() {}
4952
};
5053

51-
#define getNoiseIndevParams(x) getStruct<NoiseIndevParams>((x), "f,f,v3,s32,s32,f,f,f")
52-
#define setNoiseIndevParams(x, y) setStruct((x), "f,f,v3,s32,s32,f,f,f", (y))
54+
#define getNoiseIndevParams(x, y) getStruct((x), "f,f,v3,s32,s32,f,f,f", &(y), sizeof(y))
55+
#define setNoiseIndevParams(x, y) setStruct((x), "f,f,v3,s32,s32,f,f,f", &(y))
5356

5457
class NoiseIndev : public Noise {
55-
public:
58+
public:
5659
NoiseIndevParams *npindev;
5760

58-
//NoiseIndev() {};
61+
virtual ~NoiseIndev() {};
5962
NoiseIndev(NoiseIndevParams *np, int seed, int sx, int sy);
6063
NoiseIndev(NoiseIndevParams *np, int seed, int sx, int sy, int sz);
6164
void init(NoiseIndevParams *np, int seed, int sx, int sy, int sz);
@@ -77,34 +80,34 @@ extern NoiseIndevParams nparams_indev_def_float_islands;
7780
*/
7881

7982
struct MapgenIndevParams : public MapgenV6Params {
80-
NoiseIndevParams *npindev_terrain_base;
81-
NoiseIndevParams *npindev_terrain_higher;
82-
NoiseIndevParams *npindev_steepness;
83+
NoiseIndevParams npindev_terrain_base;
84+
NoiseIndevParams npindev_terrain_higher;
85+
NoiseIndevParams npindev_steepness;
8386
//NoiseParams *np_height_select;
8487
//NoiseParams *np_trees;
85-
NoiseIndevParams *npindev_mud;
88+
NoiseIndevParams npindev_mud;
8689
//NoiseParams *np_beach;
87-
NoiseIndevParams *npindev_biome;
90+
NoiseIndevParams npindev_biome;
8891
//NoiseParams *np_cave;
89-
NoiseIndevParams *npindev_float_islands1;
90-
NoiseIndevParams *npindev_float_islands2;
91-
NoiseIndevParams *npindev_float_islands3;
92+
NoiseIndevParams npindev_float_islands1;
93+
NoiseIndevParams npindev_float_islands2;
94+
NoiseIndevParams npindev_float_islands3;
9295

9396
MapgenIndevParams() {
9497
//freq_desert = 0.45;
9598
//freq_beach = 0.15;
96-
npindev_terrain_base = &nparams_indev_def; //&nparams_indev_def_terrain_base;
97-
npindev_terrain_higher = &nparams_indev_def; //&nparams_indev_def_terrain_higher;
98-
npindev_steepness = &nparams_indev_def; //&nparams_indev_def_steepness;
99+
npindev_terrain_base = nparams_indev_def; //&nparams_indev_def_terrain_base;
100+
npindev_terrain_higher = nparams_indev_def; //&nparams_indev_def_terrain_higher;
101+
npindev_steepness = nparams_indev_def; //&nparams_indev_def_steepness;
99102
//np_height_select = &nparams_v6_def_height_select;
100103
//np_trees = &nparams_v6_def_trees;
101-
npindev_mud = &nparams_indev_def; //&nparams_indev_def_mud;
104+
npindev_mud = nparams_indev_def; //&nparams_indev_def_mud;
102105
//np_beach = &nparams_v6_def_beach;
103-
npindev_biome = &nparams_indev_def; //&nparams_indev_def_biome;
106+
npindev_biome = nparams_indev_def; //&nparams_indev_def_biome;
104107
//np_cave = &nparams_v6_def_cave;
105-
npindev_float_islands1 = &nparams_indev_def; //&nparams_indev_def_float_islands;
106-
npindev_float_islands2 = &nparams_indev_def; //&nparams_indev_def_float_islands;
107-
npindev_float_islands3 = &nparams_indev_def; //&nparams_indev_def_float_islands;
108+
npindev_float_islands1 = nparams_indev_def; //&nparams_indev_def_float_islands;
109+
npindev_float_islands2 = nparams_indev_def; //&nparams_indev_def_float_islands;
110+
npindev_float_islands3 = nparams_indev_def; //&nparams_indev_def_float_islands;
108111

109112
}
110113

‎src/mapgen_singlenode.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ with this program; if not, write to the Free Software Foundation, Inc.,
2424

2525
struct MapgenSinglenodeParams : public MapgenParams {
2626

27-
MapgenSinglenodeParams() {
28-
}
27+
MapgenSinglenodeParams() {}
28+
~MapgenSinglenodeParams() {}
2929

3030
bool readParams(Settings *settings);
3131
void writeParams(Settings *settings);

‎src/mapgen_v6.cpp

+12-12
Original file line numberDiff line numberDiff line change
@@ -80,18 +80,18 @@ MapgenV6::MapgenV6(int mapgenid, MapgenV6Params *params, EmergeManager *emerge)
8080

8181
this->ystride = csize.X; //////fix this
8282

83-
np_cave = params->np_cave;
84-
np_humidity = params->np_humidity;
85-
np_trees = params->np_trees;
86-
np_apple_trees = params->np_apple_trees;
87-
88-
noise_terrain_base = new Noise(params->np_terrain_base, seed, csize.X, csize.Y);
89-
noise_terrain_higher = new Noise(params->np_terrain_higher, seed, csize.X, csize.Y);
90-
noise_steepness = new Noise(params->np_steepness, seed, csize.X, csize.Y);
91-
noise_height_select = new Noise(params->np_height_select, seed, csize.X, csize.Y);
92-
noise_mud = new Noise(params->np_mud, seed, csize.X, csize.Y);
93-
noise_beach = new Noise(params->np_beach, seed, csize.X, csize.Y);
94-
noise_biome = new Noise(params->np_biome, seed, csize.X, csize.Y);
83+
np_cave = &params->np_cave;
84+
np_humidity = &params->np_humidity;
85+
np_trees = &params->np_trees;
86+
np_apple_trees = &params->np_apple_trees;
87+
88+
noise_terrain_base = new Noise(&params->np_terrain_base, seed, csize.X, csize.Y);
89+
noise_terrain_higher = new Noise(&params->np_terrain_higher, seed, csize.X, csize.Y);
90+
noise_steepness = new Noise(&params->np_steepness, seed, csize.X, csize.Y);
91+
noise_height_select = new Noise(&params->np_height_select, seed, csize.X, csize.Y);
92+
noise_mud = new Noise(&params->np_mud, seed, csize.X, csize.Y);
93+
noise_beach = new Noise(&params->np_beach, seed, csize.X, csize.Y);
94+
noise_biome = new Noise(&params->np_biome, seed, csize.X, csize.Y);
9595
}
9696

9797

0 commit comments

Comments
 (0)
Please sign in to comment.