From: Giuseppe Bilotta Date: Tue, 16 Aug 2011 16:05:28 +0000 (+0200) Subject: Make sure all neighbors of changed fluids are activated X-Git-Url: http://81.2.79.47:8989/gitweb/?a=commitdiff_plain;h=56e9f97294ebc39967a3d029fe07e7c74849c1a1;p=zefram%2Fminetest%2Fminetest_engine.git Make sure all neighbors of changed fluids are activated This should fix the remaining cases of fluid not advancing or not retreating. --- diff --git a/src/map.cpp b/src/map.cpp index 17bca82d..3aff00c9 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -1743,6 +1743,7 @@ void Map::transformLiquids(core::map & modified_blocks) */ switch (content_features(n0.getContent()).liquid_type) { case LIQUID_SOURCE: + case LIQUID_FLOWING: // make sure source flows into all neighboring nodes for (u16 i = 0; i < num_flows; i++) if (flows[i].t != NEIGHBOR_UPPER) @@ -1756,19 +1757,6 @@ void Map::transformLiquids(core::map & modified_blocks) for (u16 i = 0; i < num_flows; i++) m_transforming_liquid.push_back(flows[i].p); break; - case LIQUID_FLOWING: - for (u16 i = 0; i < num_flows; i++) { - u8 flow_level = (flows[i].n.param2 & LIQUID_LEVEL_MASK); - // liquid_level is still the ORIGINAL level of this node. - if (flows[i].t != NEIGHBOR_UPPER && ((flow_level < liquid_level || flow_level < new_node_level) || - flow_down_enabled)) - m_transforming_liquid.push_back(flows[i].p); - } - for (u16 i = 0; i < num_airs; i++) { - if (airs[i].t != NEIGHBOR_UPPER && (airs[i].t == NEIGHBOR_LOWER || new_node_level > 0)) - m_transforming_liquid.push_back(airs[i].p); - } - break; } } //dstream<<"Map::transformLiquids(): loopcount="<