From 3504fd5080dbcfd0172299c5c6d13895e53ad163 Mon Sep 17 00:00:00 2001 From: Kelly Rauchenberger Date: Sat, 23 Feb 2019 12:15:46 -0500 Subject: Removed position caches There aren't going to be enough entities at once for position checking to ever really be a bottleneck, I don't think. Removing the caches makes the range logic a bit more intuitive, and it removes the possibility of accidentally not updating a cache when it needs to be. --- src/grid_cache.h | 59 -------------------------------------------------------- 1 file changed, 59 deletions(-) delete mode 100644 src/grid_cache.h (limited to 'src/grid_cache.h') diff --git a/src/grid_cache.h b/src/grid_cache.h deleted file mode 100644 index e837f55..0000000 --- a/src/grid_cache.h +++ /dev/null @@ -1,59 +0,0 @@ -#ifndef GRID_CACHE_H_67BBE74D -#define GRID_CACHE_H_67BBE74D - -#include -#include -#include "level.h" - -template -class GridCache { -public: - - explicit GridCache(const Level& level) : width_(level.getSize().w()) - { - } - - void set(T value, vec2s pos) - { - if (reverse_.count(value)) - { - size_t oldPosIndex = reverse_.at(value); - lookup_[oldPosIndex].erase(value); - } - - size_t newPosIndex = getIndex(pos); - lookup_[newPosIndex].insert(value); - reverse_[value] = newPosIndex; - } - - void remove(T value) - { - if (reverse_.count(value)) - { - size_t index = reverse_.at(value); - lookup_[index].erase(value); - reverse_.erase(value); - } - } - - const std::unordered_set& at(vec2s pos) const - { - size_t index = getIndex(pos); - - return lookup_[index]; - } - -private: - - inline size_t getIndex(const vec2s& pos) const - { - return pos.x() + pos.y() * width_; - } - - size_t width_; - - mutable std::unordered_map> lookup_; - std::unordered_map reverse_; -}; - -#endif /* end of include guard: GRID_CACHE_H_67BBE74D */ -- cgit 1.4.1