void CreateCorridor(IntVector2 from, IntVector2 to, int z, bool horiz)
{
var td = TileData.EmptyTileData;
if (horiz)
{
int yinc = from.Y < to.Y ? 1 : -1;
int middle = from.Y + (to.Y - from.Y) / 2;
for (int y = from.Y; y != middle; y += yinc)
SetTileData(new IntVector3(from.X, y, z), td);
int x1 = Math.Min(from.X, to.X);
int x2 = Math.Max(from.X, to.X);
for (int x = x1; x <= x2; ++x)
SetTileData(new IntVector3(x, middle, z), td);
for (int y = middle; y != to.Y; y += yinc)
SetTileData(new IntVector3(to.X, y, z), td);
}
else
{
int xinc = from.X < to.X ? 1 : -1;
int middle = from.X + (to.X - from.X) / 2;
for (int x = from.X; x != middle; x += xinc)
SetTileData(new IntVector3(x, from.Y, z), td);
int y1 = Math.Min(from.Y, to.Y);
int y2 = Math.Max(from.Y, to.Y);
for (int y = y1; y <= y2; ++y)
SetTileData(new IntVector3(middle, y, z), td);
for (int x = middle; x != to.X; x += xinc)
SetTileData(new IntVector3(x, to.Y, z), td);
}
}