mirror of
https://github.com/minetest/minetest.git
synced 2024-12-23 22:52:25 +01:00
Fix MapgenV6::generateCaves possible division by 0 and misc. cosmetic fixes
This commit is contained in:
parent
414f0275cf
commit
c517215bcf
@ -928,20 +928,20 @@ void MapgenV6::growGrass() {
|
||||
|
||||
void MapgenV6::defineCave(Cave &cave, PseudoRandom ps,
|
||||
v3s16 node_min, bool large_cave) {
|
||||
cave.min_tunnel_diameter = 2;
|
||||
cave.max_tunnel_diameter = ps.range(2,6);
|
||||
cave.dswitchint = ps.range(1,14);
|
||||
cave.flooded = true; //large_cave && ps.range(0,4);
|
||||
if(large_cave){
|
||||
cave.part_max_length_rs = ps.range(2,4);
|
||||
cave.tunnel_routepoints = ps.range(5, ps.range(15,30));
|
||||
cave.min_tunnel_diameter = 5;
|
||||
cave.max_tunnel_diameter = ps.range(7, ps.range(8,24));
|
||||
} else {
|
||||
cave.part_max_length_rs = ps.range(2,9);
|
||||
cave.tunnel_routepoints = ps.range(10, ps.range(15,30));
|
||||
}
|
||||
cave.large_cave_is_flat = (ps.range(0,1) == 0);
|
||||
cave.min_tunnel_diameter = 2;
|
||||
cave.max_tunnel_diameter = ps.range(2,6);
|
||||
cave.dswitchint = ps.range(1,14);
|
||||
cave.flooded = true; //large_cave && ps.range(0,4);
|
||||
if (large_cave){
|
||||
cave.part_max_length_rs = ps.range(2,4);
|
||||
cave.tunnel_routepoints = ps.range(5, ps.range(15,30));
|
||||
cave.min_tunnel_diameter = 5;
|
||||
cave.max_tunnel_diameter = ps.range(7, ps.range(8,24));
|
||||
} else {
|
||||
cave.part_max_length_rs = ps.range(2,9);
|
||||
cave.tunnel_routepoints = ps.range(10, ps.range(15,30));
|
||||
}
|
||||
cave.large_cave_is_flat = (ps.range(0,1) == 0);
|
||||
}
|
||||
|
||||
|
||||
@ -1120,7 +1120,13 @@ void MapgenV6::generateCaves(int max_stone_y) {
|
||||
rp.Z = ar.Z-1;
|
||||
vec = rp - orp;
|
||||
|
||||
for(float f=0; f<1.0; f+=1.0/vec.getLength())
|
||||
float veclen = vec.getLength();
|
||||
// As odd as it sounds, veclen is *exactly*
|
||||
// 0.0 sometimes, causing a FPE
|
||||
if (veclen == 0.0)
|
||||
veclen = 1.0;
|
||||
|
||||
for(float f=0; f<1.0; f+=1.0/veclen)
|
||||
{
|
||||
v3f fp = orp + vec * f;
|
||||
fp.X += 0.1*ps.range(-10,10);
|
||||
|
@ -822,6 +822,7 @@ private:
|
||||
std::map<std::string, content_t> m_name_id_mapping_with_aliases;
|
||||
// A mapping from groups to a list of content_ts (and their levels)
|
||||
// that belong to it. Necessary for a direct lookup in getIds().
|
||||
// Note: Not serialized.
|
||||
std::map<std::string, GroupItems> m_group_to_items;
|
||||
};
|
||||
|
||||
|
@ -727,7 +727,7 @@ static int l_register_ore(lua_State *L)
|
||||
|
||||
if (ore->clust_scarcity <= 0 || ore->clust_num_ores <= 0) {
|
||||
errorstream << "register_ore: clust_scarcity and clust_num_ores"
|
||||
"must be greater than 0";
|
||||
" must be greater than 0" << std::endl;
|
||||
delete ore;
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user