public void addGeneralRoom() {
    if (current_x == min_width &&
            (current_y < 2 || current_boss_chamber.getConnectionInDirection(RoomSide.NORTH) != null)) {
      if (!is_new_row_started) {
        startNewRow();
      }
      else {
        addFirstBossChamberInRow();
      }
    }
    else {
      if (current_y > 1 && current_boss_chamber.getConnectionInDirection(RoomSide.NORTH) == null) {
        addVerticalConnectorRoom();
        if (current_x == min_width && current_y == min_height) {
          is_ready_to_finish = true;
        }
      }
      else if (current_boss_chamber.getConnectionInDirection(RoomSide.EAST) == null) {
        addHorizontalConnectorRoom();
      }
      else {
        addNextBossChamberInRow();
      }
    }
  }