diff options
author | Perttu Ahola <celeron55@gmail.com> | 2011-04-26 00:23:38 +0300 |
---|---|---|
committer | Perttu Ahola <celeron55@gmail.com> | 2011-04-26 00:23:38 +0300 |
commit | 28300953667b6a44efb5be6b2c612993de060636 (patch) | |
tree | 86b6a28085e34218ebe8d552f7993694a55366f2 /src/map.cpp | |
parent | 42fb1ba676de762b033b943c4a2d82db6229d245 (diff) | |
download | minetest-28300953667b6a44efb5be6b2c612993de060636.tar.gz minetest-28300953667b6a44efb5be6b2c612993de060636.tar.bz2 minetest-28300953667b6a44efb5be6b2c612993de060636.zip |
Optimized map saving and sending (server-side)
Diffstat (limited to 'src/map.cpp')
-rw-r--r-- | src/map.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/map.cpp b/src/map.cpp index 9610b0b53..a5e230419 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -1792,7 +1792,8 @@ void Map::nodeMetadataStep(float dtime, ServerMap::ServerMap(std::string savedir): Map(dout_server), - m_seed(0) + m_seed(0), + m_map_metadata_changed(true) { dstream<<__FUNCTION_NAME<<std::endl; @@ -4797,12 +4798,17 @@ void ServerMap::save(bool only_changed) dstream<<DTIME<<"ServerMap: Saving whole map, this can take time." <<std::endl; - saveMapMeta(); + if(only_changed == false || m_map_metadata_changed) + { + saveMapMeta(); + m_map_metadata_changed = false; + } - // Disable saving chunk metadata file if chunks are disabled + // Disable saving chunk metadata if chunks are disabled if(m_chunksize != 0) { - saveChunkMeta(); + if(only_changed == false || anyChunkModified()) + saveChunkMeta(); } u32 sector_meta_count = 0; |