Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ CalculateHuffmanCode()

uint[] System.IO.Compression.HuffmanTree.CalculateHuffmanCode ( )
inlineprivate

Definition at line 86 of file HuffmanTree.cs.

87 {
88 uint[] array = new uint[17];
89 byte[] codeLengthArray = _codeLengthArray;
90 foreach (int num in codeLengthArray)
91 {
92 array[num]++;
93 }
94 array[0] = 0u;
95 uint[] array2 = new uint[17];
96 uint num2 = 0u;
97 for (int j = 1; j <= 16; j++)
98 {
99 num2 = (array2[j] = num2 + array[j - 1] << 1);
100 }
101 uint[] array3 = new uint[288];
102 for (int k = 0; k < _codeLengthArray.Length; k++)
103 {
104 int num3 = _codeLengthArray[k];
105 if (num3 > 0)
106 {
107 array3[k] = BitReverse(array2[num3], num3);
108 array2[num3]++;
109 }
110 }
111 return array3;
112 }
static uint BitReverse(uint code, int length)

References System.IO.Compression.HuffmanTree._codeLengthArray, System.array, and System.IO.Compression.HuffmanTree.BitReverse().

Referenced by System.IO.Compression.HuffmanTree.CreateTable().