/*****************************************************************/\r
\r
#define MULTIPATH\r
-#define VERSION "4.8R"\r
+#define VERSION "4.8S"\r
\r
#include <stdio.h>\r
#include <stdlib.h>\r
}\r
#endif\r
m=E<16|(E^112)<16&&flag&1&y-E<2&E-y<2?I:m; /* bad castling */\r
- if(p<3&y==E)H=z&127; /* shift capt.sqr. H if e.p.*/\r
+ if(p<3&y==E&flag)H=z&127; /* shift capt.sqr. H if e.p.*/\r
t=b[H];\r
if(flag&1+!t) /* mode (capt/nonc) allowed?*/\r
{if(t&&(t&16)==k)break; /* capture own */\r
continue;\r
}\r
if (!strcmp(command, "edit")) {\r
- int color = WHITE, p;\r
+ int color = WHITE, p, r;\r
\r
while(fgets(line, 256, stdin)) {\r
m = line[0];\r
} else\r
if(line[1] >= 'a' && line[1] <= 'a'+BW-1\r
&& line[2] >= '1' && line[2] <= '0'+BH) {\r
- m = line[1]-16*line[2]+799;\r
+ m = line[1]-16*line[2]+799; r = m & 0x70;\r
switch(p)\r
{\r
case 1:\r
case 2:\r
if(color==WHITE)\r
- b[m]=(m&0x70)==0x60?1:33,\r
- Q+=w[1];\r
- else b[m]=(m&0x70)==0x10?18:50,\r
- Q+=w[2];\r
+ b[m]=r==0x10?161:r==0x20?97:r==0x60?1:33,\r
+ Q+=w[1]+(r==0x10?S:r==0x20?64:0);\r
+ else b[m]=r==0x60?178:r==0x50?114:r==0x10?18:50,\r
+ Q+=w[2]+(r==0x60?S:r==0x50?64:0);\r
break;\r
default:\r
b[m]=p+color+32; // assume non-virgin\r