summaryrefslogtreecommitdiff
path: root/src/map.cpp
diff options
context:
space:
mode:
authorLars <larsh@apache.org>2020-12-09 14:30:37 -0800
committerlhofhansl <larsh@apache.org>2020-12-15 10:15:25 -0800
commite6380565236d6d963acf75538f1f8fec807190cc (patch)
treed5af32aff7273e13baafbe03a1dec08482d6abaa /src/map.cpp
parentd0a38f694d483fbd9c0554c8d7175a94097fd67e (diff)
downloadminetest-e6380565236d6d963acf75538f1f8fec807190cc.tar.gz
minetest-e6380565236d6d963acf75538f1f8fec807190cc.tar.bz2
minetest-e6380565236d6d963acf75538f1f8fec807190cc.zip
Allow configuring block disk and net compression. Change default disk level.
Diffstat (limited to 'src/map.cpp')
-rw-r--r--src/map.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/map.cpp b/src/map.cpp
index 37b6e9b6b..6a7cadca5 100644
--- a/src/map.cpp
+++ b/src/map.cpp
@@ -1235,6 +1235,8 @@ ServerMap::ServerMap(const std::string &savedir, IGameDef *gamedef,
m_save_time_counter = mb->addCounter("minetest_core_map_save_time", "Map save time (in nanoseconds)");
+ m_map_compression_level = rangelim(g_settings->getS16("map_compression_level_disk"), -1, 9);
+
try {
// If directory exists, check contents and load if possible
if (fs::PathExists(m_savedir)) {
@@ -1863,10 +1865,10 @@ void ServerMap::endSave()
bool ServerMap::saveBlock(MapBlock *block)
{
- return saveBlock(block, dbase);
+ return saveBlock(block, dbase, m_map_compression_level);
}
-bool ServerMap::saveBlock(MapBlock *block, MapDatabase *db)
+bool ServerMap::saveBlock(MapBlock *block, MapDatabase *db, int compression_level)
{
v3s16 p3d = block->getPos();
@@ -1886,7 +1888,7 @@ bool ServerMap::saveBlock(MapBlock *block, MapDatabase *db)
*/
std::ostringstream o(std::ios_base::binary);
o.write((char*) &version, 1);
- block->serialize(o, version, true);
+ block->serialize(o, version, true, compression_level);
bool ret = db->saveBlock(p3d, o.str());
if (ret) {