Files @ be9989c2c66e
Branch filter:

Location: ATITD-Tools/Desert-Paint-Lab/PaintColor.cs

Jason Maltzen
Reduce the amount of debug output. Fix a crash when a potential window candidate is detected on the top row of the screen (which isn't possible). Break out of screen region tests early when the frame isn't detected to reduce how long a scan takes.
using System;
namespace DesertPaintLab
{
	public class PaintColor
	{
		byte red;
		byte green;
		byte blue;

		string name;
		
		public byte Red
		{
			get
			{
				return red;	
			}
			set
			{
				red = value;	
			}
		}

		public byte Blue
		{
			get
			{
				return blue;	
			}
			set
			{
				blue = value;	
			}
		}
		
		public byte Green
		{
			get
			{
				return green;	
			}
			set
			{
				green = value;	
			}
		}
		
		public string Name
		{
			get
			{
				return name;
			}
			set
			{
				name = value;	
			}
		}
		
		public PaintColor()
		{
			name = "Undefined";
			red = 0;
			green = 0;
			blue = 0;
		}
		
		public PaintColor(string name, string hexRed, string hexGreen, string hexBlue)
		{
			this.name = name;
			red = (byte)System.Int32.Parse(hexRed,
				System.Globalization.NumberStyles.AllowHexSpecifier);
            green = (byte)System.Int32.Parse(hexGreen,
			    System.Globalization.NumberStyles.AllowHexSpecifier);
         	blue = (byte)System.Int32.Parse(hexBlue,
			    System.Globalization.NumberStyles.AllowHexSpecifier);	
		}
		
		public PaintColor(byte red, byte green, byte blue)
		{
			name = "Undefined";
			this.red = red;
			this.green = green;
			this.blue = blue;			
		}

        public PaintColor(PaintColor other)
        {
            name = other.name;
            red = other.red;
            green = other.green;
            blue = other.blue;
        }
				
		public int GetDistanceSquared(PaintColor otherColor)
		{
			return (int)(Math.Pow(this.red - otherColor.red, 2) +
				Math.Pow(this.green - otherColor.green, 2) +
				Math.Pow(this.blue - otherColor.blue, 2));
		}
		
		public void Clear()
		{
			red = 0;
			green = 0;
			blue = 0;
		}

        public void Set(PaintColor other)
        {
            this.red = other.red;
            this.green = other.green;
            this.blue = other.blue;
            this.name = other.name;
        }
		
		public override string ToString()
		{
			return "[" + name + ", " + red + ", " + green + ", " + blue + "]";
		}
		
	}
}