Exemple #1
0
 public InterleaveMap()
 {
     _highMap   = new HighMap[256];
     _allMiddle = new MiddleMap[256 * 16];
     for (int i = 0; i < _highMap.Length; i++)
     {
         var m = _highMap[i] = new HighMap();
         Array.Copy(m.Map, 0, _allMiddle, i * 16, 16);
     }
 }
Exemple #2
0
            public bool Equals(HighMap other)
            {
                for (int i = 0; i < Map.Length; i++)
                {
                    if (other.Map[i] != Map[i])
                    {
                        return(false);
                    }
                }

                return(true);
            }
Exemple #3
0
        private MiddleMap SetSlot(char wch, int diff)
        {
            if (diff > _maxOffset)
            {
                _maxOffset = diff;
            }

            if (diff < _minOffset)
            {
                _minOffset = diff;
            }
            HighMap   high = _highMap[wch >> 8];
            MiddleMap mid  = high.Map[(wch >> 4) & 0xf];

            mid.Map[wch & 0xf] = diff;
            return(mid);
        }