diff options
Diffstat (limited to 'gnu/games/chess/Xchess/jail.c')
-rw-r--r-- | gnu/games/chess/Xchess/jail.c | 327 |
1 files changed, 0 insertions, 327 deletions
diff --git a/gnu/games/chess/Xchess/jail.c b/gnu/games/chess/Xchess/jail.c deleted file mode 100644 index b3ed39178465..000000000000 --- a/gnu/games/chess/Xchess/jail.c +++ /dev/null @@ -1,327 +0,0 @@ - -/* This file contains code for X-CHESS. - Copyright (C) 1986 Free Software Foundation, Inc. - -This file is part of X-CHESS. - -X-CHESS is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY. No author or distributor -accepts responsibility to anyone for the consequences of using it -or for whether it serves any particular purpose or works at all, -unless he says so in writing. Refer to the X-CHESS General Public -License for full details. - -Everyone is granted permission to copy, modify and redistribute -X-CHESS, but only under the conditions described in the -X-CHESS General Public License. A copy of this license is -supposed to have been given to you along with X-CHESS so you -can know your rights and responsibilities. It should be in a -file named COPYING. Among other things, the copyright notice -and this notice must be preserved on all copies. */ - - -/* RCS Info: $Revision: 1.1.1.1 $ on $Date: 1993/06/12 14:41:12 $ - * $Source: /home/ncvs/src/gnu/games/chess/Xchess/jail.c,v $ - * Copyright (c) 1986 Wayne A. Christopher, U. C. Berkeley CAD Group - * Permission is granted to do anything with this code except sell it - * or remove this message. - * - */ - -#include "xchess.h" - -#include "pawn_small.bitmap" -#include "rook_small.bitmap" -#include "knight_small.bitmap" -#include "bishop_small.bitmap" -#include "queen_small.bitmap" -#include "king_small.bitmap" - -#include "pawn_small_outline.bitmap" -#include "rook_small_outline.bitmap" -#include "knight_small_outline.bitmap" -#include "bishop_small_outline.bitmap" -#include "queen_small_outline.bitmap" -#include "king_small_outline.bitmap" - -static bool pos[32]; - -static piecetype pcs[] = { KING, QUEEN, ROOK, ROOK, BISHOP, BISHOP, KNIGHT, - KNIGHT, PAWN, PAWN, PAWN, PAWN, PAWN, PAWN, PAWN, PAWN } ; - -extern int piecepos(); -extern char *bitsget(); - -void -jail_init(win) - windata *win; -{ - int i; - - for (i = 0; i < 32; i++) - pos[i] = false; - jail_draw(win); - return; -} - -#define JAIL_HEADER "Captured Pieces" - -void -jail_draw(win) - windata *win; -{ - int i; - char *bits; - Pixmap tmpPM; - piece p; - - i = XTextWidth(win->large, JAIL_HEADER, strlen(JAIL_HEADER)); - XSetFont(win->display, DefaultGC(win->display, 0), - win->large->fid); - XSetForeground(win->display, DefaultGC(win->display, 0), - win->textcolor.pixel); - XSetBackground(win->display, DefaultGC(win->display, 0), - win->textback.pixel); - - XDrawImageString(win->display, win->jailwin, - DefaultGC(win->display, 0), - (JAIL_WIDTH - i) / 2, 20, JAIL_HEADER, - strlen(JAIL_HEADER)); - - XSetForeground(win->display, DefaultGC(win->display, 0), - win->blackpiece.pixel); - XSetBackground(win->display, DefaultGC(win->display, 0), - win->textback.pixel); - XSetFillStyle(win->display, DefaultGC(win->display, 0), - FillSolid); - XSetFunction(win->display, DefaultGC(win->display, 0), - GXcopy); - - for (i = 0; i < 16; i++) - if (pos[i]) { - p.color = WHITE; - p.type = pcs[i]; - bits = bitsget(&p); - tmpPM = XCreateBitmapFromData(win->display, - win->jailwin, bits, - 32, 32); - - XCopyPlane(win->display, tmpPM, win->jailwin, - DefaultGC(win->display, 0), - 0, 0, 32, 32, - 5 + (i % 8) * 32, 25 + (i / 8) * 32, - 1); - XFreePixmap(win->display, tmpPM); - } else { - XFillRectangle(win->display, win->jailwin, - DefaultGC(win->display, 0), - 5 + (i % 8) * 32, - 25 + (i / 8) * 32, - 32, 32); - } - for (i = 0; i < 16; i++) - if (pos[i + 16]) { - p.color = BLACK; - p.type = pcs[i]; - bits = bitsget(&p); - tmpPM = XCreateBitmapFromData(win->display, - win->jailwin, bits, - 32, 32); - - XCopyPlane(win->display, tmpPM, win->jailwin, - DefaultGC(win->display, 0), - 0, 0, 32, 32, - 5 + (i % 8) * 32, 94 + (i / 8) * 32, - 1); - XFreePixmap(win->display, tmpPM); - } else { - XFillRectangle(win->display, win->jailwin, - DefaultGC(win->display, 0), - 5 + (i % 8) * 32, 94 + (i / 8) * 32, - 32, 32); - } - - return; -} - -void -jail_add(p) - piece *p; -{ - int i = piecepos(p, false); - char *bits; - Pixmap tmpPM; - - pos[i] = true; - - bits = bitsget(p); - - XSetState(win1->display, DefaultGC(win1->display, 0), - win1->blackpiece.pixel, - win1->textback.pixel, - GXcopy, - AllPlanes); - - tmpPM = XCreateBitmapFromData(win1->display, - win1->jailwin, bits, - 32, 32); - - XCopyPlane(win1->display, tmpPM, win1->jailwin, - DefaultGC(win1->display, 0), - 0, 0, 32, 32, - 5 + (i % 8) * 32, ((i >= 16) ? 30 : 25) + (i / 8) * 32, - 1); - XFreePixmap(win1->display, tmpPM); - - if (!oneboard) { - XSetState(win2->display, DefaultGC(win2->display, 0), - win2->blackpiece.pixel, - win2->textback.pixel, - GXcopy, - AllPlanes); - - - tmpPM = XCreateBitmapFromData(win2->display, - win2->jailwin, bits, - 32, 32); - - XCopyPlane(win2->display, tmpPM, win2->jailwin, - DefaultGC(win2->display, 0), - 0, 0, 32, 32, - 5 + (i % 8) * 32, ((i >= 16) ? 30 : 25) + (i / 8) * 32, - 1); - XFreePixmap(win2->display, tmpPM); - } - - return; -} - -void -jail_remove(p) - piece *p; -{ - int i = piecepos(p, true); - - pos[i] = false; - - - XSetForeground(win1->display, - DefaultGC(win1->display, 0), - win1->blackpiece.pixel); - XSetBackground(win1->display, - DefaultGC(win1->display, 0), - win1->textback.pixel); - XSetFillStyle(win1->display, - DefaultGC(win1->display, 0), - FillSolid); - - XFillRectangle(win1->display, win1->jailwin, - DefaultGC(win1->display, 0), - 5 + (i % 8) * 32, - ((i >= 16) ? 30 : 25) + (i / 8) * 32, - 32, 32); - - if (!oneboard) { - XSetForeground(win2->display, - DefaultGC(win2->display, 0), - win2->blackpiece.pixel); - XSetBackground(win2->display, - DefaultGC(win2->display, 0), - win2->textback.pixel); - XSetFillStyle(win2->display, - DefaultGC(win2->display, 0), - FillSolid); - - XFillRectangle(win2->display, win2->jailwin, - DefaultGC(win2->display, 0), - 5 + (i % 8) * 32, - ((i >= 16) ? 30 : 25) + (i / 8) * 32, - 32, 32); - } - - return; -} - -static char *bitsget(p) - piece *p; -{ - char *bits; - - switch (p->type) { - case PAWN: - bits = (p->color == WHITE) ? pawn_small_outline_bits : - pawn_small_bits; - break; - - case ROOK: - bits = (p->color == WHITE) ? rook_small_outline_bits : - rook_small_bits; - break; - - case KNIGHT: - bits = (p->color == WHITE) ? knight_small_outline_bits : - knight_small_bits; - break; - - case BISHOP: - bits = (p->color == WHITE) ? bishop_small_outline_bits : - bishop_small_bits; - break; - - case QUEEN: - bits = (p->color == WHITE) ? queen_small_outline_bits : - queen_small_bits; - break; - - case KING: - bits = (p->color == WHITE) ? king_small_outline_bits : - king_small_bits; - break; - } - return (bits); -} - -static int -piecepos(p, there) - piece *p; - bool there; -{ - int i, base = (p->color == WHITE) ? 0 : 16; - - switch (p->type) { - case PAWN: - for (i = base + 8; (i < base + 15) && pos[i]; i++) - ; - if (there && !pos[i]) - i--; - break; - - case KING: - /* Hmm... */ - i = base; - break; - - case QUEEN: - i = base + 1; - break; - - case ROOK: - i = base + 2; - if ((there && pos[i + 1]) || (!there && pos[i])) - i++; - break; - - case BISHOP: - i = base + 4; - if ((there && pos[i + 1]) || (!there && pos[i])) - i++; - break; - - case KNIGHT: - i = base + 6; - if ((there && pos[i + 1]) || (!there && pos[i])) - i++; - break; - } - return (i); -} |