Rev 1 | Rev 44 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 1 | Rev 40 | ||
|---|---|---|---|
| Line 1681... | Line 1681... | ||
| 1681 | wcscat_s (move->fen_string, WCHAR_SIZEOF (move->fen_string), L"q"); // black can castle queenside |
1681 | wcscat_s (move->fen_string, WCHAR_SIZEOF (move->fen_string), L"q"); // black can castle queenside |
| 1682 | } |
1682 | } |
| 1683 | 1683 | ||
| 1684 | /////////////////////////////////////////////////////////////////////////////////////////////////// |
1684 | /////////////////////////////////////////////////////////////////////////////////////////////////// |
| 1685 | // fourth part of the FEN notation is the optional position for a pawn that can be taken en passant |
1685 | // fourth part of the FEN notation is the optional position for a pawn that can be taken en passant |
| - | 1686 | ||
| - | 1687 | wcscat_s (move->fen_string, WCHAR_SIZEOF (move->fen_string), L" "); // spacer |
|
| 1686 | 1688 | ||
| 1687 | if ((move->part == PART_PAWN) // last move was a pawn |
1689 | if ((move->part == PART_PAWN) // last move was a pawn |
| 1688 | && (move->target[1] == move->source[1]) // pawn moved in column |
1690 | && (move->target[1] == move->source[1]) // pawn moved in column |
| 1689 | && (abs (move->target[0] - move->source[0]) == 2)) // pawn rushed |
1691 | && (abs (move->target[0] - move->source[0]) == 2)) // pawn rushed |
| 1690 | { |
1692 | { |
| 1691 | wcscat_s (move->fen_string, WCHAR_SIZEOF (move->fen_string), L" "); // spacer |
- | |
| 1692 | - | ||
| 1693 | // column |
1693 | // column |
| 1694 | if (move->source[1] == 0) wcscat_s (move->fen_string, WCHAR_SIZEOF (move->fen_string), L"a"); |
1694 | if (move->source[1] == 0) wcscat_s (move->fen_string, WCHAR_SIZEOF (move->fen_string), L"a"); |
| 1695 | else if (move->source[1] == 1) wcscat_s (move->fen_string, WCHAR_SIZEOF (move->fen_string), L"b"); |
1695 | else if (move->source[1] == 1) wcscat_s (move->fen_string, WCHAR_SIZEOF (move->fen_string), L"b"); |
| 1696 | else if (move->source[1] == 2) wcscat_s (move->fen_string, WCHAR_SIZEOF (move->fen_string), L"c"); |
1696 | else if (move->source[1] == 2) wcscat_s (move->fen_string, WCHAR_SIZEOF (move->fen_string), L"c"); |
| 1697 | else if (move->source[1] == 3) wcscat_s (move->fen_string, WCHAR_SIZEOF (move->fen_string), L"d"); |
1697 | else if (move->source[1] == 3) wcscat_s (move->fen_string, WCHAR_SIZEOF (move->fen_string), L"d"); |
| Line 1703... | Line 1703... | ||
| 1703 | 1703 | ||
| 1704 | // line (it's the line the pawn would be on if it had made a "normal" move) |
1704 | // line (it's the line the pawn would be on if it had made a "normal" move) |
| 1705 | length = wcslen (move->fen_string); |
1705 | length = wcslen (move->fen_string); |
| 1706 | swprintf_s (&move->fen_string[length], WCHAR_SIZEOF (move->fen_string) - length, L"%d", 1 + (move->target[0] + move->source[0]) / 2); |
1706 | swprintf_s (&move->fen_string[length], WCHAR_SIZEOF (move->fen_string) - length, L"%d", 1 + (move->target[0] + move->source[0]) / 2); |
| 1707 | } |
1707 | } |
| - | 1708 | else |
|
| - | 1709 | wcscat_s (move->fen_string, WCHAR_SIZEOF (move->fen_string), L"-"); // last move was not a pawn rush |
|
| 1708 | 1710 | ||
| 1709 | return; // finished |
1711 | return; // finished |
| 1710 | } |
1712 | } |
| 1711 | 1713 | ||
| 1712 | 1714 | ||