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;
}