public (RolandMemorySection closestSection, int distance) FindClosestToAddress(int address)
        {
            var closestSection = this;
            var distance       = Math.Abs(address - closestSection.StartAddress);

            foreach (var subStruct in Structs)
            {
                var result = subStruct.FindClosestToAddress(address);

                if (result.distance <= distance)
                {
                    closestSection = result.closestSection;
                    distance       = result.distance;
                }
            }

            foreach (var value in Values)
            {
                var result = value.FindClosestToAddress(address);

                if (result.distance <= distance)
                {
                    closestSection = result.closestSection;
                    distance       = result.distance;
                }
            }

            return(closestSection, distance);
        }
Exemplo n.º 2
0
 public RolandStruct(RolandMemorySection parent, XElement node)
 {
     Parent     = parent;
     SourceNode = node;
 }