fix: world crash with particular seeds

This commit is contained in:
Lord_Cambion 2026-04-07 20:45:44 +02:00
parent 013c18ef85
commit 38775d0f26
2 changed files with 5 additions and 5 deletions

View file

@ -119,9 +119,9 @@ intArray BiomeInitLayer::getArea(int xo, int yo, int w, int h)
// RareBiomeLayer sets k = plains->id + 128 when it picks a rare slot.
// plains->id = 1, so a rare plains = 129. We extract the high bit flag.
int rareBit = (k & 0xFF00) >> 8; // Java: (k & 3840) >> 8
k = k & ~0xFF00;
// plains->id = 1, so a rare plains = 129. We extract the high bits flag.
int rareBit = (k & 3840) >> 8; // Java: (k & 0xF00) >> 8
k = k & ~3840;
if (k == 0 || k == Biome::ocean->id || k == Biome::deepOcean->id ||
@ -160,7 +160,7 @@ intArray BiomeInitLayer::getArea(int xo, int yo, int w, int h)
result[x + y * w] = icyBiomes[nextRandom(icyBiomes.length)]->id;
}
// Rare variant from RareBiomeLayer
else if (k == Biome::plains->id + 256)
else if (k == Biome::plains->id + 128)
{
result[x + y * w] = Biome::sunflowersPlains->id;
}

View file

@ -24,7 +24,7 @@ intArray RareBiomeLayer::getArea(int xo, int yo, int w, int h)
{
if (k == Biome::plains->id)
{
aint1[j + i * w] = Biome::plains->id + 256;
aint1[j + i * w] = Biome::plains->id + 128;
}
else
{