From 1bdbaf714acea8c1f890beb250d5e9bd850876c2 Mon Sep 17 00:00:00 2001 From: morkt Date: Mon, 8 Oct 2018 08:45:12 +0400 Subject: [PATCH] (HG2): recognize older version. --- ArcFormats/CatSystem/ImageHG2.cs | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/ArcFormats/CatSystem/ImageHG2.cs b/ArcFormats/CatSystem/ImageHG2.cs index e107f57c..0de27671 100644 --- a/ArcFormats/CatSystem/ImageHG2.cs +++ b/ArcFormats/CatSystem/ImageHG2.cs @@ -48,11 +48,13 @@ namespace GameRes.Formats.CatSystem { stream.Position = 8; var info = new Hg2MetaData(); - int type = stream.ReadInt32(); - if (0x25 == type) + int version = stream.ReadInt32(); + if (0x25 == version) info.HeaderSize = 0x58; - else if (0x20 == type) + else if (0x20 == version) info.HeaderSize = 0x50; + else if (0x10 == version) + info.HeaderSize = 0x30; else return null; info.Width = stream.ReadUInt32(); @@ -63,11 +65,14 @@ namespace GameRes.Formats.CatSystem info.DataUnpacked = stream.ReadInt32(); info.CtlPacked = stream.ReadInt32(); info.CtlUnpacked = stream.ReadInt32(); - stream.Seek (8, SeekOrigin.Current); - info.CanvasWidth = stream.ReadUInt32(); - info.CanvasHeight = stream.ReadUInt32(); - info.OffsetX = stream.ReadInt32(); - info.OffsetY = stream.ReadInt32(); + if (info.HeaderSize > 0x30) + { + stream.Seek (8, SeekOrigin.Current); + info.CanvasWidth = stream.ReadUInt32(); + info.CanvasHeight = stream.ReadUInt32(); + info.OffsetX = stream.ReadInt32(); + info.OffsetY = stream.ReadInt32(); + } return info; }