Ticket #4658: t4658.diff
File t4658.diff, 1.7 KB (added by , 7 years ago) |
---|
-
source/simulation2/components/CCmpRangeManager.cpp
public: 1095 1095 1096 1096 if (!query.enabled) 1097 1097 continue; 1098 1098 1099 1099 CmpPtr<ICmpPosition> cmpSourcePosition(query.source); 1100 if (!cmpSourcePosition || !cmpSourcePosition->IsInWorld())1100 if (!cmpSourcePosition) 1101 1101 continue; 1102 1102 1103 1103 results.clear(); 1104 1104 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 } 1107 1111 1108 1112 // Compute the changes vs the last match 1109 1113 added.clear(); 1110 1114 removed.clear(); 1111 1115 // Return the 'added' list sorted by distance from the entity … … public: 1115 1119 std::set_difference(query.lastMatch.begin(), query.lastMatch.end(), results.begin(), results.end(), 1116 1120 std::back_inserter(removed)); 1117 1121 if (added.empty() && removed.empty()) 1118 1122 continue; 1119 1123 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); 1121 1128 1122 1129 messages.resize(messages.size() + 1); 1123 1130 std::pair<entity_id_t, CMessageRangeUpdate>& back = messages.back(); 1124 1131 back.first = query.source.GetId(); 1125 1132 back.second.tag = it->first;