49 lines
879 B
C
49 lines
879 B
C
#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
|