// FROM HOLOGRAPH using System; namespace Chop.Game.Rooms { public static class Rotation { public static byte Calculate(int pX, int pY, int pLookX, int pLookY) { byte Rotation = 0; if (pX > pLookX && pY > pLookY) Rotation = 7; else if (pX < pLookX && pY < pLookY) Rotation = 3; else if (pX > pLookX && pY < pLookY) Rotation = 5; else if (pX < pLookX && pY > pLookY) Rotation = 1; else if (pX > pLookX) Rotation = 6; else if (pX < pLookX) Rotation = 2; else if (pY < pLookY) Rotation = 4; else if (pY > pLookY) Rotation = 0; return Rotation; } public static byte GetHeadRotation(byte pCurrentRotation, int pX, int pY, int pLookX, int pLookY) { if (pCurrentRotation == 2) { if (pX <= pLookX && pY < pLookY) return 3; else if (pX <= pLookX && pY > pLookY) return 5; else if (pX < pLookX && pY == pLookY) return 2; } else if (pCurrentRotation == 4) { if (pX > pLookX && pY <= pLookY) return 5; else if (pX < pLookX && pY <= pLookY) return 3; else if (pX == pLookX && pY < pLookY) return 4; } else if (pCurrentRotation == 6) { if (pX >= pLookX && pY > pLookY) return 7; else if (pX >= pLookX && pY < pLookY) return 5; else if (pX > pLookX && pY == pLookY) return 6; } else if (pCurrentRotation == 0) { if (pX > pLookX && pY >= pLookY) return 9; if (pX < pLookX && pY >= pLookY) return 1; if (pX == pLookX && pY > pLookY) return 0; } return 10; } } }