Seirawan gatings on castling
[capablanca.git] / lasker-2.2.3 / src / gamedb.c
index 82eef2e..becb7a0 100644 (file)
@@ -588,6 +588,7 @@ char *movesToString(int g, int pgn)
       sprintf(tmp, "%d minutes, increment: %d seconds.\n\n", game_globals.garray[g].wInitTime / 600, game_globals.garray[g].wIncrement / 10);
     }
     strcat(gameString, tmp);
+
     if(game_globals.garray[g].game_state.setup) { // [HGM] setup: print the initial position board
        char *q; struct game_state_t initial_gs; struct move_t ml[600]; int r, f;
 
@@ -607,7 +608,7 @@ char *movesToString(int g, int pgn)
         for (f = 0; f < 2; f++) {
           for (r = 0; r < initial_gs.files; r++)
              initial_gs.ep_possible[f][r] = 0;
-          for (r = PAWN; r <= QUEEN; r++)
+          for (r = PAWN; r <= PIECES-1; r++)
             initial_gs.holding[f][r-PAWN] = 0;
        }
        FEN_to_board(game_globals.garray[g].FENstartPos ,&initial_gs);
@@ -758,9 +759,15 @@ int CharToPiece(char c, char *variant)
   case 'q':
     return B_QUEEN;
   case 'E':
+    if(!strcmp(variant, "seirawan")) return W_ELEPHANT;
     return W_ELEPHANT;
   case 'e':
+    if(!strcmp(variant, "seirawan")) return B_ELEPHANT;
     return B_ELEPHANT;
+  case 'H':
+    return W_HAWK;
+  case 'h':
+    return B_HAWK;
   case 'K':
     return W_KING;
   case 'k':
@@ -814,9 +821,11 @@ char PieceToChar(int piece)
     return 'Q';
   case B_QUEEN:
     return 'q';
+  case W_SELEPHANT:
   case W_ELEPHANT:
   case W_EMPRESS:
     return 'E';
+  case B_SELEPHANT:
   case B_ELEPHANT:
   case B_EMPRESS:
     return 'e';
@@ -838,10 +847,12 @@ char PieceToChar(int piece)
   case B_WAZIR:
   case B_WOODY:
     return 'w';
+  case W_HAWK:
   case W_HORSE:
   case W_PRIESTESS:
   case W_NIGHTRIDER:
     return 'H';
+  case B_HAWK:
   case B_HORSE:
   case B_PRIESTESS:
   case B_NIGHTRIDER: