From b60b58b627f078faba002401d300b522e0077efc Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Wed, 12 Oct 2011 10:53:37 +0300 Subject: [PATCH] Saner block modification flag operation for not saving everything always --- src/mapblock.cpp | 3 ++- src/mapblock.h | 12 ++++++++---- src/server.cpp | 2 +- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/mapblock.cpp b/src/mapblock.cpp index 44ca75ff0..6613f388a 100644 --- a/src/mapblock.cpp +++ b/src/mapblock.cpp @@ -441,7 +441,8 @@ void MapBlock::stepObjects(float dtime, bool server, u32 daynight_ratio) */ m_objects.step(dtime, server, daynight_ratio); - setChangedFlag(); + //setChangedFlag(); + raiseModified(MOD_STATE_WRITE_AT_UNLOAD); } diff --git a/src/mapblock.h b/src/mapblock.h index 741c306eb..368290065 100644 --- a/src/mapblock.h +++ b/src/mapblock.h @@ -225,8 +225,10 @@ public: void setLightingExpired(bool expired) { - m_lighting_expired = expired; - raiseModified(MOD_STATE_WRITE_NEEDED); + if(expired != m_lighting_expired){ + m_lighting_expired = expired; + raiseModified(MOD_STATE_WRITE_NEEDED); + } } bool getLightingExpired() { @@ -239,8 +241,10 @@ public: } void setGenerated(bool b) { - raiseModified(MOD_STATE_WRITE_NEEDED); - m_generated = b; + if(b != m_generated){ + raiseModified(MOD_STATE_WRITE_NEEDED); + m_generated = b; + } } bool isValid() diff --git a/src/server.cpp b/src/server.cpp index 44889d67e..c95c724cb 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -897,7 +897,7 @@ void RemoteClient::SendObjectData( { block->stepObjects(dtime, true, server->m_env.getDayNightRatio()); stepped_blocks.insert(p, true); - block->setChangedFlag(); + //block->setChangedFlag(); } // Skip block if there are no objects