diff --git a/core/src/gdx/diablo/codec/DC.java b/core/src/gdx/diablo/codec/DC.java index b3e96602..476b1419 100644 --- a/core/src/gdx/diablo/codec/DC.java +++ b/core/src/gdx/diablo/codec/DC.java @@ -2,11 +2,12 @@ package gdx.diablo.codec; import com.badlogic.gdx.graphics.Pixmap; import com.badlogic.gdx.graphics.g2d.TextureRegion; +import com.badlogic.gdx.utils.Disposable; import gdx.diablo.codec.util.BBox; import gdx.diablo.graphics.PaletteIndexedBatch; -public abstract class DC { +public abstract class DC implements Disposable { public abstract int getNumDirections(); public abstract Direction getDirection(int d); @@ -170,5 +171,12 @@ public abstract class DC { BBox box; byte colormap[]; + + /** + * read-only workaround for mpq viewer + */ + public int getWidth() { + return width; + } } } diff --git a/core/src/gdx/diablo/codec/DC6.java b/core/src/gdx/diablo/codec/DC6.java index 667de912..e2c0a1b7 100644 --- a/core/src/gdx/diablo/codec/DC6.java +++ b/core/src/gdx/diablo/codec/DC6.java @@ -6,7 +6,6 @@ import com.badlogic.gdx.graphics.Pixmap; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.graphics.glutils.PixmapTextureData; -import com.badlogic.gdx.utils.Disposable; import com.badlogic.gdx.utils.GdxRuntimeException; import com.badlogic.gdx.utils.StreamUtils; @@ -23,7 +22,7 @@ import gdx.diablo.codec.util.BBox; import gdx.diablo.graphics.PaletteIndexedPixmap; import gdx.diablo.util.BufferUtils; -public class DC6 extends DC implements Disposable { +public class DC6 extends DC { private static final String TAG = "DC6"; private static final boolean DEBUG = true; private static final boolean DEBUG_DIRECTIONS = DEBUG && false; @@ -32,7 +31,7 @@ public class DC6 extends DC implements Disposable { public static final String EXT = "dc6"; - private static final int PAGE_SIZE = 256; + public static final int PAGE_SIZE = 256; Header header; Direction directions[]; diff --git a/core/src/gdx/diablo/codec/DCC.java b/core/src/gdx/diablo/codec/DCC.java index 23ffd7c3..2f9d80f1 100644 --- a/core/src/gdx/diablo/codec/DCC.java +++ b/core/src/gdx/diablo/codec/DCC.java @@ -6,7 +6,6 @@ import com.badlogic.gdx.graphics.Pixmap; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.graphics.glutils.PixmapTextureData; -import com.badlogic.gdx.utils.Disposable; import com.badlogic.gdx.utils.GdxRuntimeException; import com.badlogic.gdx.utils.StreamUtils; @@ -25,7 +24,7 @@ import gdx.diablo.codec.util.BitStream; import gdx.diablo.graphics.PaletteIndexedPixmap; import gdx.diablo.util.BufferUtils; -public class DCC extends DC implements Disposable { +public class DCC extends DC { private static final String TAG = "DCC"; private static final boolean DEBUG = !true; private static final boolean DEBUG_DIRECTIONS = DEBUG && true; diff --git a/mpqviewer/src/gdx/diablo/mpq/MPQViewer.java b/mpqviewer/src/gdx/diablo/mpq/MPQViewer.java index 22a3d233..29eae4e9 100644 --- a/mpqviewer/src/gdx/diablo/mpq/MPQViewer.java +++ b/mpqviewer/src/gdx/diablo/mpq/MPQViewer.java @@ -1078,7 +1078,7 @@ public class MPQViewer { DC pages; { - imageControls.switchTo("Animation"); + imageControls.switchTo(dc.getFrame(0, 0).getWidth() >= DC6.PAGE_SIZE ? "Pages" : "Animation"); isAnimationTab = imageControls.getTab().equals("Animation"); slDirection.setValue(0);