@Override public int compareTo(MapLoader other) { MapFileHeader myHeader = this.getFileHeader(); MapFileHeader otherHeader = other.getFileHeader(); if (myHeader.getType() == otherHeader.getType() && myHeader.getType() == MapType.SAVED_SINGLE) { return -this.getCreationDate().compareTo(other.getCreationDate()); // order by date descending } else { return this.getMapName().compareToIgnoreCase(other.getMapName()); // order by name ascending } }
@Override public synchronized void foundMap(IListedMap map) { MapLoader loader; try { loader = MapLoader.getLoaderForListedMap(map); } catch (Exception e) { System.err.println("Cought exception while loading header for " + map.getFileName()); e.printStackTrace(); return; } MapFileHeader mapHead = loader.getFileHeader(); // - if the map can't be load (e.g. caused by wrong format) the mapHead gets NULL! -> hide/ignore this map from user if (mapHead != null) { MapType type = loader.getFileHeader().getType(); if ((type == MapType.SAVED_SINGLE)) { savedMaps.add((RemakeMapLoader) loader); } else { freshMaps.add(loader); } } }
/** * Create a new header with a given name * * @param name * Name */ protected void createNewHeaderWithName(String name) { setHeader(new MapFileHeader(header.getType(), name, null, header.getDescription(), header.getWidth(), header.getHeight(), header.getMinPlayers(), header.getMaxPlayers(), new Date(), header.getPreviewImage().clone())); }
public static MapLoader getLoaderForListedMap(IListedMap listedMap) throws MapLoadException { if ((checkExtention(listedMap.getFileName(), MapLoader.MAP_EXTENSION_ORIGINAL)) || (checkExtention(listedMap.getFileName(), MapLoader.MAP_EXTENSION_ORIGINAL_MAP_EDITOR))) { // - original Siedler 3 Map return new OriginalMapLoader(listedMap); } else { // - Siedler 3 Remake Savegame or Map MapFileHeader header = RemakeMapLoader.loadHeader(listedMap); switch (header.getType()) { case NORMAL: return new FreshMapLoader(listedMap, header); case SAVED_SINGLE: return new SavegameLoader(listedMap, header); default: throw new MapLoadException("Unkown EMapType: " + header.getType()); } } }
/** * Generate new map header * * @return New header */ protected MapFileHeader generateMapHeader() { short[] image = new PreviewImageCreator(header.getWidth(), header.getHeight(), MapFileHeader.PREVIEW_IMAGE_SIZE, mapData.getPreviewImageDataSupplier()).getPreviewImage(); MapFileHeader imagedHeader = new MapFileHeader(header.getType(), header.getName(), header.getBaseMapId(), header.getDescription(), header.getWidth(), header.getHeight(), header.getMinPlayers(), header.getMaxPlayers(), new Date(), image); return imagedHeader; }
if (loadableReplayFile == null) { MapLoader mapLoader = MapLoader.getLoaderForListedMap(new DirectoryMapLister.ListedMapFile(new File(mapFile))); if (mapLoader.getFileHeader().getType() == MapFileHeader.MapType.NORMAL) { byte playerId = 0; PlayerSetting[] playerSettings = PlayerSetting.createDefaultSettings(playerId, (byte) mapLoader.getMaxPlayers());