#ifndef _DEF_TILES #define _DEF_TILES #define TILE_AT(x, y) (x + y * 8) typedef unsigned char Tile; /* the tile ID */ typedef unsigned char Tile_flags; /* the tile properties (bitmask) */ /* define flags */ #define F_SOLID 0b1 #define F_SLIPPERY 0b10 /* define properties */ #define P_AIR (0) #define P_BASE (F_SOLID) #define P_UNKNOWN (0) enum { ID_AIR = TILE_AT(0, 0), ID_BASE_0 = TILE_AT(1, 0), ID_BASE_1 = TILE_AT(2, 0), ID_BASE_2 = TILE_AT(3, 0), ID_BASE_3 = TILE_AT(4, 0), ID_BASE_4 = TILE_AT(1, 1), ID_BASE_5 = TILE_AT(2, 1), ID_BASE_6 = TILE_AT(3, 1), ID_BASE_7 = TILE_AT(4, 1), ID_BASE_8 = TILE_AT(1, 2), ID_BASE_9 = TILE_AT(2, 2), ID_BASE_10 = TILE_AT(3, 2), ID_BASE_11 = TILE_AT(4, 2), ID_BASE_12 = TILE_AT(1, 3), ID_BASE_13 = TILE_AT(2, 3), ID_BASE_14 = TILE_AT(3, 3), ID_BASE_15 = TILE_AT(4, 3), }; Tile_flags tile_get_flags(Tile tile); #endif /* _DEF_TILES */