tkacik@kyzyl.mi.org (Tom Tkacik) (06/19/91)
Submitted-by: tkacik@kyzyl.mi.org (Tom Tkacik) Posting-number: Volume 1, Issue 31 Archive-name: klondike/part03 Here is part 3 of klondike. #--------------------------------CUT HERE------------------------------------- #! /bin/sh # # This is a shell archive. Save this into a file, edit it # and delete all lines above this comment. Then give this # file to sh by executing the command "sh file". The files # will be extracted into the current directory owned by # you with default permissions. # # The files contained herein are: # # -rw-r--r-- 1 tkacik users 5636 Oct 6 1990 drag.c # -rw-r--r-- 1 tkacik users 32748 Oct 6 1990 heart.c # -rw-r--r-- 1 tkacik users 3880 Oct 6 1990 klondike.h # -rw-r--r-- 1 tkacik users 3402 May 27 18:05 window.c # echo 'x - drag.c' if test -f drag.c; then echo 'shar: not overwriting drag.c'; else sed 's/^X//' << '________This_Is_The_END________' > drag.c X/* X * Copyright 1990, Thomas E. Tkacik X * tkacik@kyzyl.mi.org X * X * Acknowledgments to Kent Quander allowing me to X * use and distribute his wonderfully drawn playing cards. X * X * Permission is given to copy and distribute for non-profit purposes. X * X */ X X/* X * double buffered dragging of the selected cards with the mouse X */ X X#include <malloc.h> X#include <sys/window.h> X#include "klondike.h" X X/* card that the mouse should drag */ Xextern int ucard; X X/* location of the upper left corner of the card */ X/* the mouse pointer is at the center of the card */ Xstatic int x_screenoff, y_screenoff; X X/* the visible size of the card -- it may be against an edge */ Xstatic int drag_w, drag_h; X X/* buffer for holding the drag region */ Xstatic unsigned short dragged[12*FACE_SEP+CARD_H][5]; X X/* number of bytes in the image buffer */ Xstatic unsigned int region_size = 0; X X/* pointer to dynamically allocated image buffer */ Xstatic unsigned short *save_region = 0; X X/* X * set up parameters to be able to drag a card X * and draw the card where the mouse is X */ X Xstart_dragging(x,y) Xint x,y; /* current mouse position */ X{ X X int x_cardoff, y_cardoff; X X /* parameters required to display cards in the proper position */ X X x_screenoff = x - (w_cards/2); X y_screenoff = y - (h_cards/2); X drag_w = w_cards; X drag_h = h_cards; X x_cardoff = 0; X y_cardoff = 0; X X /* modify the parameters if the cards are only partially on the screen */ X X if(x_screenoff <= SIDEBORDER + 1) { X x_cardoff = SIDEBORDER - x_screenoff + 1; X drag_w -= x_cardoff; X x_screenoff = SIDEBORDER + 1; X } X else if(x_screenoff >= WIND_W-SIDEBORDER-w_cards-1) { X drag_w = WIND_W - SIDEBORDER - x_screenoff - 1; X } X if(y_screenoff <= TOPBORDER + 1) { X y_cardoff = TOPBORDER - y_screenoff + 1; X drag_h -= y_cardoff; X y_screenoff = TOPBORDER + 1; X } X else if(y_screenoff >= WIND_H-TOPBORDER-h_cards-1) { X drag_h = WIND_H - TOPBORDER - y_screenoff - 1; X } X X /* save the current area */ X X wrastop(wn, (unsigned short *)0, 0, dragged[0], 10, X x_screenoff, y_screenoff, 0, 0, X drag_w, drag_h, SRCSRC, DSTSRC, (unsigned short *)0); X X /* draw the cards */ X X wrastop(wn, cards[0], 10, (unsigned short *)0, 0, X x_cardoff, y_cardoff, x_screenoff, y_screenoff, X drag_w, drag_h, SRCSRC, DSTSRC, (unsigned short *)0); X} X X/* X * clean up after placing the cards X */ X Xstop_dragging() X{ X /* redisplay the saved current area */ X X wrastop(wn, dragged[0], 10, (unsigned short *)0, 0, X 0, 0, x_screenoff, y_screenoff, X drag_w, drag_h, SRCSRC, DSTSRC, (unsigned short *)0); X} X X/* X * restore the screen under the old position X * and display the cards where the mouse is currrently X */ X Xkeep_dragging(x,y) Xint x, y; /* current mouse position */ X{ X int xmin, ymin, xmax, ymax; X int rows, cols, bytes_per_row; X int byte_count; X int new_x, new_y, newoff_x, newoff_y, new_w, new_h; X X X /* paramters for the new mouse location */ X X new_x = x - (w_cards/2); X new_y = y - (h_cards/2); X new_w = w_cards; X new_h = h_cards; X newoff_x = 0; X newoff_y = 0; X X /* modify them if the cards run off the screen */ X X if(new_x <= SIDEBORDER + 1) { X newoff_x = SIDEBORDER - new_x + 1; X new_w -= newoff_x; X new_x = SIDEBORDER + 1; X } X else if(new_x >= WIND_W-SIDEBORDER-w_cards-1) { X new_w = WIND_W - SIDEBORDER - new_x - 1; X } X if(new_y <= TOPBORDER + 1) { X newoff_y = TOPBORDER - new_y + 1; X new_h -= newoff_y; X new_y = TOPBORDER + 1; X } X else if(new_y >= WIND_H-TOPBORDER-h_cards-1) { X new_h = WIND_H - TOPBORDER - new_y - 1; X } X X /* need an off screen version of the playing area containing */ X /* both the old mouse position and the new one */ X X xmin = (new_x < x_screenoff) ? new_x : x_screenoff; X ymin = (new_y < y_screenoff) ? new_y : y_screenoff; X xmax = (new_x+new_w > x_screenoff+drag_w) ? X new_x+new_w : x_screenoff+drag_w; X ymax = (new_y+new_h > y_screenoff+drag_h) ? X new_y+new_h : y_screenoff+drag_h; X X /* how big an array is required to hold this part */ X /* the playing area? */ X X rows = ymax - ymin + 1; X cols = xmax - xmin + 1; X bytes_per_row = ((cols/16) + (((cols%16)>0)?1:0))*2; X byte_count = rows * bytes_per_row; X X /* if the array is too small, make it bigger */ X X if(save_region == 0) { X region_size = byte_count; X save_region = (unsigned short*)malloc(region_size); X } else if(byte_count > region_size) { X region_size = byte_count; X save_region = (unsigned short*) X realloc((char*)save_region, region_size); X } X X X /* now drag the cards */ X /* do everything in the off screen buffer first */ X /* so we do not see ghost images */ X X /* buffer the region we need to mess around with */ X X wrastop(wn, (unsigned short *)0, 0, save_region, bytes_per_row, X xmin, ymin, 0, 0, X cols, rows, SRCSRC, DSTSRC, (unsigned short *)0); X X /* restore the image */ X X wrastop(wn, dragged[0], 10, save_region, bytes_per_row, X 0, 0, x_screenoff-xmin, y_screenoff-ymin, X drag_w, drag_h, SRCSRC, DSTSRC, (unsigned short *)0); X X /* save the area that will be overdrawn by the cards */ X X wrastop(wn, save_region, bytes_per_row, dragged[0], 10, X new_x-xmin, new_y-ymin, 0, 0, X new_w, new_h, SRCSRC, DSTSRC, (unsigned short *)0); X X /* draw the cards */ X X wrastop(wn, cards[0], 10, save_region, bytes_per_row, X newoff_x, newoff_y, new_x-xmin, new_y-ymin, X new_w, new_h, SRCSRC, DSTSRC, (unsigned short *)0); X X /* put the whole thing back on the screen */ X X wrastop(wn, save_region, bytes_per_row, (unsigned short *)0, 0, X 0, 0, xmin, ymin, X cols, rows, SRCSRC, DSTSRC, (unsigned short *)0); X X /* update parameters */ X X x_screenoff = new_x; X y_screenoff = new_y; X drag_w = new_w; X drag_h = new_h; X} X ________This_Is_The_END________ if test `wc -c < drag.c` -ne 5636; then echo 'shar: drag.c was damaged during transit (should have been 5636 bytes)' fi fi ; : end of overwriting check echo 'x - heart.c' if test -f heart.c; then echo 'shar: not overwriting heart.c'; else sed 's/^X//' << '________This_Is_The_END________' > heart.c X/* X * Copyright 1990, Thomas E. Tkacik X * tkacik@kyzyl.mi.org X * X * Acknowledgments to Kent Quander allowing me to X * use and distribute his wonderfully drawn playing cards. X * X * Permission is given to copy and distribute for non-profit purposes. X * X */ X X/* XObject Name: hearta X Pels Wide: 71 X Pels High: 65 X Srcx: 416 X Srcy: 24 X*/ X Xunsigned short hearta[65][5] ={ X {0x0,0x0,0x0,0x0,0x0}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xff3e,0xffff,0xffff,0xffff,0x3f}, X {0xfe1e,0xffff,0xffff,0xffff,0x3f}, X {0xfcce,0xffff,0xffff,0xffff,0x3f}, X {0xfcce,0xffff,0xffff,0xffff,0x3f}, X {0xfc0e,0xffff,0xffff,0xffff,0x3f}, X {0xfcce,0xffff,0xffff,0xffff,0x3f}, X {0xfcce,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xf88e,0xffff,0xffff,0xffff,0x3f}, X {0xfa2e,0xffff,0xffff,0xffff,0x3f}, X {0xf94e,0xffff,0xffff,0xffff,0x3f}, X {0xfc9e,0xffff,0xffff,0xffff,0x3f}, X {0xfe3e,0xffff,0xffff,0xffff,0x3f}, X {0xff7e,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0x3fff,0xfe1c,0xffff,0x3f}, X {0xfffe,0x9fff,0xfc88,0xffff,0x3f}, X {0xfffe,0x9fff,0xfca2,0xffff,0x3f}, X {0xfffe,0x9fff,0xfcaa,0xffff,0x3f}, X {0xfffe,0x3fff,0xfe55,0xffff,0x3f}, X {0xfffe,0x7fff,0xff2a,0xffff,0x3f}, X {0xfffe,0xffff,0xff94,0xffff,0x3f}, X {0xfffe,0xffff,0xffc9,0xffff,0x3f}, X {0xfffe,0xffff,0xffe3,0xffff,0x3f}, X {0xfffe,0xffff,0xfff7,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0x7fff,0x3f}, X {0xfffe,0xffff,0xffff,0x3fff,0x3e}, X {0xfffe,0xffff,0xffff,0x9fff,0x3c}, X {0xfffe,0xffff,0xffff,0x4fff,0x39}, X {0xfffe,0xffff,0xffff,0x2fff,0x3a}, X {0xfffe,0xffff,0xffff,0x8fff,0x38}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0x9fff,0x39}, X {0xfffe,0xffff,0xffff,0x9fff,0x39}, X {0xfffe,0xffff,0xffff,0x1fff,0x38}, X {0xfffe,0xffff,0xffff,0x9fff,0x39}, X {0xfffe,0xffff,0xffff,0x9fff,0x39}, X {0xfffe,0xffff,0xffff,0x3fff,0x3c}, X {0xfffe,0xffff,0xffff,0x7fff,0x3e}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0x0,0x0,0x0,0x0,0x0} X}; X/* XObject Name: heart2 X Pels Wide: 71 X Pels High: 65 X Srcx: 112 X Srcy: 160 X*/ X Xunsigned short heart2[65][5] ={ X {0x0,0x0,0x0,0x0,0x0}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfe1e,0xffff,0xffff,0xffff,0x3f}, X {0xfcce,0xffff,0xffff,0xffff,0x3f}, X {0xfe7e,0xffff,0xffff,0xffff,0x3f}, X {0xff3e,0xffff,0xffff,0xffff,0x3f}, X {0xff9e,0x3fff,0xfe1c,0xffff,0x3f}, X {0xffce,0x9fff,0xfc88,0xffff,0x3f}, X {0xfc0e,0x9fff,0xfca2,0xffff,0x3f}, X {0xfffe,0x9fff,0xfcaa,0xffff,0x3f}, X {0xf88e,0x3fff,0xfe55,0xffff,0x3f}, X {0xfa2e,0x7fff,0xff2a,0xffff,0x3f}, X {0xf94e,0xffff,0xff94,0xffff,0x3f}, X {0xfc9e,0xffff,0xffc9,0xffff,0x3f}, X {0xfe3e,0xffff,0xffe3,0xffff,0x3f}, X {0xff7e,0xffff,0xfff7,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xfff7,0x7fff,0x3f}, X {0xfffe,0xffff,0xffe3,0x3fff,0x3e}, X {0xfffe,0xffff,0xffc9,0x9fff,0x3c}, X {0xfffe,0xffff,0xff94,0x4fff,0x39}, X {0xfffe,0x7fff,0xff2a,0x2fff,0x3a}, X {0xfffe,0x3fff,0xfe55,0x8fff,0x38}, X {0xfffe,0x9fff,0xfcaa,0xffff,0x3f}, X {0xfffe,0x9fff,0xfca2,0x1fff,0x38}, X {0xfffe,0x9fff,0xfc88,0xffff,0x39}, X {0xfffe,0x3fff,0xfe1c,0xffff,0x3c}, X {0xfffe,0xffff,0xffff,0x7fff,0x3e}, X {0xfffe,0xffff,0xffff,0x3fff,0x3f}, X {0xfffe,0xffff,0xffff,0x9fff,0x39}, X {0xfffe,0xffff,0xffff,0x3fff,0x3c}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0x0,0x0,0x0,0x0,0x0} X}; X/* XObject Name: heart3 X Pels Wide: 71 X Pels High: 65 X Srcx: 112 X Srcy: 92 X*/ X Xunsigned short heart3[65][5] ={ X {0x0,0x0,0x0,0x0,0x0}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfe1e,0xffff,0xffff,0xffff,0x3f}, X {0xfcce,0xffff,0xffff,0xffff,0x3f}, X {0xfcfe,0xffff,0xffff,0xffff,0x3f}, X {0xfe3e,0xffff,0xffff,0xffff,0x3f}, X {0xfcfe,0x3fff,0xfe1c,0xffff,0x3f}, X {0xfcce,0x9fff,0xfc88,0xffff,0x3f}, X {0xfe1e,0x9fff,0xfca2,0xffff,0x3f}, X {0xfffe,0x9fff,0xfcaa,0xffff,0x3f}, X {0xf88e,0x3fff,0xfe55,0xffff,0x3f}, X {0xfa2e,0x7fff,0xff2a,0xffff,0x3f}, X {0xf94e,0xffff,0xff94,0xffff,0x3f}, X {0xfc9e,0xffff,0xffc9,0xffff,0x3f}, X {0xfe3e,0xffff,0xffe3,0xffff,0x3f}, X {0xff7e,0xffff,0xfff7,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0x3fff,0xfe1c,0xffff,0x3f}, X {0xfffe,0x9fff,0xfc88,0xffff,0x3f}, X {0xfffe,0x9fff,0xfca2,0xffff,0x3f}, X {0xfffe,0x9fff,0xfcaa,0xffff,0x3f}, X {0xfffe,0x3fff,0xfe55,0xffff,0x3f}, X {0xfffe,0x7fff,0xff2a,0xffff,0x3f}, X {0xfffe,0xffff,0xff94,0xffff,0x3f}, X {0xfffe,0xffff,0xffc9,0xffff,0x3f}, X {0xfffe,0xffff,0xffe3,0xffff,0x3f}, X {0xfffe,0xffff,0xfff7,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xfff7,0x7fff,0x3f}, X {0xfffe,0xffff,0xffe3,0x3fff,0x3e}, X {0xfffe,0xffff,0xffc9,0x9fff,0x3c}, X {0xfffe,0xffff,0xff94,0x4fff,0x39}, X {0xfffe,0x7fff,0xff2a,0x2fff,0x3a}, X {0xfffe,0x3fff,0xfe55,0x8fff,0x38}, X {0xfffe,0x9fff,0xfcaa,0xffff,0x3f}, X {0xfffe,0x9fff,0xfca2,0x3fff,0x3c}, X {0xfffe,0x9fff,0xfc88,0x9fff,0x39}, X {0xfffe,0x3fff,0xfe1c,0x9fff,0x3f}, X {0xfffe,0xffff,0xffff,0x3fff,0x3e}, X {0xfffe,0xffff,0xffff,0x9fff,0x3f}, X {0xfffe,0xffff,0xffff,0x9fff,0x39}, X {0xfffe,0xffff,0xffff,0x3fff,0x3c}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0x0,0x0,0x0,0x0,0x0} X}; X/* XObject Name: heart4 X Pels Wide: 71 X Pels High: 65 X Srcx: 112 X Srcy: 24 X*/ X Xunsigned short heart4[65][5] ={ X {0x0,0x0,0x0,0x0,0x0}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfc7e,0xffff,0xffff,0xffff,0x3f}, X {0xfc3e,0xffff,0xffff,0xffff,0x3f}, X {0xfc9e,0xffff,0xffff,0xffff,0x3f}, X {0xfcce,0xffff,0xffff,0xffff,0x3f}, X {0x780e,0xfc38,0x1fff,0xff0e,0x3f}, X {0x3cfe,0xf911,0x4fff,0xfe44,0x3f}, X {0x3cfe,0xf945,0x4fff,0xfe51,0x3f}, X {0x3ffe,0xf955,0x4fff,0xfe55,0x3f}, X {0x788e,0xfcaa,0x9fff,0xff2a,0x3f}, X {0xfa2e,0xfe54,0x3fff,0xff95,0x3f}, X {0xf94e,0xff29,0x7fff,0xffca,0x3f}, X {0xfc9e,0xff93,0xffff,0xffe4,0x3f}, X {0xfe3e,0xffc7,0xffff,0xfff1,0x3f}, X {0xff7e,0xffef,0xffff,0xfffb,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffef,0xffff,0x7ffb,0x3f}, X {0xfffe,0xffc7,0xffff,0x3ff1,0x3e}, X {0xfffe,0xff93,0xffff,0x9fe4,0x3c}, X {0xfffe,0xff29,0x7fff,0x4fca,0x39}, X {0xfffe,0xfe54,0x3fff,0x2f95,0x3a}, X {0x7ffe,0xfcaa,0x9fff,0x8f2a,0x38}, X {0x3ffe,0xf955,0x4fff,0xfe55,0x3f}, X {0x3ffe,0xf945,0x4fff,0x9e51,0x3f}, X {0x3ffe,0xf911,0x4fff,0x9e44,0x3f}, X {0x7ffe,0xfc38,0x1fff,0xf0e,0x38}, X {0xfffe,0xffff,0xffff,0x9fff,0x39}, X {0xfffe,0xffff,0xffff,0x9fff,0x3c}, X {0xfffe,0xffff,0xffff,0x1fff,0x3e}, X {0xfffe,0xffff,0xffff,0x1fff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0x0,0x0,0x0,0x0,0x0} X}; X/* XObject Name: heart5 X Pels Wide: 71 X Pels High: 65 X Srcx: 416 X Srcy: 160 X*/ X Xunsigned short heart5[65][5] ={ X {0x0,0x0,0x0,0x0,0x0}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfc0e,0xffff,0xffff,0xffff,0x3f}, X {0xffce,0xffff,0xffff,0xffff,0x3f}, X {0xfe0e,0xffff,0xffff,0xffff,0x3f}, X {0xfcfe,0xffff,0xffff,0xffff,0x3f}, X {0x7cce,0xfc38,0x1fff,0xff0e,0x3f}, X {0x3cce,0xf911,0x4fff,0xfe44,0x3f}, X {0x3e1e,0xf945,0x4fff,0xfe51,0x3f}, X {0x3ffe,0xf955,0x4fff,0xfe55,0x3f}, X {0x788e,0xfcaa,0x9fff,0xff2a,0x3f}, X {0xfa2e,0xfe54,0x3fff,0xff95,0x3f}, X {0xf94e,0xff29,0x7fff,0xffca,0x3f}, X {0xfc9e,0xff93,0xffff,0xffe4,0x3f}, X {0xfe3e,0xffc7,0xffff,0xfff1,0x3f}, X {0xff7e,0xffef,0xffff,0xfffb,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0x7fff,0xfc38,0xffff,0x3f}, X {0xfffe,0x3fff,0xf911,0xffff,0x3f}, X {0xfffe,0x3fff,0xf945,0xffff,0x3f}, X {0xfffe,0x3fff,0xf955,0xffff,0x3f}, X {0xfffe,0x7fff,0xfcaa,0xffff,0x3f}, X {0xfffe,0xffff,0xfe54,0xffff,0x3f}, X {0xfffe,0xffff,0xff29,0xffff,0x3f}, X {0xfffe,0xffff,0xff93,0xffff,0x3f}, X {0xfffe,0xffff,0xffc7,0xffff,0x3f}, X {0xfffe,0xffff,0xffef,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffef,0xffff,0x7ffb,0x3f}, X {0xfffe,0xffc7,0xffff,0x3ff1,0x3e}, X {0xfffe,0xff93,0xffff,0x9fe4,0x3c}, X {0xfffe,0xff29,0x7fff,0x4fca,0x39}, X {0xfffe,0xfe54,0x3fff,0x2f95,0x3a}, X {0x7ffe,0xfcaa,0x9fff,0x8f2a,0x38}, X {0x3ffe,0xf955,0x4fff,0xfe55,0x3f}, X {0x3ffe,0xf945,0x4fff,0x3e51,0x3c}, X {0x3ffe,0xf911,0x4fff,0x9e44,0x39}, X {0x7ffe,0xfc38,0x1fff,0x9f0e,0x39}, X {0xfffe,0xffff,0xffff,0x9fff,0x3f}, X {0xfffe,0xffff,0xffff,0x3fff,0x38}, X {0xfffe,0xffff,0xffff,0xffff,0x39}, X {0xfffe,0xffff,0xffff,0x1fff,0x38}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0x0,0x0,0x0,0x0,0x0} X}; X/* XObject Name: heart6 X Pels Wide: 71 X Pels High: 65 X Srcx: 416 X Srcy: 92 X*/ X Xunsigned short heart6[65][5] ={ X {0x0,0x0,0x0,0x0,0x0}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfe1e,0xffff,0xffff,0xffff,0x3f}, X {0xfcce,0xffff,0xffff,0xffff,0x3f}, X {0xffce,0xffff,0xffff,0xffff,0x3f}, X {0xfe0e,0xffff,0xffff,0xffff,0x3f}, X {0x7cce,0xfc38,0x1fff,0xff0e,0x3f}, X {0x3cce,0xf911,0x4fff,0xfe44,0x3f}, X {0x3e1e,0xf945,0x4fff,0xfe51,0x3f}, X {0x3ffe,0xf955,0x4fff,0xfe55,0x3f}, X {0x788e,0xfcaa,0x9fff,0xff2a,0x3f}, X {0xfa2e,0xfe54,0x3fff,0xff95,0x3f}, X {0xf94e,0xff29,0x7fff,0xffca,0x3f}, X {0xfc9e,0xff93,0xffff,0xffe4,0x3f}, X {0xfe3e,0xffc7,0xffff,0xfff1,0x3f}, X {0xff7e,0xffef,0xffff,0xfffb,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0x7ffe,0xfc38,0x1fff,0xff0e,0x3f}, X {0x3ffe,0xf911,0x4fff,0xfe44,0x3f}, X {0x3ffe,0xf945,0x4fff,0xfe51,0x3f}, X {0x3ffe,0xf955,0x4fff,0xfe55,0x3f}, X {0x7ffe,0xfcaa,0x9fff,0xff2a,0x3f}, X {0xfffe,0xfe54,0x3fff,0xff95,0x3f}, X {0xfffe,0xff29,0x7fff,0xffca,0x3f}, X {0xfffe,0xff93,0xffff,0xffe4,0x3f}, X {0xfffe,0xffc7,0xffff,0xfff1,0x3f}, X {0xfffe,0xffef,0xffff,0xfffb,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffef,0xffff,0x7ffb,0x3f}, X {0xfffe,0xffc7,0xffff,0x3ff1,0x3e}, X {0xfffe,0xff93,0xffff,0x9fe4,0x3c}, X {0xfffe,0xff29,0x7fff,0x4fca,0x39}, X {0xfffe,0xfe54,0x3fff,0x2f95,0x3a}, X {0x7ffe,0xfcaa,0x9fff,0x8f2a,0x38}, X {0x3ffe,0xf955,0x4fff,0xfe55,0x3f}, X {0x3ffe,0xf945,0x4fff,0x3e51,0x3c}, X {0x3ffe,0xf911,0x4fff,0x9e44,0x39}, X {0x7ffe,0xfc38,0x1fff,0x9f0e,0x39}, X {0xfffe,0xffff,0xffff,0x3fff,0x38}, X {0xfffe,0xffff,0xffff,0xffff,0x39}, X {0xfffe,0xffff,0xffff,0x9fff,0x39}, X {0xfffe,0xffff,0xffff,0x3fff,0x3c}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0x0,0x0,0x0,0x0,0x0} X}; X/* XObject Name: heart7 X Pels Wide: 71 X Pels High: 65 X Srcx: 416 X Srcy: 24 X*/ X Xunsigned short heart7[65][5] ={ X {0x0,0x0,0x0,0x0,0x0}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfc0e,0xffff,0xffff,0xffff,0x3f}, X {0xfcee,0xffff,0xffff,0xffff,0x3f}, X {0xfe7e,0xffff,0xffff,0xffff,0x3f}, X {0xff3e,0xffff,0xffff,0xffff,0x3f}, X {0x7f9e,0xfc38,0x1fff,0xff0e,0x3f}, X {0x3f9e,0xf911,0x4fff,0xfe44,0x3f}, X {0x3f9e,0xf945,0x4fff,0xfe51,0x3f}, X {0x3ffe,0xf955,0x4fff,0xfe55,0x3f}, X {0x788e,0xfcaa,0x9fff,0xff2a,0x3f}, X {0xfa2e,0xfe54,0x3fff,0xff95,0x3f}, X {0xf94e,0xff29,0x7fff,0xffca,0x3f}, X {0xfc9e,0xff93,0xffff,0xffe4,0x3f}, X {0xfe3e,0xffc7,0xffff,0xfff1,0x3f}, X {0xff7e,0xffef,0xffff,0xfffb,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0x3fff,0xfe1c,0xffff,0x3f}, X {0xfffe,0x9fff,0xfc88,0xffff,0x3f}, X {0xfffe,0x9fff,0xfca2,0xffff,0x3f}, X {0xfffe,0x9fff,0xfcaa,0xffff,0x3f}, X {0xfffe,0x3fff,0xfe55,0xffff,0x3f}, X {0xfffe,0x7fff,0xff2a,0xffff,0x3f}, X {0xfffe,0xffff,0xff94,0xffff,0x3f}, X {0xfffe,0xffff,0xffc9,0xffff,0x3f}, X {0xfffe,0xffff,0xffe3,0xffff,0x3f}, X {0xfffe,0xffff,0xfff7,0xffff,0x3f}, X {0x7ffe,0xfc38,0x1fff,0xff0e,0x3f}, X {0x3ffe,0xf911,0x4fff,0xfe44,0x3f}, X {0x3ffe,0xf945,0x4fff,0xfe51,0x3f}, X {0x3ffe,0xf955,0x4fff,0xfe55,0x3f}, X {0x7ffe,0xfcaa,0x9fff,0xff2a,0x3f}, X {0xfffe,0xfe54,0x3fff,0xff95,0x3f}, X {0xfffe,0xff29,0x7fff,0xffca,0x3f}, X {0xfffe,0xff93,0xffff,0xffe4,0x3f}, X {0xfffe,0xffc7,0xffff,0xfff1,0x3f}, X {0xfffe,0xffef,0xffff,0xfffb,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffef,0xffff,0x7ffb,0x3f}, X {0xfffe,0xffc7,0xffff,0x3ff1,0x3e}, X {0xfffe,0xff93,0xffff,0x9fe4,0x3c}, X {0xfffe,0xff29,0x7fff,0x4fca,0x39}, X {0xfffe,0xfe54,0x3fff,0x2f95,0x3a}, X {0x7ffe,0xfcaa,0x9fff,0x8f2a,0x38}, X {0x3ffe,0xf955,0x4fff,0xfe55,0x3f}, X {0x3ffe,0xf945,0x4fff,0xfe51,0x3c}, X {0x3ffe,0xf911,0x4fff,0xfe44,0x3c}, X {0x7ffe,0xfc38,0x1fff,0xff0e,0x3c}, X {0xfffe,0xffff,0xffff,0x7fff,0x3e}, X {0xfffe,0xffff,0xffff,0x3fff,0x3f}, X {0xfffe,0xffff,0xffff,0x9fff,0x3b}, X {0xfffe,0xffff,0xffff,0x1fff,0x38}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0x0,0x0,0x0,0x0,0x0} X}; X/* XObject Name: heart8 X Pels Wide: 71 X Pels High: 65 X Srcx: 112 X Srcy: 160 X*/ X Xunsigned short heart8[65][5] ={ X {0x0,0x0,0x0,0x0,0x0}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfe1e,0xffff,0xffff,0xffff,0x3f}, X {0xfcce,0xffff,0xffff,0xffff,0x3f}, X {0xfcce,0xffff,0xffff,0xffff,0x3f}, X {0xfe1e,0xffff,0xffff,0xffff,0x3f}, X {0x7cce,0xfc38,0x1fff,0xff0e,0x3f}, X {0x3cce,0xf911,0x4fff,0xfe44,0x3f}, X {0x3e1e,0xf945,0x4fff,0xfe51,0x3f}, X {0x3ffe,0xf955,0x4fff,0xfe55,0x3f}, X {0x788e,0xfcaa,0x9fff,0xff2a,0x3f}, X {0xfa2e,0xfe54,0x3fff,0xff95,0x3f}, X {0xf94e,0xff29,0x7fff,0xffca,0x3f}, X {0xfc9e,0xff93,0xffff,0xffe4,0x3f}, X {0xfe3e,0xffc7,0xffff,0xfff1,0x3f}, X {0xff7e,0xffef,0xffff,0xfffb,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0x7ffe,0xfc38,0x1fff,0xff0e,0x3f}, X {0x3ffe,0xf911,0x4fff,0xfe44,0x3f}, X {0x3ffe,0xf945,0x4fff,0xfe51,0x3f}, X {0x3ffe,0xf955,0x4fff,0xfe55,0x3f}, X {0x7ffe,0xfcaa,0x9fff,0xff2a,0x3f}, X {0xfffe,0xfe54,0x3fff,0xff95,0x3f}, X {0xfffe,0xff29,0x7fff,0xffca,0x3f}, X {0xfffe,0xff93,0xffff,0xffe4,0x3f}, X {0xfffe,0xffc7,0xffff,0xfff1,0x3f}, X {0xfffe,0xffef,0xffff,0xfffb,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffef,0xffff,0xfffb,0x3f}, X {0xfffe,0xffc7,0xffff,0xfff1,0x3f}, X {0xfffe,0xff93,0xffff,0xffe4,0x3f}, X {0xfffe,0xff29,0x7fff,0xffca,0x3f}, X {0xfffe,0xfe54,0x3fff,0xff95,0x3f}, X {0x7ffe,0xfcaa,0x9fff,0xff2a,0x3f}, X {0x3ffe,0xf955,0x4fff,0xfe55,0x3f}, X {0x3ffe,0xf945,0x4fff,0xfe51,0x3f}, X {0x3ffe,0xf911,0x4fff,0xfe44,0x3f}, X {0x7ffe,0xfc38,0x1fff,0xff0e,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffef,0xffff,0x7ffb,0x3f}, X {0xfffe,0xffc7,0xffff,0x3ff1,0x3e}, X {0xfffe,0xff93,0xffff,0x9fe4,0x3c}, X {0xfffe,0xff29,0x7fff,0x4fca,0x39}, X {0xfffe,0xfe54,0x3fff,0x2f95,0x3a}, X {0x7ffe,0xfcaa,0x9fff,0x8f2a,0x38}, X {0x3ffe,0xf955,0x4fff,0xfe55,0x3f}, X {0x3ffe,0xf945,0x4fff,0x3e51,0x3c}, X {0x3ffe,0xf911,0x4fff,0x9e44,0x39}, X {0x7ffe,0xfc38,0x1fff,0x9f0e,0x39}, X {0xfffe,0xffff,0xffff,0x3fff,0x3c}, X {0xfffe,0xffff,0xffff,0x9fff,0x39}, X {0xfffe,0xffff,0xffff,0x9fff,0x39}, X {0xfffe,0xffff,0xffff,0x3fff,0x3c}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0x0,0x0,0x0,0x0,0x0} X}; X/* XObject Name: heart9 X Pels Wide: 71 X Pels High: 65 X Srcx: 112 X Srcy: 92 X*/ X Xunsigned short heart9[65][5] ={ X {0x0,0x0,0x0,0x0,0x0}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfe1e,0xffff,0xffff,0xffff,0x3f}, X {0xfcce,0xffff,0xffff,0xffff,0x3f}, X {0xfcce,0xffff,0xffff,0xffff,0x3f}, X {0xfc1e,0xffff,0xffff,0xffff,0x3f}, X {0x7cfe,0xfc38,0x1fff,0xff0e,0x3f}, X {0x3cce,0xf911,0x4fff,0xfe44,0x3f}, X {0x3e1e,0xf945,0x4fff,0xfe51,0x3f}, X {0x3ffe,0xf955,0x4fff,0xfe55,0x3f}, X {0x788e,0xfcaa,0x9fff,0xff2a,0x3f}, X {0xfa2e,0xfe54,0x3fff,0xff95,0x3f}, X {0xf94e,0xff29,0x7fff,0xffca,0x3f}, X {0xfc9e,0xff93,0xffff,0xffe4,0x3f}, X {0xfe3e,0xffc7,0xffff,0xfff1,0x3f}, X {0xff7e,0xffef,0xffff,0xfffb,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0x7ffe,0xfc38,0x1fff,0xff0e,0x3f}, X {0x3ffe,0xf911,0x4fff,0xfe44,0x3f}, X {0x3ffe,0xf945,0x4fff,0xfe51,0x3f}, X {0x3ffe,0xf955,0x4fff,0xfe55,0x3f}, X {0x7ffe,0xfcaa,0x9fff,0xff2a,0x3f}, X {0xfffe,0xfe54,0x3fff,0xff95,0x3f}, X {0xfffe,0xff29,0x7fff,0xffca,0x3f}, X {0xfffe,0x3f93,0xfe1c,0xffe4,0x3f}, X {0xfffe,0x9fc7,0xfc88,0xfff1,0x3f}, X {0xfffe,0x9fef,0xfca2,0xfffb,0x3f}, X {0xfffe,0x9fff,0xfcaa,0xffff,0x3f}, X {0xfffe,0x3fff,0xfe55,0xffff,0x3f}, X {0xfffe,0x7fff,0xff2a,0xffff,0x3f}, X {0xfffe,0xffff,0xff94,0xffff,0x3f}, X {0xfffe,0xffff,0xffc9,0xffff,0x3f}, X {0xfffe,0xffef,0xffe3,0xfffb,0x3f}, X {0xfffe,0xffc7,0xfff7,0xfff1,0x3f}, X {0xfffe,0xff93,0xffff,0xffe4,0x3f}, X {0xfffe,0xff29,0x7fff,0xffca,0x3f}, X {0xfffe,0xfe54,0x3fff,0xff95,0x3f}, X {0x7ffe,0xfcaa,0x9fff,0xff2a,0x3f}, X {0x3ffe,0xf955,0x4fff,0xfe55,0x3f}, X {0x3ffe,0xf945,0x4fff,0xfe51,0x3f}, X {0x3ffe,0xf911,0x4fff,0xfe44,0x3f}, X {0x7ffe,0xfc38,0x1fff,0xff0e,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffef,0xffff,0x7ffb,0x3f}, X {0xfffe,0xffc7,0xffff,0x3ff1,0x3e}, X {0xfffe,0xff93,0xffff,0x9fe4,0x3c}, X {0xfffe,0xff29,0x7fff,0x4fca,0x39}, X {0xfffe,0xfe54,0x3fff,0x2f95,0x3a}, X {0x7ffe,0xfcaa,0x9fff,0x8f2a,0x38}, X {0x3ffe,0xf955,0x4fff,0xfe55,0x3f}, X {0x3ffe,0xf945,0x4fff,0x3e51,0x3c}, X {0x3ffe,0xf911,0x4fff,0x9e44,0x39}, X {0x7ffe,0xfc38,0x1fff,0x9f0e,0x3f}, X {0xfffe,0xffff,0xffff,0x1fff,0x3c}, X {0xfffe,0xffff,0xffff,0x9fff,0x39}, X {0xfffe,0xffff,0xffff,0x9fff,0x39}, X {0xfffe,0xffff,0xffff,0x3fff,0x3c}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0x0,0x0,0x0,0x0,0x0} X}; X/* XObject Name: heart10 X Pels Wide: 71 X Pels High: 65 X Srcx: 112 X Srcy: 24 X*/ X Xunsigned short heart10[65][5] ={ X {0x0,0x0,0x0,0x0,0x0}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xf866,0xffff,0xffff,0xffff,0x3f}, X {0xf326,0xffff,0xffff,0xffff,0x3f}, X {0xf326,0xffff,0xffff,0xffff,0x3f}, X {0xf326,0xffff,0xffff,0xffff,0x3f}, X {0x7326,0xfc38,0x1fff,0xff0e,0x3f}, X {0x3326,0xf911,0x4fff,0xfe44,0x3f}, X {0x3866,0xf945,0x4fff,0xfe51,0x3f}, X {0x3ffe,0xf955,0x4fff,0xfe55,0x3f}, X {0x788e,0xfcaa,0x9fff,0xff2a,0x3f}, X {0xfa2e,0xfe54,0x3fff,0xff95,0x3f}, X {0xf94e,0xff29,0x7fff,0xffca,0x3f}, X {0xfc9e,0x3f93,0xfe1c,0xffe4,0x3f}, X {0xfe3e,0x9fc7,0xfc88,0xfff1,0x3f}, X {0xff7e,0x9fef,0xfca2,0xfffb,0x3f}, X {0xfffe,0x9fff,0xfcaa,0xffff,0x3f}, X {0xfffe,0x3fff,0xfe55,0xffff,0x3f}, X {0xfffe,0x7fff,0xff2a,0xffff,0x3f}, X {0x7ffe,0xfc38,0x1f94,0xff0e,0x3f}, X {0x3ffe,0xf911,0x4fc9,0xfe44,0x3f}, X {0x3ffe,0xf945,0x4fe3,0xfe51,0x3f}, X {0x3ffe,0xf955,0x4ff7,0xfe55,0x3f}, X {0x7ffe,0xfcaa,0x9fff,0xff2a,0x3f}, X {0xfffe,0xfe54,0x3fff,0xff95,0x3f}, X {0xfffe,0xff29,0x7fff,0xffca,0x3f}, X {0xfffe,0xff93,0xffff,0xffe4,0x3f}, X {0xfffe,0xffc7,0xffff,0xfff1,0x3f}, X {0xfffe,0xffef,0xffff,0xfffb,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffef,0xffff,0xfffb,0x3f}, X {0xfffe,0xffc7,0xffff,0xfff1,0x3f}, X {0xfffe,0xff93,0xffff,0xffe4,0x3f}, X {0xfffe,0xff29,0x7fff,0xffca,0x3f}, X {0xfffe,0xfe54,0x3fff,0xff95,0x3f}, X {0x7ffe,0xfcaa,0x9fff,0xff2a,0x3f}, X {0x3ffe,0xf955,0x4ff7,0xfe55,0x3f}, X {0x3ffe,0xf945,0x4fe3,0xfe51,0x3f}, X {0x3ffe,0xf911,0x4fc9,0xfe44,0x3f}, X {0x7ffe,0xfc38,0x1f94,0xff0e,0x3f}, X {0xfffe,0x7fff,0xff2a,0xffff,0x3f}, X {0xfffe,0x3fff,0xfe55,0xffff,0x3f}, X {0xfffe,0x9fff,0xfcaa,0xffff,0x3f}, X {0xfffe,0x9fef,0xfca2,0x7ffb,0x3f}, X {0xfffe,0x9fc7,0xfc88,0x3ff1,0x3e}, X {0xfffe,0x3f93,0xfe1c,0x9fe4,0x3c}, X {0xfffe,0xff29,0x7fff,0x4fca,0x39}, X {0xfffe,0xfe54,0x3fff,0x2f95,0x3a}, X {0x7ffe,0xfcaa,0x9fff,0x8f2a,0x38}, X {0x3ffe,0xf955,0x4fff,0xfe55,0x3f}, X {0x3ffe,0xf945,0x4fff,0xe51,0x33}, X {0x3ffe,0xf911,0x4fff,0x6644,0x32}, X {0x7ffe,0xfc38,0x1fff,0x670e,0x32}, X {0xfffe,0xffff,0xffff,0x67ff,0x32}, X {0xfffe,0xffff,0xffff,0x67ff,0x32}, X {0xfffe,0xffff,0xffff,0x67ff,0x32}, X {0xfffe,0xffff,0xffff,0xfff,0x33}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0x0,0x0,0x0,0x0,0x0} X}; X/* XObject Name: heartj X Pels Wide: 71 X Pels High: 65 X Srcx: 112 X Srcy: 160 X*/ X Xunsigned short heartj[65][5] ={ X {0x0,0x0,0x0,0x0,0x0}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xf87e,0xffff,0xffff,0xffff,0x3f}, X {0xfcfe,0xffff,0xffff,0xffff,0x3f}, X {0xfcfe,0xffff,0xffff,0xffff,0x3f}, X {0x1cfe,0x0,0x0,0xfc00,0x3f}, X {0xdcce,0xffff,0xffff,0xfdff,0x3f}, X {0xdcce,0xf0e1,0xe000,0xfde3,0x3f}, X {0xde1e,0x6444,0xcaaa,0xfdc9,0x3f}, X {0xdffe,0x6514,0xd555,0xfd94,0x3f}, X {0xd88e,0x6554,0xc000,0xfdaa,0x3f}, X {0xda2e,0xf2a9,0xd7fe,0xfd9c,0x3f}, X {0xd94e,0x7953,0xc461,0xfdd5,0x3f}, X {0xdc9e,0xbca7,0xd5eb,0xfdd5,0x3f}, X {0xde3e,0xde4f,0xc6ff,0xfdd5,0x3f}, X {0xdf7e,0x1f1f,0xd33e,0xfdd5,0x3f}, X {0xdffe,0x7fbf,0xc9fb,0xfddd,0x3f}, X {0xdffe,0x7fff,0xe4f8,0xfd88,0x3f}, X {0xdffe,0x7e0f,0x727f,0xfd22,0x3f}, X {0xdffe,0x38a3,0x793f,0xfd2a,0x3f}, X {0xdffe,0xbaab,0xfc97,0xfd94,0x3f}, X {0xdffe,0x3aab,0xfc90,0xfdc9,0x3f}, X {0xdffe,0xf001,0xf13f,0xfde3,0x3f}, X {0xdffe,0x77fd,0xf660,0xfdd5,0x3f}, X {0xdffe,0x77bd,0xf0cf,0xfde3,0x3f}, X {0xdffe,0x771d,0xff9f,0xfdd5,0x3f}, X {0xdffe,0x760d,0xff37,0xfde3,0x3f}, X {0xdffe,0x764d,0xc177,0xfdd5,0x3f}, X {0xdffe,0x7f9,0x146b,0xfde3,0x3f}, X {0xdffe,0x7ff3,0x5577,0xfdfe,0x3f}, X {0xdffe,0x7fe7,0xc16b,0xfdfc,0x3f}, X {0xdffe,0x7fcf,0xff77,0xfdf9,0x3f}, X {0xdffe,0x419f,0xff6b,0xfdf3,0x3f}, X {0xdffe,0x553f,0xff77,0xfde7,0x3f}, X {0xdffe,0x1463,0xf06b,0xfdcf,0x3f}, X {0xdffe,0x61d5,0x3777,0xfdd9,0x3f}, X {0xdffe,0x7fe3,0x3776,0xfdd8,0x3f}, X {0xdffe,0xffd5,0x777c,0xfddc,0x3f}, X {0xdffe,0x87e3,0xf779,0xfdde,0x3f}, X {0xdffe,0x37d5,0xf703,0xfddf,0x3f}, X {0xdffe,0x47e3,0x7fe,0xfdc0,0x3f}, X {0xdffe,0x9fc9,0xae04,0xfdea,0x3f}, X {0xdffe,0x9f94,0xaef4,0xfdea,0x3f}, X {0x5ffe,0x4f2a,0x8e7e,0xfde2,0x3f}, X {0x5ffe,0x2722,0x3f7f,0xfdf8,0x3f}, X {0xdffe,0x9388,0xff0f,0xfdff,0x3f}, X {0xdffe,0xc9dd,0xff6f,0xfdfe,0x3f}, X {0xdffe,0x65d5,0x7c3e,0x7dfc,0x3f}, X {0xdffe,0xb1d5,0x3dff,0x3df9,0x3e}, X {0xdffe,0xd5d5,0x9ef5,0x9df2,0x3c}, X {0xdffe,0x11d5,0x4f61,0x4de5,0x39}, X {0xdffe,0xf59c,0xa7bf,0x2dca,0x3a}, X {0xdffe,0x1aa,0x5300,0x8d95,0x38}, X {0xdffe,0x5594,0x5355,0xfd94,0x3f}, X {0xdffe,0xa9c9,0x132a,0x3d91,0x3c}, X {0xdffe,0x3e3,0x8780,0x9dc3,0x39}, X {0xdffe,0xffff,0xffff,0x9dff,0x39}, X {0x1ffe,0x0,0x0,0x9c00,0x3f}, X {0xfffe,0xffff,0xffff,0x9fff,0x3f}, X {0xfffe,0xffff,0xffff,0x9fff,0x3f}, X {0xfffe,0xffff,0xffff,0xfff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0x0,0x0,0x0,0x0,0x0} X}; X/* XObject Name: heartq X Pels Wide: 71 X Pels High: 65 X Srcx: 112 X Srcy: 92 X*/ X Xunsigned short heartq[65][5] ={ X {0x0,0x0,0x0,0x0,0x0}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfe1e,0xffff,0xffff,0xffff,0x3f}, X {0xfcce,0xffff,0xffff,0xffff,0x3f}, X {0xfcce,0xffff,0xffff,0xffff,0x3f}, X {0x1cce,0x0,0x0,0xfc00,0x3f}, X {0xdcce,0xffff,0xffff,0xfdff,0x3f}, X {0xd44e,0xf0e1,0x9249,0xfd11,0x3f}, X {0xd01e,0xe444,0xa493,0xfd45,0x3f}, X {0xdffe,0xe514,0x8001,0xfd6d,0x3f}, X {0xd88e,0xe554,0xd7e4,0xfd29,0x3f}, X {0xda2e,0x72a9,0xaff2,0xfd93,0x3f}, X {0xd94e,0x3953,0x599b,0xfdc7,0x3f}, X {0xdc9e,0x9ca7,0x1eea,0xfdd7,0x3f}, X {0xde3e,0x4e4f,0x5bba,0xfdc7,0x3f}, X {0xdf7e,0x271f,0x1efb,0xfdd7,0x3f}, X {0xdffe,0x93bf,0x5dfa,0xfdc7,0x3f}, X {0xdffe,0x49ff,0x1bfa,0xfdd7,0x3f}, X {0xdffe,0x24ff,0x5cfb,0xfdc7,0x3f}, X {0xdffe,0x927f,0x1fb6,0xfdd7,0x3f}, X {0xdffe,0x493f,0x4c6e,0xfdc7,0x3f}, X {0xdffe,0x249f,0x17d9,0xfdd7,0x3f}, X {0xdffe,0x924f,0x583c,0xfdc7,0x3f}, X {0xdffe,0xf,0x1ffe,0xfdd7,0x3f}, X {0xdffe,0xffff,0x400f,0xfdc7,0x3f}, X {0xdffe,0x7,0x2aae,0xfdd7,0x3f}, X {0xdffe,0xbff7,0x800e,0xfdc7,0x3f}, X {0xdffe,0xb277,0xfffe,0xfdd7,0x3f}, X {0xdffe,0x3077,0x0,0xfdc6,0x3f}, X {0xdffe,0xf8f7,0xffff,0xfdd6,0x3f}, X {0xdffe,0xed87,0xfbeb,0xfdc6,0x3f}, X {0xdffe,0x7bf,0xf014,0xfdfe,0x3f}, X {0xdffe,0xefb1,0xdbeb,0xfdf0,0x3f}, X {0xdffe,0xffb5,0x8fff,0xfdf7,0x3f}, X {0xdffe,0x31,0x600,0xfdf7,0x3f}, X {0xdffe,0xfff5,0x26bf,0xfdf7,0x3f}, X {0xdffe,0xf1,0xfeb8,0xfdf7,0x3f}, X {0xdffe,0xaa75,0x3a,0xfdf0,0x3f}, X {0xdffe,0x171,0xfff8,0xfdff,0x3f}, X {0xdffe,0xfc75,0x3f,0xfdf8,0x3f}, X {0xdffe,0xd71,0x249e,0xfdf9,0x3f}, X {0xdffe,0xf475,0x924d,0xfdfc,0x3f}, X {0xdffe,0x1971,0x493b,0xfdfe,0x3f}, X {0xdffe,0xfc75,0x24b6,0xfdff,0x3f}, X {0xdffe,0x9d71,0x926f,0xfdff,0x3f}, X {0xdffe,0xec75,0xc92f,0xfdff,0x3f}, X {0xdffe,0xdd71,0xe4af,0xfdfe,0x3f}, X {0xdffe,0xbc75,0x726f,0x7dfc,0x3f}, X {0xdffe,0xed71,0x392e,0x3df9,0x3e}, X {0xdffe,0xbc75,0x9cab,0x9df2,0x3c}, X {0xdffe,0xcd71,0x4e6c,0x4de5,0x39}, X {0xdffe,0xfe64,0xa72f,0x2dca,0x3a}, X {0x5ffe,0x55ca,0x5395,0x8d95,0x38}, X {0x5ffe,0xdb,0x53c0,0xfd94,0x3f}, X {0x5ffe,0x92d5,0x13e4,0x591,0x3c}, X {0x5ffe,0x24c4,0x87c9,0x15c3,0x39}, X {0xdffe,0xffff,0xffff,0x9dff,0x39}, X {0x1ffe,0x0,0x0,0x9c00,0x39}, X {0xfffe,0xffff,0xffff,0x9fff,0x39}, X {0xfffe,0xffff,0xffff,0x9fff,0x39}, X {0xfffe,0xffff,0xffff,0x3fff,0x3c}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0x0,0x0,0x0,0x0,0x0} X}; X/* XObject Name: heartk X Pels Wide: 71 X Pels High: 65 X Srcx: 112 X Srcy: 24 X*/ X Xunsigned short heartk[65][5] ={ X {0x0,0x0,0x0,0x0,0x0}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfcce,0xffff,0xffff,0xffff,0x3f}, X {0xfcce,0xffff,0xffff,0xffff,0x3f}, X {0xfe4e,0xffff,0xffff,0xffff,0x3f}, X {0x1f0e,0x0,0x0,0xfc00,0x3f}, X {0xde4e,0xffff,0xffff,0xfdff,0x3f}, X {0xdcce,0x30e1,0xe38e,0xfdff,0x3f}, X {0xd9ce,0x2444,0xe000,0xfdff,0x3f}, X {0xdffe,0x2514,0xe38e,0xfdff,0x3f}, X {0xd88e,0x2554,0xe000,0xfdff,0x3f}, X {0xda2e,0xb2a9,0xebfe,0xfdfc,0x3f}, X {0xd94e,0x5953,0xe511,0xfdfc,0x3f}, X {0xdc9e,0x5ca7,0x555,0xfd00,0x3f}, X {0xde3e,0x5e4f,0xf5ab,0xfd54,0x3f}, X {0xdf7e,0x5f1f,0xf5ef,0xfd54,0x3f}, X {0xdffe,0x4fbf,0x5f7,0xfd00,0x3f}, X {0xdffe,0x37ff,0xe5c7,0xfdfc,0x3f}, X {0xdffe,0x83ff,0xe5ff,0xfd8c,0x3f}, X {0xdffe,0x5cff,0xe2c7,0xfdaf,0x3f}, X {0xdffe,0xc0ff,0xe97e,0xfdaf,0x3f}, X {0xdffe,0xf720,0xe481,0xfdaf,0x3f}, X {0xdffe,0xf02a,0x327e,0xfda0,0x3f}, X {0xdffe,0x1fea,0xb900,0xfdaa,0x3f}, X {0xdffe,0xec02,0xbcff,0xfdaa,0x3f}, X {0xdffe,0xd7e,0xbe00,0xfdbf,0x3f}, X {0xdffe,0xfd7e,0xbfff,0xfdbf,0x3f}, X {0xdffe,0x7e,0x2008,0xfd80,0x3f}, X {0xdffe,0xffde,0xe7e3,0xfdff,0x3f}, X {0xdffe,0x278e,0x7eb,0xfd80,0x3f}, X {0xdffe,0x706,0xfde3,0xfdbf,0x3f}, X {0xdffe,0x8f26,0x78eb,0xfdb2,0x3f}, X {0xdffe,0xdffe,0x7063,0xfdb0,0x3f}, X {0xdffe,0xf000,0xf26b,0xfdb8,0x3f}, X {0xdffe,0xf3ff,0xffe3,0xfdbd,0x3f}, X {0xdffe,0x200,0x8,0xfdbf,0x3f}, X {0xdffe,0xfefe,0x5fff,0xfdbf,0x3f}, X {0xdffe,0x3efe,0x5800,0xfdbf,0x3f}, X {0xdffe,0x9eaa,0x1bff,0xfda0,0x3f}, X {0xdffe,0x4eaa,0xfc00,0xfdab,0x3f}, X {0xdffe,0x2602,0x7bf,0xfdaa,0x3f}, X {0xdffe,0x93fa,0x77c0,0xfd82,0x3f}, X {0xdffe,0x4bfa,0x81bf,0xfdff,0x3f}, X {0xdffe,0xa3fa,0x9d71,0xfdff,0x3f}, X {0xdffe,0xd398,0xe0ff,0xfdff,0x3f}, X {0xdffe,0xd39f,0xf671,0xfdff,0x3f}, X {0x5ffe,0xd000,0xf977,0xfdfe,0x3f}, X {0x5ffe,0xd795,0x7d7b,0x7dfc,0x3f}, X {0x5ffe,0xd795,0x3d6a,0x3df9,0x3e}, X {0x5ffe,0x5000,0x9d55,0x9df2,0x3c}, X {0xdffe,0x539f,0x4d44,0x4de5,0x39}, X {0xdffe,0xeb9f,0xa6bf,0x2dca,0x3a}, X {0xdffe,0x3ff,0x5200,0x8d95,0x38}, X {0xdffe,0xe3ff,0x5238,0xfd94,0x3f}, X {0xdffe,0x3ff,0x1200,0xcd91,0x39}, X {0xdffe,0xe3ff,0x8638,0x9dc3,0x39}, X {0xdffe,0xffff,0xffff,0x3dff,0x39}, X {0x1ffe,0x0,0x0,0x7c00,0x38}, X {0xfffe,0xffff,0xffff,0x3fff,0x39}, X {0xfffe,0xffff,0xffff,0x9fff,0x39}, X {0xfffe,0xffff,0xffff,0x9fff,0x39}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0xfffe,0xffff,0xffff,0xffff,0x3f}, X {0x0,0x0,0x0,0x0,0x0} X}; ________This_Is_The_END________ if test `wc -c < heart.c` -ne 32748; then echo 'shar: heart.c was damaged during transit (should have been 32748 bytes)' fi fi ; : end of overwriting check echo 'x - klondike.h' if test -f klondike.h; then echo 'shar: not overwriting klondike.h'; else sed 's/^X//' << '________This_Is_The_END________' > klondike.h X/* X * Copyright 1990, Thomas E. Tkacik X * tkacik@kyzyl.mi.org X * X * Acknowledgments to Kent Quander allowing me to X * use and distribute his wonderfully drawn playing cards. X * X * Permission is given to copy and distribute for non-profit purposes. X * X */ X X#define NUMCARDS 54 /* number of different images */ X X#define COLOR(x) (((x)/13)&1) X#define VALUE(x) (((x)%13)+1) X#define SUIT(x) ((x)/13) X X/* window size and offset */ X#define SIDEBORDER 6 X#define TOPBORDER 4 X#define WINDOW_X 4 /* characters */ X#define WINDOW_Y 1 /* characters */ X#define ROWS 24 /* characters */ X#define COLS 74 /* characters */ X#define WIND_H (ROWS*12) X#define WIND_W (COLS*9) X X/* CARD size and offsets */ X#define CARD_W 71 X#define CARD_H 65 X#define TOP 6 X#define DECK 16 X#define LEFT (16 + DECK + CARD_W) X#define SUIT_SEP 1 X#define ROW_SEP 8 X#define BACK_SEP 6 X#define FACE_SEP 10 X X#define CARDSHORTS ((CARD_W/16)+((CARD_W%16)?1:0)) /* shorts per row */ X#define CARDSIZE (CARD_H * CARDSHORTS) /* shorts per image */ X Xextern int deck[52]; X Xextern int outcard[4]; /* number of cards played in each suit */ X Xextern int down[7][7]; /* cards down in each column */ Xextern int numdown[7]; /* number down cards in each column */ Xextern int up[7][13]; /* cards showing in each column */ Xextern int numup[7]; /* number of cards showing in each column */ X X/* individual cards */ Xextern unsigned short spadea[65][5]; Xextern unsigned short spade2[65][5]; Xextern unsigned short spade3[65][5]; Xextern unsigned short spade4[65][5]; Xextern unsigned short spade5[65][5]; Xextern unsigned short spade6[65][5]; Xextern unsigned short spade7[65][5]; Xextern unsigned short spade8[65][5]; Xextern unsigned short spade9[65][5]; Xextern unsigned short spade10[65][5]; Xextern unsigned short spadej[65][5]; Xextern unsigned short spadeq[65][5]; Xextern unsigned short spadek[65][5]; Xextern unsigned short hearta[65][5]; Xextern unsigned short heart2[65][5]; Xextern unsigned short heart3[65][5]; Xextern unsigned short heart4[65][5]; Xextern unsigned short heart5[65][5]; Xextern unsigned short heart6[65][5]; Xextern unsigned short heart7[65][5]; Xextern unsigned short heart8[65][5]; Xextern unsigned short heart9[65][5]; Xextern unsigned short heart10[65][5]; Xextern unsigned short heartj[65][5]; Xextern unsigned short heartq[65][5]; Xextern unsigned short heartk[65][5]; Xextern unsigned short cluba[65][5]; Xextern unsigned short club2[65][5]; Xextern unsigned short club3[65][5]; Xextern unsigned short club4[65][5]; Xextern unsigned short club5[65][5]; Xextern unsigned short club6[65][5]; Xextern unsigned short club7[65][5]; Xextern unsigned short club8[65][5]; Xextern unsigned short club9[65][5]; Xextern unsigned short club10[65][5]; Xextern unsigned short clubj[65][5]; Xextern unsigned short clubq[65][5]; Xextern unsigned short clubk[65][5]; Xextern unsigned short diama[65][5]; Xextern unsigned short diam2[65][5]; Xextern unsigned short diam3[65][5]; Xextern unsigned short diam4[65][5]; Xextern unsigned short diam5[65][5]; Xextern unsigned short diam6[65][5]; Xextern unsigned short diam7[65][5]; Xextern unsigned short diam8[65][5]; Xextern unsigned short diam9[65][5]; Xextern unsigned short diam10[65][5]; Xextern unsigned short diamj[65][5]; Xextern unsigned short diamq[65][5]; Xextern unsigned short diamk[65][5]; Xextern unsigned short back[65][5]; Xextern unsigned short blank[65][5]; Xextern unsigned short joker[65][5]; X X/* card image definitions */ Xextern unsigned short *images[NUMCARDS]; X X/* cards to be dragged */ Xextern unsigned short cards[12*FACE_SEP+CARD_H][5]; X X/* size of cards to be dragged, in pixels */ Xextern int h_cards, w_cards; X X X/* built-in pattern used for wrastop() */ Xextern unsigned short patwhite[]; Xextern unsigned short patblack[]; X X/* window discriptor */ Xextern int wn; X X#ifdef NOBEEP X#define beep() X#else X#define beep() wputc(wn, 007) X#endif ________This_Is_The_END________ if test `wc -c < klondike.h` -ne 3880; then echo 'shar: klondike.h was damaged during transit (should have been 3880 bytes)' fi fi ; : end of overwriting check echo 'x - window.c' if test -f window.c; then echo 'shar: not overwriting window.c'; else sed 's/^X//' << '________This_Is_The_END________' > window.c X/* X * Copyright 1990, Thomas E. Tkacik X * tkacik@kyzyl.mi.org X * X * Acknowledgments to Kent Quander allowing me to X * use and distribute his wonderfully drawn playing cards. X * X * Permission is given to copy and distribute for non-profit purposes. X * X */ X X/* X * window routines X */ X X#include <stdio.h> X#include <termio.h> X#include <sys/signal.h> X#include <sys/window.h> X#include <sys/font.h> X#include "klondike.h" X Xint (*signal())(); X X/* window discriptor */ Xint wn; X X/* window width and height */ Xint win_width, win_height; X Xint reborder(), leave(); Xvoid prewinit(); X X/* X * initialize window and draw initial borders X */ X Xinitwindow() X{ X /* pre-check if things are ok --- no need to call iswind() */ X X prewinit(); X X /* now initialize the tam routines */ X X winit(); X X /* open the playing window */ X X if((wn = wcreate(WINDOW_Y, WINDOW_X, ROWS, COLS, NBORDER)) == -1) { X (void)fprintf(stderr, "could not open window wn = %d\n",wn); X wexit(1); X } X X /* draw the initial border around the playing region */ X X initborder(); X X /* set up function keys */ X X wslk(wn, 0, " VEGAS HOUSE REPLAY QUIT", X " RULES RULES HAND"); X wuser(wn, "klondike"); X X /* allow mouse inputs in 8 bit mode */ X X keypad(0,1); X X /* turn off the cursor */ X X wputs(wn,"\033[=1C"); X X /* catch the signals */ X X (void)signal(SIGHUP, leave); X (void)signal(SIGINT, leave); X (void)signal(SIGQUIT, leave); X (void)signal(SIGWIND, reborder); X} X X/* X * draw the initial border around the playing window X */ X Xinitborder() X{ X struct uwdata win; X X /* determine the initial window size in pixels */ X X (void)ioctl(wn, WIOCGETD, &win); X X /* save the size so that everyone can use it */ X X win_width = win.uw_width; X win_height = win.uw_height; X X /* draw the border in the screen image */ X X wrastop(wn, (unsigned short *)0, 0, (unsigned short *)0, 0, X 0, 0, 0, 0, X win_width, TOPBORDER, SRCPAT, DSTSRC, patwhite); X wrastop(wn, (unsigned short *)0, 0, (unsigned short *)0, 0, X 0, 0, 0, win_height-TOPBORDER, X win_width, TOPBORDER, SRCPAT, DSTSRC, patwhite); X wrastop(wn, (unsigned short *)0, 0, (unsigned short *)0, 0, X 0, 0, 0, 0, X SIDEBORDER, win_height, SRCPAT, DSTSRC, patwhite); X wrastop(wn, (unsigned short *)0, 0, (unsigned short *)0, 0, X 0, 0, win_width-SIDEBORDER, 0, X SIDEBORDER, win_height, SRCPAT, DSTSRC, patwhite); X} X X/* X * catch SIGWIND -- draw border as forground or background X */ X Xreborder() X{ X unsigned short *pat; X struct uwdata win; X X /* determine if the window is on top */ X X (void)ioctl(wn, WIOCGETD, &win); X X /* if current window then add border interior, else remove it */ X X pat = (win.uw_uflags & KBDWIN) ? patwhite : patblack; X X wrastop(wn, (unsigned short *)0, 0, (unsigned short *)0, 0, X 0, 0, 1, 1, X win_width-2, TOPBORDER-2, SRCPAT, DSTSRC, pat); X wrastop(wn, (unsigned short *)0, 0, (unsigned short *)0, 0, X 0, 0, 1, win_height-TOPBORDER+1, X win_width-2, TOPBORDER-2, SRCPAT, DSTSRC, pat); X wrastop(wn, (unsigned short *)0, 0, (unsigned short *)0, 0, X 0, 0, 1, 1, X SIDEBORDER-2, win_height-2, SRCPAT, DSTSRC, pat); X wrastop(wn, (unsigned short *)0, 0, (unsigned short *)0, 0, X 0, 0, win_width-SIDEBORDER+1, 1, X SIDEBORDER-2, win_height-2, SRCPAT, DSTSRC, pat); X X /* reset signal trap */ X X (void) signal(SIGWIND, reborder); X} X X/* X * SIGINT, SIGQUIT -- close windows and cleanup X */ X Xleave() X{ X wdelete(wn); X wexit(0); X} ________This_Is_The_END________ if test `wc -c < window.c` -ne 3402; then echo 'shar: window.c was damaged during transit (should have been 3402 bytes)' fi fi ; : end of overwriting check exit 0 -- Tom Tkacik | tkacik@kyzyl.mi.org | To rent this space, call 1-800-555-QUIP. tkacik@hobbes.cs.gmr.com | -- David H. Brierley Home: dave@galaxia.newport.ri.us; Work: dhb@quahog.ssd.ray.com Send comp.sources.3b1 submissions to comp-sources-3b1@galaxia.newport.ri.us %% Can I be excused, my brain is full. **