X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=fairymax.c;h=c166ee17754fc2c4a7991d0e1d39c6e2248880ce;hb=39368b47d7825d53d1341be916fcc74a6dbe7a2d;hp=15e4f15b915165ae024481a9405e5375c480097b;hpb=fdf66eac581c8557076faed62f45ef714ded2edd;p=fairymax.git diff --git a/fairymax.c b/fairymax.c index 15e4f15..c166ee1 100644 --- a/fairymax.c +++ b/fairymax.c @@ -92,7 +92,7 @@ int GameNr; int Resign; int Threshold = 800; int Score; -char piecename[32], piecetype[32]; +char piecename[32], piecetype[32], blacktype[32]; char *inifile = INI_FILE; int Ticks, tlim, Setup, SetupQ; @@ -452,14 +452,15 @@ int LoadGame(char *name) for(i=0; i='a'; - piecetype[c&31]=i; piecename[i]=c&31; + blacktype[c&31]=i; piecename[i]=c&31; + if(piecetype[c&31]==0) piecetype[c&31]=i; // only first } j++; o[j]=0; /* printf("# c='%c' i=%d od[i]=%d j=%d (%3d,%8x)\n",c?c:' ',i,od[i],j,o[j-1],of[j-1]); /**/ @@ -765,7 +766,7 @@ int main(int argc, char **argv) && line[1] >= 'a' && line[1] <= 'a'+BW-1 && line[2] >= '1' && line[2] <= '0'+BH) { m = line[1]-16*line[2]+799; - switch(p = piecetype[line[0]&31]) + switch(p = (color == WHITE ? piecetype : blacktype)[line[0]&31]) { case 1: case 2: @@ -810,7 +811,7 @@ int main(int argc, char **argv) m = line[0]<'a' | line[0]>='a'+BW | line[1]<'1' | line[1]>='1'+BH | line[2]<'a' | line[2]>='a'+BW | line[3]<'1' | line[3]>='1'+BH; if(line[4] == '\n') line[4] = piecename[7]; - PromPiece = 7 - piecetype[line[4]&31]; + PromPiece = 7 - (Side == WHITE ? piecetype : blacktype)[line[4]&31]; if(PromPiece == 7) PromPiece = 0; {char *c=line; K=c[0]-16*c[1]+799;L=c[2]-16*c[3]+799; } if (m)