// repetition checking
int index = (unsigned int)f.newKey >> 24 ^ stm << 2; // uses high byte of low (= hands-free) key
- while(repKey[index] && (repKey[index] ^ (int)f.newKey) & 0x1FFFFF) index += 2;
+ while(repKey[index] && (repKey[index] ^ (int)f.newKey) & 0x1FFFFF) index++;
int oldRepKey = repKey[index], oldRepDep = repDep[index];
if(oldRepKey && ff->mutation != -2) { // key present in table: (quasi-)repetition
int gain = (f.newEval << 21) - (repKey[index] & 0xFFE00000);
if(moveNr >= 19 && !perpLoses) PST[WHITE+1] = knightPST, PST[BLACK+1] = knightPST + 11;
// store in game history hash table
index = (unsigned int)undoInfo.newKey >> 24 ^ stm << 2; // uses high byte of low (= hands-free) key
- while(repKey[index] && (repKey[index] ^ (int)undoInfo.newKey) & 0x1FFFFF) index += 2; // find empty slot
+ while(repKey[index] && (repKey[index] ^ (int)undoInfo.newKey) & 0x1FFFFF) index++; // find empty slot
repKey[index] = (int)undoInfo.newKey & 0x1FFFFF | undoInfo.newEval << 21; // remember position
repDep[index] = moveNr;
stm ^= COLOR; moveNr++;