public void leaveRoomInAbsoluteDirection(Character characterLeavingRoom, Relative_Direction exitAttemptingToLeaveBy) {
		Room nextRoom = this.getRoomFromExitAbsoluteDirection(exitAttemptingToLeaveBy);
		if (nextRoom == null){
			nextRoom = Game.getInstance().drawRoom();
			while (!nextRoom.floorsAllowedOn.contains(this.getLocation().getFloor())){
				Game.getInstance().discardRoom(nextRoom);
				nextRoom = Game.getInstance().drawRoom();
				// TODO Stop this from being a possible infinite loop
			}
			Location loc = null;
			switch(exitAttemptingToLeaveBy){
				case NORTH:
					loc = this.getLocation().getFloorLocationToNorth();
					break;
				case SOUTH:
					loc = this.getLocation().getFloorLocationToSouth();
					break;
				case EAST:
					loc = this.getLocation().getFloorLocationToEast();
					break;
				case WEST:
					loc = this.getLocation().getFloorLocationToWest();
					break;
			}
			
			nextRoom.flipCard();
			Game.getInstance().chooseOrientaionToAddRoomAndAddIt(nextRoom, this, loc);
			
		}
		
		characterLeavingRoom.enterRoomGoingInAbsoluteDirection(nextRoom, exitAttemptingToLeaveBy);
	}