Performance check showed that I was checking every sprite even if they're way far away so now just do ones near-ish.
This commit is contained in:
parent
29e6d45dc6
commit
5179709e3c
7 changed files with 13 additions and 13 deletions
|
@ -65,7 +65,7 @@ FoundEntities SpatialMap::neighbors(Point cell, bool diag) const {
|
|||
return {!result.empty(), result};
|
||||
}
|
||||
|
||||
SortedEntities SpatialMap::distance_sorted(Point from) {
|
||||
SortedEntities SpatialMap::distance_sorted(Point from, int max_dist) {
|
||||
SortedEntities sprite_distance;
|
||||
|
||||
for(const auto &rec : table) {
|
||||
|
@ -73,7 +73,9 @@ SortedEntities SpatialMap::distance_sorted(Point from) {
|
|||
int inside = (from.x - sprite.x) * (from.x - sprite.x) +
|
||||
(from.y - sprite.y) * (from.y - sprite.y);
|
||||
|
||||
sprite_distance.push_back({inside, rec.second});
|
||||
if(inside < max_dist) {
|
||||
sprite_distance.push_back({inside, rec.second});
|
||||
}
|
||||
}
|
||||
|
||||
std::sort(sprite_distance.begin(), sprite_distance.end(), std::greater<>());
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue