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:
Zed A. Shaw 2025-02-25 00:56:54 -05:00
parent 29e6d45dc6
commit 5179709e3c
7 changed files with 13 additions and 13 deletions

View file

@ -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<>());