X-Git-Url: http://winboard.nl/cgi-bin?p=capablanca.git;a=blobdiff_plain;f=lasker-2.2.3%2Fsrc%2Fgameproc.c;h=c5f5d35b3c9859df81dc141ccffee3bbbc01f892;hp=52f42e2d7ebde1da964dfbc5ae137c862da452e7;hb=15d6762279fb7e4c1fecc81699507d9011287779;hpb=ec7b6bb32ba9632cda17b308808ce9ba1e27c090 diff --git a/lasker-2.2.3/src/gameproc.c b/lasker-2.2.3/src/gameproc.c index 52f42e2..c5f5d35 100644 --- a/lasker-2.2.3/src/gameproc.c +++ b/lasker-2.2.3/src/gameproc.c @@ -434,18 +434,6 @@ static int was_promoted(struct game *g, int f, int r) return 0; } -static int is_virgin(struct game *g, int f, int r) -{ - int i; - - for (i = g->numHalfMoves-2; i > 0; i -= 2) { - if (g->moveList[i].toFile == f && g->moveList[i].toRank == r) { - return 0; - } - } - return 1; -} - int pIsPlaying (int p) { struct player *pp = &player_globals.parray[p]; @@ -537,7 +525,7 @@ void process_move(int p, char *command) { struct player *pp = &player_globals.parray[p]; struct game *gg; - int g, result, len, i; + int g, result, len, i, f; struct move_t move; unsigned now = 0; @@ -573,9 +561,9 @@ void process_move(int p, char *command) } pp->promote = NOPIECE; // [HGM] this seemed to be uninitialized, which caused spurious promotion in Shogi if ((len = strlen(command)) > 1) { - if (command[len - 2] == '=' || gg->gameState.drops == 2 && command[len - 2] == '/') { // [HGM] encode gating as promotion + if (command[len - 2] == '=' || gg->game_state.drops == 2 && command[len - 2] == '/') { // [HGM] encode gating as promotion printf("promo '%s'\n", command); - switch (tolower(command[strlen(command) - 1])) { + switch (tolower(command[len - 1])) { case 'n': pp->promote = KNIGHT; break; @@ -620,6 +608,12 @@ printf("promo '%s'\n", command); case 'g': pp->promote = MASTODON; break; + case 'l': + pp->promote = LIEUTENANT; + break; + case 'k': + pp->promote = KING; + break; // Shogi promotions case 'h': pp->promote = DRAGONHORSE;