ScreenSquare(fromX, fromY, &start);\r
ScreenSquare(toX, toY, &finish);\r
\r
- /* All pieces except knights move in straight line */\r
- if (piece != WhiteKnight && piece != BlackKnight) {\r
+ /* All moves except knight jumps move in straight line */\r
+ if (!(abs(fromX-toX) == 1 && abs(fromY-toY) == 2 || abs(fromX-toX) == 2 && abs(fromY-toY) == 1)) {\r
mid.x = start.x + (finish.x - start.x) / 2;\r
mid.y = start.y + (finish.y - start.y) / 2;\r
} else {\r
- /* Knight: make diagonal movement then straight */\r
+ /* Knight: make straight movement then diagonal */\r
if (abs(toY - fromY) < abs(toX - fromX)) {\r
mid.x = start.x + (finish.x - start.x) / 2;\r
- mid.y = finish.y;\r
+ mid.y = start.y;\r
} else {\r
- mid.x = finish.x;\r
+ mid.x = start.x;\r
mid.y = start.y + (finish.y - start.y) / 2;\r
}\r
}\r