diff --git a/ArcFormats/DxLib/HuffmanDecoder.cs b/ArcFormats/DxLib/HuffmanDecoder.cs index 11f61d86..4ab50dcd 100644 --- a/ArcFormats/DxLib/HuffmanDecoder.cs +++ b/ArcFormats/DxLib/HuffmanDecoder.cs @@ -45,7 +45,7 @@ namespace GameRes.Formats.DxLib public int ParentNode; // index of parent node. public int[] ChildNode; //two children nodes, -1 if not existent. - DXA8HuffmanNode() + internal DXA8HuffmanNode() { bitArray = new byte[32]; ChildNode = new int[2]; @@ -96,6 +96,7 @@ namespace GameRes.Formats.DxLib for (int i=0; i (TArray value, int index) where TArray : IList + public static uint ToUInt32(TArray value, int index) where TArray : IList { - return (uint)(value[index] << 24 | value[index+1] << 16 | value[index+2] << 8 | value[index+3]); + return (uint)(value[index] << 24 | value[index + 1] << 16 | value[index + 2] << 8 | value[index + 3]); } - public static int ToInt32 (TArray value, int index) where TArray : IList + public static int ToInt32(TArray value, int index) where TArray : IList { - return (int)ToUInt32 (value, index); + return (int)ToUInt32(value, index); + } + public static ulong ToUInt64(TArray value, int index) where TArray : IList + { + return (ulong)(value[index]<<56|value[index+1]<<48|value[index+2]<<40|value[index+3]<<32|value[index+4] << 24 | value[index + 5] << 16 | value[index + 6] << 8 | value[index + 7]); + } + + public static long ToInt64(TArray value, int index) where TArray : IList + { + return (long)ToUInt64(value, index); } public static void Pack (ushort value, byte[] buf, int index)