| 
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -28,753 +28,105 @@ distribution.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				namespace DFHack
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				{
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    const TileRow tileTypeTable[TILE_TYPE_ARRAY_LENGTH] =
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    df::tiletype findSimilarTileType (const df::tiletype sourceTileType, const df::tiletype_shape tshape)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // 0x000
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "void", tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "ramp top", RAMP_TOP, AIR, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "murky pool", POOL, SOIL, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        df::tiletype match = tiletype::Void;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        int value = 0, matchv = 0;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // 0x010
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "driftwood", FLOOR, DRIFTWOOD, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "tree", TREE_OK, SOIL, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "ice stair up/down", STAIR_UPDOWN, ICE, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "ice stair down", STAIR_DOWN, ICE, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "ice stair up", STAIR_UP, ICE, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // 0x020
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "empty space", EMPTY, AIR, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "shrub", SHRUB_OK, SOIL, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "chasm", ENDLESS_PIT, AIR, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "obsidian stair up/down", STAIR_UPDOWN, OBSIDIAN, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "obsidian stair down", STAIR_DOWN, OBSIDIAN, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "obsidian stair up", STAIR_UP, OBSIDIAN, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "soil stair up/down", STAIR_UPDOWN, SOIL, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "soil stair down", STAIR_DOWN, SOIL, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "soil stair up", STAIR_UP, SOIL, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "eerie pit", ENDLESS_PIT, HFS, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth stone floor", FLOOR, STONE, VAR_1, TILE_SMOOTH },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth obsidian floor", FLOOR, OBSIDIAN, VAR_1, TILE_SMOOTH },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth featstone floor", FLOOR, FEATSTONE, VAR_1, TILE_SMOOTH },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth vein floor", FLOOR, VEIN, VAR_1, TILE_SMOOTH },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth ice floor", FLOOR, ICE, VAR_1, TILE_SMOOTH },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // 0x030
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "light grass stair up/down", STAIR_UPDOWN, GRASS, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "light grass stair down", STAIR_DOWN, GRASS, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "light grass stair up", STAIR_UP, GRASS, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "dark grass stair up/down", STAIR_UPDOWN, GRASS2, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "dark grass stair down", STAIR_DOWN, GRASS2, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "dark grass stair up", STAIR_UP, GRASS2, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "stone stair up/down", STAIR_UPDOWN, STONE, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "stone stair down", STAIR_DOWN, STONE, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "stone stair up", STAIR_UP, STONE, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "vein stair up/down", STAIR_UPDOWN, VEIN, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "vein stair down", STAIR_DOWN, VEIN, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "vein stair up", STAIR_UP, VEIN, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "featstone stair up/down", STAIR_UPDOWN, FEATSTONE, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "featstone stair down", STAIR_DOWN, FEATSTONE, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "featstone stair up", STAIR_UP, FEATSTONE, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // 0x040
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "stone fortification", FORTIFICATION, STONE, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "campfire", FLOOR, CAMPFIRE, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "fire", FLOOR, FIRE, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "stone pillar", PILLAR, STONE, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // 0x050
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "obsidian pillar", PILLAR, OBSIDIAN, VAR_1, TILE_SMOOTH },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "featstone pillar", PILLAR, FEATSTONE, VAR_1, TILE_SMOOTH },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "vein pillar", PILLAR, VEIN, VAR_1, TILE_SMOOTH },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "ice pillar", PILLAR, ICE, VAR_1, TILE_SMOOTH },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "waterfall", FLOOR, SOIL, VAR_1, TILE_WATERFALL }, // verify material
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "river source", FLOOR, SOIL, VAR_1, TILE_RIVER_SOURCE }, // verify material
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // 0x060
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // 0x070
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // 0x080
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // 0x090
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // 0x0A0
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // 0x0B0
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "cracked stone wall", WALL, STONE, VAR_1, TILE_CRACKED },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "damaged stone wall", WALL, STONE, VAR_1, TILE_DAMAGED },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "worn stone wall", WALL, STONE, VAR_1, TILE_WORN },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // 0x0C0
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // 0x0D0
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "stone wall", WALL, STONE, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // 0x0E0
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "sapling", SAPLING_OK, SOIL, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "dry grass ramp", RAMP, GRASS_DRY, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "dead grass ramp", RAMP, GRASS_DEAD, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "light grass ramp", RAMP, GRASS, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "dark grass ramp", RAMP, GRASS2, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "stone ramp", RAMP, STONE, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "obsidian ramp", RAMP, OBSIDIAN, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "featstone ramp", RAMP, FEATSTONE, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // 0x0F0
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "vein ramp", RAMP, VEIN, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "soil ramp", RAMP, SOIL, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "ashes", FLOOR, ASHES, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "ashes", FLOOR, ASHES, VAR_2 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "ashes", FLOOR, ASHES, VAR_3 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "ice ramp", RAMP, ICE, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // 0x100
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "ice floor", FLOOR, ICE, VAR_2 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "ice floor", FLOOR, ICE, VAR_3 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "ice floor", FLOOR, ICE, VAR_4 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "furrowed soil", FLOOR, SOIL, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "ice floor", FLOOR, ICE, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "semi-molten rock", WALL, MAGMA, VAR_1 }, // unminable magma wall
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "magma flow", FLOOR, MAGMA, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "soil wall", WALL, SOIL, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "glowing barrier", WALL, CYAN_GLOW, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "glowing floor", FLOOR, CYAN_GLOW, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth obsidian wall RD2", WALL, OBSIDIAN, VAR_1, TILE_SMOOTH, "--SS--E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth obsidian wall R2D", WALL, OBSIDIAN, VAR_1, TILE_SMOOTH, "--S---EE" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth obsidian wall R2U", WALL, OBSIDIAN, VAR_1, TILE_SMOOTH, "N-----EE" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // 0x110
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth obsidian wall RU2", WALL, OBSIDIAN, VAR_1, TILE_SMOOTH, "NN----E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth obsidian wall L2U", WALL, OBSIDIAN, VAR_1, TILE_SMOOTH, "N---WW--" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth obsidian wall LU2", WALL, OBSIDIAN, VAR_1, TILE_SMOOTH, "NN--W---" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth obsidian wall L2D", WALL, OBSIDIAN, VAR_1, TILE_SMOOTH, "--S-WW--" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth obsidian wall LD2", WALL, OBSIDIAN, VAR_1, TILE_SMOOTH, "--SSW---" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth obsidian wall LRUD", WALL, OBSIDIAN, VAR_1, TILE_SMOOTH, "N-S-W-E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth obsidian wall RUD", WALL, OBSIDIAN, VAR_1, TILE_SMOOTH, "N-S---E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth obsidian wall LRD", WALL, OBSIDIAN, VAR_1, TILE_SMOOTH, "--S-W-E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth obsidian wall LRU", WALL, OBSIDIAN, VAR_1, TILE_SMOOTH, "N---W-E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth obsidian wall LUD", WALL, OBSIDIAN, VAR_1, TILE_SMOOTH, "N-S-W---" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth obsidian wall RD", WALL, OBSIDIAN, VAR_1, TILE_SMOOTH, "--S---E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth obsidian wall RU", WALL, OBSIDIAN, VAR_1, TILE_SMOOTH, "N-----E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth obsidian wall LU", WALL, OBSIDIAN, VAR_1, TILE_SMOOTH, "N---W---" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth obsidian wall LD", WALL, OBSIDIAN, VAR_1, TILE_SMOOTH, "--S-W---" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth obsidian wall UD", WALL, OBSIDIAN, VAR_1, TILE_SMOOTH, "N-S-----" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth obsidian wall LR", WALL, OBSIDIAN, VAR_1, TILE_SMOOTH, "----W-E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // 0x120
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth featstone wall RD2", WALL, FEATSTONE, VAR_1, TILE_SMOOTH, "--SS--E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth featstone wall R2D", WALL, FEATSTONE, VAR_1, TILE_SMOOTH, "--S---EE" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth featstone wall R2U", WALL, FEATSTONE, VAR_1, TILE_SMOOTH, "N-----EE" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth featstone wall RU2", WALL, FEATSTONE, VAR_1, TILE_SMOOTH, "NN----E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth featstone wall L2U", WALL, FEATSTONE, VAR_1, TILE_SMOOTH, "N---WW--" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth featstone wall LU2", WALL, FEATSTONE, VAR_1, TILE_SMOOTH, "NN--W---" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth featstone wall L2D", WALL, FEATSTONE, VAR_1, TILE_SMOOTH, "--S-WW--" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth featstone wall LD2", WALL, FEATSTONE, VAR_1, TILE_SMOOTH, "--SSW---" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth featstone wall LRUD", WALL, FEATSTONE, VAR_1, TILE_SMOOTH, "N-S-W-E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth featstone wall RUD", WALL, FEATSTONE, VAR_1, TILE_SMOOTH, "N-S---E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth featstone wall LRD", WALL, FEATSTONE, VAR_1, TILE_SMOOTH, "--S-W-E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth featstone wall LRU", WALL, FEATSTONE, VAR_1, TILE_SMOOTH, "N---W-E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth featstone wall LUD", WALL, FEATSTONE, VAR_1, TILE_SMOOTH, "N-S-W---" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth featstone wall RD", WALL, FEATSTONE, VAR_1, TILE_SMOOTH, "--S---E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth featstone wall RU", WALL, FEATSTONE, VAR_1, TILE_SMOOTH, "N-----E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth featstone wall LU", WALL, FEATSTONE, VAR_1, TILE_SMOOTH, "N---W---" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // 0x130
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth featstone wall LD", WALL, FEATSTONE, VAR_1, TILE_SMOOTH, "--S-W---" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth featstone wall UD", WALL, FEATSTONE, VAR_1, TILE_SMOOTH, "N-S-----" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth featstone wall LR", WALL, FEATSTONE, VAR_1, TILE_SMOOTH, "----W-E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth stone wall RD2", WALL, STONE, VAR_1, TILE_SMOOTH, "--SS--E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth stone wall R2D", WALL, STONE, VAR_1, TILE_SMOOTH, "--S---EE" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth stone wall R2U", WALL, STONE, VAR_1, TILE_SMOOTH, "N-----EE" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth stone wall RU2", WALL, STONE, VAR_1, TILE_SMOOTH, "NN----E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth stone wall L2U", WALL, STONE, VAR_1, TILE_SMOOTH, "N---WW--" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth stone wall LU2", WALL, STONE, VAR_1, TILE_SMOOTH, "NN--W---" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth stone wall L2D", WALL, STONE, VAR_1, TILE_SMOOTH, "--S-WW--" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth stone wall LD2", WALL, STONE, VAR_1, TILE_SMOOTH, "--SSW---" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth stone wall LRUD", WALL, STONE, VAR_1, TILE_SMOOTH, "N-S-W-E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth stone wall RUD", WALL, STONE, VAR_1, TILE_SMOOTH, "N-S---E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth stone wall LRD", WALL, STONE, VAR_1, TILE_SMOOTH, "--S-W-E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth stone wall LRU", WALL, STONE, VAR_1, TILE_SMOOTH, "N---W-E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth stone wall LUD", WALL, STONE, VAR_1, TILE_SMOOTH, "N-S-W---" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // 0x140
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth stone wall RD", WALL, STONE, VAR_1, TILE_SMOOTH, "--S---E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth stone wall RU", WALL, STONE, VAR_1, TILE_SMOOTH, "N-----E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth stone wall LU", WALL, STONE, VAR_1, TILE_SMOOTH, "N---W---" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth stone wall LD", WALL, STONE, VAR_1, TILE_SMOOTH, "--S-W---" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth stone wall UD", WALL, STONE, VAR_1, TILE_SMOOTH, "N-S-----" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth stone wall LR", WALL, STONE, VAR_1, TILE_SMOOTH, "----W-E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "obsidian fortification", FORTIFICATION, OBSIDIAN, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "featstone fortification", FORTIFICATION, FEATSTONE, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "cracked obsidian wall", WALL, OBSIDIAN, VAR_1, TILE_CRACKED },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "damaged obsidian wall", WALL, OBSIDIAN, VAR_1, TILE_DAMAGED },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "worn obsidian wall", WALL, OBSIDIAN, VAR_1, TILE_WORN },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "obsidian wall", WALL, OBSIDIAN, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "cracked featstone wall", WALL, FEATSTONE, VAR_1, TILE_CRACKED },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "damaged featstone wall", WALL, FEATSTONE, VAR_1, TILE_DAMAGED },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "worn featstone wall", WALL, FEATSTONE, VAR_1, TILE_WORN },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "featstone wall", WALL, FEATSTONE, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // 0x150
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "stone floor 1", FLOOR, STONE, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "stone floor 2", FLOOR, STONE, VAR_2 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "stone floor 3", FLOOR, STONE, VAR_3 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "stone floor 4", FLOOR, STONE, VAR_4 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "obsidian floor 1", FLOOR, OBSIDIAN, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "obsidian floor 2", FLOOR, OBSIDIAN, VAR_2 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "obsidian floor 3", FLOOR, OBSIDIAN, VAR_3 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "obsidian floor 4", FLOOR, OBSIDIAN, VAR_4 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "featstone floor 1", FLOOR, FEATSTONE, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "featstone floor 2", FLOOR, FEATSTONE, VAR_2 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "featstone floor 3", FLOOR, FEATSTONE, VAR_3 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "featstone floor 4", FLOOR, FEATSTONE, VAR_4 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "dark grass 1", FLOOR, GRASS2, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "dark grass 2", FLOOR, GRASS2, VAR_2 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "dark grass 3", FLOOR, GRASS2, VAR_3 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "dark grass 4", FLOOR, GRASS2, VAR_4 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // 0x160
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "soil floor 1", FLOOR, SOIL, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "soil floor 2", FLOOR, SOIL, VAR_2 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "soil floor 3", FLOOR, SOIL, VAR_3 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "soil floor 4", FLOOR, SOIL, VAR_4 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "wet soil floor 1", FLOOR, SOIL, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "wet soil floor 2", FLOOR, SOIL, VAR_2 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "wet soil floor 3", FLOOR, SOIL, VAR_3 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "wet soil floor 4", FLOOR, SOIL, VAR_4 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "ice fortification", FORTIFICATION, ICE, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "cracked ice wall", WALL, ICE, VAR_1, TILE_CRACKED },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "damaged ice wall", WALL, ICE, VAR_1, TILE_DAMAGED },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "worn ice wall", WALL, ICE, VAR_1, TILE_WORN },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "ice wall", WALL, ICE, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "river N", RIVER_BED, SOIL, VAR_1, TILE_NORMAL, "N" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "river S", RIVER_BED, SOIL, VAR_1, TILE_NORMAL, "S" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "river E", RIVER_BED, SOIL, VAR_1, TILE_NORMAL, "E" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // 0x170
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "river W", RIVER_BED, SOIL, VAR_1, TILE_NORMAL, "W" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "river NW", RIVER_BED, SOIL, VAR_1, TILE_NORMAL, "NW" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "river NE", RIVER_BED, SOIL, VAR_1, TILE_NORMAL, "NE" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "river SW", RIVER_BED, SOIL, VAR_1, TILE_NORMAL, "SW" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "river SE", RIVER_BED, SOIL, VAR_1, TILE_NORMAL, "SE" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "brook bed N", BROOK_BED, SOIL, VAR_1, TILE_NORMAL, "N" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "brook bed S", BROOK_BED, SOIL, VAR_1, TILE_NORMAL, "S" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "brook bed E", BROOK_BED, SOIL, VAR_1, TILE_NORMAL, "E" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "brook bed W", BROOK_BED, SOIL, VAR_1, TILE_NORMAL, "W" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "brook bed NW", BROOK_BED, SOIL, VAR_1, TILE_NORMAL, "NW" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "brook bed NE", BROOK_BED, SOIL, VAR_1, TILE_NORMAL, "NE" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "brook bed SW", BROOK_BED, SOIL, VAR_1, TILE_NORMAL, "SW" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "brook bed SE", BROOK_BED, SOIL, VAR_1, TILE_NORMAL, "SE" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "brook top", BROOK_TOP, SOIL, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // 0x180
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "dry grass 1", FLOOR, GRASS_DRY, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "dry grass 2", FLOOR, GRASS_DRY, VAR_2 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "dry grass 3", FLOOR, GRASS_DRY, VAR_3 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "dry grass 4", FLOOR, GRASS_DRY, VAR_4 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "dead tree", TREE_DEAD, SOIL, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "dead sapling", SAPLING_DEAD, SOIL, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "dead shrub", SHRUB_DEAD, SOIL, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "dead grass 1", FLOOR, GRASS_DEAD, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "dead grass 2", FLOOR, GRASS_DEAD, VAR_2 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "dead grass 3", FLOOR, GRASS_DEAD, VAR_3 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "dead grass 4", FLOOR, GRASS_DEAD, VAR_4 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "light grass 1", FLOOR, GRASS, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "light grass 2", FLOOR, GRASS, VAR_2 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // 0x190
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "light grass 3", FLOOR, GRASS, VAR_3 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "light grass 4", FLOOR, GRASS, VAR_4 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "boulder", BOULDER, STONE, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "obsidian boulder", BOULDER, OBSIDIAN, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "featstone boulder", BOULDER, FEATSTONE, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "stone pebbles 1", PEBBLES, STONE, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "stone pebbles 2", PEBBLES, STONE, VAR_2 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "stone pebbles 3", PEBBLES, STONE, VAR_3 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "stone pebbles 4", PEBBLES, STONE, VAR_4 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "obsidian pebbles 1", PEBBLES, OBSIDIAN, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "obsidian pebbles 2", PEBBLES, OBSIDIAN, VAR_2 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "obsidian pebbles 3", PEBBLES, OBSIDIAN, VAR_3 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "obsidian pebbles 4", PEBBLES, OBSIDIAN, VAR_4 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "featstone pebbles 1", PEBBLES, FEATSTONE, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "featstone pebbles 2", PEBBLES, FEATSTONE, VAR_2 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "featstone pebbles 3", PEBBLES, FEATSTONE, VAR_3 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // 0x1A0
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "featstone pebbles 4", PEBBLES, FEATSTONE, VAR_4 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth vein wall RD2", WALL, VEIN, VAR_1, TILE_SMOOTH, "--SS--E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth vein wall R2D", WALL, VEIN, VAR_1, TILE_SMOOTH, "--S---EE" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth vein wall R2U", WALL, VEIN, VAR_1, TILE_SMOOTH, "N-----EE" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth vein wall RU2", WALL, VEIN, VAR_1, TILE_SMOOTH, "NN----E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth vein wall L2U", WALL, VEIN, VAR_1, TILE_SMOOTH, "N---WW--" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth vein wall LU2", WALL, VEIN, VAR_1, TILE_SMOOTH, "NN--W---" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth vein wall L2D", WALL, VEIN, VAR_1, TILE_SMOOTH, "--S-WW--" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth vein wall LD2", WALL, VEIN, VAR_1, TILE_SMOOTH, "--SSW---" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth vein wall LRUD", WALL, VEIN, VAR_1, TILE_SMOOTH, "N-S-W-E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth vein wall RUD", WALL, VEIN, VAR_1, TILE_SMOOTH, "N-S---E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth vein wall LRD", WALL, VEIN, VAR_1, TILE_SMOOTH, "--S-W-E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth vein wall LRU", WALL, VEIN, VAR_1, TILE_SMOOTH, "N---W-E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth vein wall LUD", WALL, VEIN, VAR_1, TILE_SMOOTH, "N-S-W---" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth vein wall RD", WALL, VEIN, VAR_1, TILE_SMOOTH, "--S---E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth vein wall RU", WALL, VEIN, VAR_1, TILE_SMOOTH, "N-----E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // 0x1B0
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth vein wall LU", WALL, VEIN, VAR_1, TILE_SMOOTH, "N---W---" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth vein wall LD", WALL, VEIN, VAR_1, TILE_SMOOTH, "--S-W---" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth vein wall UD", WALL, VEIN, VAR_1, TILE_SMOOTH, "N-S-----" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth vein wall LR", WALL, VEIN, VAR_1, TILE_SMOOTH, "----W-E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "vein fortification", FORTIFICATION, VEIN, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "cracked vein wall", WALL, VEIN, VAR_1, TILE_CRACKED },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "damaged vein wall", WALL, VEIN, VAR_1, TILE_DAMAGED },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "worn vein wall", WALL, VEIN, VAR_1, TILE_WORN },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "vein wall", WALL, VEIN, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "vein floor 1", FLOOR, VEIN, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "vein floor 2", FLOOR, VEIN, VAR_2 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "vein floor 3", FLOOR, VEIN, VAR_3 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "vein floor 4", FLOOR, VEIN, VAR_4 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "vein boulder", BOULDER, VEIN, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "vein pebbles 1", PEBBLES, VEIN, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "vein pebbles 2", PEBBLES, VEIN, VAR_2 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // 0x1C0
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "vein pebbles 3", PEBBLES, VEIN, VAR_3 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "vein pebbles 4", PEBBLES, VEIN, VAR_4 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth ice wall RD2", WALL, ICE, VAR_1, TILE_SMOOTH, "--SS--E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth ice wall R2D", WALL, ICE, VAR_1, TILE_SMOOTH, "--S---EE" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth ice wall R2U", WALL, ICE, VAR_1, TILE_SMOOTH, "N-----EE" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth ice wall RU2", WALL, ICE, VAR_1, TILE_SMOOTH, "NN----E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth ice wall L2U", WALL, ICE, VAR_1, TILE_SMOOTH, "N---WW--" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth ice wall LU2", WALL, ICE, VAR_1, TILE_SMOOTH, "NN--W---" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth ice wall L2D", WALL, ICE, VAR_1, TILE_SMOOTH, "--S-WW--" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth ice wall LD2", WALL, ICE, VAR_1, TILE_SMOOTH, "--SSW---" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth ice wall LRUD", WALL, ICE, VAR_1, TILE_SMOOTH, "N-S-W-E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth ice wall RUD", WALL, ICE, VAR_1, TILE_SMOOTH, "N-S---E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth ice wall LRD", WALL, ICE, VAR_1, TILE_SMOOTH, "--S-W-E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth ice wall LRU", WALL, ICE, VAR_1, TILE_SMOOTH, "N---W-E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth ice wall LUD", WALL, ICE, VAR_1, TILE_SMOOTH, "N-S-W---" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth ice wall RD", WALL, ICE, VAR_1, TILE_SMOOTH, "--S---E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // 0x1D0
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth ice wall RU", WALL, ICE, VAR_1, TILE_SMOOTH, "N-----E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth ice wall LU", WALL, ICE, VAR_1, TILE_SMOOTH, "N---W---" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth ice wall LD", WALL, ICE, VAR_1, TILE_SMOOTH, "--S-W---" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth ice wall UD", WALL, ICE, VAR_1, TILE_SMOOTH, "N-S-----" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "smooth ice wall LR", WALL, ICE, VAR_1, TILE_SMOOTH, "----W-E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // 0x1E0
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "constructed floor", FLOOR, CONSTRUCTED, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "constructed fortification", FORTIFICATION, CONSTRUCTED, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "constructed pillar", PILLAR, CONSTRUCTED, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // 0x1F0
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "constructed wall RD2", WALL, CONSTRUCTED, VAR_1, TILE_NORMAL, "--SS--E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "constructed wall R2D", WALL, CONSTRUCTED, VAR_1, TILE_NORMAL, "--S---EE" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "constructed wall R2U", WALL, CONSTRUCTED, VAR_1, TILE_NORMAL, "N-----EE" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "constructed wall RU2", WALL, CONSTRUCTED, VAR_1, TILE_NORMAL, "NN----E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "constructed wall L2U", WALL, CONSTRUCTED, VAR_1, TILE_NORMAL, "N---WW--" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "constructed wall LU2", WALL, CONSTRUCTED, VAR_1, TILE_NORMAL, "NN--W---" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "constructed wall L2D", WALL, CONSTRUCTED, VAR_1, TILE_NORMAL, "--S-WW--" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "constructed wall LD2", WALL, CONSTRUCTED, VAR_1, TILE_NORMAL, "--SSW---" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "constructed wall LRUD", WALL, CONSTRUCTED, VAR_1, TILE_NORMAL, "N-S-W-E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "constructed wall RUD", WALL, CONSTRUCTED, VAR_1, TILE_NORMAL, "N-S---E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "constructed wall LRD", WALL, CONSTRUCTED, VAR_1, TILE_NORMAL, "--S-W-E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "constructed wall LRU", WALL, CONSTRUCTED, VAR_1, TILE_NORMAL, "N---W-E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "constructed wall LUD", WALL, CONSTRUCTED, VAR_1, TILE_NORMAL, "N-S-W---" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "constructed wall RD", WALL, CONSTRUCTED, VAR_1, TILE_NORMAL, "--S---E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "constructed wall RU", WALL, CONSTRUCTED, VAR_1, TILE_NORMAL, "N-----E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "constructed wall LU", WALL, CONSTRUCTED, VAR_1, TILE_NORMAL, "N---W---" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // 0x200
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "constructed wall LD", WALL, CONSTRUCTED, VAR_1, TILE_NORMAL, "--S-W---" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "constructed wall UD", WALL, CONSTRUCTED, VAR_1, TILE_NORMAL, "N-S-----" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "constructed wall LR", WALL, CONSTRUCTED, VAR_1, TILE_NORMAL, "----W-E-" },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "constructed stair up/down", STAIR_UPDOWN, CONSTRUCTED, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "constructed stair down", STAIR_DOWN, CONSTRUCTED, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "constructed stair up", STAIR_UP, CONSTRUCTED, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { "constructed ramp", RAMP, CONSTRUCTED, VAR_1 },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        { 0, tileshape_invalid, tilematerial_invalid, VAR_1 }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    };
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    //set tile class string lookup table (e.g. for printing to user)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				#define X(name,comment) #name,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    const char * TileShapeString[tileshape_count+1] = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        TILESHAPE_MACRO
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        0
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    };
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				#undef X
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    //string lookup table (e.g. for printing to user)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				#define X(name,comment) #name,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    const char * TileMaterialString[tilematerial_count+1] = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        TILEMATERIAL_MACRO
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        0
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    };
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				#undef X
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    //string lookup table (e.g. for printing to user)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				#define X(name,comment) #name,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    const char * TileSpecialString[tilespecial_count+1] = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        TILESPECIAL_MACRO
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        0
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    };
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				#undef X
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    int16_t findSimilarTileType( const int16_t sourceTileType, const TileShape tshape )
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        int16_t match=0;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        int value=0, matchv=0;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        const TileRow *source = &tileTypeTable[sourceTileType];
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        const df::tiletype_shape cur_shape = tileShape(sourceTileType);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        const df::tiletype_material cur_material = tileMaterial(sourceTileType);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        const df::tiletype_special cur_special = tileSpecial(sourceTileType);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        const df::tiletype_variant cur_variant = tileVariant(sourceTileType);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        const TileDirection cur_direction = tileDirection(sourceTileType);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        //Shortcut.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        //If the current tile is already a shape match, leave.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        if( tshape == source->shape ) return sourceTileType;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        //Cheap pseudo-entropy, by using address of the variable on the stack.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        //No need for real random numbers.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        static int entropy;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        entropy += (int)( (void *)(&match) );
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        entropy ^= ((entropy & 0xFF000000)>>24) ^ ((entropy & 0x00FF0000)>>16);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        if (tshape == cur_shape)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            return sourceTileType;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        #ifdef assert
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        assert( sourceTileType >=0 && sourceTileType < TILE_TYPE_ARRAY_LENGTH );
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        assert(tiletype::is_valid(sourceTileType));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        #endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        //Special case for smooth pillars.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        //When you want a smooth wall, no need to search for best match.  Just use a pillar instead.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        //Choosing the right direction would require knowing neighbors.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        if( WALL==tshape && (TILE_SMOOTH==source->special || CONSTRUCTED==source->material) ){
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            switch( source->material ){
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                case CONSTRUCTED:      match=495;  break;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                case ICE:              match= 83;  break;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                case VEIN:             match= 82;  break;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                case FEATSTONE:        match= 81;  break;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                case OBSIDIAN:         match= 80;  break;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                case STONE:            match= 79;  break;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // Special case for smooth pillars.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // When you want a smooth wall, no need to search for best match.  Just use a pillar instead.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // Choosing the right direction would require knowing neighbors.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        if ((tshape == tiletype_shape::WALL) && ((cur_special == tiletype_special::SMOOTH) || (cur_material == tiletype_material::CONSTRUCTION)))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            switch (cur_material)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            case tiletype_material::CONSTRUCTION:
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                return tiletype::ConstructedPillar;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            case tiletype_material::FROZEN_LIQUID:
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                return tiletype::FrozenPillar;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            case tiletype_material::MINERAL:
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                return tiletype::MineralPillar;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            case tiletype_material::FEATURE:
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                return tiletype::FeaturePillar;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            case tiletype_material::LAVA_STONE:
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                return tiletype::LavaPillar;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            case tiletype_material::STONE:
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                return tiletype::StonePillar;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            if( match ) return match;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        //Run through until perfect match found or hit end.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        for(int16_t tt=0;tt<TILE_TYPE_ARRAY_LENGTH && value<(8|4|1); ++tt)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // Run through until perfect match found or hit end.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        FOR_ENUM_ITEMS(tiletype, tt)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            if( tshape == tileTypeTable[tt].shape )
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            if (value == (8|4|1))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                break;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            if (tileShape(tt) == tshape)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                //shortcut null entries
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                if(!tileTypeTable[tt].name) continue;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                //Special flag match is absolutely mandatory!
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                if( source->special != tileTypeTable[tt].special ) continue;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                // Special flag match is mandatory, but only if it might possibly make a difference
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                if (tileSpecial(tt) != tiletype_special::NONE && cur_special != tiletype_special::NONE && tileSpecial(tt) != cur_special)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    continue;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                //Special case for constructions.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                //Never turn a construction into a non-contruction.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                if( CONSTRUCTED == source->material && CONSTRUCTED != tileTypeTable[tt].material ) continue;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                // Special case for constructions.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                // Never turn a construction into a non-contruction.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                if ((cur_material == tiletype_material::CONSTRUCTION) && (tileMaterial(tt) != cur_material))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    continue;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                value=0;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                value = 0;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                //Material is high-value match
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                if( tileTypeTable[tt].material == source->material ) value|=8;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                //Direction is medium value match
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                if( tileTypeTable[tt].direction.whole == source->direction.whole ) value|=4;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                //Variant is low-value match
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                if( tileTypeTable[tt].variant == source->variant ) value|=1;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                if (cur_material == tileMaterial(tt))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    value |= 8;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                // Direction is medium value match
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                if (cur_direction == tileDirection(tt))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    value |= 4;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                // Variant is low-value match
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                if (cur_variant == tileVariant(tt))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    value |= 1;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                //Check value against last match.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                if( value>matchv )
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                // Check value against last match.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                if (value > matchv)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    match=tt;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    matchv=value;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    match = tt;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    matchv = value;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        //Post-processing for floors.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        //Give raw floors variation.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        //Variant matters, but does not matter for source.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        //Error on the side of caution.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        if( FLOOR==tshape && CONSTRUCTED!=source->material && !source->special )
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // If the selected tile has a variant, then pick a random one
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        match = findRandomVariant(match);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        if (match)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            return match;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        return sourceTileType;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    df::tiletype findRandomVariant (const df::tiletype tile)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        if (tileVariant(tile) == tiletype_variant::NONE)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            return tile;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        std::vector<df::tiletype> matches;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        FOR_ENUM_ITEMS(tiletype, tt)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            //Trying to make a floor type with variants, so randomize the variant.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            //Very picky, only handle known safe tile types.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            //Some floors have 4 variants, some have 3, so the order of these matters.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            switch( match ){
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                case 261:
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    //Furrowed soil got chosen by accident.  Fix that.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    match=352+(3&entropy);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    break;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                case 336:	//STONE
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                case 340:	//OBSIDIAN
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                case 344:	//featstone
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                case 349:	//grass
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                case 352:	//soil
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                case 356:	//wet soil
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                case 387:	//dry grass
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                case 394:	//dead grass
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                case 398:	//grass B
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                case 441:	//vein
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    match +=  3&entropy;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    break;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                case 242:	//ASHES
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                case 258:	//ICE
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    match += (1&entropy) + (2&entropy);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    break;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            if (tileShape(tt) == tileShape(tile) &&
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                tileMaterial(tt) == tileMaterial(tile) &&
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                tileSpecial(tt) == tileSpecial(tile))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                matches.push_back(tt);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        if( match ) return match;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        return sourceTileType;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        return matches[rand() % matches.size()];
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
					 | 
				
			
			 | 
			 | 
			
				
 
 |