X-Git-Url: http://winboard.nl/cgi-bin?p=capablanca.git;a=blobdiff_plain;f=lasker-2.2.3%2Fsrc%2Fgamedb.c;h=da255dc21822fd4c57d08f33200a9320624bcfe2;hp=becb7a01cf070ad03c53ea4ee3abd3dfe2a24a6f;hb=15d6762279fb7e4c1fecc81699507d9011287779;hpb=5317b80b41045bd23473faf4748a9539a06e5f52 diff --git a/lasker-2.2.3/src/gamedb.c b/lasker-2.2.3/src/gamedb.c index becb7a0..da255dc 100644 --- a/lasker-2.2.3/src/gamedb.c +++ b/lasker-2.2.3/src/gamedb.c @@ -723,6 +723,19 @@ int CharToPiece(char c, char *variant) case 'v': return B_CENTAUR; } + } else if(!strcmp(variant, "spartan")) { + switch(c) { + case 'w': + return B_WARLORD; + case 'g': + return B_GENERAL; + case 'l': + return B_LIEUTENANT; + case 'c': + return B_CAPTAIN; + case 'h': + return B_HOPLITE; + } } } switch (c) { @@ -808,6 +821,7 @@ char PieceToChar(int piece) case W_CANNON: case W_MARSHALL: return 'C'; + case B_CAPTAIN: case B_CANNON: case B_MARSHALL: return 'c'; @@ -844,6 +858,7 @@ char PieceToChar(int piece) case W_WAZIR: case W_WOODY: return 'W'; + case B_WARLORD: case B_WAZIR: case B_WOODY: return 'w'; @@ -854,6 +869,7 @@ char PieceToChar(int piece) return 'H'; case B_HAWK: case B_HORSE: + case B_HOPLITE: case B_PRIESTESS: case B_NIGHTRIDER: return 'h'; @@ -869,6 +885,7 @@ char PieceToChar(int piece) case W_MASTODON: return 'G'; case B_GOLD: + case B_GENERAL: case B_MASTODON: return 'g'; case W_AMAZON: @@ -885,6 +902,7 @@ char PieceToChar(int piece) return 'k'; case W_LANCE: return 'L'; + case B_LIEUTENANT: case B_LANCE: return 'l'; default: @@ -1716,7 +1734,7 @@ static int check_kings(struct game_state_t *gs) } } - if (blackking == 1 && whiteking == 1) return 0; /* Perfect! */ + if ((blackking == 1 || blackking == 2 && !strcmp(gs->variant, "spartan")) && whiteking == 1) return 0; /* Perfect! */ return -1; }