$NetBSD: patch-ai,v 1.1 2004/02/14 04:31:56 kristerw Exp $ --- exmove.cpp.orig Sat Feb 14 04:16:56 2004 +++ exmove.cpp Sat Feb 14 04:19:15 2004 @@ -52,8 +52,8 @@ { return 0; } p->sq[5] = p->sq[7]; p->sq[7] = empty; - or(p->hcode, hval[WROOK][5]); - or(p->hcode, hval[WROOK][7]); + hash_or(p->hcode, hval[WROOK][5]); + hash_or(p->hcode, hval[WROOK][7]); p->has_castled[1] = 1; /* update piece list */ for(pi=1;pi<=p->plist[p->wtm][ROOK][0];pi++) @@ -69,8 +69,8 @@ { return 0; } p->sq[3] = p->sq[0]; p->sq[0] = empty; - or(p->hcode, hval[WROOK][3]); - or(p->hcode, hval[WROOK][0]); + hash_or(p->hcode, hval[WROOK][3]); + hash_or(p->hcode, hval[WROOK][0]); p->has_castled[1] = 1; /* update piece list */ for(pi=1;pi<=p->plist[p->wtm][ROOK][0];pi++) @@ -86,8 +86,8 @@ { return 0; } p->sq[61] = p->sq[63]; p->sq[63] = empty; - or(p->hcode, hval[BROOK][61]); - or(p->hcode, hval[BROOK][63]); + hash_or(p->hcode, hval[BROOK][61]); + hash_or(p->hcode, hval[BROOK][63]); p->has_castled[0] = 1; /* update piece list */ for(pi=1;pi<=p->plist[p->wtm][ROOK][0];pi++) @@ -103,8 +103,8 @@ { return 0; } p->sq[59] = p->sq[56]; p->sq[56] = empty; - or(p->hcode, hval[BROOK][59]); - or(p->hcode, hval[BROOK][56]); + hash_or(p->hcode, hval[BROOK][59]); + hash_or(p->hcode, hval[BROOK][56]); p->has_castled[0] = 1; /* update piece list */ for(pi=1;pi<=p->plist[p->wtm][ROOK][0];pi++) @@ -125,7 +125,7 @@ if(p->sq[emove.b.to].type) { // Remove hashcode for the target square - or(p->hcode, hval[ID(p->sq[emove.b.to])][emove.b.to]); + hash_or(p->hcode, hval[ID(p->sq[emove.b.to])][emove.b.to]); // Remove piece from piece list for(pi=1;pi<=p->plist[p->wtm^1][p->sq[emove.b.to].type][0];pi++) if(p->plist[p->wtm^1][p->sq[emove.b.to].type][pi] == emove.b.to) { @@ -143,8 +143,8 @@ // Move the new piece to the target square p->sq[emove.b.to] = p->sq[emove.b.from]; // Update the hash code to reflect the move - or(p->hcode, hval[ID(p->sq[emove.b.from])][emove.b.from]); - or(p->hcode, hval[ID(p->sq[emove.b.from])][emove.b.to]); + hash_or(p->hcode, hval[ID(p->sq[emove.b.from])][emove.b.from]); + hash_or(p->hcode, hval[ID(p->sq[emove.b.from])][emove.b.to]); // Original square is now empty p->sq[emove.b.from] = empty; @@ -152,7 +152,7 @@ if(emove.b.type&EP) { if(p->wtm) { p->sq[emove.b.to-8] = empty; - or(p->hcode, hval[BPAWN][emove.b.to-8]); + hash_or(p->hcode, hval[BPAWN][emove.b.to-8]); // Update piece lists for(pi=1;pi<=p->plist[p->wtm^1][PAWN][0];pi++) if(p->plist[BLACK][PAWN][pi] == emove.b.to-8) { @@ -163,7 +163,7 @@ } } else { p->sq[emove.b.to+8] = empty; - or(p->hcode, hval[WPAWN][emove.b.to+8]); + hash_or(p->hcode, hval[WPAWN][emove.b.to+8]); // Update piece lists for(pi=1;pi<=p->plist[p->wtm^1][PAWN][0];pi++) if(p->plist[WHITE][PAWN][pi] == emove.b.to+8) { @@ -189,7 +189,7 @@ // if the move is a promotion, promote it if(emove.b.type&PROMOTE) { // Remove the pawn from the hash code - or(p->hcode, hval[ID(p->sq[emove.b.to])][emove.b.to]); + hash_or(p->hcode, hval[ID(p->sq[emove.b.to])][emove.b.to]); // Change the piece type to the promoted piece p->sq[emove.b.to].type = emove.b.promote; // Add the new piece to the piece lists @@ -206,7 +206,7 @@ // adjust material score p->material += value[emove.b.promote] - value[PAWN]; // add piece to hash code - or(p->hcode, hval[ID(p->sq[emove.b.to])][emove.b.to]); + hash_or(p->hcode, hval[ID(p->sq[emove.b.to])][emove.b.to]); // adjust total piece count p->pieces[p->wtm]++; } @@ -214,11 +214,11 @@ // update position characteristics p->wtm = p->wtm^1; p->material = -p->material; - or(p->hcode, btm); or(p->hcode, wtm); + hash_or(p->hcode, btm); hash_or(p->hcode, wtm); // undo hash code for en-passant and castling status - or(p->hcode, ep_code[p->ep]); - or(p->hcode, castle_code[p->castle]); + hash_or(p->hcode, ep_code[p->ep]); + hash_or(p->hcode, castle_code[p->castle]); // if move is a pawn push 2 spaces, set en passant flag if((emove.b.type&PAWN_PUSH2) && @@ -235,8 +235,8 @@ p->last = emove; // update hash code for en-passant and castling status - or(p->hcode, ep_code[p->ep]); - or(p->hcode, castle_code[p->castle]); + hash_or(p->hcode, ep_code[p->ep]); + hash_or(p->hcode, castle_code[p->castle]); // check whether other side is placed in check int ptype = p->sq[emove.b.to].type;