diff options
Diffstat (limited to 'src/client/activeobjectmgr.cpp')
-rw-r--r-- | src/client/activeobjectmgr.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/client/activeobjectmgr.cpp b/src/client/activeobjectmgr.cpp index 4ed98d79b..9fd8490f2 100644 --- a/src/client/activeobjectmgr.cpp +++ b/src/client/activeobjectmgr.cpp @@ -91,15 +91,16 @@ void ActiveObjectMgr::removeObject(u16 id) void ActiveObjectMgr::getActiveObjects(const v3f &origin, f32 max_d, std::vector<DistanceSortedActiveObject> &dest) { + f32 max_d2 = max_d * max_d; for (auto &ao_it : m_active_objects) { ClientActiveObject *obj = ao_it.second; - f32 d = (obj->getPosition() - origin).getLength(); + f32 d2 = (obj->getPosition() - origin).getLengthSQ(); - if (d > max_d) + if (d2 > max_d2) continue; - dest.emplace_back(obj, d); + dest.emplace_back(obj, d2); } } |