diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/tiledmap.c | 8 | 
1 files changed, 8 insertions, 0 deletions
diff --git a/src/tiledmap.c b/src/tiledmap.c index 6d33463..ea587cc 100644 --- a/src/tiledmap.c +++ b/src/tiledmap.c @@ -127,6 +127,11 @@ void commitChunk(TiledMap * tiledMap, CachedChunk * cached) {  }  void unloadChunk(TiledMap * tiledMap, CachedChunk * cached) { + +    // do not cache an unloaded chunk +    if (cached->chunk == NULL) +        return; +      // commit a chunk before unloading      commitChunk(tiledMap, cached); @@ -191,6 +196,9 @@ Tile getChunkedTile(TiledMap *tiledMap, int x, int y) {      int chunkX = (x - inChunkX) / tiledMap->chunkWidth;      int chunkY = (y - inChunkY) / tiledMap->chunkHeight; +    if (x < 0 || y < 0) +        return 0; +      CachedChunk * cached = loadChunk(tiledMap, chunkX, chunkY);      if (cached == NULL)          return 0;  | 
