for (cl.fking = BOARD_LEFT+0; cl.fking < BOARD_RGHT; cl.fking++)\r
for (cl.rking = 0; cl.rking < BOARD_HEIGHT; cl.rking++) {\r
if (board[cl.rking][cl.fking] == king) {\r
+ if(gameInfo.variant == VariantXiangqi) {\r
+ /* [HGM] In Xiangqi opposing Kings means check as well */\r
+ int i, dir;\r
+ dir = (king >= BlackPawn) ? -1 : 1;\r
+ for( i=cl.rking+dir; i>=0 && i<BOARD_HEIGHT &&\r
+ board[i][cl.fking] == EmptySquare; i+=dir );\r
+ if(i>=0 && i<BOARD_HEIGHT &&\r
+ board[i][cl.fking] == (dir>0 ? BlackWazir : WhiteWazir) )\r
+ cl.check++;\r
+ }\r
+\r
GenPseudoLegal(board, flags ^ F_WHITE_ON_MOVE, -1,\r
CheckTestCallback, (VOIDSTAR) &cl);\r
goto undo_move; /* 2-level break */\r