sprintf(endstr, "%s bared",
game_globals.garray[g].winner == WHITE ? blackguy : whiteguy);
break;
+ case END_PERPETUAL:
+ sprintf(endstr, "%s perpetually checking",
+ game_globals.garray[g].winner == WHITE ? blackguy : whiteguy);
+ break;
case END_RESIGN:
sprintf(endstr, "%s resigned",
game_globals.garray[g].winner == WHITE ? blackguy : whiteguy);
case END_FLAG:
case END_ADJWIN:
case END_BARE:
+ case END_PERPETUAL:
return ((game_globals.garray[g].winner == WHITE) ? symbols[0] : symbols[1]);
break;
case END_AGREEDDRAW:
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) {
case W_CANNON:
case W_MARSHALL:
return 'C';
+ case B_CAPTAIN:
case B_CANNON:
case B_MARSHALL:
return 'c';
case W_WAZIR:
case W_WOODY:
return 'W';
+ case B_WARLORD:
case B_WAZIR:
case B_WOODY:
return 'w';
return 'H';
case B_HAWK:
case B_HORSE:
+ case B_HOPLITE:
case B_PRIESTESS:
case B_NIGHTRIDER:
return 'h';
case W_MASTODON:
return 'G';
case B_GOLD:
+ case B_GENERAL:
case B_MASTODON:
return 'g';
case W_AMAZON:
return 'k';
case W_LANCE:
return 'L';
+ case B_LIEUTENANT:
case B_LANCE:
return 'l';
default:
}
}
- if (blackking == 1 && whiteking == 1) return 0; /* Perfect! */
+ if ((blackking == 1 || blackking == 2 && !strcmp(gs->variant, "spartan")) && whiteking == 1) return 0; /* Perfect! */
return -1;
}