Ticket #4658: t4658.diff

File t4658.diff, 1.7 KB (added by fatherbushido, 7 years ago)
  • source/simulation2/components/CCmpRangeManager.cpp

    public:  
    10951095
    10961096            if (!query.enabled)
    10971097                continue;
    10981098
    10991099            CmpPtr<ICmpPosition> cmpSourcePosition(query.source);
    1100             if (!cmpSourcePosition || !cmpSourcePosition->IsInWorld())
     1100            if (!cmpSourcePosition)
    11011101                continue;
    11021102
    11031103            results.clear();
    11041104            results.reserve(query.lastMatch.size());
    1105             CFixedVector2D pos = cmpSourcePosition->GetPosition2D();
    1106             PerformQuery(query, results, pos);
     1105
     1106            if (cmpSourcePosition->IsInWorld())
     1107            {
     1108                CFixedVector2D pos = cmpSourcePosition->GetPosition2D();
     1109                PerformQuery(query, results, pos);
     1110            }
    11071111
    11081112            // Compute the changes vs the last match
    11091113            added.clear();
    11101114            removed.clear();
    11111115            // Return the 'added' list sorted by distance from the entity
    public:  
    11151119            std::set_difference(query.lastMatch.begin(), query.lastMatch.end(), results.begin(), results.end(),
    11161120                std::back_inserter(removed));
    11171121            if (added.empty() && removed.empty())
    11181122                continue;
    11191123
    1120             std::stable_sort(added.begin(), added.end(), EntityDistanceOrdering(m_EntityData, cmpSourcePosition->GetPosition2D()));
     1124            if (cmpSourcePosition->IsInWorld())
     1125                std::stable_sort(added.begin(), added.end(), EntityDistanceOrdering(m_EntityData, cmpSourcePosition->GetPosition2D()));
     1126            else
     1127                ResetActiveQuery(it->first);
    11211128
    11221129            messages.resize(messages.size() + 1);
    11231130            std::pair<entity_id_t, CMessageRangeUpdate>& back = messages.back();
    11241131            back.first = query.source.GetId();
    11251132            back.second.tag = it->first;