- killers[2].move = killers[3].move = MOVE_NONE;
- killers[4].move = killers[5].move = MOVE_NONE;
-
- // In SMP case countermoves[] and followupmoves[] could have duplicated entries
- // in rare cases (less than 1 out of a million). This is harmless.
-
- // Be sure countermoves and followupmoves are different from killers
- for (int i = 0; i < 2; ++i)
- if ( countermoves[i] != killers[0]
- && countermoves[i] != killers[1])
- *endMoves++ = countermoves[i];
-
- for (int i = 0; i < 2; ++i)
- if ( followupmoves[i] != killers[0]
- && followupmoves[i] != killers[1]
- && followupmoves[i] != killers[2]
- && followupmoves[i] != killers[3])
- *endMoves++ = followupmoves[i];
+ killers[2] = countermove;
+ cur = killers;
+ endMoves = cur + 2 + (countermove != killers[0] && countermove != killers[1]);