mirror of
https://github.com/crskycode/GARbro.git
synced 2024-12-23 19:34:15 +08:00
Add ToUint64 for big endian numbers
This commit is contained in:
parent
071a33eb94
commit
681e82dd3f
@ -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<nodes.Length; i++)
|
||||
{
|
||||
nodes[i] = new DXA8HuffmanNode();
|
||||
nodes[i].ParentNode = -1;
|
||||
nodes[i].ChildNode[0] = -1;
|
||||
nodes[i].ChildNode[1] = -1;
|
||||
@ -338,7 +339,7 @@ namespace GameRes.Formats.DxLib
|
||||
{
|
||||
if (0 == m_bit_count)
|
||||
{
|
||||
m_bits = LittleEndian.ToUInt64 (m_input, m_src);
|
||||
m_bits = BigEndian.ToUInt64 (m_input, m_src);
|
||||
m_src += 8;
|
||||
m_bit_count = 64;
|
||||
}
|
||||
|
@ -167,14 +167,23 @@ namespace GameRes.Utility
|
||||
return (short)(value[index] << 8 | value[index+1]);
|
||||
}
|
||||
|
||||
public static uint ToUInt32<TArray> (TArray value, int index) where TArray : IList<byte>
|
||||
public static uint ToUInt32<TArray>(TArray value, int index) where TArray : IList<byte>
|
||||
{
|
||||
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> (TArray value, int index) where TArray : IList<byte>
|
||||
public static int ToInt32<TArray>(TArray value, int index) where TArray : IList<byte>
|
||||
{
|
||||
return (int)ToUInt32 (value, index);
|
||||
return (int)ToUInt32(value, index);
|
||||
}
|
||||
public static ulong ToUInt64<TArray>(TArray value, int index) where TArray : IList<byte>
|
||||
{
|
||||
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>(TArray value, int index) where TArray : IList<byte>
|
||||
{
|
||||
return (long)ToUInt64(value, index);
|
||||
}
|
||||
|
||||
public static void Pack (ushort value, byte[] buf, int index)
|
||||
|
Loading…
x
Reference in New Issue
Block a user