}
}
- mysrand(pos.Y + (heat + humidity) / 2);
+ mysrand(pos.Y + (heat + humidity) * 0.9f);
if (biome_closest_blend && dist_min_blend <= dist_min &&
myrand_range(0, biome_closest_blend->vertical_blend) >=
pos.Y - biome_closest_blend->max_pos.Y)
heatmap = noise_heat->result;
humidmap = noise_humidity->result;
+
biomemap = new biome_t[m_csize.X * m_csize.Z];
+ // Initialise with the ID of 'BIOME_NONE' so that cavegen can get the
+ // fallback biome when biome generation (which calculates the biomemap IDs)
+ // is disabled.
+ memset(biomemap, 0, sizeof(biome_t) * m_csize.X * m_csize.Z);
}
BiomeGenOriginal::~BiomeGenOriginal()
// Carefully tune pseudorandom seed variation to avoid single node dither
// and create larger scale blending patterns similar to horizontal biome
// blend.
- mysrand(pos.Y + (heat + humidity) / 2);
+ mysrand(pos.Y + (heat + humidity) * 0.9f);
if (biome_closest_blend && dist_min_blend <= dist_min &&
myrand_range(0, biome_closest_blend->vertical_blend) >=