diff options
author | sapier <Sapier at GMX dot net> | 2013-04-22 00:05:47 +0200 |
---|---|---|
committer | PilzAdam <pilzadam@minetest.net> | 2013-05-06 19:05:44 +0200 |
commit | 58f036ad1d5f1928d3696730ece463ab1acb046e (patch) | |
tree | 429b0099653a08ca021a8391ccc90ed2b1ed9716 | |
parent | 098692ef26d115a05c0a1e5916588c8523789556 (diff) | |
download | minetest-58f036ad1d5f1928d3696730ece463ab1acb046e.tar.gz minetest-58f036ad1d5f1928d3696730ece463ab1acb046e.tar.bz2 minetest-58f036ad1d5f1928d3696730ece463ab1acb046e.zip |
fix static data not beeing stored correctly on deactivation
-rw-r--r-- | src/environment.cpp | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/src/environment.cpp b/src/environment.cpp index 438c9ef4f..e06b032f2 100644 --- a/src/environment.cpp +++ b/src/environment.cpp @@ -1084,8 +1084,8 @@ void ServerEnvironment::step(float dtime) { v3s16 p = *i; - /*infostream<<"Server: Block ("<<p.X<<","<<p.Y<<","<<p.Z - <<") became inactive"<<std::endl;*/ + /* infostream<<"Server: Block " << PP(p) + << " became inactive"<<std::endl; */ MapBlock *block = m_map->getBlockNoCreateNoEx(p); if(block==NULL) @@ -1104,9 +1104,6 @@ void ServerEnvironment::step(float dtime) i != blocks_added.end(); ++i) { v3s16 p = *i; - - /*infostream<<"Server: Block ("<<p.X<<","<<p.Y<<","<<p.Z - <<") became active"<<std::endl;*/ MapBlock *block = m_map->getBlockNoCreateNoEx(p); if(block==NULL){ @@ -1117,6 +1114,8 @@ void ServerEnvironment::step(float dtime) } activateBlock(block); + /* infostream<<"Server: Block " << PP(p) + << " became active"<<std::endl; */ } } @@ -1850,17 +1849,17 @@ void ServerEnvironment::deactivateFarObjects(bool force_delete) <<" Forcing delete."<<std::endl; force_delete = true; } else { - u16 new_id = pending_delete ? id : 0; // If static counterpart already exists, remove it first. // This shouldn't happen, but happens rarely for some // unknown reason. Unsuccessful attempts have been made to // find said reason. - if(new_id && block->m_static_objects.m_active.find(new_id) != block->m_static_objects.m_active.end()){ + if(id && block->m_static_objects.m_active.find(id) != block->m_static_objects.m_active.end()){ infostream<<"ServerEnv: WARNING: Performing hack #83274" <<std::endl; - block->m_static_objects.remove(new_id); + block->m_static_objects.remove(id); } - block->m_static_objects.insert(new_id, s_obj); + //store static data + block->m_static_objects.insert(0, s_obj); // Only mark block as modified if data changed considerably if(shall_be_written) |