예제 #1
0
 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);
 }
예제 #2
0
 // 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;
         }
     }
 }