Pārlūkot izejas kodu

followuup to #837378a -safety checks for select within zone

AzaezelX 5 gadi atpakaļ
vecāks
revīzija
ef264083ae
1 mainītis faili ar 16 papildinājumiem un 16 dzēšanām
  1. 16 16
      Engine/source/T3D/zone.cpp

+ 16 - 16
Engine/source/T3D/zone.cpp

@@ -103,27 +103,27 @@ bool Zone::_doSelect(void* object, const char* index, const char* data)
 void Zone::selectWithin()
 {
    SimpleQueryList sql;
-   //getContainer()->polyhedronFindObjects(getPolyhedron(), 0xFFFFFFFF, SimpleQueryList::insertionCallback, &sql);
-
-   //replace the above with this once we stort out how to look up the managed zoneID from the insatnce itself
    Zone* zoneClient = (Zone*)getClientObject();
-   SceneZoneSpaceManager* zoneManager = zoneClient->getSceneManager()->getZoneManager();
-   if (zoneManager)
+   if (zoneClient)
    {
-      for (U32 zoneId = zoneClient->mZoneRangeStart; zoneId < zoneClient->mZoneRangeStart + zoneClient->mNumZones; ++zoneId)
-         for (SceneZoneSpaceManager::ZoneContentIterator iter(zoneManager, zoneId, false); iter.isValid(); ++iter)
-         {
-            SceneObject* obj = (SceneObject*)iter->getServerObject();
-            bool fullyEnclosed = true;
-
-            for (SceneObject::ObjectZonesIterator zoneIter(obj); zoneIter.isValid(); ++zoneIter)
+      SceneZoneSpaceManager* zoneManager = zoneClient->getSceneManager()->getZoneManager();
+      if (zoneManager)
+      {
+         for (U32 zoneId = zoneClient->mZoneRangeStart; zoneId < zoneClient->mZoneRangeStart + zoneClient->mNumZones; ++zoneId)
+            for (SceneZoneSpaceManager::ZoneContentIterator iter(zoneManager, zoneId, false); iter.isValid(); ++iter)
             {
-               if (*zoneIter != zoneId);
+               SceneObject* obj = (SceneObject*)iter->getServerObject();
+               bool fullyEnclosed = true;
+
+               for (SceneObject::ObjectZonesIterator zoneIter(obj); zoneIter.isValid(); ++zoneIter)
+               {
+                  if (*zoneIter != zoneId);
                   fullyEnclosed = false;
+               }
+               if (fullyEnclosed)
+                  sql.insertObject(obj);
             }
-            if (fullyEnclosed)
-               sql.insertObject(obj);
-         }
+      }
    }