{
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;
}
pp->promote = NOPIECE; // [HGM] this seemed to be uninitialized, which caused spurious promotion in Shogi
if ((len = strlen(command)) > 1) {
- if (command[len - 2] == '=') {
+ 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;
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;