diff --git a/src/java/com/threerings/media/tile/bundle/BundleUtil.java b/src/java/com/threerings/media/tile/bundle/BundleUtil.java index 8a80f5eb9..00ebb0f73 100644 --- a/src/java/com/threerings/media/tile/bundle/BundleUtil.java +++ b/src/java/com/threerings/media/tile/bundle/BundleUtil.java @@ -1,9 +1,11 @@ // -// $Id: BundleUtil.java,v 1.3 2003/05/14 21:34:01 ray Exp $ +// $Id: BundleUtil.java,v 1.4 2003/07/28 04:07:30 mdb Exp $ package com.threerings.media.tile.bundle; import java.io.BufferedInputStream; +import java.io.File; +import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.ObjectInputStream; @@ -40,4 +42,23 @@ public class BundleUtil StreamUtil.close(tbin); } } + + /** + * Extracts, but does not initialize, a serialized tileset bundle + * instance from the supplied file. + */ + public static TileSetBundle extractBundle (File file) + throws IOException, ClassNotFoundException + { + // unserialize the tileset bundles array + FileInputStream fin = new FileInputStream(file); + try { + ObjectInputStream oin = new ObjectInputStream( + new BufferedInputStream(fin)); + TileSetBundle tsb = (TileSetBundle)oin.readObject(); + return tsb; + } finally { + StreamUtil.close(fin); + } + } } diff --git a/src/java/com/threerings/media/tile/bundle/tools/DumpBundle.java b/src/java/com/threerings/media/tile/bundle/tools/DumpBundle.java index 33056d498..82fcd915d 100644 --- a/src/java/com/threerings/media/tile/bundle/tools/DumpBundle.java +++ b/src/java/com/threerings/media/tile/bundle/tools/DumpBundle.java @@ -1,5 +1,5 @@ // -// $Id: DumpBundle.java,v 1.10 2003/05/13 21:33:58 ray Exp $ +// $Id: DumpBundle.java,v 1.11 2003/07/28 04:07:30 mdb Exp $ package com.threerings.media.tile.bundle.tools; @@ -24,7 +24,8 @@ public class DumpBundle boolean dumpTiles = false; if (args.length < 1) { - String usage = "Usage: DumpBundle bundle.jar [bundle.jar ...]"; + String usage = "Usage: DumpBundle [-tiles] " + + "(bundle.jar|tsbundle.dat) [...]"; System.err.println(usage); System.exit(-1); } @@ -42,9 +43,14 @@ public class DumpBundle File file = new File(args[i]); try { - ResourceBundle bundle = new ResourceBundle(file); - TileSetBundle tsb = BundleUtil.extractBundle(bundle); - tsb.init(bundle); + TileSetBundle tsb = null; + if (args[i].endsWith(".jar")) { + ResourceBundle bundle = new ResourceBundle(file); + tsb = BundleUtil.extractBundle(bundle); + tsb.init(bundle); + } else { + tsb = BundleUtil.extractBundle(file); + } Iterator tsids = tsb.enumerateTileSetIds(); while (tsids.hasNext()) {