From a35e4bdbda78fe044c263b7866fd0c2db16565da Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Sun, 15 Apr 2012 14:37:35 +0300 Subject: Add a hack to get rid of the rare "ERROR: StaticObjectList::insert(): id already exists" failure --- src/environment.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src') diff --git a/src/environment.cpp b/src/environment.cpp index 43dbb65d0..f0ba097e0 100644 --- a/src/environment.cpp +++ b/src/environment.cpp @@ -1748,6 +1748,15 @@ void ServerEnvironment::deactivateFarObjects(bool force_delete) 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)){ + infostream<<"ServerEnv: WARNING: Performing hack #83274" + <m_static_objects.remove(new_id); + } block->m_static_objects.insert(new_id, s_obj); // Only mark block as modified if data changed considerably -- cgit v1.2.3