NScumm.Scumm.ScummEngine.GetScaleFromSlot C# (CSharp) Метод

GetScaleFromSlot() публичный Метод

public GetScaleFromSlot ( int slot, int x, int y ) : int
slot int
x int
y int
Результат int
        public int GetScaleFromSlot(int slot, int x, int y)
        {
            int scale;
            int scaleX;
            int scaleY = 0;
            var s = _scaleSlots[slot - 1];

            if (s.Y1 == s.Y2 && s.X1 == s.X2)
                throw new NotSupportedException(string.Format("Invalid scale slot {0}", slot));

            if (s.Y1 != s.Y2)
            {
                if (y < 0)
                    y = 0;

                scaleY = (s.Scale2 - s.Scale1) * (y - s.Y1) / (s.Y2 - s.Y1) + s.Scale1;
            }
            if (s.X1 == s.X2)
            {
                scale = scaleY;
            }
            else
            {
                scaleX = (s.Scale2 - s.Scale1) * (x - s.X1) / (s.X2 - s.X1) + s.Scale1;

                if (s.Y1 == s.Y2)
                {
                    scale = scaleX;
                }
                else
                {
                    scale = (scaleX + scaleY) / 2;
                }
            }

            // Clip the scale to range 1-255
            if (scale < 1)
                scale = 1;
            else if (scale > 255)
                scale = 255;

            return scale;
        }
ScummEngine