From 3c30ab28070d206585047640d0c293912208e37d Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Tue, 6 Sep 2011 19:16:36 +0300 Subject: [PATCH] Speed up periodical map unloading by moving beginSave() and endSave() to outer loop in Map::timerUpdate() --- src/map.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/map.cpp b/src/map.cpp index 5e2fd558c..423a07dcd 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -1408,6 +1408,7 @@ void Map::timerUpdate(float dtime, float unload_timeout, core::map::Iterator si; + beginSave(); si = m_sectors.getIterator(); for(; si.atEnd() == false; si++) { @@ -1418,7 +1419,6 @@ void Map::timerUpdate(float dtime, float unload_timeout, core::list blocks; sector->getBlocks(blocks); - beginSave(); for(core::list::Iterator i = blocks.begin(); i != blocks.end(); i++) { @@ -1451,13 +1451,13 @@ void Map::timerUpdate(float dtime, float unload_timeout, all_blocks_deleted = false; } } - endSave(); if(all_blocks_deleted) { sector_deletion_queue.push_back(si.getNode()->getKey()); } } + endSave(); // Finally delete the empty sectors deleteSectors(sector_deletion_queue); -- 2.25.1