private Atts.Direction FindEmptySpaceNexttoDoor(ref int cx, ref int cy) { Atts.Direction dir = Atts.Direction.None; if (cx > 0 && map[cx - 1, cy].GridLine) { dir = Atts.Direction.West; cx--; } else if (cx + 1 < Atts.MaxLocsX && map[cx + 1, cy].GridLine) { dir = Atts.Direction.West; cx++; } else if (cy > 0 && map[cx, cy - 1].GridLine) { dir = Atts.Direction.North; cy--; } else if (cy + 1 < Atts.MaxLocsY && map[cx, cy + 1].GridLine) { dir = Atts.Direction.South; cy++; } return(dir); }
// adds an exit to a corridor in the appropriate direction public void AddExit(Corridor corridor, Atts.Direction dir) { for (var i = 0; i < 8; i++) { if (Doors[i] == null) { Doors[i] = corridor; DoorDirections[i] = dir; break; } } }