(K=X,L=Y&~S,Score=m,d=3))) /* time's up: go do best */\r
{x=B=X; /* start scan at prev. best */\r
h=Y&S; /* request try noncastl. 1st*/\r
- P=d>2&&l+I?D(16-k,-l,1-l,-e,-ev,2*S,2*S,d-3):I; /* search null move */\r
+ P=n>2&d>1&&l+I?D(16-k,-l,1-l,-e,-ev,2*S,2*S,d-3):I; /* search null move */\r
m=-P<l|R<5?d-2?-I:ev:-P; /*** prune if > beta unconsidered:static eval */\r
SHAMAX( if(pl[k]<=1&pl[16-k]>1)m=I-1; ) /* bare king loses */\r
N++; /* node count (for timing) */\r
re=v>>Fac(v>>15&16^k); /* Reduce eval if drawish for leading side */\r
if(z&S)V=m-margin>q?m-margin:q; /* multiPV */\r
C=d-1-(d>5&p>2&!t&!h); /* nw depth, reduce non-cpt.*/\r
- C=R<EG|P-I|d<3||t&&p-3?C:d; /* extend 1 ply if in-check */\r
+ C=R<EG|P-I|d<3||t&&w[p]>0?C:d; /* extend 1 ply if in-check */\r
do\r
s=C>2|re>V?-D(16-k,-l,-V,/*** futility, recursive eval. of reply */\r
-v,-re,F,y&255,C):re;\r
h=pl[k]-pl[17-k]-pl[18-k]; /* his pieces (incl. King) */\r
if(h<2)r=0; /* bare K easy even w.o. P */\r
j=h-n; /* defenders after sac for P*/\r
- if(j<3&&j--){ /* can sac, <= 1 piece left */\r
+ if(j<3&&j-->0){ /* can sac, <= 1 piece left */\r
i=18-k;W(!pl[++i]); /* get lowest piece */\r
e=abs(w[i--])*n; /* sac for Pawn (if any) */\r
W(h>1)h-=pl[++i],e-=pl[i]*w[i]; /* total value his remaining*/\r
if(sscanf(line+7, "Ini File=%s", filename) == 1) {\r
inifile = filename; continue;\r
}\r
- if(sscanf(line+7, "Clear Hash%c", &c) == 1) for(i=0; i<=U; i++) A->K = 0;\r
+ if(sscanf(line+7, "Clear Hash%c", &c) == 1) for(i=0; i<=U; i++) A[i].K = 0;\r
if(sscanf(line+7, "MultiVariation Margin=%d", &margin) == 1) continue;\r
if(sscanf(line+7, "Variant fairy selects=%s", selectedFairy+6) == 1) continue;\r
if(sscanf(line+7, "Cambodian Makruk rules=%d", &Cambodian) == 1) continue;\r