Warning fix for 2ea60156437962d7d29d20606bf5d9189059f76b (#5082)
authorLoïc Blot <nerzhul@users.noreply.github.com>
Sat, 21 Jan 2017 10:29:18 +0000 (11:29 +0100)
committerZeno- <kde.psych@gmail.com>
Sat, 21 Jan 2017 10:29:18 +0000 (20:29 +1000)
Neither flag as force delete nor show the warning when mapblock is full and object is a player

src/serverenvironment.cpp

index 41cd6368434c03beda7ff33e85541081c5b19cfc..01dc3ff10c25a087b6e8158ae9308ab6714f3021 100644 (file)
@@ -2086,7 +2086,9 @@ void ServerEnvironment::deactivateFarObjects(bool force_delete)
 
                        if(block)
                        {
-                               if (block->m_static_objects.m_stored.size() >= g_settings->getU16("max_objects_per_block")) {
+                               // Force delete object if mapblock is full, but ignore players
+                               if (obj->getType() != ACTIVEOBJECT_TYPE_PLAYER &&
+                                       block->m_static_objects.m_stored.size() >= g_settings->getU16("max_objects_per_block")) {
                                        warningstream << "ServerEnv: Trying to store id = " << obj->getId()
                                                << " statically but block " << PP(blockpos)
                                                << " already contains "
@@ -2146,12 +2148,6 @@ void ServerEnvironment::deactivateFarObjects(bool force_delete)
                        continue;
                }
 
-               // If it's a forced delete, there are too many objects in mapblock
-               // Ignore players, they should not be removed on force delete
-               if (force_delete && obj->getType() == ACTIVEOBJECT_TYPE_PLAYER) {
-                       continue;
-               }
-
                verbosestream<<"ServerEnvironment::deactivateFarObjects(): "
                        <<"object id="<<id<<" is not known by clients"
                        <<"; deleting"<<std::endl;