From 5863c1ce712c2a20271f297de26dff4b61fb2290 Mon Sep 17 00:00:00 2001 From: Collin Smith Date: Wed, 20 Mar 2019 17:42:51 -0700 Subject: [PATCH] Fixes #9 --- .../com/riiablo/mpq/MPQFileHandleResolver.java | 4 ---- core/src/com/riiablo/mpq/MPQInputStream.java | 17 ++++++++++++----- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/core/src/com/riiablo/mpq/MPQFileHandleResolver.java b/core/src/com/riiablo/mpq/MPQFileHandleResolver.java index 688975e4..f327f83c 100644 --- a/core/src/com/riiablo/mpq/MPQFileHandleResolver.java +++ b/core/src/com/riiablo/mpq/MPQFileHandleResolver.java @@ -66,10 +66,6 @@ public class MPQFileHandleResolver implements FileHandleResolver { public FileHandle resolve(String fileName) { if (DEBUG) Gdx.app.debug(TAG, "Resolving " + fileName); if (fileName == null) return null; - if (fileName.endsWith("gem.wav")) { - return new MPQFileHandle(d2sfx, fileName); - } - for (MPQ mpq : mpqs) { if (mpq.contains(fileName)) { if (DEBUG) Gdx.app.debug(TAG, fileName + " found in " + mpq); diff --git a/core/src/com/riiablo/mpq/MPQInputStream.java b/core/src/com/riiablo/mpq/MPQInputStream.java index 661ff922..b7979f96 100644 --- a/core/src/com/riiablo/mpq/MPQInputStream.java +++ b/core/src/com/riiablo/mpq/MPQInputStream.java @@ -6,6 +6,7 @@ import com.badlogic.gdx.utils.StreamUtils; import com.riiablo.mpq.util.Decompressor; import com.riiablo.mpq.util.Decryptor; import com.riiablo.mpq.util.Exploder; +import com.riiablo.util.BufferUtils; import org.apache.commons.io.FilenameUtils; import org.apache.commons.io.IOUtils; @@ -18,11 +19,9 @@ import java.nio.ByteOrder; import java.nio.channels.FileChannel; import java.util.Arrays; -import com.riiablo.util.BufferUtils; - public class MPQInputStream extends InputStream { private static final String TAG = "MPQInputStream"; - private static final boolean DEBUG = false; + private static final boolean DEBUG = !true; private static final int[] ZERO_ARRAY = new int[] { 0 }; @@ -232,7 +231,11 @@ public class MPQInputStream extends InputStream { if (DEBUG) Gdx.app.debug(TAG, "Exploding sector..."); final int FSize = Math.min(block.FSize - finalSize, sectorSize); buffer.rewind().limit(FSize); - Exploder.pkexplode(sector, buffer); + if (CSize == sectorSize) { + buffer.put(sector); + } else { + Exploder.pkexplode(sector, buffer); + } if (DEBUG) Gdx.app.debug(TAG, "Exploded to " + buffer.position() + " bytes"); buffer.rewind(); @@ -363,7 +366,11 @@ public class MPQInputStream extends InputStream { if (DEBUG) Gdx.app.debug(TAG, "Exploding sector..."); final int FSize = Math.min(block.FSize - finalSize, sectorSize); ByteBuffer slice = BufferUtils.slice(buffer, FSize); - Exploder.pkexplode(sector, slice); + if (CSize == sectorSize) { + slice.put(sector); + } else { + Exploder.pkexplode(sector, slice); + } if (DEBUG) Gdx.app.debug(TAG, "Exploded to " + slice.limit() + " bytes"); buffer.position(buffer.position() + slice.limit()); }