int p;
for(p=0; p<=(int)WhiteKing; p++)
pngPieceBitmaps[i][p] = pngPieceBitmaps2[i][p]; // defaults
+ if(gameInfo.variant == VariantShogi) {
+ pngPieceBitmaps[i][(int)WhiteCannon] = pngPieceBitmaps2[i][(int)WhiteKing+1];
+ pngPieceBitmaps[i][(int)WhiteNightrider] = pngPieceBitmaps2[i][(int)WhiteKing+2];
+ pngPieceBitmaps[i][(int)WhiteSilver] = pngPieceBitmaps2[i][(int)WhiteKing+3];
+ pngPieceBitmaps[i][(int)WhiteGrasshopper] = pngPieceBitmaps2[i][(int)WhiteKing+4];
+ pngPieceBitmaps[i][(int)WhiteQueen] = pngPieceBitmaps2[i][(int)WhiteLance];
+ }
+ if(gameInfo.variant == VariantGothic) {
+ pngPieceBitmaps[i][(int)WhiteMarshall] = pngPieceBitmaps2[i][(int)WhiteSilver];
+ }
+ if(gameInfo.variant == VariantSChess) {
+ pngPieceBitmaps[i][(int)WhiteAngel] = pngPieceBitmaps2[i][(int)WhiteFalcon];
+ pngPieceBitmaps[i][(int)WhiteMarshall] = pngPieceBitmaps2[i][(int)WhiteAlfil];
+ }
}
oldMono = -10; // kludge to force recreation of animation masks
oldVariant = gameInfo.variant;
static int oldSize;
static cairo_t *pieceSource;
extern int doubleClick; // in backend.c
- if(piece != oldPiece || squareSize != oldSize) { // try make it faster by only changing cr if we need other piece
- if(pieceSource) cairo_destroy (pieceSource);
- pieceSource = cairo_create (dest);
- cairo_set_source_surface (pieceSource, pngPieceBitmaps[!White(piece)][piece % BlackPawn], 0, 0);
- oldPiece = piece; oldSize = squareSize;
- }
+// if(piece != oldPiece || squareSize != oldSize) { // try make it faster by only changing cr if we need other piece
+// if(pieceSource) cairo_destroy (pieceSource);
+// pieceSource = cairo_create (dest);
+// cairo_set_source_surface (pieceSource, pngPieceBitmaps[!White(piece)][piece % BlackPawn], 0, 0);
+// oldPiece = piece; oldSize = squareSize;
+// }
+ pieceSource = cairo_create (dest);
+ cairo_set_source_surface (pieceSource, pngPieceBitmaps[!White(piece)][piece % BlackPawn], 0, 0);
if(doubleClick) cairo_paint_with_alpha (pieceSource, 0.6);
else cairo_paint(pieceSource);
+ cairo_destroy (pieceSource);
}
void