diff -r 41bbfd4d17a3 -r 824c9522ce66 src/chess/pawn.c --- a/src/chess/pawn.c Mon Mar 31 14:08:00 2014 +0200 +++ b/src/chess/pawn.c Mon Mar 31 15:03:25 2014 +0200 @@ -30,7 +30,7 @@ #include "pawn.h" #include "rules.h" -_Bool pawn_chkrules(Board board, Move *move) { +_Bool pawn_chkrules(GameState *gamestate, Move *move) { int8_t d = ((move->piece & COLOR_MASK) == WHITE ? -1 : 1); if (move->torow == (d < 0 ? 7 : 0)) { @@ -53,8 +53,9 @@ move->fromfile == move->tofile + 1 || move->fromfile == move->tofile - 1)) { - return mdst(board,move) - || (board[move->fromrow][move->tofile] & ENPASSANT_THREAT); + return mdst(gamestate->board, move) || + (gamestate->board[move->fromrow][move->tofile] + & ENPASSANT_THREAT); } else { return 0; } @@ -69,11 +70,11 @@ } } -_Bool pawn_isblocked(Board board, Move *move) { - return mdst(board,move) && !move->capture; +_Bool pawn_isblocked(GameState *gamestate, Move *move) { + return mdst(gamestate->board, move) && !move->capture; } -int pawn_getlocation(Board board, Move *move) { +int pawn_getlocation(GameState *gamestate, Move *move) { int8_t d = ((move->piece & COLOR_MASK) == WHITE ? -1 : 1); if (move->fromfile == POS_UNSPECIFIED) { @@ -85,7 +86,7 @@ } else { /* advanced first move */ if (move->fromrow == (d < 0 ? 2 : 5) && - msrc(board,move) != move->piece) { + msrc(gamestate->board,move) != move->piece) { move->fromrow += d; if (move->fromrow > 6) {