argv@island.uu.net (Dan Heller) (07/20/89)
Submitted-by: Lars Huttar <huttar@svax.cs.cornell.edu> Posting-number: Volume 4, Issue 62 Archive-name: xfish/part01 #! /bin/sh # This is a shell archive. Remove anything before this line, then feed it # into a shell via "sh file" or similar. To overwrite existing files, # type "sh file -c". # The tool that generated this appeared in the comp.sources.unix newsgroup; # send mail to comp-sources-unix@uunet.uu.net if you want that tool. # If this archive is complete, you will see the following message at the end: # "End of shell archive." # Contents: Makefile blimp.li blimp.lm blimp.ri blimp.rm eye.li eye.lm # eye.ri eye.rm face.li face.lm face.ri face.rm fork.li fork.lm # fork.ri fork.rm new.li new.lm new.ri new.rm orig.li orig.lm # orig.ri orig.rm xfish.c xfish.man # Wrapped by argv@island on Wed Jul 19 16:09:15 1989 PATH=/bin:/usr/bin:/usr/ucb ; export PATH if test -f 'Makefile' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'Makefile'\" else echo shar: Extracting \"'Makefile'\" \(256 characters\) sed "s/^X//" >'Makefile' <<'END_OF_FILE' X# makefile for xfish.c. Pretty self-explanatory; just "make xfish". X XINCLUDES = X XCC=cc X XXLIB = -lX11 XCFLAGS = $(INCLUDES) -O XCLIBS = X X.SUFFIXES: .o .h .c .a X XOBJS = xfish.o X Xall: xfish X Xxfish: $(OBJS) X $(CC) $(CFLAGS) -o xfish $(OBJS) $(XLIB) $(CLIBS) X END_OF_FILE if test 256 -ne `wc -c <'Makefile'`; then echo shar: \"'Makefile'\" unpacked with wrong size! fi # end of 'Makefile' fi if test -f 'blimp.li' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'blimp.li'\" else echo shar: Extracting \"'blimp.li'\" \(479 characters\) sed "s/^X//" >'blimp.li' <<'END_OF_FILE' X#define blimp_width 32 X#define blimp_height 16 Xstatic char blimp_bits[] = { X 0x00, 0xfc, 0x0f, 0x00, 0x80, 0x03, 0x70, 0x00, 0x60, 0x00, 0x80, 0x41, X 0x18, 0x00, 0x00, 0x62, 0x04, 0x00, 0x00, 0x54, 0x02, 0x00, 0x00, 0x48, X 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x78, 0x02, 0x00, 0x00, 0x4c, X 0x04, 0x00, 0x80, 0x54, 0xb8, 0x42, 0x10, 0x63, 0x60, 0x14, 0xa5, 0x41, X 0x80, 0xab, 0x7a, 0x00, 0x00, 0xfe, 0x0f, 0x00, 0x00, 0xfc, 0x0f, 0x00, X 0x00, 0xf8, 0x07, 0x00}; END_OF_FILE if test 479 -ne `wc -c <'blimp.li'`; then echo shar: \"'blimp.li'\" unpacked with wrong size! fi # end of 'blimp.li' fi if test -f 'blimp.lm' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'blimp.lm'\" else echo shar: Extracting \"'blimp.lm'\" \(525 characters\) sed "s/^X//" >'blimp.lm' <<'END_OF_FILE' X#define blimp_width 32 X#define blimp_height 16 X#define blimp_x_hot -1 X#define blimp_y_hot -1 Xstatic char blimp_bits[] = { X 0x00, 0xfc, 0x0f, 0x00, 0x80, 0xff, 0x7f, 0x00, 0xe0, 0xff, 0xff, 0x41, X 0xf8, 0xff, 0xff, 0x63, 0xfc, 0xff, 0xff, 0x77, 0xfe, 0xff, 0xff, 0x7f, X 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f, 0xfe, 0xff, 0xff, 0x7f, X 0xfc, 0xff, 0xff, 0x77, 0xf8, 0xff, 0xff, 0x63, 0xe0, 0xff, 0xff, 0x41, X 0x80, 0xff, 0x7f, 0x00, 0x00, 0xfe, 0x0f, 0x00, 0x00, 0xfc, 0x0f, 0x00, X 0x00, 0xf8, 0x07, 0x00}; END_OF_FILE if test 525 -ne `wc -c <'blimp.lm'`; then echo shar: \"'blimp.lm'\" unpacked with wrong size! fi # end of 'blimp.lm' fi if test -f 'blimp.ri' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'blimp.ri'\" else echo shar: Extracting \"'blimp.ri'\" \(479 characters\) sed "s/^X//" >'blimp.ri' <<'END_OF_FILE' X#define blimp_width 32 X#define blimp_height 16 Xstatic char blimp_bits[] = { X 0x00, 0xfc, 0x0f, 0x00, 0x80, 0x03, 0x70, 0x00, 0x60, 0x00, 0x80, 0x41, X 0x18, 0x00, 0x00, 0x62, 0x04, 0x00, 0x00, 0x54, 0x02, 0x00, 0x00, 0x48, X 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x78, 0x02, 0x00, 0x00, 0x4c, X 0x04, 0x00, 0x80, 0x54, 0xb8, 0x42, 0x10, 0x63, 0x60, 0x14, 0xa5, 0x41, X 0x80, 0xab, 0x7a, 0x00, 0x00, 0xfe, 0x0f, 0x00, 0x00, 0xfc, 0x0f, 0x00, X 0x00, 0xf8, 0x07, 0x00}; END_OF_FILE if test 479 -ne `wc -c <'blimp.ri'`; then echo shar: \"'blimp.ri'\" unpacked with wrong size! fi # end of 'blimp.ri' fi if test -f 'blimp.rm' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'blimp.rm'\" else echo shar: Extracting \"'blimp.rm'\" \(525 characters\) sed "s/^X//" >'blimp.rm' <<'END_OF_FILE' X#define blimp_width 32 X#define blimp_height 16 X#define blimp_x_hot -1 X#define blimp_y_hot -1 Xstatic char blimp_bits[] = { X 0x00, 0xfc, 0x0f, 0x00, 0x80, 0xff, 0x7f, 0x00, 0xe0, 0xff, 0xff, 0x41, X 0xf8, 0xff, 0xff, 0x63, 0xfc, 0xff, 0xff, 0x77, 0xfe, 0xff, 0xff, 0x7f, X 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f, 0xfe, 0xff, 0xff, 0x7f, X 0xfc, 0xff, 0xff, 0x77, 0xf8, 0xff, 0xff, 0x63, 0xe0, 0xff, 0xff, 0x41, X 0x80, 0xff, 0x7f, 0x00, 0x00, 0xfe, 0x0f, 0x00, 0x00, 0xfc, 0x0f, 0x00, X 0x00, 0xf8, 0x07, 0x00}; END_OF_FILE if test 525 -ne `wc -c <'blimp.rm'`; then echo shar: \"'blimp.rm'\" unpacked with wrong size! fi # end of 'blimp.rm' fi if test -f 'eye.li' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'eye.li'\" else echo shar: Extracting \"'eye.li'\" \(272 characters\) sed "s/^X//" >'eye.li' <<'END_OF_FILE' X#define eye_width 16 X#define eye_height 16 Xstatic char eye_bits[] = { X 0xc0, 0x07, 0x30, 0x18, 0x88, 0x20, 0x84, 0x40, 0x6e, 0x43, 0x1e, 0x84, X 0x0b, 0x80, 0x0b, 0x80, 0x0b, 0x80, 0x0e, 0x80, 0x16, 0x40, 0x24, 0x40, X 0x08, 0x20, 0x30, 0x18, 0xc0, 0x07, 0x00, 0x00}; END_OF_FILE if test 272 -ne `wc -c <'eye.li'`; then echo shar: \"'eye.li'\" unpacked with wrong size! fi # end of 'eye.li' fi if test -f 'eye.lm' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'eye.lm'\" else echo shar: Extracting \"'eye.lm'\" \(314 characters\) sed "s/^X//" >'eye.lm' <<'END_OF_FILE' X#define eye_width 16 X#define eye_height 16 X#define eye_x_hot -1 X#define eye_y_hot -1 Xstatic char eye_bits[] = { X 0xc0, 0x07, 0xf0, 0x1f, 0xf8, 0x3f, 0xfc, 0x7f, 0xfe, 0x7f, 0xfe, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfc, 0x7f, X 0xf8, 0x3f, 0xf0, 0x1f, 0xc0, 0x07, 0x00, 0x00}; END_OF_FILE if test 314 -ne `wc -c <'eye.lm'`; then echo shar: \"'eye.lm'\" unpacked with wrong size! fi # end of 'eye.lm' fi if test -f 'eye.ri' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'eye.ri'\" else echo shar: Extracting \"'eye.ri'\" \(272 characters\) sed "s/^X//" >'eye.ri' <<'END_OF_FILE' X#define eye_width 16 X#define eye_height 16 Xstatic char eye_bits[] = { X 0xe0, 0x03, 0x18, 0x0c, 0x04, 0x10, 0x02, 0x24, 0x42, 0x24, 0x01, 0x41, X 0x01, 0x44, 0x01, 0x44, 0x01, 0x68, 0x01, 0x58, 0x82, 0x34, 0x42, 0x3b, X 0x04, 0x3e, 0x18, 0x1d, 0xe0, 0x03, 0x00, 0x00}; END_OF_FILE if test 272 -ne `wc -c <'eye.ri'`; then echo shar: \"'eye.ri'\" unpacked with wrong size! fi # end of 'eye.ri' fi if test -f 'eye.rm' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'eye.rm'\" else echo shar: Extracting \"'eye.rm'\" \(314 characters\) sed "s/^X//" >'eye.rm' <<'END_OF_FILE' X#define eye_width 16 X#define eye_height 16 X#define eye_x_hot -1 X#define eye_y_hot -1 Xstatic char eye_bits[] = { X 0xe0, 0x03, 0xf8, 0x0f, 0xfc, 0x1f, 0xfe, 0x3f, 0xfe, 0x3f, 0xff, 0x7f, X 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xfe, 0x3f, 0xfe, 0x3f, X 0xfc, 0x3f, 0xf8, 0x1f, 0xe0, 0x03, 0x00, 0x00}; END_OF_FILE if test 314 -ne `wc -c <'eye.rm'`; then echo shar: \"'eye.rm'\" unpacked with wrong size! fi # end of 'eye.rm' fi if test -f 'face.li' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'face.li'\" else echo shar: Extracting \"'face.li'\" \(875 characters\) sed "s/^X//" >'face.li' <<'END_OF_FILE' X#define face_width 32 X#define face_height 32 Xstatic char face_bits[] = { X 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x1c, 0x70, 0x00, 0x00, 0x03, 0x80, 0x01, X 0x80, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x04, 0x20, 0x00, 0x00, 0x08, X 0x10, 0x00, 0x00, 0x10, 0x08, 0x00, 0x00, 0x20, 0x08, 0x00, 0x70, 0x20, X 0x04, 0x00, 0x88, 0x40, 0x04, 0x18, 0x88, 0x40, 0x04, 0x18, 0x88, 0x40, X 0x02, 0x00, 0x70, 0x80, 0x02, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x80, X 0x02, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x82, X 0x82, 0x00, 0x00, 0x82, 0x84, 0x00, 0x00, 0x5c, 0x54, 0x00, 0x00, 0x44, X 0xa4, 0x01, 0x00, 0x42, 0x08, 0x07, 0x00, 0x23, 0x08, 0x9f, 0xef, 0x21, X 0x10, 0xfe, 0xbf, 0x10, 0x20, 0xf0, 0x80, 0x08, 0x40, 0xf0, 0x7f, 0x04, X 0x80, 0x00, 0x2f, 0x02, 0x00, 0x03, 0x80, 0x01, 0x00, 0x1c, 0x70, 0x00, X 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00}; END_OF_FILE if test 875 -ne `wc -c <'face.li'`; then echo shar: \"'face.li'\" unpacked with wrong size! fi # end of 'face.li' fi if test -f 'face.lm' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'face.lm'\" else echo shar: Extracting \"'face.lm'\" \(919 characters\) sed "s/^X//" >'face.lm' <<'END_OF_FILE' X#define face_width 32 X#define face_height 32 X#define face_x_hot -1 X#define face_y_hot -1 Xstatic char face_bits[] = { X 0x00, 0xe0, 0x0f, 0x00, 0x00, 0xfc, 0x7f, 0x00, 0x00, 0xff, 0xff, 0x01, X 0x80, 0xff, 0xff, 0x03, 0xc0, 0xff, 0xff, 0x07, 0xe0, 0xff, 0xff, 0x0f, X 0xf0, 0xff, 0xff, 0x1f, 0xf8, 0xff, 0xff, 0x3f, 0xf8, 0xff, 0xff, 0x3f, X 0xfc, 0xff, 0x8f, 0x7f, 0xfc, 0xff, 0x8f, 0x7f, 0xfc, 0xff, 0x8f, 0x7f, X 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, X 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, X 0xfe, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, 0x7f, X 0xfc, 0xff, 0xff, 0x7f, 0xf8, 0xff, 0xff, 0x3f, 0xf8, 0xff, 0xff, 0x3f, X 0xf0, 0xff, 0xff, 0x1f, 0xe0, 0xff, 0xff, 0x0f, 0xc0, 0xff, 0xff, 0x07, X 0x80, 0xff, 0xff, 0x03, 0x00, 0xff, 0xff, 0x01, 0x00, 0xfc, 0x7f, 0x00, X 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00}; END_OF_FILE if test 919 -ne `wc -c <'face.lm'`; then echo shar: \"'face.lm'\" unpacked with wrong size! fi # end of 'face.lm' fi if test -f 'face.ri' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'face.ri'\" else echo shar: Extracting \"'face.ri'\" \(919 characters\) sed "s/^X//" >'face.ri' <<'END_OF_FILE' X#define face_width 32 X#define face_height 32 X#define face_x_hot -1 X#define face_y_hot -1 Xstatic char face_bits[] = { X 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x1c, 0x70, 0x00, 0x00, 0x03, 0x80, 0x01, X 0x80, 0x40, 0x04, 0x02, 0x40, 0x06, 0xc0, 0x04, 0xa0, 0x01, 0x00, 0x0b, X 0x10, 0x00, 0x00, 0x10, 0x08, 0x00, 0x00, 0x20, 0x08, 0x00, 0x00, 0x20, X 0x04, 0x00, 0x00, 0x40, 0x04, 0xe0, 0x0f, 0x40, 0x04, 0x18, 0x30, 0x40, X 0x02, 0x04, 0x40, 0x80, 0x02, 0x02, 0x80, 0x80, 0x02, 0x01, 0x00, 0x81, X 0x02, 0x01, 0x00, 0x81, 0x82, 0x00, 0x00, 0x82, 0x82, 0x00, 0x00, 0x82, X 0x82, 0x00, 0x00, 0x82, 0x84, 0x00, 0x00, 0x42, 0x84, 0x00, 0x00, 0x42, X 0x84, 0x00, 0x00, 0x42, 0x88, 0x00, 0x00, 0x22, 0x88, 0x00, 0x00, 0x22, X 0x10, 0x01, 0x00, 0x11, 0x20, 0x01, 0x00, 0x09, 0x40, 0x02, 0x80, 0x04, X 0x80, 0x1c, 0x70, 0x02, 0x00, 0xe3, 0x8f, 0x01, 0x00, 0x1c, 0x70, 0x00, X 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00}; END_OF_FILE if test 919 -ne `wc -c <'face.ri'`; then echo shar: \"'face.ri'\" unpacked with wrong size! fi # end of 'face.ri' fi if test -f 'face.rm' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'face.rm'\" else echo shar: Extracting \"'face.rm'\" \(919 characters\) sed "s/^X//" >'face.rm' <<'END_OF_FILE' X#define face_width 32 X#define face_height 32 X#define face_x_hot -1 X#define face_y_hot -1 Xstatic char face_bits[] = { X 0x00, 0xe0, 0x0f, 0x00, 0x00, 0xfc, 0x7f, 0x00, 0x00, 0xff, 0xff, 0x01, X 0x80, 0xff, 0xff, 0x03, 0xc0, 0xff, 0xff, 0x07, 0xe0, 0xff, 0xff, 0x0f, X 0xf0, 0xff, 0xff, 0x1f, 0xf8, 0xff, 0xff, 0x3f, 0xf8, 0xff, 0xff, 0x3f, X 0xfc, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, 0x7f, 0xfc, 0x1f, 0xf0, 0x7f, X 0xfe, 0x07, 0xc0, 0xff, 0xfe, 0x03, 0x80, 0xff, 0xfe, 0x01, 0x00, 0xff, X 0xfe, 0x01, 0x00, 0xff, 0xfe, 0x00, 0x00, 0xfe, 0xfe, 0x00, 0x00, 0xfe, X 0xfe, 0x00, 0x00, 0xfe, 0xfc, 0x00, 0x00, 0x7e, 0xfc, 0x00, 0x00, 0x7e, X 0xfc, 0x00, 0x00, 0x7e, 0xf8, 0x00, 0x00, 0x3e, 0xf8, 0x00, 0x00, 0x3e, X 0xf0, 0x01, 0x00, 0x1f, 0xe0, 0x01, 0x00, 0x0f, 0xc0, 0x03, 0x80, 0x07, X 0x80, 0x1f, 0xf0, 0x03, 0x00, 0xff, 0xff, 0x01, 0x00, 0xfc, 0x7f, 0x00, X 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00}; END_OF_FILE if test 919 -ne `wc -c <'face.rm'`; then echo shar: \"'face.rm'\" unpacked with wrong size! fi # end of 'face.rm' fi if test -f 'fork.li' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'fork.li'\" else echo shar: Extracting \"'fork.li'\" \(476 characters\) sed "s/^X//" >'fork.li' <<'END_OF_FILE' X#define fork_width 16 X#define fork_height 32 Xstatic char fork_bits[] = { X 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, X 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0xc0, 0x01, X 0xe0, 0x01, 0xe0, 0x01, 0xf0, 0x01, 0xf0, 0x00, 0xf8, 0x00, 0xfc, 0x00, X 0xfc, 0x00, 0xfc, 0x00, 0xf4, 0x01, 0xd4, 0x01, 0x54, 0x01, 0x54, 0x01, X 0x54, 0x01, 0x52, 0x01, 0x4a, 0x01, 0x29, 0x01, 0xa4, 0x00, 0x90, 0x00, X 0x40, 0x00, 0x00, 0x00}; END_OF_FILE if test 476 -ne `wc -c <'fork.li'`; then echo shar: \"'fork.li'\" unpacked with wrong size! fi # end of 'fork.li' fi if test -f 'fork.lm' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'fork.lm'\" else echo shar: Extracting \"'fork.lm'\" \(476 characters\) sed "s/^X//" >'fork.lm' <<'END_OF_FILE' X#define fork_width 16 X#define fork_height 32 Xstatic char fork_bits[] = { X 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, X 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0xc0, 0x01, X 0xe0, 0x01, 0xe0, 0x01, 0xf0, 0x01, 0xf0, 0x00, 0xf8, 0x00, 0xfc, 0x00, X 0xfc, 0x00, 0xfc, 0x00, 0xf4, 0x01, 0xd4, 0x01, 0x54, 0x01, 0x54, 0x01, X 0x54, 0x01, 0x52, 0x01, 0x4a, 0x01, 0x29, 0x01, 0xa4, 0x00, 0x90, 0x00, X 0x40, 0x00, 0x00, 0x00}; END_OF_FILE if test 476 -ne `wc -c <'fork.lm'`; then echo shar: \"'fork.lm'\" unpacked with wrong size! fi # end of 'fork.lm' fi if test -f 'fork.ri' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'fork.ri'\" else echo shar: Extracting \"'fork.ri'\" \(520 characters\) sed "s/^X//" >'fork.ri' <<'END_OF_FILE' X#define fork_width 16 X#define fork_height 32 X#define fork_x_hot -1 X#define fork_y_hot -1 Xstatic char fork_bits[] = { X 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, X 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x40, 0x04, X 0x20, 0x04, 0x20, 0x04, 0x10, 0x04, 0x10, 0x02, 0x08, 0x02, 0x04, 0x02, X 0x04, 0x02, 0x04, 0x02, 0x14, 0x04, 0x54, 0x04, 0x54, 0x05, 0x54, 0x05, X 0x54, 0x05, 0x5a, 0x05, 0x6a, 0x05, 0xad, 0x05, 0xb6, 0x02, 0xdc, 0x02, X 0x70, 0x01, 0xc0, 0x00}; END_OF_FILE if test 520 -ne `wc -c <'fork.ri'`; then echo shar: \"'fork.ri'\" unpacked with wrong size! fi # end of 'fork.ri' fi if test -f 'fork.rm' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'fork.rm'\" else echo shar: Extracting \"'fork.rm'\" \(520 characters\) sed "s/^X//" >'fork.rm' <<'END_OF_FILE' X#define fork_width 16 X#define fork_height 32 X#define fork_x_hot -1 X#define fork_y_hot -1 Xstatic char fork_bits[] = { X 0x80, 0x07, 0x80, 0x07, 0x80, 0x07, 0x80, 0x07, 0x80, 0x07, 0x80, 0x07, X 0x80, 0x07, 0x80, 0x07, 0x80, 0x07, 0x80, 0x07, 0x80, 0x07, 0xc0, 0x07, X 0xe0, 0x07, 0xe0, 0x07, 0xf0, 0x07, 0xf0, 0x03, 0xf8, 0x03, 0xfc, 0x03, X 0xfc, 0x03, 0xfc, 0x03, 0xfc, 0x07, 0xfc, 0x07, 0xfc, 0x07, 0xfc, 0x07, X 0xfc, 0x07, 0xfe, 0x07, 0xfe, 0x07, 0xff, 0x07, 0xfe, 0x03, 0xfc, 0x03, X 0xf0, 0x01, 0xc0, 0x00}; END_OF_FILE if test 520 -ne `wc -c <'fork.rm'`; then echo shar: \"'fork.rm'\" unpacked with wrong size! fi # end of 'fork.rm' fi if test -f 'new.li' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'new.li'\" else echo shar: Extracting \"'new.li'\" \(272 characters\) sed "s/^X//" >'new.li' <<'END_OF_FILE' X#define new_width 16 X#define new_height 16 Xstatic char new_bits[] = { X 0xfc, 0x01, 0x03, 0x06, 0xc6, 0x88, 0x1a, 0x91, 0x68, 0xd0, 0xa0, 0xa0, X 0x00, 0x81, 0x00, 0x81, 0xa0, 0xb0, 0x68, 0xd0, 0x1a, 0xc8, 0x06, 0x88, X 0x1f, 0x84, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00}; END_OF_FILE if test 272 -ne `wc -c <'new.li'`; then echo shar: \"'new.li'\" unpacked with wrong size! fi # end of 'new.li' fi if test -f 'new.lm' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'new.lm'\" else echo shar: Extracting \"'new.lm'\" \(314 characters\) sed "s/^X//" >'new.lm' <<'END_OF_FILE' X#define new_width 16 X#define new_height 16 X#define new_x_hot -1 X#define new_y_hot -1 Xstatic char new_bits[] = { X 0xfc, 0x01, 0xff, 0x07, 0xfe, 0x8f, 0xfa, 0x9f, 0xe8, 0xdf, 0xa0, 0xff, X 0x00, 0xff, 0x00, 0xff, 0xa0, 0xff, 0xe8, 0xdf, 0xfa, 0xcf, 0xfe, 0x8f, X 0xff, 0x87, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00}; END_OF_FILE if test 314 -ne `wc -c <'new.lm'`; then echo shar: \"'new.lm'\" unpacked with wrong size! fi # end of 'new.lm' fi if test -f 'new.ri' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'new.ri'\" else echo shar: Extracting \"'new.ri'\" \(272 characters\) sed "s/^X//" >'new.ri' <<'END_OF_FILE' X#define new_width 16 X#define new_height 16 Xstatic char new_bits[] = { X 0x80, 0x3f, 0x60, 0xc0, 0x11, 0x63, 0x89, 0x58, 0x0b, 0x16, 0x05, 0x05, X 0x81, 0x00, 0x81, 0x00, 0x0d, 0x05, 0x0b, 0x16, 0x13, 0x58, 0x11, 0x60, X 0x21, 0xf8, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00}; END_OF_FILE if test 272 -ne `wc -c <'new.ri'`; then echo shar: \"'new.ri'\" unpacked with wrong size! fi # end of 'new.ri' fi if test -f 'new.rm' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'new.rm'\" else echo shar: Extracting \"'new.rm'\" \(314 characters\) sed "s/^X//" >'new.rm' <<'END_OF_FILE' X#define new_width 16 X#define new_height 16 X#define new_x_hot -1 X#define new_y_hot -1 Xstatic char new_bits[] = { X 0x80, 0x3f, 0xe0, 0xff, 0xf1, 0x7f, 0xf9, 0x5f, 0xfb, 0x17, 0xff, 0x05, X 0xff, 0x00, 0xff, 0x00, 0xff, 0x05, 0xfb, 0x17, 0xf3, 0x5f, 0xf1, 0x7f, X 0xe1, 0xff, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00}; END_OF_FILE if test 314 -ne `wc -c <'new.rm'`; then echo shar: \"'new.rm'\" unpacked with wrong size! fi # end of 'new.rm' fi if test -f 'orig.li' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'orig.li'\" else echo shar: Extracting \"'orig.li'\" \(520 characters\) sed "s/^X//" >'orig.li' <<'END_OF_FILE' X#define orig_width 32 X#define orig_height 16 X#define orig_x_hot -1 X#define orig_y_hot -1 Xstatic char orig_bits[] = { X 0x00, 0xc0, 0x07, 0x00, 0x00, 0xb0, 0x06, 0x00, 0x80, 0x7f, 0x03, 0xe0, X 0xe0, 0x83, 0x03, 0xb0, 0xf8, 0x01, 0x0c, 0x68, 0xfc, 0x03, 0xf0, 0x37, X 0xfe, 0x01, 0x00, 0x28, 0xff, 0x8b, 0x88, 0x34, 0xfe, 0x01, 0x00, 0x28, X 0xf8, 0x03, 0xc0, 0x5f, 0xf0, 0x28, 0x30, 0xb0, 0xc0, 0x39, 0x0e, 0xe0, X 0x00, 0xee, 0x01, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, X 0x00, 0xc0, 0x00, 0x00}; END_OF_FILE if test 520 -ne `wc -c <'orig.li'`; then echo shar: \"'orig.li'\" unpacked with wrong size! fi # end of 'orig.li' fi if test -f 'orig.lm' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'orig.lm'\" else echo shar: Extracting \"'orig.lm'\" \(491 characters\) sed "s/^X//" >'orig.lm' <<'END_OF_FILE' X#define lfishmask_width 32 X#define lfishmask_height 16 Xstatic char lfishmask_bits[] = { X 0x00, 0xc0, 0x07, 0x00, 0x00, 0xf0, 0x07, 0x00, 0x80, 0xff, 0x03, 0xe0, X 0xe0, 0xff, 0x03, 0xf0, 0xf8, 0xff, 0x0f, 0x78, 0xfc, 0xff, 0xff, 0x3f, X 0xfe, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0x3f, 0xfe, 0xff, 0xff, 0x3f, X 0xf8, 0xff, 0xff, 0x7f, 0xf0, 0xff, 0x3f, 0xf0, 0xc0, 0xff, 0x0f, 0xe0, X 0x00, 0xfe, 0x01, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, X 0x00, 0xc0, 0x00, 0x00}; END_OF_FILE if test 491 -ne `wc -c <'orig.lm'`; then echo shar: \"'orig.lm'\" unpacked with wrong size! fi # end of 'orig.lm' fi if test -f 'orig.ri' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'orig.ri'\" else echo shar: Extracting \"'orig.ri'\" \(520 characters\) sed "s/^X//" >'orig.ri' <<'END_OF_FILE' X#define orig_width 32 X#define orig_height 16 X#define orig_x_hot -1 X#define orig_y_hot -1 Xstatic char orig_bits[] = { X 0x00, 0xe0, 0x03, 0x00, 0x00, 0x60, 0x0d, 0x00, 0x07, 0xc0, 0xfe, 0x01, X 0x0d, 0xc0, 0xc1, 0x07, 0x12, 0x30, 0x80, 0x1f, 0xec, 0x0f, 0xc0, 0x3f, X 0x14, 0x00, 0x80, 0x7f, 0xac, 0x88, 0xc8, 0xff, 0x14, 0x00, 0x80, 0x7f, X 0xfa, 0x03, 0xc0, 0x1f, 0x0d, 0x0c, 0x14, 0x0f, 0x07, 0x70, 0x9c, 0x03, X 0x00, 0x80, 0x77, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x05, 0x00, X 0x00, 0x00, 0x03, 0x00}; END_OF_FILE if test 520 -ne `wc -c <'orig.ri'`; then echo shar: \"'orig.ri'\" unpacked with wrong size! fi # end of 'orig.ri' fi if test -f 'orig.rm' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'orig.rm'\" else echo shar: Extracting \"'orig.rm'\" \(491 characters\) sed "s/^X//" >'orig.rm' <<'END_OF_FILE' X#define rfishmask_width 32 X#define rfishmask_height 16 Xstatic char rfishmask_bits[] = { X 0x00, 0xe0, 0x03, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x07, 0xc0, 0xff, 0x01, X 0x0f, 0xc0, 0xff, 0x07, 0x1e, 0xf0, 0xff, 0x1f, 0xfc, 0xff, 0xff, 0x3f, X 0xfc, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0x7f, X 0xfe, 0xff, 0xff, 0x1f, 0x0f, 0xfc, 0xff, 0x0f, 0x07, 0xf0, 0xff, 0x03, X 0x00, 0x80, 0x7f, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x07, 0x00, X 0x00, 0x00, 0x03, 0x00}; END_OF_FILE if test 491 -ne `wc -c <'orig.rm'`; then echo shar: \"'orig.rm'\" unpacked with wrong size! fi # end of 'orig.rm' fi if test -f 'xfish.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'xfish.c'\" else echo shar: Extracting \"'xfish.c'\" \(13466 characters\) sed "s/^X//" >'xfish.c' <<'END_OF_FILE' X/* X * xfish.c - serves no useful purpose whatsoever X * X * Author: John H. Bradley, University of Pennsylvania X * (bradley@cis.upenn.edu) X * October, 1987 X * X * For 4.3ish Unix systems running X V11 X * X * Modified by Jon Greenblatt (jonnyg@rover.umd.edu): X * X * 1: Improved event handeling. X * 2: Added the -root option (xerror occurs with window managers running). X * 3: Added the -rv reverse video option. X * X * Modified by Lars Huttar (huttar@svax.cs.cornell.edu) 7/89: X * X * 1: Added the -nobell option. X * 2: Allowed for two fish to be hit by one shot. X * 3: Added the -bitmap option for using your own bitmaps. X * X */ X X X#include <stdio.h> X#include <math.h> X#include <strings.h> X#include <signal.h> X#include <X11/Xlib.h> X#include <X11/Xutil.h> X#include <X11/cursorfont.h> X#include <sys/time.h> X#include <sys/types.h> X#include <sys/timeb.h> X X#define DEFAULTDIR "/usr/public/sun3/games/lib/xfish_bitmaps/" X X/* handy-dandy functions */ X#define max(a, b) ((a) > (b) ? (a) : (b)) X#define min(a, b) ((a) < (b) ? (a) : (b)) X#define abs(a) ((a) < 0 ? -(a) : (a)) X X X/* objects */ XDisplay *disp; XWindow theWindow; XPixmap stipP, lfishP, rfishP, lfishmaskP, rfishmaskP; XGC gc,lgc,rgc; XXGCValues xgcv; XXSetWindowAttributes xswa; X#define root_weave_width 16 X#define root_weave_height 16 Xstatic char root_weave_bits[] = { X 0x77, 0x77, 0xdd, 0xdd, 0xbb, 0xbb, 0xee, 0xee, 0x77, 0x77, 0xdd, 0xdd, X 0xbb, 0xbb, 0xee, 0xee, 0x77, 0x77, 0xdd, 0xdd, 0xbb, 0xbb, 0xee, 0xee, X 0x77, 0x77, 0xdd, 0xdd, 0xbb, 0xbb, 0xee, 0xee}; X Xstatic char iroot_weave_bits[] = { X 0x88, 0x88, 0x22, 0x22, 0x44, 0x44, 0x11, 0x11, 0x88, 0x88, 0x22, 0x22, X 0x44, 0x44, 0x11, 0x11, 0x88, 0x88, 0x22, 0x22, 0x44, 0x44, 0x11, 0x11, X 0x88, 0x88, 0x22, 0x22, 0x44, 0x44, 0x11, 0x11}; X Xint fish_width=32, fish_height=16; X Xstatic char lfish_bits[] = { X 0x00, 0xc0, 0x07, 0x00, 0x00, 0xb0, 0x06, 0x00, 0x80, 0x7f, 0x03, 0xe0, X 0x60, 0x82, 0x03, 0xb0, 0x18, 0x00, 0x0c, 0x68, 0x64, 0x02, 0xf0, 0x37, X 0x62, 0x00, 0x00, 0x28, 0x01, 0xaa, 0xaa, 0x36, 0x46, 0x00, 0x00, 0x28, X 0x38, 0x03, 0xc0, 0x5f, 0xb0, 0x28, 0x30, 0xb0, 0xc0, 0x39, 0x0e, 0xe0, X 0x00, 0xee, 0x01, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, X 0x00, 0xc0, 0x00, 0x00}; X Xstatic char lfishmask_bits[] = { X 0x00, 0xc0, 0x07, 0x00, 0x00, 0xf0, 0x07, 0x00, 0x80, 0xff, 0x03, 0xe0, X 0xe0, 0xff, 0x03, 0xf0, 0xf8, 0xff, 0x0f, 0x78, 0xfc, 0xff, 0xff, 0x3f, X 0xfe, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0x3f, 0xfe, 0xff, 0xff, 0x3f, X 0xf8, 0xff, 0xff, 0x7f, 0xf0, 0xff, 0x3f, 0xf0, 0xc0, 0xff, 0x0f, 0xe0, X 0x00, 0xfe, 0x01, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, X 0x00, 0xc0, 0x00, 0x00}; X Xstatic char rfish_bits[] = { X 0x00, 0xe0, 0x03, 0x00, 0x00, 0x60, 0x0d, 0x00, 0x07, 0xc0, 0xfe, 0x01, X 0x0d, 0xc0, 0x41, 0x06, 0x12, 0x30, 0x00, 0x18, 0xec, 0x0f, 0x40, 0x26, X 0x14, 0x00, 0x00, 0x46, 0xac, 0xaa, 0x4a, 0x80, 0x14, 0x00, 0x00, 0x62, X 0xfa, 0x03, 0xc0, 0x1c, 0x0d, 0x0c, 0x14, 0x0d, 0x07, 0x70, 0x9c, 0x03, X 0x00, 0x80, 0x77, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x05, 0x00, X 0x00, 0x00, 0x03, 0x00}; X Xstatic char rfishmask_bits[] = { X 0x00, 0xe0, 0x03, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x07, 0xc0, 0xff, 0x01, X 0x0f, 0xc0, 0xff, 0x07, 0x1e, 0xf0, 0xff, 0x1f, 0xfc, 0xff, 0xff, 0x3f, X 0xfc, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0x7f, X 0xfe, 0xff, 0xff, 0x1f, 0x0f, 0xfc, 0xff, 0x0f, 0x07, 0xf0, 0xff, 0x03, X 0x00, 0x80, 0x7f, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x07, 0x00, X 0x00, 0x00, 0x03, 0x00}; X X X#define MAXFISH 100 Xstruct fishstr { short x,y,dx,dy; } fish[MAXFISH]; X Xint NUMFISH=20, startnfish=20, shots=0, no_bell=0, use_root=0, X reverse_video=0, load_bitmap=0, screen; X#define MAXFNLEN 51 Xchar filename[MAXFNLEN]; X X Xlong starttime; X X/**************/ Xmain(argc, argv) X int argc; X char *argv[]; X/**************/ X{ X int i,dpcs,n,fcnt; X char *strind; X X char *fc, *bc; X char *display = NULL; X X char *def; X short bot,right; X XSizeHints xsh; X X X /*********************Options*********************/ X X for (i = 1; i < argc; i++) { X X strind = index(argv[i], ':'); /* is it display address? */ X if(strind != NULL) { X display = argv[i]; X continue; X } X X if (n=atoi(argv[i])) { X if (n<1) n=1; X if (n>100) n=100; X NUMFISH=startnfish=n; X continue; X } X X if (*argv[i] == '-') { X if (strcmp(argv[i],"-root") == 0) { X use_root = 1; X continue; X } X if (strcmp(argv[i],"-rv") == 0) { X reverse_video = 1; X continue; X } X if (strncmp(argv[i],"-n",2) == 0) { /* -nobell */ X no_bell = 1; X continue; X } X if (strncmp(argv[i],"-b",2) == 0 && argc>i+1 /* -bitmap */ X && sscanf(argv[++i], "%50s", filename)==1) { X load_bitmap = 1; X continue; X } X } X X Syntax(argv[0]); X } X X X /*****************************************************/ X X /* Open up the display. */ X X if ((disp=XOpenDisplay(display)) == NULL) { X fprintf(stderr, "%s: Can't open display ''\n",argv[0],display); X exit(1); X } X X X bot =DisplayHeight(disp,DefaultScreen(disp)); X right=DisplayWidth (disp,DefaultScreen(disp)); X X xsh.flags = USSize | USPosition; X xsh.x = xsh.y = 0; X xsh.width = right; X xsh.height= bot; X X xswa.event_mask = ButtonPressMask; X if (use_root) X theWindow = RootWindow(disp,DefaultScreen(disp)); X else X theWindow = XCreateWindow(disp, DefaultRootWindow(disp), 0,0, X right,bot,0,1,InputOutput, X DefaultVisual(disp,DefaultScreen(disp)), X CWEventMask,&xswa); X X X stipP=XCreateBitmapFromData(disp,theWindow, X iroot_weave_bits, root_weave_width, root_weave_height); X X if (load_bitmap) load_bitmaps(); X else { X lfishP=XCreateBitmapFromData(disp,theWindow, X lfish_bits,fish_width,fish_height); X rfishP=XCreateBitmapFromData(disp,theWindow, X rfish_bits,fish_width,fish_height); X lfishmaskP=XCreateBitmapFromData(disp,theWindow, X lfishmask_bits,fish_width,fish_height); X rfishmaskP=XCreateBitmapFromData(disp,theWindow, X rfishmask_bits,fish_width,fish_height); X } X X if (!use_root) { X XSetWindowBackgroundPixmap(disp,theWindow,stipP); X XSetNormalHints(disp,theWindow,&xsh); X XSetStandardProperties(disp,theWindow,"fish","fish",None,0,0,&xsh); X XMapWindow(disp,theWindow); X XLowerWindow(disp, theWindow); X } X X /* init fish */ X for (i=0; i<NUMFISH; i++) { X fish[i].x=rand()%(right-100)+50; X fish[i].y=rand()%(bot-100)+50; X fish[i].dx = (abs(rand()%10)+4); X X /* switch direction based on a higher-order bit. the low-order bit X tended to be useless */ X if (rand()&0x10) fish[i].dx = -fish[i].dx; X X fish[i].dy=rand()%7-3; if (fish[i].dy==0) fish[i].dy=1; X } X X X xgcv.tile=stipP; X xgcv.graphics_exposures = False; X X gc = XCreateGC(disp,theWindow,GCTile|GCGraphicsExposures,&xgcv); X lgc= XCreateGC(disp,theWindow,GCTile|GCGraphicsExposures,&xgcv); X rgc= XCreateGC(disp,theWindow,GCTile|GCGraphicsExposures,&xgcv); X X xgcv.fill_style= FillTiled; X X xgcv.clip_mask = None; X X screen = DefaultScreen(disp); X if (reverse_video) { X xgcv.foreground = WhitePixel(disp,screen); X xgcv.background = BlackPixel(disp,screen); X } X else { X xgcv.foreground = BlackPixel(disp,screen); X xgcv.background = WhitePixel(disp,screen); X } X xgcv.clip_mask = lfishmaskP; X XChangeGC(disp,lgc,GCClipMask|GCFillStyle|GCForeground|GCBackground,&xgcv); X X xgcv.clip_mask = rfishmaskP; X XChangeGC(disp,rgc,GCClipMask|GCFillStyle|GCForeground|GCBackground,&xgcv); X X starttime=time(0); X X X /**************** Main loop *****************/ X X fcnt = 0; X if (use_root) X XSelectInput(disp,theWindow,ButtonPressMask); X while (1) { X XEvent event; X short x,y,bnum; X X if (XCheckMaskEvent(disp,ButtonPressMask,&event)) { X if (event.type == ButtonPress) { X XButtonEvent *butevent = (XButtonEvent *) &event; X X bnum = butevent->button; X if ((bnum == Button1) || (bnum == Button3)) { X X if (bnum == Button3) shots++; X X x = butevent->x; y = butevent->y; X for (i=0; i<NUMFISH; i++) { X if ( (x >= fish[i].x) && X (x <= fish[i].x+fish_width) && X (y >= fish[i].y) && X (y <= fish[i].y+fish_height) ) X X if (i!=NUMFISH) { X if (!no_bell) XBell(disp,25); X EraseFish(i); X if (bnum == Button1) { X fish[i].dx = -fish[i].dx; X fish[i].dy = -fish[i].dy; X DrawFish(i); X } X else { X if (NUMFISH==1) Stats(); X bcopy(&fish[NUMFISH-1],&fish[i], X sizeof(struct fishstr)); X NUMFISH--; X } X } X } X } X } X } X X if (fcnt>=NUMFISH) fcnt=0; /* since it's possible NUMFISH decreased */ X X EraseFish(fcnt); X X fish[fcnt].x += fish[fcnt].dx; X fish[fcnt].y += fish[fcnt].dy; X if (fish[fcnt].x < -50 || fish[fcnt].x > (right+50)) X fish[fcnt].dx = -fish[fcnt].dx; X if (fish[fcnt].y < 0 || fish[fcnt].y > (bot-16)) X fish[fcnt].dy = -fish[fcnt].dy; X X DrawFish(fcnt); X X fcnt++; X if (fcnt>=NUMFISH) { fcnt=0; Timer(250000L); } X X } /* end main loop */ X} X X/*****************/ XEraseFish(i) X int i; X{ X XClearArea(disp,theWindow,fish[i].x,fish[i].y,fish_width,fish_height,0); X} X X/*****************/ XDrawFish(i) X int i; X{ X xgcv.clip_x_origin = fish[i].x; X xgcv.clip_y_origin = fish[i].y; X X if (fish[i].dx<0) { X XChangeGC(disp,lgc,GCClipXOrigin|GCClipYOrigin,&xgcv); X XCopyPlane(disp,lfishP,theWindow,lgc,0,0,fish_width,fish_height, X fish[i].x,fish[i].y,1); X } X else { X XChangeGC(disp,rgc,GCClipXOrigin|GCClipYOrigin,&xgcv); X XCopyPlane(disp,rfishP,theWindow,rgc,0,0,fish_width,fish_height, X fish[i].x,fish[i].y,1); X } X} X X X/***********************************/ XSyntax(call) X char *call; X{ X printf ("Usage: %s [-root -rv -nobell -bitmap bitmapfile]\n",call); X puts("\t\t[host:display] [number of fish]\n"); X exit(1); X} X X X/***********************************/ XXFishError (identifier) X char *identifier; X{ X fprintf(stderr, "xfish: %s\n", identifier); X exit(1); X} X X X X/*******/ XStats() X{ X long curtime; X float acc; X X curtime=time(0); X acc = (float) shots / (float) startnfish; X if (!no_bell) puts("\007\007\007"); X printf("You used %d shots to hit %d fish. (in %d seconds)\n", X shots,startnfish,curtime-starttime); X printf(" For an accuracy ratio of: %f\n", acc); X X if (acc < 1.0) printf("Tex, you're a whiz!\n"); X else if (acc < 1.5) printf("Nice shootin', Tex!\n"); X XPending(disp); X exit(0); X} X X X Xstatic int timerdone; X X/*******/ Xonalarm() X/*******/ X{ X timerdone=1; X} X X/*******/ XTimer(val,n) X long val; X/*******/ X{ X /* waits 'val' microseconds */ X X struct itimerval it; X X bzero(&it, sizeof(it)); X it.it_value.tv_usec = val; X timerdone=0; X signal(SIGALRM,onalarm); X setitimer(ITIMER_REAL, &it, (struct itimerval *)0); X while (1) { X sigblock(sigmask(SIGALRM)); /* note: have to block, so that ALRM */ X if (timerdone) break; /* doesn't occur between 'if (timerdone)'*/ X else sigpause(0); /* and calling sigpause(0) */ X } X sigblock(0); /* turn ALRM blocking off */ X signal(SIGALRM,SIG_DFL); X} X Xload_bitmaps() X{ int dummy; X register int i, status; X char nufilename[MAXFNLEN+3], temp[MAXFNLEN+3]; X static char extensions[4][4]={".li", ".lm", ".ri", ".rm"}; X static Pixmap *pixmaps[4] = {&lfishP, &lfishmaskP, &rfishP, &rfishmaskP}; X X for (i=0; i<4; i++) { X strcpy(nufilename, filename); X strcat(nufilename, extensions[i]); /* Add extension... */ X X /* Load in the bitmap. If unsuccessful... */ X if ((status=XReadBitmapFile(disp, RootWindow(disp, DefaultScreen(disp)), X nufilename, &fish_width, &fish_height, pixmaps[i], X &dummy, &dummy)) != BitmapSuccess) { X X /* If the file couldn't be opened, try the default directory. */ X if (status==BitmapOpenFailed && filename[0]!='/') { X strcpy(nufilename, DEFAULTDIR); X strcat(nufilename, filename); /* Add default path to front */ X strcpy(filename, nufilename); /* of filename. */ X strcat(nufilename, extensions[i]); X if ((status=XReadBitmapFile(disp, X RootWindow(disp, DefaultScreen(disp)), X nufilename, &fish_width, &fish_height, pixmaps[i], X &dummy, &dummy)) == BitmapSuccess) continue; X /* If the default dir worked, go load next bitmap. */ X } X X /* Explain failure and quit. */ X fputs("Invalid bitmap files. There should be four,\n", stderr); X fputs("with extensions .li, .lm, .ri, and .rm.\n", stderr); X fputs("They are used for left and right images ", stderr); X fputs("and masks.\n", stderr); X exit(1); X } X } X} END_OF_FILE if test 13466 -ne `wc -c <'xfish.c'`; then echo shar: \"'xfish.c'\" unpacked with wrong size! fi # end of 'xfish.c' fi if test -f 'xfish.man' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'xfish.man'\" else echo shar: Extracting \"'xfish.man'\" \(1336 characters\) sed "s/^X//" >'xfish.man' <<'END_OF_FILE' X.\" @(#)xfish.6 John H. Bradley X.\" <bradley@cis.upenn.edu> X.\" Man page by Lars Huttar 7/17/89 X.TH XFISH 6 "October 1987" X.SH NAME Xxfish \- make workstation into aquarium X.SH SYNOPSIS X.B xfish X[ -\fIn\fPobell -root -rv ] [ -\fIb\fPitmap bitmapfile ] X.SH DESCRIPTION X.LP X.I xfish Xis a little thing that runs under the X window system, release 11. XIf run without arguments, it starts up a window with fish drifting Xback and forth. Using the right mouse button you can shoot them; Xwith the left mouse button you can reverse their directions. X X.SH OPTIONS X.TP X.B \-n(obell) Xdisable beep that signals a direct hit. X.TP X.B \-root Xuse the root window (xerror occurs with window manager running). X.TP X.B \-rv Xreverse video X.TP X.B \-b(itmap) \fIfile\fP Xuse the bitmap found in \fIfile\fP. \fIxfish\fP looks first Xin the current directory, then in Xthe default directory (/usr/public/sun3/games/lib/xfish_bitmaps). XBitmap files come in sets of four: one with a .li suffix containing Xthe image of the left-facing fish; one with a .lm suffix containing Xa mask for the left-facing fish; and analogous .ri and .rm files Xfor the right-facing fish. (Of course they do not actually have Xto be fish.) Example: 'xfish -b eye' uses the files eye.li, eye.lm, Xeye.ri, and eye.rm, which may be in the current directory or the Xdefault xfish directory. X END_OF_FILE if test 1336 -ne `wc -c <'xfish.man'`; then echo shar: \"'xfish.man'\" unpacked with wrong size! fi # end of 'xfish.man' fi echo shar: End of shell archive. exit 0