mirror of
https://github.com/HChaZZY/Stockfish.git
synced 2025-12-20 09:06:45 +08:00
Allow SearchStack to link an EvalInfo object
This will allow to have wider access to attack information, for instance from MovePicker. Note that 'eval' field become obsolete, it is kept just becasue when we get a position score from TT we update 'eval' even without an EvalInfo object. No functional change. Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
@@ -653,6 +653,7 @@ void SearchStack::init(int ply) {
|
||||
currentMove = threatMove = MOVE_NONE;
|
||||
reduction = Depth(0);
|
||||
eval = VALUE_NONE;
|
||||
evalInfo = NULL;
|
||||
}
|
||||
|
||||
void SearchStack::initKillers() {
|
||||
@@ -1375,14 +1376,15 @@ namespace {
|
||||
const int FutilityValueMargin = 112 * bitScanReverse32(int(depth) * int(depth) / 2);
|
||||
|
||||
// Evaluate the position statically
|
||||
if (isCheck)
|
||||
ss[ply].eval = VALUE_NONE;
|
||||
else
|
||||
if (!isCheck)
|
||||
{
|
||||
if (tte && (tte->type() & VALUE_TYPE_EVAL))
|
||||
staticValue = value_from_tt(tte->value(), ply);
|
||||
else
|
||||
{
|
||||
staticValue = evaluate(pos, ei, threadID);
|
||||
ss[ply].evalInfo = &ei;
|
||||
}
|
||||
|
||||
ss[ply].eval = staticValue;
|
||||
futilityValue = staticValue + FutilityValueMargin;
|
||||
|
||||
Reference in New Issue
Block a user