if(Thread.interrupted()) { done(); return false; }
    private boolean loadMechsFromZipFile(Vector vMechs, Set sKnownFiles, long lLastCheck, File fZipFile) {        boolean bNeedsUpdate = false;        ZipFile zFile;        int thisZipFileCount = 0;        try {            zFile = new ZipFile(fZipFile);        } catch (Exception ex) {            loadReport.append("  Unable to load file ")                .append(fZipFile.getName()).append(": ")                .append(ex.getMessage()).append("\n");            return false;        }        loadReport.append("  Looking in zip file ")            .append(fZipFile.getPath()).append("...\n");        for (java.util.Enumeration i = zFile.entries(); i.hasMoreElements();) {            ZipEntry zEntry = (ZipEntry) i.nextElement();            if (zEntry.isDirectory()) {                if (zEntry.getName().toLowerCase().equals("unsupported")) {                    loadReport.append("  Do not place special 'unsupported' type folders in zip files, they must\n    be uncompressed directories to work properly.  Note that you may place\n    zip files inside of 'unsupported' type folders, though.\n");                }                continue;            }            if (zEntry.getName().toLowerCase().endsWith(".txt")) {                continue;            }            if (Math.max(fZipFile.lastModified(), zEntry.getTime()) < lLastCheck                && sKnownFiles.contains(fZipFile.toString())) {                continue;            }            try {                MechFileParser mfp = new MechFileParser(zFile.getInputStream(zEntry), zEntry.getName());                Entity e = mfp.getEntity();                MechSummary ms = getSummary(e, fZipFile, zEntry.getName());                vMechs.addElement(ms);                sKnownFiles.add(zEntry.getName());                bNeedsUpdate = true;                thisZipFileCount++;                zipCount++;                Enumeration failedEquipment = e.getFailedEquipment();                if (failedEquipment.hasMoreElements()) {                    loadReport.append("    Loading from zip file")                        .append(" >> ").append(zEntry.getName()).append("\n");                    while (failedEquipment.hasMoreElements()) {                        loadReport.append("      Failed to load equipment: ")                            .append(failedEquipment.nextElement())                            .append("\n");                    }                }            } catch (Exception ex) {                loadReport.append("    Loading from zip file")                    .append(" >> ").append(zEntry.getName()).append("\n");                loadReport.append("      Unable to load file: ")                    .append(ex.getMessage()).append("\n");                hFailedFiles.put(zEntry.getName(), ex.getMessage());                continue;            }        }        try {            zFile.close();        } catch (Exception ex) {            // whatever.        }        loadReport.append("  ...loaded ").append(thisZipFileCount)            .append(" files.\n");        return bNeedsUpdate;    }