diff options
author | PilzAdam <pilzadam@minetest.net> | 2013-06-08 23:42:46 +0000 |
---|---|---|
committer | PilzAdam <pilzadam@minetest.net> | 2013-06-20 22:31:46 +0000 |
commit | b1ebd9f79c63cf78b0e0fb2ea6f52d82cdfb95b6 (patch) | |
tree | bdff6e0aea32c0c7478872ad83f35cd0c6d54731 /src/map.cpp | |
parent | c2cdaceed0d43317d8e8d431052854fe72d8fddf (diff) | |
download | hax-minetest-server-b1ebd9f79c63cf78b0e0fb2ea6f52d82cdfb95b6.tar.gz hax-minetest-server-b1ebd9f79c63cf78b0e0fb2ea6f52d82cdfb95b6.zip |
Add a setting for max loop count per step in liquid update
Diffstat (limited to '')
-rw-r--r-- | src/map.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/map.cpp b/src/map.cpp index 7439076d3..001ae1609 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -1651,10 +1651,12 @@ void Map::transformLiquidsFinite(std::map<v3s16, MapBlock*> & modified_blocks) // List of MapBlocks that will require a lighting update (due to lava) std::map<v3s16, MapBlock*> lighting_modified_blocks; + u16 loop_max = g_settings->getU16("liquid_loop_max"); + while (m_transforming_liquid.size() > 0) { // This should be done here so that it is done when continue is used - if (loopcount >= initial_size || loopcount >= 1000) + if (loopcount >= initial_size || loopcount >= loop_max) break; loopcount++; /* @@ -1993,10 +1995,12 @@ void Map::transformLiquids(std::map<v3s16, MapBlock*> & modified_blocks) // List of MapBlocks that will require a lighting update (due to lava) std::map<v3s16, MapBlock*> lighting_modified_blocks; + u16 loop_max = g_settings->getU16("liquid_loop_max"); + while(m_transforming_liquid.size() != 0) { // This should be done here so that it is done when continue is used - if(loopcount >= initial_size || loopcount >= 10000) + if(loopcount >= initial_size || loopcount >= loop_max) break; loopcount++; |