FixedBiomeSource: Make sure BiomeSource functions get overriden

Fixes a segfault when creating a superflat world
This commit is contained in:
Echo J. 2026-03-16 07:37:01 +00:00
parent 9748827f72
commit 60be363e8e
2 changed files with 4 additions and 4 deletions

View file

@ -200,7 +200,7 @@ TilePos* FixedBiomeSource::findBiome(int x, int z, int r, Biome* toFind,
* @brief Finds a biome from a list of allowed biomes randomly. * @brief Finds a biome from a list of allowed biomes randomly.
*/ */
TilePos* FixedBiomeSource::findBiome(int x, int z, int r, TilePos* FixedBiomeSource::findBiome(int x, int z, int r,
const std::vector<Biome*>& allowed, const std::vector<Biome*> allowed,
Random* random) { Random* random) {
if (find(allowed.begin(), allowed.end(), biome) != allowed.end()) { if (find(allowed.begin(), allowed.end(), biome) != allowed.end()) {
return new TilePos(x - r + random->nextInt(r * 2 + 1), 0, return new TilePos(x - r + random->nextInt(r * 2 + 1), 0,
@ -220,6 +220,6 @@ bool FixedBiomeSource::containsOnly(int x, int z, int r, Biome* allowed) {
* @brief Checks if the fixed biome is in the allowed list. * @brief Checks if the fixed biome is in the allowed list.
*/ */
bool FixedBiomeSource::containsOnly(int x, int z, int r, bool FixedBiomeSource::containsOnly(int x, int z, int r,
const std::vector<Biome*>& allowed) { const std::vector<Biome*> allowed) {
return find(allowed.begin(), allowed.end(), biome) != allowed.end(); return find(allowed.begin(), allowed.end(), biome) != allowed.end();
} }

View file

@ -36,10 +36,10 @@ class FixedBiomeSource : public BiomeSource {
virtual TilePos* findBiome(int x, int z, int r, Biome* toFind, virtual TilePos* findBiome(int x, int z, int r, Biome* toFind,
Random* random); Random* random);
virtual TilePos* findBiome(int x, int z, int r, virtual TilePos* findBiome(int x, int z, int r,
const std::vector<Biome*>& allowed, const std::vector<Biome*> allowed,
Random* random); Random* random);
virtual bool containsOnly(int x, int z, int r, Biome* allowed); virtual bool containsOnly(int x, int z, int r, Biome* allowed);
virtual bool containsOnly( virtual bool containsOnly(
int x, int z, int r, int x, int z, int r,
const std::vector<Biome*>& allowed); const std::vector<Biome*> allowed);
}; };