1.1 --- a/src/chess/pawn.c Mon Mar 31 14:08:00 2014 +0200 1.2 +++ b/src/chess/pawn.c Mon Mar 31 15:03:25 2014 +0200 1.3 @@ -30,7 +30,7 @@ 1.4 #include "pawn.h" 1.5 #include "rules.h" 1.6 1.7 -_Bool pawn_chkrules(Board board, Move *move) { 1.8 +_Bool pawn_chkrules(GameState *gamestate, Move *move) { 1.9 int8_t d = ((move->piece & COLOR_MASK) == WHITE ? -1 : 1); 1.10 1.11 if (move->torow == (d < 0 ? 7 : 0)) { 1.12 @@ -53,8 +53,9 @@ 1.13 move->fromfile == move->tofile + 1 || 1.14 move->fromfile == move->tofile - 1)) { 1.15 1.16 - return mdst(board,move) 1.17 - || (board[move->fromrow][move->tofile] & ENPASSANT_THREAT); 1.18 + return mdst(gamestate->board, move) || 1.19 + (gamestate->board[move->fromrow][move->tofile] 1.20 + & ENPASSANT_THREAT); 1.21 } else { 1.22 return 0; 1.23 } 1.24 @@ -69,11 +70,11 @@ 1.25 } 1.26 } 1.27 1.28 -_Bool pawn_isblocked(Board board, Move *move) { 1.29 - return mdst(board,move) && !move->capture; 1.30 +_Bool pawn_isblocked(GameState *gamestate, Move *move) { 1.31 + return mdst(gamestate->board, move) && !move->capture; 1.32 } 1.33 1.34 -int pawn_getlocation(Board board, Move *move) { 1.35 +int pawn_getlocation(GameState *gamestate, Move *move) { 1.36 int8_t d = ((move->piece & COLOR_MASK) == WHITE ? -1 : 1); 1.37 1.38 if (move->fromfile == POS_UNSPECIFIED) { 1.39 @@ -85,7 +86,7 @@ 1.40 } else { 1.41 /* advanced first move */ 1.42 if (move->fromrow == (d < 0 ? 2 : 5) && 1.43 - msrc(board,move) != move->piece) { 1.44 + msrc(gamestate->board,move) != move->piece) { 1.45 1.46 move->fromrow += d; 1.47 if (move->fromrow > 6) {