summaryrefslogtreecommitdiff
path: root/src/map.cpp
diff options
context:
space:
mode:
authorPilzAdam <pilzadam@minetest.net>2013-06-08 23:42:46 +0000
committerPilzAdam <pilzadam@minetest.net>2013-06-20 22:31:46 +0000
commitb1ebd9f79c63cf78b0e0fb2ea6f52d82cdfb95b6 (patch)
treebdff6e0aea32c0c7478872ad83f35cd0c6d54731 /src/map.cpp
parentc2cdaceed0d43317d8e8d431052854fe72d8fddf (diff)
downloadminetest-b1ebd9f79c63cf78b0e0fb2ea6f52d82cdfb95b6.tar.gz
minetest-b1ebd9f79c63cf78b0e0fb2ea6f52d82cdfb95b6.tar.bz2
minetest-b1ebd9f79c63cf78b0e0fb2ea6f52d82cdfb95b6.zip
Add a setting for max loop count per step in liquid update
Diffstat (limited to 'src/map.cpp')
-rw-r--r--src/map.cpp8
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++;