src/chess/pawn.c

changeset 23
824c9522ce66
parent 19
6a26114297a1
child 47
d726e4b46c33
     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) {

mercurial