From 72c82ae298d24054dea1c3f5072aaa7e2e7596e4 Mon Sep 17 00:00:00 2001 From: UniquePassive Date: Fri, 24 Mar 2017 19:04:53 +0100 Subject: [PATCH] Pass in byte[] to all definition loaders, not InputStream --- .../java/net/runelite/cache/ItemDumper.java | 2 +- .../net/runelite/cache/MapImageDumper.java | 2 +- .../java/net/runelite/cache/NpcDumper.java | 2 +- .../cache/definitions/loaders/ItemLoader.java | 7 ++-- .../definitions/loaders/ModelLoader.java | 8 ++-- .../cache/definitions/loaders/NpcLoader.java | 7 ++-- .../definitions/loaders/SequenceLoader.java | 7 ++-- .../definitions/loaders/SpotAnimLoader.java | 7 ++-- .../definitions/loaders/SpriteLoader.java | 40 ++++++++++--------- .../net/runelite/cache/SequenceDumper.java | 2 +- .../net/runelite/cache/SpriteDumperTest.java | 2 +- 11 files changed, 46 insertions(+), 40 deletions(-) diff --git a/cache/src/main/java/net/runelite/cache/ItemDumper.java b/cache/src/main/java/net/runelite/cache/ItemDumper.java index 12e4f48eb5..b6c24501c5 100644 --- a/cache/src/main/java/net/runelite/cache/ItemDumper.java +++ b/cache/src/main/java/net/runelite/cache/ItemDumper.java @@ -68,7 +68,7 @@ public class ItemDumper for (net.runelite.cache.fs.File f : archive.getFiles()) { - ItemDefinition def = loader.load(f.getFileId(), new InputStream(f.getContents())); + ItemDefinition def = loader.load(f.getFileId(), f.getContents()); items.add(def); } } diff --git a/cache/src/main/java/net/runelite/cache/MapImageDumper.java b/cache/src/main/java/net/runelite/cache/MapImageDumper.java index 95bf3c0c56..09307d75e7 100644 --- a/cache/src/main/java/net/runelite/cache/MapImageDumper.java +++ b/cache/src/main/java/net/runelite/cache/MapImageDumper.java @@ -452,7 +452,7 @@ public class MapImageDumper byte[] contents = file.getContents(); SpriteLoader loader = new SpriteLoader(); - SpriteDefinition[] sprites = loader.load(a.getArchiveId(), new InputStream(contents)); + SpriteDefinition[] sprites = loader.load(a.getArchiveId(), contents); for (SpriteDefinition sprite : sprites) { diff --git a/cache/src/main/java/net/runelite/cache/NpcDumper.java b/cache/src/main/java/net/runelite/cache/NpcDumper.java index f7002f1b0d..70e5ace827 100644 --- a/cache/src/main/java/net/runelite/cache/NpcDumper.java +++ b/cache/src/main/java/net/runelite/cache/NpcDumper.java @@ -68,7 +68,7 @@ public class NpcDumper for (net.runelite.cache.fs.File f : archive.getFiles()) { - NpcDefinition npc = loader.load(f.getFileId(), new InputStream(f.getContents())); + NpcDefinition npc = loader.load(f.getFileId(), f.getContents()); npcs.add(npc); } } diff --git a/cache/src/main/java/net/runelite/cache/definitions/loaders/ItemLoader.java b/cache/src/main/java/net/runelite/cache/definitions/loaders/ItemLoader.java index e16516995a..4d22356ef7 100644 --- a/cache/src/main/java/net/runelite/cache/definitions/loaders/ItemLoader.java +++ b/cache/src/main/java/net/runelite/cache/definitions/loaders/ItemLoader.java @@ -34,19 +34,20 @@ public class ItemLoader { private static final Logger logger = LoggerFactory.getLogger(ItemLoader.class); - public ItemDefinition load(int id, InputStream stream) + public ItemDefinition load(int id, byte[] b) { ItemDefinition def = new ItemDefinition(id); + InputStream is = new InputStream(b); while (true) { - int opcode = stream.readUnsignedByte(); + int opcode = is.readUnsignedByte(); if (opcode == 0) { break; } - this.decodeValues(opcode, def, stream); + this.decodeValues(opcode, def, is); } return def; diff --git a/cache/src/main/java/net/runelite/cache/definitions/loaders/ModelLoader.java b/cache/src/main/java/net/runelite/cache/definitions/loaders/ModelLoader.java index bf412ca26c..8ff94e7575 100644 --- a/cache/src/main/java/net/runelite/cache/definitions/loaders/ModelLoader.java +++ b/cache/src/main/java/net/runelite/cache/definitions/loaders/ModelLoader.java @@ -5,18 +5,18 @@ import net.runelite.cache.io.InputStream; public class ModelLoader { - public ModelDefinition load(int modelId, byte[] var1) + public ModelDefinition load(int modelId, byte[] b) { ModelDefinition def = new ModelDefinition(); def.id = modelId; - if (var1[var1.length - 1] == -1 && var1[var1.length - 2] == -1) + if (b[b.length - 1] == -1 && b[b.length - 2] == -1) { - this.load1(def, var1); + this.load1(def, b); } else { - this.load2(def, var1); + this.load2(def, b); } def.computeNormals(); diff --git a/cache/src/main/java/net/runelite/cache/definitions/loaders/NpcLoader.java b/cache/src/main/java/net/runelite/cache/definitions/loaders/NpcLoader.java index 9981fa6ed7..a70039ed1e 100644 --- a/cache/src/main/java/net/runelite/cache/definitions/loaders/NpcLoader.java +++ b/cache/src/main/java/net/runelite/cache/definitions/loaders/NpcLoader.java @@ -33,19 +33,20 @@ public class NpcLoader { private static final Logger logger = LoggerFactory.getLogger(NpcLoader.class); - public NpcDefinition load(int id, InputStream stream) + public NpcDefinition load(int id, byte[] b) { NpcDefinition def = new NpcDefinition(id); + InputStream is = new InputStream(b); while (true) { - int opcode = stream.readUnsignedByte(); + int opcode = is.readUnsignedByte(); if (opcode == 0) { break; } - this.decodeValues(opcode, def, stream); + this.decodeValues(opcode, def, is); } return def; diff --git a/cache/src/main/java/net/runelite/cache/definitions/loaders/SequenceLoader.java b/cache/src/main/java/net/runelite/cache/definitions/loaders/SequenceLoader.java index 4213587390..987cbd4204 100644 --- a/cache/src/main/java/net/runelite/cache/definitions/loaders/SequenceLoader.java +++ b/cache/src/main/java/net/runelite/cache/definitions/loaders/SequenceLoader.java @@ -33,19 +33,20 @@ public class SequenceLoader { private static final Logger logger = LoggerFactory.getLogger(SequenceLoader.class); - public SequenceDefinition load(int id, InputStream stream) + public SequenceDefinition load(int id, byte[] b) { SequenceDefinition def = new SequenceDefinition(id); + InputStream is = new InputStream(b); while (true) { - int opcode = stream.readUnsignedByte(); + int opcode = is.readUnsignedByte(); if (opcode == 0) { break; } - this.decodeValues(opcode, def, stream); + this.decodeValues(opcode, def, is); } return def; diff --git a/cache/src/main/java/net/runelite/cache/definitions/loaders/SpotAnimLoader.java b/cache/src/main/java/net/runelite/cache/definitions/loaders/SpotAnimLoader.java index 7380014a20..20f2be2d24 100644 --- a/cache/src/main/java/net/runelite/cache/definitions/loaders/SpotAnimLoader.java +++ b/cache/src/main/java/net/runelite/cache/definitions/loaders/SpotAnimLoader.java @@ -33,20 +33,21 @@ public class SpotAnimLoader { private static final Logger logger = LoggerFactory.getLogger(SpotAnimLoader.class); - public SpotAnimDefinition load(int id, InputStream stream) + public SpotAnimDefinition load(int id, byte[] b) { SpotAnimDefinition def = new SpotAnimDefinition(); + InputStream is = new InputStream(b); def.id = id; while (true) { - int opcode = stream.readUnsignedByte(); + int opcode = is.readUnsignedByte(); if (opcode == 0) { break; } - this.decodeValues(opcode, def, stream); + this.decodeValues(opcode, def, is); } return def; diff --git a/cache/src/main/java/net/runelite/cache/definitions/loaders/SpriteLoader.java b/cache/src/main/java/net/runelite/cache/definitions/loaders/SpriteLoader.java index b7bd431d86..9e5319147d 100644 --- a/cache/src/main/java/net/runelite/cache/definitions/loaders/SpriteLoader.java +++ b/cache/src/main/java/net/runelite/cache/definitions/loaders/SpriteLoader.java @@ -33,22 +33,24 @@ public class SpriteLoader public static final int FLAG_VERTICAL = 0b01; public static final int FLAG_ALPHA = 0b10; - public SpriteDefinition[] load(int id, InputStream stream) + public SpriteDefinition[] load(int id, byte[] b) { - stream.setOffset(stream.getLength() - 2); - int spriteCount = stream.readUnsignedShort(); + InputStream is = new InputStream(b); + + is.setOffset(is.getLength() - 2); + int spriteCount = is.readUnsignedShort(); SpriteDefinition[] sprites = new SpriteDefinition[spriteCount]; // 2 for size // 5 for width, height, palette length // + 8 bytes per sprite for offset x/y, width, and height - stream.setOffset(stream.getLength() - 7 - spriteCount * 8); + is.setOffset(is.getLength() - 7 - spriteCount * 8); // max width and height - int width = stream.readUnsignedShort(); - int height = stream.readUnsignedShort(); - int paletteLength = stream.readUnsignedByte() + 1; + int width = is.readUnsignedShort(); + int height = is.readUnsignedShort(); + int paletteLength = is.readUnsignedByte() + 1; for (int i = 0; i < spriteCount; ++i) { @@ -61,31 +63,31 @@ public class SpriteLoader for (int i = 0; i < spriteCount; ++i) { - sprites[i].setOffsetX(stream.readUnsignedShort()); + sprites[i].setOffsetX(is.readUnsignedShort()); } for (int i = 0; i < spriteCount; ++i) { - sprites[i].setOffsetY(stream.readUnsignedShort()); + sprites[i].setOffsetY(is.readUnsignedShort()); } for (int i = 0; i < spriteCount; ++i) { - sprites[i].setWidth(stream.readUnsignedShort()); + sprites[i].setWidth(is.readUnsignedShort()); } for (int i = 0; i < spriteCount; ++i) { - sprites[i].setHeight(stream.readUnsignedShort()); + sprites[i].setHeight(is.readUnsignedShort()); } // same as above + 3 bytes for each palette entry, except for the first one (which is transparent) - stream.setOffset(stream.getLength() - 7 - spriteCount * 8 - (paletteLength - 1) * 3); + is.setOffset(is.getLength() - 7 - spriteCount * 8 - (paletteLength - 1) * 3); int[] palette = new int[paletteLength]; for (int i = 1; i < paletteLength; ++i) { - palette[i] = stream.read24BitInt(); + palette[i] = is.read24BitInt(); if (palette[i] == 0) { @@ -93,7 +95,7 @@ public class SpriteLoader } } - stream.setOffset(0); + is.setOffset(0); for (int i = 0; i < spriteCount; ++i) { @@ -104,14 +106,14 @@ public class SpriteLoader byte[] pixelPaletteIndicies = new byte[dimension]; byte[] pixelAlphas = new byte[dimension]; - int flags = stream.readUnsignedByte(); + int flags = is.readUnsignedByte(); if ((flags & FLAG_VERTICAL) == 0) { // read horizontally for (int j = 0; j < dimension; ++j) { - pixelPaletteIndicies[j] = stream.readByte(); + pixelPaletteIndicies[j] = is.readByte(); } } else @@ -121,7 +123,7 @@ public class SpriteLoader { for (int k = 0; k < spriteHeight; ++k) { - pixelPaletteIndicies[spriteWidth * k + j] = stream.readByte(); + pixelPaletteIndicies[spriteWidth * k + j] = is.readByte(); } } } @@ -134,7 +136,7 @@ public class SpriteLoader // read horizontally for (int j = 0; j < dimension; ++j) { - pixelAlphas[j] = stream.readByte(); + pixelAlphas[j] = is.readByte(); } } else @@ -144,7 +146,7 @@ public class SpriteLoader { for (int k = 0; k < spriteHeight; ++k) { - pixelAlphas[spriteWidth * k + j] = stream.readByte(); + pixelAlphas[spriteWidth * k + j] = is.readByte(); } } } diff --git a/cache/src/test/java/net/runelite/cache/SequenceDumper.java b/cache/src/test/java/net/runelite/cache/SequenceDumper.java index a7fe73b7b1..2d07d47647 100644 --- a/cache/src/test/java/net/runelite/cache/SequenceDumper.java +++ b/cache/src/test/java/net/runelite/cache/SequenceDumper.java @@ -69,7 +69,7 @@ public class SequenceDumper for (File file : archive.getFiles()) { SequenceLoader loader = new SequenceLoader(); - SequenceDefinition seq = loader.load(file.getFileId(), new InputStream(file.getContents())); + SequenceDefinition seq = loader.load(file.getFileId(), file.getContents()); Files.write(gson.toJson(seq), new java.io.File(outDir, file.getFileId() + ".json"), Charset.defaultCharset()); ++count; diff --git a/cache/src/test/java/net/runelite/cache/SpriteDumperTest.java b/cache/src/test/java/net/runelite/cache/SpriteDumperTest.java index 4af3973f1e..4083f25f50 100644 --- a/cache/src/test/java/net/runelite/cache/SpriteDumperTest.java +++ b/cache/src/test/java/net/runelite/cache/SpriteDumperTest.java @@ -74,7 +74,7 @@ public class SpriteDumperTest byte[] contents = file.getContents(); SpriteLoader loader = new SpriteLoader(); - SpriteDefinition[] sprites = loader.load(a.getArchiveId(), new InputStream(contents)); + SpriteDefinition[] sprites = loader.load(a.getArchiveId(), contents); for (SpriteDefinition def : sprites) {