private Scenery[][] loadRandomMap(GameMap g, int multiplier, int xOfMap, int yOfMap,
      int levelsDeep, TextDisplay textDisplay) throws Exception {
    String path = PATH_TO_MAPS;
    if (notSpawnedPlayerCount > 2) {
      path += "PlayerMaps" + File.separator;
      initPlayerMaps();
    } else {
      initMapLoader();
    }
    int index = new Random().nextInt(numOfFiles);

    // create an input stream from the class loader and make an input stream
    // reader from that and make a buffered reader from the input stream reader
    BufferedReader br = new BufferedReader(new InputStreamReader(getClass().getClassLoader()
        .getResourceAsStream(path + mapFileNames[index])));

    Scenery[][] data = new Scenery[cellHeight][cellWidth];
    String currentLine;
    int y = 0;
    while ((currentLine = br.readLine()) != null) {
      String sceneryChars[] = currentLine.split(" ");

      for (int x = 0; x < sceneryChars.length; x++) {
        String sceneryChar = sceneryChars[x];
        Scenery scenery = sceneryFactory.getScenery(sceneryChar, x + xOfMap * cellWidth, y + yOfMap
            * cellHeight, g, multiplier, levelsDeep, textDisplay);
        data[y][x] = scenery;

        if (sceneryChar.equals("P")) {
          possibleSpawnPoints.add(new Point(x + xOfMap * cellWidth, y + yOfMap * cellHeight));
          spawnedPlayer = true;
        }
      }
      y++;
    }
    if (!spawnedPlayer) {
      notSpawnedPlayerCount++;
    }
    br.close();
    return data;
  }