Ignore:
Timestamp:
Mar 23, 2013, 1:21:28 PM (12 years ago)
Author:
alloc
Message:

AEI2 0.99w:

  • Correct ordering when processing levels when initializing / installing
File:
1 edited

Legend:

Unmodified
Added
Removed
  • java/installer2/src/net/oni2/aeinstaller/backend/oni/Installer.java

    r720 r737  
    3737import org.javabuilders.swing.SwingJavaBuilder;
    3838
     39import com.paour.NaturalOrderComparator;
    3940import com.thoughtworks.xstream.XStream;
    4041import com.thoughtworks.xstream.io.xml.StaxDriver;
     
    226227                                                || s.endsWith(".raw")
    227228                                                || s.endsWith(".sep")
    228                                                 || (s.equals("intro.bik") && !SettingsManager.getInstance()
    229                                                                 .get("copyintro", false))
    230                                                 || (s.equals("outro.bik") && !SettingsManager.getInstance()
    231                                                                 .get("copyoutro", false));
     229                                                || (s.equals("intro.bik") && !SettingsManager
     230                                                                .getInstance().get("copyintro", false))
     231                                                || (s.equals("outro.bik") && !SettingsManager
     232                                                                .getInstance().get("copyoutro", false));
    232233                        }
    233234                })) {
     
    313314                }
    314315
    315                 TreeMap<String, Vector<File>> levels = new TreeMap<String, Vector<File>>();
     316                TreeMap<String, Vector<File>> levels = new TreeMap<String, Vector<File>>(new NaturalOrderComparator());
    316317                for (File path : foldersOni) {
    317318                        for (File levelF : path.listFiles()) {
     
    407408                        File bslWin = CaseInsensitiveFile.getCaseInsensitiveFile(bsl,
    408409                                        "win_only");
    409                         if (PlatformInformation.getPlatform() == Platform.MACOS && bslMac.exists()) {
     410                        if (PlatformInformation.getPlatform() == Platform.MACOS
     411                                        && bslMac.exists()) {
    410412                                for (File f : bslMac.listFiles(dirFileFilter)) {
    411413                                        File targetBSL = new File(targetBaseFolder, f.getName());
     
    477479                tmpFolder.mkdir();
    478480
    479                 HashMap<String, Vector<File>> patches = new HashMap<String, Vector<File>>();
     481                TreeMap<String, Vector<File>> patches = new TreeMap<String, Vector<File>>(new NaturalOrderComparator());
    480482                for (File patchFolder : patchFolders) {
    481483                        for (File levelFolder : patchFolder.listFiles(dirFileFilter)) {
     
    509511                                        if (srcFolder.getPath().toLowerCase().contains("vanilla")) {
    510512                                                // Extract from .dat
    511                                                 ApplicationInvocationResult res = OniSplit.export(levelFolder,
    512                                                                 srcFolder, exportPatterns);
     513                                                ApplicationInvocationResult res = OniSplit.export(
     514                                                                levelFolder, srcFolder, exportPatterns);
    513515                                                logAppOutput(res, log);
    514516                                        }
     
    557559                        Vector<File> files = new Vector<File>();
    558560                        files.add(new File(levelFolder, "*.oni"));
    559                         ApplicationInvocationResult res = OniSplit.convertOniToXML(levelFolderXML,
    560                                         files);
     561                        ApplicationInvocationResult res = OniSplit.convertOniToXML(
     562                                        levelFolderXML, files);
    561563                        logAppOutput(res, log);
    562564
     
    599601                long startMS = new Date().getTime();
    600602
    601                 int totalSteps = 0;
     603                int totalSteps = oniLevelFolders.size() + 1;
    602604                int stepsDone = 0;
    603 
    604                 for (@SuppressWarnings("unused")
    605                 String s : oniLevelFolders.keySet())
    606                         totalSteps++;
    607                 totalSteps++;
    608605
    609606                log.println();
     
    614611                                        "Installing level " + l);
    615612
    616                         ApplicationInvocationResult res = OniSplit.packLevel(oniLevelFolders.get(l),
    617                                         new File(Paths.getEditionGDF(), sanitizeLevelName(l)
    618                                                         + ".dat"));
     613                        ApplicationInvocationResult res = OniSplit.packLevel(
     614                                        oniLevelFolders.get(l), new File(Paths.getEditionGDF(),
     615                                                        sanitizeLevelName(l) + ".dat"));
    619616                        logAppOutput(res, log);
    620617
     
    690687                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    691688
    692                 for (@SuppressWarnings("unused")
    693                 File f : Paths.getVanillaGDF().listFiles(new FilenameFilter() {
     689                TreeSet<File> levelFiles = new TreeSet<File>(
     690                                new NaturalOrderComparator());
     691
     692                for (File f : Paths.getVanillaGDF().listFiles(new FilenameFilter() {
    694693                        @Override
    695694                        public boolean accept(File dir, String name) {
     
    698697                })) {
    699698                        totalSteps++;
     699                        levelFiles.add(f);
    700700                }
    701701                totalSteps = totalSteps * 2 + 2;
     
    722722                        log.println("Exporting levels and moving files to level0");
    723723
    724                         for (File f : Paths.getVanillaGDF().listFiles(new FilenameFilter() {
    725                                 @Override
    726                                 public boolean accept(File dir, String name) {
    727                                         return name.endsWith(".dat");
    728                                 }
    729                         })) {
     724                        for (File f : levelFiles) {
    730725                                String levelName = f.getName().substring(0,
    731726                                                f.getName().indexOf('.'));
     
    742737
    743738                                // Export Vanilla-Level-Dat -> Temp/Level
    744                                 ApplicationInvocationResult res = OniSplit.export(tempLevelFolder, f);
     739                                ApplicationInvocationResult res = OniSplit.export(
     740                                                tempLevelFolder, f);
    745741                                logAppOutput(res, log);
    746742
     
    753749
    754750                        log.println("Reimporting levels");
    755 
     751                        TreeSet<File> initFolders = new TreeSet<File>(new NaturalOrderComparator());
    756752                        for (File f : init.listFiles()) {
     753                                initFolders.add(f);
     754                        }
     755
     756                        for (File f : initFolders) {
    757757                                String levelName = f.getName();
    758758
     
    923923        }
    924924
    925         private static void logAppOutput(ApplicationInvocationResult result, PrintWriter log) {
     925        private static void logAppOutput(ApplicationInvocationResult result,
     926                        PrintWriter log) {
    926927                if (result != null) {
    927928                        log.println("\t\t\tCalled:");
Note: See TracChangeset for help on using the changeset viewer.