Subversion Repositories Games.Chess Giants

Rev

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