Code: Select all
score = -Search(-beta, -alpha, -incrementalEval - materialGain, depth-1);
When I think of copy/make I usually think of larger data-structures, of which you only want to change a part (so that there actually is something left to copy). Like boards, piece lists or attack maps. The larger they are, the more you usually benefit from make/unmake. Even on 8x8 boards the ratio of changed vs constant part is already quite unfavorable.
The decision copy/make vs make/unmake must be considered for every data structure separately. There is no reason at all why doing make/unmake on board and piece list should force you to do the same on the hash key or search depth.

