diff options
author | Jon Bergli Heier <snakebite@jvnv.net> | 2011-06-01 19:31:19 +0200 |
---|---|---|
committer | Jon Bergli Heier <snakebite@jvnv.net> | 2011-06-01 19:31:19 +0200 |
commit | 6fdbdea4e65b75ac9ebda91320deb656655d3af5 (patch) | |
tree | 409c8a8da5ccdf8b527ffec9632ec3d6fbb9609e /terrain_cache.cpp | |
parent | 8771dde21514e754a7eb774f7047d17c226d6212 (diff) |
A bunch of network-related changes.
Diffstat (limited to 'terrain_cache.cpp')
-rw-r--r-- | terrain_cache.cpp | 57 |
1 files changed, 0 insertions, 57 deletions
diff --git a/terrain_cache.cpp b/terrain_cache.cpp deleted file mode 100644 index c40a1d6..0000000 --- a/terrain_cache.cpp +++ /dev/null @@ -1,57 +0,0 @@ -#include "terrain_cache.h" - -/* TerrainCacheObject */ - -TerrainCacheObject::TerrainCacheObject(TerrainCache *cache, int x, int y, int width, int height) { - this->cache = cache; - this->x = x; - this->y = y; - this->width = width; - this->height = height; - this->heights = cache->tl->get_chunk(x, y, width, height); -} - -TerrainCacheObject::~TerrainCacheObject() { - cache->tl->save_chunk(heights, x, y, width, height); - delete[] heights; -} - -/* TerrainCache */ - -TerrainCache::TerrainCache(int seed, fs::path root, size_t max_size) { - this->max_size = max_size; - tl = new TerrainLoader(seed, root); -} - -TerrainCache::~TerrainCache() { - caches.clear(); - delete tl; -} - -TerrainCacheObject::p TerrainCache::make_object(int x, int y, int width, int height) { - TerrainCacheObject::p ob(new TerrainCacheObject(this, x, y, width, height)); - - if(caches.size() >= max_size) { - for(cache_map::iterator it = caches.begin(); it != caches.end(); it++) { - if(it->second.use_count() == 1) { - caches.erase(it); - break; - } - } - } - - caches.insert(std::pair<intpair, TerrainCacheObject::p>(intpair(x, y), ob)); - return ob; -} - -TerrainCacheObject::p TerrainCache::get_chunk(int x, int y, int width, int height) { - cache_map::iterator it = caches.find(intpair(x, y)); - if(it != caches.end()) - return it->second; - - return make_object(x, y, width, height); -} - -size_t TerrainCache::get_size() { - return caches.size(); -} |