square[0] = Tile_coord(SUB_TILE(pos.tx, dist), SUB_TILE(pos.ty, dist), pos.tz);
square[0] = Tile_coord(DECR_TILE(pos.tx, dist), DECR_TILE(pos.ty, dist), pos.tz);
static Tile_coord *Get_square	(	Tile_coord& pos,		// Center of square.	int dist			// Distance to perimeter (>0)	)	{	Tile_coord *square = new Tile_coord[8*dist];					// Upper left corner:	square[0] = Tile_coord(SUB_TILE(pos.tx, dist), SUB_TILE(pos.ty, dist),								pos.tz);	int i;				// Start with top row.	int len = 2*dist + 1;	int out = 1;	for (i = 1; i < len; i++, out++)		square[out] = Tile_coord(INCR_TILE(square[out - 1].tx),			square[out - 1].ty, pos.tz);					// Down right side.	for (i = 1; i < len; i++, out++)		square[out] = Tile_coord(square[out - 1].tx,			INCR_TILE(square[out - 1].ty), pos.tz);					// Bottom, going back to left.	for (i = 1; i < len; i++, out++)		square[out] = Tile_coord(DECR_TILE(square[out - 1].tx),			square[out - 1].ty, pos.tz);					// Left side, going up.	for (i = 1; i < len - 1; i++, out++)		square[out] = Tile_coord(square[out - 1].tx,			DECR_TILE(square[out - 1].ty), pos.tz);	return square;	}