From ef264083ae0296b8c11de3cb9b59ccf55ded178f Mon Sep 17 00:00:00 2001 From: AzaezelX Date: Wed, 11 Mar 2020 12:41:21 -0500 Subject: [PATCH 1/2] followuup to #837378a -safety checks for select within zone --- Engine/source/T3D/zone.cpp | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/Engine/source/T3D/zone.cpp b/Engine/source/T3D/zone.cpp index 012caeabd..edddf96ef 100644 --- a/Engine/source/T3D/zone.cpp +++ b/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); - } + } } From c9518f678a6733521cb0ec3c63597c5c19ec6116 Mon Sep 17 00:00:00 2001 From: AzaezelX Date: Sun, 15 Mar 2020 00:15:58 -0500 Subject: [PATCH 2/2] compilation correction --- Engine/source/T3D/zone.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/Engine/source/T3D/zone.cpp b/Engine/source/T3D/zone.cpp index edddf96ef..31671e807 100644 --- a/Engine/source/T3D/zone.cpp +++ b/Engine/source/T3D/zone.cpp @@ -28,6 +28,7 @@ #include "scene/mixin/sceneAmbientSoundObject.impl.h" #include "scene/mixin/scenePolyhedralObject.impl.h" +#include "scene/sceneManager.h" #include "gui/worldEditor/worldEditor.h"