diff --git a/ArmaFiles/src/raven/pbo/PBO.java b/ArmaFiles/src/raven/pbo/PBO.java index e895fd2..c3bddb5 100644 --- a/ArmaFiles/src/raven/pbo/PBO.java +++ b/ArmaFiles/src/raven/pbo/PBO.java @@ -183,4 +183,27 @@ public PBOEntry getEntry(String name) { return null; } + /** + * Gets the prefix for this PBO or null if there is none + */ + public String getPrefix() { + if (headerExtension == null || headerExtension.length < 2) { + return null; + } + + for (int i = 0; i < headerExtension.length - 1; i++) { + String current = headerExtension[i]; + + if (current == null) { + return null; + } + + if (current.toLowerCase().equals("prefix")) { + return headerExtension[i + 1]; + } + } + + return null; + } + } diff --git a/ArmaFiles/src/raven/pbo/PBOInputStream.java b/ArmaFiles/src/raven/pbo/PBOInputStream.java index 56025cd..6f37b4c 100644 --- a/ArmaFiles/src/raven/pbo/PBOInputStream.java +++ b/ArmaFiles/src/raven/pbo/PBOInputStream.java @@ -57,9 +57,7 @@ public PBOInputStream(PBOEntry entry) throws IOException { * @throws IOException */ protected void pointStream() throws IOException { - for (int i = 0; i < entry.getStartOffset(); i++) { - internalStream.read(); - } + internalStream.getChannel().position(entry.getStartOffset()); } @Override