My current plan for this special case - keep a list of all previous moves (or last x previous moves for repetition) in a relatively high-level function, and if a pawn double-moved last round, then it passes his location in a list that is usually empty, which is then passed down all the way to the pawn move function, that checks it for "en passant opportunities"
My current plan for this special case - keep a list of all previous moves (or last x previous moves for repetition) in a relatively high-level function, and if a pawn double-moved last round, then it passes his location in a list that is usually empty, which is then passed down all the way to the pawn move function, that checks it for "en passant opportunities"