X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fsearch.cpp;h=daf40dec7cc05a9c1b6f336bf9b3bb062d4311e2;hp=53deb0f2617d5e1749802858e135ae7231b6d319;hb=c9b24c3358a26afdec5e33e369b6192039562971;hpb=6a1707889c19bf37a0ef84fb67ffc57e6168e34d diff --git a/src/search.cpp b/src/search.cpp index 53deb0f2..daf40dec 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -300,7 +300,7 @@ namespace { if (moveIsCheck && pos.see_sign(m) >= 0) result += CheckExtension[PvNode]; - if (pos.type_of_piece_on(move_from(m)) == PAWN) + if (piece_type(pos.piece_on(move_from(m))) == PAWN) { Color c = pos.side_to_move(); if (relative_rank(c, move_to(m)) == RANK_7) @@ -316,9 +316,9 @@ namespace { } if ( captureOrPromotion - && pos.type_of_piece_on(move_to(m)) != PAWN + && piece_type(pos.piece_on(move_to(m))) != PAWN && ( pos.non_pawn_material(WHITE) + pos.non_pawn_material(BLACK) - - pos.midgame_value_of_piece_on(move_to(m)) == VALUE_ZERO) + - piece_value_midgame(pos.piece_on(move_to(m))) == VALUE_ZERO) && !move_is_special(m)) { result += PawnEndgameExtension[PvNode]; @@ -403,7 +403,7 @@ bool think(Position& pos, const SearchLimits& limits, Move searchMoves[]) { NodesSincePoll = 0; current_search_time(get_system_time()); Limits = limits; - TimeMgr.init(Limits, pos.startpos_ply_counter()); + TimeMgr.init(Limits, pos.full_moves()); // Set output steram in normal or chess960 mode cout << set960(pos.is_chess960()); @@ -916,7 +916,7 @@ namespace { assert(rdepth >= ONE_PLY); - MovePicker mp(pos, ttMove, H, Position::see_value(pos.captured_piece_type())); + MovePicker mp(pos, ttMove, H, pos.captured_piece_type()); CheckInfo ci(pos); while ((move = mp.get_next_move()) != MOVE_NONE) @@ -1412,7 +1412,7 @@ split_point_start: // At split points actual search starts from here && !pos.move_is_passed_pawn_push(move)) { futilityValue = futilityBase - + pos.endgame_value_of_piece_on(move_to(move)) + + piece_value_endgame(pos.piece_on(move_to(move))) + (move_is_ep(move) ? PawnValueEndgame : VALUE_ZERO); if (futilityValue < alpha) @@ -1530,7 +1530,7 @@ split_point_start: // At split points actual search starts from here return true; // Rule 2. Queen contact check is very dangerous - if ( type_of_piece(pc) == QUEEN + if ( piece_type(pc) == QUEEN && bit_is_set(kingAtt, to)) return true; @@ -1540,7 +1540,7 @@ split_point_start: // At split points actual search starts from here while (b) { victimSq = pop_1st_bit(&b); - futilityValue = futilityBase + pos.endgame_value_of_piece_on(victimSq); + futilityValue = futilityBase + piece_value_endgame(pos.piece_on(victimSq)); // Note that here we generate illegal "double move"! if ( futilityValue >= beta @@ -1665,8 +1665,8 @@ split_point_start: // At split points actual search starts from here // Case 2: If the threatened piece has value less than or equal to the // value of the threatening piece, don't prune moves which defend it. if ( pos.move_is_capture(threat) - && ( pos.midgame_value_of_piece_on(tfrom) >= pos.midgame_value_of_piece_on(tto) - || pos.type_of_piece_on(tfrom) == KING) + && ( piece_value_midgame(pos.piece_on(tfrom)) >= piece_value_midgame(pos.piece_on(tto)) + || piece_type(pos.piece_on(tfrom)) == KING) && pos.move_attacks_square(m, tto)) return true;