NScumm.Sword1.Logic.WhatTarget C# (CSharp) Method

WhatTarget() private method

private WhatTarget ( int startX, int startY, int destX, int destY ) : int
startX int
startY int
destX int
destY int
return int
        private int WhatTarget(int startX, int startY, int destX, int destY)
        {
            int tar_dir;
            //setting up
            int deltaX = destX - startX;
            int deltaY = destY - startY;
            int signX = (deltaX > 0)?1:0;
            int signY = (deltaY > 0) ? 1 : 0;
            int slope;

            if ((Math.Abs(deltaY) * DIAGONALX) < (Math.Abs(deltaX) * DIAGONALY / 2))
                slope = 0;// its flat
            else if ((Math.Abs(deltaY) * DIAGONALX / 2) > (Math.Abs(deltaX) * DIAGONALY))
                slope = 2;// its vertical
            else
                slope = 1;// its diagonal

            if (slope == 0)
            { //flat
                if (signX == 1) // going right
                    tar_dir = 2;
                else
                    tar_dir = 6;
            }
            else if (slope == 2)
            { //vertical
                if (signY == 1) // going down
                    tar_dir = 4;
                else
                    tar_dir = 0;
            }
            else if (signX == 1)
            { //right diagonal
                if (signY == 1) // going down
                    tar_dir = 3;
                else
                    tar_dir = 1;
            }
            else
            { //left diagonal
                if (signY == 1) // going down
                    tar_dir = 5;
                else
                    tar_dir = 7;
            }
            return tar_dir;
        }