int cEval::ScoreKingFile(POS * p, int sd, U64 bbFile) { int shelter = ScoreFileShelter(bbFile & p->Pawns(sd), sd); int storm = ScoreFileStorm(bbFile & p->Pawns(Opp(sd)), sd); if (bbFile & bbCentralFile) return (shelter / 2) + storm; else return shelter + storm; }
void cEval::ScoreKingFile(POS * p, int sd, U64 bbFile, int *shield, int *storm) { int shelter = ScoreFileShelter(bbFile & p->Pawns(sd), sd); if (bbFile & bbCentralFile) shelter /= 2; *shield += shelter; *storm += ScoreFileStorm(bbFile & p->Pawns(Opp(sd)), sd); }