#ifndef HANDMADE_TILE_H_SENTRY #define HANDMADE_TILE_H_SENTRY #include "handmade_math.h" struct tile_map_difference { struct v2 dXY; float dZ; }; struct tile_map_position { unsigned int AbsTileX; unsigned int AbsTileY; unsigned int AbsTileZ; /* NOTE: X and Y relative to tile center. */ struct v2 Offset; }; struct tile_chunk_position { unsigned int TileChunkX; unsigned int TileChunkY; unsigned int TileChunkZ; unsigned int RelTileX; unsigned int RelTileY; }; struct tile_chunk { unsigned int *Tiles; }; struct tile_map { unsigned int ChunkShift; unsigned int ChunkMask; unsigned int ChunkDim; float TileSideInMeters; /* TODO: Real sparseness. */ unsigned int TileChunkCountX; unsigned int TileChunkCountY; unsigned int TileChunkCountZ; struct tile_chunk *TileChunks; }; #endif