- splitPoint->parent = threads[master].splitPoint;
- splitPoint->stopRequest = false;
- splitPoint->ply = ply;
- splitPoint->depth = depth;
- splitPoint->mateThreat = mateThreat;
- splitPoint->alpha = *alpha;
- splitPoint->beta = beta;
- splitPoint->pvNode = pvNode;
- splitPoint->bestValue = *bestValue;
- splitPoint->mp = mp;
- splitPoint->moveCount = *moveCount;
- splitPoint->pos = &p;
- splitPoint->parentSstack = ss;
- for (int i = 0; i < ActiveThreads; i++)
- splitPoint->slaves[i] = 0;
-
- threads[master].splitPoint = splitPoint;
- threads[master].activeSplitPoints++;
+ splitPoint.parent = masterThread.splitPoint;
+ splitPoint.stopRequest = false;
+ splitPoint.ply = ply;
+ splitPoint.depth = depth;
+ splitPoint.mateThreat = mateThreat;
+ splitPoint.alpha = *alpha;
+ splitPoint.beta = beta;
+ splitPoint.pvNode = pvNode;
+ splitPoint.bestValue = *bestValue;
+ splitPoint.mp = mp;
+ splitPoint.moveCount = *moveCount;
+ splitPoint.pos = &p;
+ splitPoint.parentSstack = ss;
+ for (i = 0; i < ActiveThreads; i++)
+ splitPoint.slaves[i] = 0;
+
+ masterThread.splitPoint = &splitPoint;