diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/environment.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
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" + <<std::endl; + block->m_static_objects.remove(new_id); + } block->m_static_objects.insert(new_id, s_obj); // Only mark block as modified if data changed considerably |