v02i035: multiplayer startrek game, Part01/07

Mike Wexler mikew at wyse.wyse.com
Fri Dec 9 11:56:38 AEST 1988


Submitted-by: ddickey at gonzo.eta.com (Dan A. Dickey)
Posting-number: Volume 2, Issue 35
Archive-name: xtrek/part01

[I had to add the sleep in xtrek.c to get this to work.  Hope you have better
luck.  -mcw]

#! /bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of archive 1 (of 7)."
# Contents:  README MANIFEST README.old bitmaps.c coup.c
# Wrapped by mikew at wyse on Thu Dec  8 17:51:38 1988
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'README' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'README'\"
else
echo shar: Extracting \"'README'\" \(2661 characters\)
sed "s/^X//" >'README' <<'END_OF_FILE'
XDisclaimer:  This version is only extensively tested on monochrome Suns.
X	It was also tested on a color Sun (cgfour) and a color SGI-GT.
X
XThis "version/release" of xtrek is xtrek done right.
XNo shared memory, No million and a half programs.
XYou will need root priveleges or the assistance of a super-user to install
Xthis.  Possibly a future version will provide for "normal" users.
X
XWhat it is is one main xtrek program, and a smaller user program to
Xstart up a display.  The main xtrek program runs on one machine and handles
Xall the updating and robot control.  It listens on a socket for connection
Xrequests from the user program.  Also, the main xtrek "server-machine"
Xis not required to have graphics hardware attached, nor expected to.
X
X-----
XGeneric instructions:
XCompile xtrek.bdf (make xtrek.snf).
XCopy this to your misc fonts directory and add the line "xtrek.snf     xtrek"
Xto your fonts.dir file.  Also, increment the number at the top of the file.
XThen do a "xset fp rehash" on any X-server that you expect to use this
Xprogram on.  "xlsfonts" should show xtrek as a listed font.
X
X-----
XInstruction for installing on a Sun (release 4.0 or greater) system:
XTo add the main xtrek program to your system, you'll need to edit
X/etc/inetd.conf.  Add the line:
Xxtrek    stream  tcp     wait    games  /usr/games/lib/xtrek/in.xtrekd in.xtrekd
X
Xthe "games" can be any user, no set-uid permissions are used.  Just make
Xsure that this coincides with XTREKOWNER in the Makefile so that it can
Xread and write the files in /usr/lib/games/lib/xtrek.
X
XBy changing inetd.conf, the system will start up the main xtrek program when
Xa request comes in for it and it is not already running.
X
XAlso, you'll need to add (For any Sun OS):
Xxtrek          5701/tcp         xtrek           # take a guess
Xto your /etc/services file on the system where in.xtrekd is to reside.
XOr to the /etc/services file on your yp-master machine for services.
XAlso, if you have machines in your network running SunOS 3.X:
Xxtrek          5702/udp        xtrek            # take a guess
X
XAnd, if you have machines running SunOS 3.X:
Xadd this line:
Xxtrek      udp     /usr/games/lib/xtrek/in.xtrekd
Xto the /etc/servers file and restart inetd.
X
X-----
XThen, to play a game just enter "xtrek <machine>", where <machine> is
Xthe machine where you changed the inetd.conf file.  This assumes that
Xyou told inetd to re-read it's configuration file (kill -HUP inetd-pid).
XMake sure that your environment variable DISPLAY is set correctly before
Xtrying xtrek <machine>.
X
X-----
XGood luck and have fun!
X
XQUESTIONS & COMMENTS TO:
X	Dan A. Dickey	ddickey at unix.eta.com
X
Xstatic char sccsid[] = "@(#)README	1.2";
END_OF_FILE
if test 2661 -ne `wc -c <'README'`; then
    echo shar: \"'README'\" unpacked with wrong size!
fi
# end of 'README'
fi
if test -f 'MANIFEST' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'MANIFEST'\"
else
echo shar: Extracting \"'MANIFEST'\" \(1726 characters\)
sed "s/^X//" >'MANIFEST' <<'END_OF_FILE'
X   File Name		Archive #	Description
X-----------------------------------------------------------
X DBG.c                      2	
X MANIFEST                   1	This shipping list
X Makefile                   6	
X README                     1	
X README.old                 1	
X TODO                       7	
X bitmaps.c                  1	
X clock.bitmap               7	
X colors.c                   6	
X coup.c                     1	
X data.c                     7	
X data.h                     7	
X death.c                    6	
X defs.h                     5	
X detonate.c                 3	
X dmessage.c                 7	
X doc                        3	
X enter.c                    6	
X getship.c                  7	
X inform.c                   5	
X input.c                    4	
X interface.c                6	
X itoa.c                     7	
X main.c                     6	
X minisubs.c                 5	
X newwin.c                   2	
X orbit.c                    7	
X patchlevel.h               7	
X phaser.c                   6	
X planetlist.c               7	
X planets.h                  6	
X playerlist.c               7	
X pstats.c                   6	
X random.c                   7	
X redraw.c                   3	
X rmove.c                    4	
X scorelist.c                6	
X scores.c                   7	
X sintab.c                   5	
X smessage.c                 5	
X stats.c                    6	
X struct.h                   5	
X subdaemon.c                4	
X torp.c                     7	
X trigtab.c                  5	
X util.c                     6	
X war.c                      6	
X warning.c                  7	
X xtrek.6                    7	
X xtrek.bdf                  2	
X xtrek.c                    6	
X xtrekfont.h                7	
END_OF_FILE
if test 1726 -ne `wc -c <'MANIFEST'`; then
    echo shar: \"'MANIFEST'\" unpacked with wrong size!
fi
# end of 'MANIFEST'
fi
if test -f 'README.old' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'README.old'\"
else
echo shar: Extracting \"'README.old'\" \(5259 characters\)
sed "s/^X//" >'README.old' <<'END_OF_FILE'
XThis explains quickly how to run xtrek on a ultrix,
XSun 3.20, or HP-UX 5.2 system.  Note that other
Xoperating systems will probably require fiddling.
XThere are notes for various operating systems below.
XThere is also a list of recent changes.
X
XIt is important that the system V shared memory
Xsegments are actually compiled into your kernel on
Xthe server machine.  The clients just need X.
X
XCreate an appropriate directory for it.  The defs.h
Xfile contains the paths to this directory.  If you
Xdon't want it in /usr/games/lib/xtrek, change this
Xfile.
X
XA "make install" will perform the following steps for you.
XIf you don't want xtrek and daemon to be suid to root
Xor you don't like the choice of directories, either
Xchange DESTDIR, XTREKDIR and XTREKOWNER in the Makefile
Xor perform these steps by hand:
X
X	Run make.  Install xtrek in /usr/games.  Robot and
X	daemon must be in /usr/games/lib/xtrek. Create the
X	files .motd, .scores, and .planets in
X	/usr/games/lib/xtrek.
X
X	Xtrek and the daemon must all be setuid
X	to someone who has write permission on these files.
X	Root is fine.  There are no real security holes in
X	the game.  If you want to avoid this, take out the
X	shared memory chmoding and make the dot files writable.
X
XIf you want to change constants in the game, it is
Xpretty well set up to allow tweaking.  Most of the
Xconstants are in defs.h.  Player constants were defined
Xin getship.c in plans for a future custom designed ship
Xoption.
X
Xnroff -me the document and put it somewhere useful.
X
XHP-UX notes:
X
XAlthought I have compiled and run this version of xtrek on
Xan HP-UX 5.2 system, there are some things to be aware of.
XFirst, my system was a 320.  If you have access to a 840 it
Xwould clearly be a better choice as a server.  It would also
Xprovide the wait3 function needed in some of the code.  I don't
Xknow how the wait's I've put into the code will work out.
X
XA 320 system, while being sufficient as a display for the game,
Xwould probably not work well as a server.
X
XSun notes:
X
XSome code was added to prevent people from holding down the
X't' key and generating fields of torps with the auto-repeat
Xmode.  This uses the timer for the xevents and it's not clear
Xthat the timer works everywhere.
X
XThere is one clear bug in the sun Xlib server that can make
Xtorpedoes occasionnally fail to fire.  If you want to fix this
Xbug, replace the line of code in libsun/events.c:
X
X   xe->vse_time = (se->ie_time.tv_usec/10000 + se->ie_time.tv_sec);
X
Xwith
X
X   xe->vse_time = (se->ie_time.tv_usec/10000 + se->ie_time.tv_sec*100);
X
XIt appears twice so get 'em both.  Note that this stuff is in the source
Xto libX.a for the suns.
X
XApollo Notes:
X
XWe don't have an apollo to test the code out, but the following lines
Xin the xlib code scare me:
X
X    /* this needs to be replaced with a "real" timestamp */
X    xe->vse_time += 1;
X
XI suspect that on an apollo, only one torp in ten will actually be fired.
XSee the Sun notes above for more information.
X
XUltrix notes:
X
XBefore running make, look for random.o.  I found
Xthat the ultrix library version wasn't very random,
Xso I substituted the 4.3 one which worked better.
XLicensing agreements being what they are, the
Xversion in this directory just links against
Xwhatever random.o is in libc.a. 
X
XIf you have the 4.3 random.o (or .c), just restore
Xthe commented-out reference to random.o in the Makefile
Xand it will link against your copy. If we ever find a
Xgood public domain rand() function, this problem will
Xgo away.
X
X
XChanges from version 3.0 to version 4.0:
X
XPlayers cannot jump teams once in.  They must quit and rejoin
Xto change teams.
X
XWhen a team loses its last planet, they cannot hold a coup for 30
Xminutes to an hour of play time.
X
XThere is an independent team that controls all planets with zero
Xarmies.
X
XFuel cannot go negative now.
X
XCertain deaths will force you to exit the game completely.
X
XSome colors have been changed.
X
XPlayers may not bomb their own planets.  (Their crews have wives and
Xchildren down there....)
X
XSince sys V compatibility seems to show up in most 4.3 based include
Xfiles, I've gone over to the sys V names of some things like
XSIGCHLD -> SIGCLD.
X
XFixed a bug with showstats that crashed in watch mode.
X
XThere have been a number of changes to 'improve' play.  Not
Xeveryone agrees that they are for the better.  Ships now
Xturn one warp faster.  Fuel is used by the engines -- you
Xdon't gain fuel at warp 5 anymore.
X
XEvents now go through info windows properly.
X
XThe special font effects occur in the info windows.
X
XThe space key will now also close all special windows.
X
XYou cannot repair and use transporters at the same time.
X
XThere are a number of optimizations.  Hardcoding the lengths
Xof planetnames reduced the number of calls to strlen.  The
Xstatus line is now drawn by hand to save calls to doprnt().
XAlso, the characters up on the map window for each ship are
Xstored in the ship's data structure to avoid more calls to
Xdoprnt().
X
XRobots are a little smarter and slightly more aggressive.  This
Xwas meant to stop people from darting in and out while taking
Xperiphery planets.
X
XOverheated weapons can't be wrapped around.
X
XPeople who hold down the 't' key to get a burst of torps are
Xin for a surprise.  Torps cannot be fired faster than one every
Xtenth of a second.
X
END_OF_FILE
if test 5259 -ne `wc -c <'README.old'`; then
    echo shar: \"'README.old'\" unpacked with wrong size!
fi
# end of 'README.old'
fi
if test -f 'bitmaps.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'bitmaps.c'\"
else
echo shar: Extracting \"'bitmaps.c'\" \(38466 characters\)
sed "s/^X//" >'bitmaps.c' <<'END_OF_FILE'
X/*
Xstatic char sccsid[] = "@(#)bitmaps.c	1.1";
X
X	Copyright (c) 1986 	Chris Guthrie
X
XPermission to use, copy, modify, and distribute this
Xsoftware and its documentation for any purpose and without
Xfee is hereby granted, provided that the above copyright
Xnotice appear in all copies and that both that copyright
Xnotice and this permission notice appear in supporting
Xdocumentation.  No representations are made about the
Xsuitability of this software for any purpose.  It is
Xprovided "as is" without express or implied warranty.
X
X*/
X
X#include <X11/X.h>
X
X/**** These are the ships ****/
X#define VIEWS		16
X#define ship_width	16
X#define ship_height	16
X
Xchar fed_bits[VIEWS][32] = {
X  {		/* fed rotated 0 degrees */
X   0xc0, 0x03, 0xe0, 0x07, 0xf0, 0x0f, 0xf0, 0x0f, 0xf0, 0x0f, 0xe0, 0x07, 0xc0, 0x03, 0x90, 0x09,
X   0x90, 0x09, 0x90, 0x09, 0xf0, 0x0f, 0x90, 0x09, 0x90, 0x09, 0x10, 0x08, 0x10, 0x08, 0x10, 0x08
X  },
X  {		/* fed rotated 22.5000 degrees */
X   0x00, 0x06, 0xc0, 0x1f, 0xc0, 0x1f, 0xc0, 0x1f, 0xc0, 0x3f, 0x80, 0x1f, 0x90, 0x1f, 0x90, 0x03,
X   0x98, 0x09, 0xf8, 0x08, 0xc8, 0x05, 0xe4, 0x06, 0x44, 0x02, 0x02, 0x02, 0x00, 0x02, 0x00, 0x01
X  },
X  {		/* fed rotated 45.0000 degrees */
X   0x00, 0x00, 0x00, 0x1e, 0x00, 0x3f, 0x00, 0x7f, 0x00, 0x7f, 0x20, 0x7f, 0x10, 0x7f, 0x98, 0x3f,
X   0xe4, 0x1d, 0xe2, 0x00, 0xf1, 0x04, 0xa0, 0x02, 0x80, 0x01, 0x80, 0x00, 0x40, 0x00, 0x20, 0x00
X  },
X  {		/* fed rotated 67.5000 degrees */
X   0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x7e, 0xc0, 0x7e, 0x30, 0xfe, 0x1e, 0xff, 0xa1, 0x7f,
X   0xf0, 0x7f, 0x78, 0x78, 0x50, 0x00, 0xc0, 0x03, 0xe0, 0x00, 0x18, 0x00, 0x04, 0x00, 0x00, 0x00
X  },
X  {		/* fed rotated 90.0000 degrees */
X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x39, 0x20, 0x7c, 0x20, 0xfe, 0xf8, 0xff,
X   0xf8, 0xff, 0x20, 0xfe, 0x20, 0x7c, 0xff, 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
X  },
X  {		/* fed rotated 112.5000 degrees */
X   0x00, 0x00, 0x04, 0x00, 0x18, 0x00, 0xe0, 0x00, 0xc0, 0x03, 0x50, 0x00, 0x78, 0x78, 0xf0, 0x7f,
X   0xa1, 0x7f, 0x1e, 0xff, 0x30, 0xfe, 0xc0, 0x7e, 0x00, 0x7e, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
X  },
X  {		/* fed rotated 135.0000 degrees */
X   0x20, 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x01, 0x20, 0x03, 0xf1, 0x04, 0xe2, 0x00, 0xfc, 0x01,
X   0x88, 0x3f, 0x10, 0x7f, 0xa0, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x00, 0x3f, 0x00, 0x1e, 0x00, 0x00
X  },
X  {		/* fed rotated 157.5000 degrees */
X   0x00, 0x01, 0x00, 0x02, 0x02, 0x02, 0x44, 0x02, 0xe4, 0x06, 0xc8, 0x05, 0xf8, 0x08, 0x98, 0x09,
X   0x90, 0x03, 0x90, 0x1f, 0x80, 0x1f, 0xc0, 0x3f, 0xc0, 0x1f, 0xc0, 0x1f, 0xc0, 0x1f, 0x00, 0x06
X  },
X  {		/* fed rotated 180.0000 degrees */
X   0x10, 0x08, 0x10, 0x08, 0x10, 0x08, 0x90, 0x09, 0x90, 0x09, 0xf0, 0x0f, 0x90, 0x09, 0x90, 0x09,
X   0x90, 0x09, 0xc0, 0x03, 0xe0, 0x07, 0xf0, 0x0f, 0xf0, 0x0f, 0xf0, 0x0f, 0xe0, 0x07, 0xc0, 0x03
X  },
X  {		/* fed rotated 202.5000 degrees */
X   0x80, 0x00, 0x40, 0x00, 0x40, 0x40, 0x40, 0x22, 0x60, 0x27, 0xa0, 0x13, 0x10, 0x1f, 0x90, 0x19,
X   0xc0, 0x09, 0xf8, 0x09, 0xf8, 0x01, 0xfc, 0x03, 0xf8, 0x03, 0xf8, 0x03, 0xf8, 0x03, 0x60, 0x00
X  },
X  {		/* fed rotated 225.0000 degrees */
X   0x00, 0x04, 0x00, 0x02, 0x00, 0x01, 0x80, 0x01, 0x40, 0x05, 0x20, 0x8f, 0x00, 0x47, 0xb8, 0x27,
X   0xfc, 0x19, 0xfe, 0x08, 0xfe, 0x04, 0xfe, 0x00, 0xfe, 0x00, 0xfc, 0x00, 0x78, 0x00, 0x00, 0x00
X  },
X  {		/* fed rotated 247.5000 degrees */
X   0x00, 0x00, 0x00, 0x20, 0x00, 0x18, 0x00, 0x07, 0xc0, 0x03, 0x00, 0x0a, 0x1e, 0x1e, 0xfe, 0x0f,
X   0xfe, 0x85, 0xff, 0x78, 0x7f, 0x0c, 0x7e, 0x03, 0x7e, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00
X  },
X  {		/* fed rotated 270.0000 degrees */
X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9c, 0xff, 0x3e, 0x04, 0x7f, 0x04, 0xff, 0x1f,
X   0xff, 0x1f, 0x7f, 0x04, 0x3e, 0x04, 0x9c, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
X  },
X  {		/* fed rotated 292.5000 degrees */
X   0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x7e, 0x00, 0x7e, 0x03, 0x7f, 0x0c, 0xff, 0x78, 0xfe, 0x85,
X   0xfe, 0x0f, 0x1e, 0x1e, 0x00, 0x0a, 0xc0, 0x03, 0x00, 0x07, 0x00, 0x18, 0x00, 0x20, 0x00, 0x00
X  },
X  {		/* fed rotated 315.0000 degrees */
X   0x00, 0x00, 0x78, 0x00, 0xfc, 0x00, 0xfe, 0x01, 0xfe, 0x01, 0xfe, 0x05, 0xfe, 0x08, 0xfc, 0x11,
X   0x80, 0x3f, 0x00, 0x47, 0x20, 0x8f, 0xc0, 0x04, 0x80, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x04
X  },
X  {		/* fed rotated 337.5000 degrees */
X   0x60, 0x00, 0xf8, 0x03, 0xf8, 0x03, 0xf8, 0x03, 0xfc, 0x03, 0xf8, 0x01, 0xf8, 0x09, 0xc0, 0x09,
X   0x90, 0x19, 0x10, 0x1f, 0xa0, 0x13, 0x60, 0x27, 0x40, 0x22, 0x40, 0x40, 0x40, 0x00, 0x80, 0x00
X  },
X};
X
Xchar rom_bits[VIEWS][32] = {
X  {		/* rom rotated 0 degrees */
X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc2, 0x43, 0xe2, 0x47, 0xf2, 0x4f, 0xfa, 0x5f, 0xfa, 0x5f,
X   0xfe, 0x7f, 0xfe, 0x7f, 0x0e, 0x70, 0x02, 0x40, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
X  },
X  {		/* rom rotated 22.5000 degrees */
X   0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x84, 0x03, 0xf4, 0x0f, 0xf6, 0x0f, 0xfe, 0x8f, 0xfe, 0x9f,
X   0xf7, 0x5f, 0xc1, 0x5f, 0x00, 0x7e, 0x00, 0x38, 0x00, 0x38, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00
X  },
X  {		/* rom rotated 45.0000 degrees */
X   0x60, 0x00, 0x20, 0x00, 0x10, 0x00, 0xc8, 0x07, 0xfc, 0x0f, 0xff, 0x1f, 0xf9, 0x1f, 0xe0, 0x1f,
X   0xc0, 0x1f, 0x80, 0x9f, 0x00, 0xcf, 0x00, 0x2e, 0x00, 0x1e, 0x00, 0x0c, 0x00, 0x04, 0x00, 0x06
X  },
X  {		/* rom rotated 67.5000 degrees */
X   0x00, 0x03, 0xe0, 0x00, 0x38, 0x00, 0xfe, 0x01, 0xf8, 0x0f, 0xe0, 0x0f, 0xe0, 0x1f, 0xc0, 0x1f,
X   0xc0, 0x1f, 0xc0, 0x0f, 0x80, 0x0f, 0x80, 0x0f, 0x00, 0x63, 0x80, 0x1f, 0x80, 0x07, 0xc0, 0x00
X  },
X  {		/* rom rotated 90.0000 degrees */
X   0x00, 0x00, 0xf8, 0x1f, 0xe0, 0x00, 0xe0, 0x03, 0xc0, 0x07, 0xc0, 0x0f, 0xc0, 0x1f, 0xc0, 0x1f,
X   0xc0, 0x1f, 0xc0, 0x1f, 0xc0, 0x0f, 0xc0, 0x07, 0xe0, 0x03, 0xe0, 0x00, 0xf8, 0x1f, 0x00, 0x00
X  },
X  {		/* rom rotated 112.5000 degrees */
X   0xc0, 0x00, 0x80, 0x07, 0x80, 0x1f, 0x00, 0x63, 0x80, 0x0f, 0x80, 0x0f, 0xc0, 0x0f, 0xc0, 0x1f,
X   0xc0, 0x1f, 0xe0, 0x1f, 0xe0, 0x0f, 0xf8, 0x0f, 0xfe, 0x01, 0x38, 0x00, 0xe0, 0x00, 0x00, 0x03
X  },
X  {		/* rom rotated 135.0000 degrees */
X   0x00, 0x06, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x1e, 0x00, 0x2e, 0x00, 0xcf, 0x80, 0x9f, 0xc0, 0x1f,
X   0xe0, 0x1f, 0xf9, 0x1f, 0xff, 0x1f, 0xfc, 0x0f, 0xe8, 0x07, 0x10, 0x00, 0x20, 0x00, 0x60, 0x00
X  },
X  {		/* rom rotated 157.5000 degrees */
X   0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x38, 0x00, 0x38, 0x00, 0x7e, 0xc1, 0x5f, 0xf7, 0x5f,
X   0xfe, 0x9f, 0xfe, 0x8f, 0xf6, 0x0f, 0xf4, 0x0f, 0x84, 0x03, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00
X  },
X  {		/* rom rotated 180.0000 degrees */
X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x02, 0x40, 0x0e, 0x70, 0xfe, 0x7f, 0xfe, 0x7f,
X   0xfa, 0x5f, 0xfa, 0x5f, 0xf2, 0x4f, 0xe2, 0x47, 0xc2, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
X  },
X  {		/* rom rotated 202.5000 degrees */
X   0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x1c, 0x00, 0x1c, 0x00, 0x7e, 0x00, 0xfa, 0x83, 0xfa, 0xef,
X   0xf9, 0x7f, 0xf1, 0x7f, 0xf0, 0x6f, 0xf0, 0x2f, 0xc0, 0x21, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00
X  },
X  {		/* rom rotated 225.0000 degrees */
X   0x60, 0x00, 0x20, 0x00, 0x30, 0x00, 0x78, 0x00, 0x74, 0x00, 0xf3, 0x00, 0xf9, 0x01, 0xf8, 0x03,
X   0xf8, 0x07, 0xf8, 0x9f, 0xf8, 0xff, 0xf0, 0x3f, 0xe0, 0x13, 0x00, 0x08, 0x00, 0x04, 0x00, 0x06
X  },
X  {		/* rom rotated 247.5000 degrees */
X   0x00, 0x03, 0xe0, 0x01, 0xf8, 0x01, 0xc6, 0x00, 0xf0, 0x01, 0xf0, 0x01, 0xf0, 0x03, 0xf8, 0x03,
X   0xf8, 0x03, 0xf8, 0x07, 0xf0, 0x07, 0xf0, 0x1f, 0x80, 0x7f, 0x00, 0x1c, 0x00, 0x07, 0xc0, 0x00
X  },
X  {		/* rom rotated 270.0000 degrees */
X   0x00, 0x00, 0xf8, 0x1f, 0x00, 0x07, 0xc0, 0x07, 0xe0, 0x03, 0xf0, 0x03, 0xf8, 0x03, 0xf8, 0x03,
X   0xf8, 0x03, 0xf8, 0x03, 0xf0, 0x03, 0xe0, 0x03, 0xc0, 0x07, 0x00, 0x07, 0xf8, 0x1f, 0x00, 0x00
X  },
X  {		/* rom rotated 292.5000 degrees */
X   0xc0, 0x00, 0x00, 0x07, 0x00, 0x1c, 0x80, 0x7f, 0xf0, 0x1f, 0xf0, 0x07, 0xf8, 0x07, 0xf8, 0x03,
X   0xf8, 0x03, 0xf0, 0x03, 0xf0, 0x01, 0xf0, 0x01, 0xc6, 0x00, 0xf8, 0x01, 0xe0, 0x01, 0x00, 0x03
X  },
X  {		/* rom rotated 315.0000 degrees */
X   0x00, 0x06, 0x00, 0x04, 0x00, 0x08, 0xe0, 0x13, 0xf0, 0x3f, 0xf8, 0xff, 0xf8, 0x9f, 0xf8, 0x07,
X   0xf8, 0x07, 0xf9, 0x01, 0xf3, 0x00, 0x74, 0x00, 0x78, 0x00, 0x30, 0x00, 0x20, 0x00, 0x60, 0x00
X  },
X  {		/* rom rotated 337.5000 degrees */
X   0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0xc0, 0x21, 0xf0, 0x2f, 0xf0, 0x6f, 0xf1, 0x7f, 0xf9, 0x7f,
X   0xfa, 0xef, 0xfa, 0x83, 0x7e, 0x00, 0x1c, 0x00, 0x1c, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00
X  },
X};
X
Xchar kli_bits[VIEWS][32] = {
X  {		/* kli rotated 0 degrees */
X   0x80, 0x01, 0xc0, 0x03, 0xe0, 0x07, 0xc0, 0x03, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x84, 0x21,
X   0x84, 0x21, 0xfc, 0x3f, 0xfc, 0x3f, 0x8c, 0x31, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20
X  },
X  {		/* kli rotated 22.5000 degrees */
X   0x00, 0x04, 0x80, 0x0e, 0x00, 0x0f, 0x00, 0x1f, 0x00, 0x0f, 0x08, 0x03, 0x04, 0x03, 0x8c, 0x01,
X   0xfe, 0x01, 0xf6, 0x21, 0xc3, 0x17, 0xc1, 0x1e, 0x01, 0x1c, 0x00, 0x08, 0x00, 0x08, 0x00, 0x04
X  },
X  {		/* kli rotated 45.0000 degrees */
X   0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x10, 0x3c, 0x08, 0x3c, 0x0c, 0x3e, 0x1e, 0x07, 0xbd, 0x03,
X   0xe0, 0x01, 0xe0, 0x00, 0xe0, 0x01, 0x80, 0x13, 0x00, 0x0f, 0x00, 0x07, 0x00, 0x02, 0x80, 0x01
X  },
X  {		/* kli rotated 67.5000 degrees */
X   0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x38, 0x10, 0x1e, 0x78, 0x39, 0xf8, 0x30, 0x7e, 0xe0, 0x3f,
X   0xf0, 0x41, 0xf0, 0x00, 0xc0, 0x00, 0xc0, 0x00, 0x80, 0x05, 0xc0, 0x03, 0xe0, 0x00, 0x38, 0x00
X  },
X  {		/* kli rotated 90.0000 degrees */
X   0x00, 0x00, 0x00, 0x00, 0xff, 0x01, 0x70, 0x00, 0x60, 0x00, 0x60, 0x20, 0x60, 0x70, 0xf0, 0xff,
X   0xf0, 0xff, 0x60, 0x70, 0x60, 0x20, 0x60, 0x00, 0x70, 0x00, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00
X  },
X  {		/* kli rotated 112.5000 degrees */
X   0x38, 0x00, 0xe0, 0x00, 0xc0, 0x03, 0x80, 0x05, 0xc0, 0x00, 0xc0, 0x00, 0xf0, 0x00, 0xf0, 0x41,
X   0xe0, 0x3f, 0x30, 0x7e, 0x39, 0xf8, 0x1e, 0x78, 0x38, 0x10, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00
X  },
X  {		/* kli rotated 135.0000 degrees */
X   0x80, 0x01, 0x00, 0x02, 0x00, 0x07, 0x00, 0x0f, 0x80, 0x13, 0xe0, 0x01, 0xe0, 0x00, 0xf1, 0x01,
X   0xbd, 0x03, 0x1e, 0x07, 0x0c, 0x3e, 0x08, 0x3c, 0x10, 0x3c, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00
X  },
X  {		/* kli rotated 157.5000 degrees */
X   0x00, 0x04, 0x00, 0x08, 0x00, 0x08, 0x01, 0x1c, 0xc1, 0x1e, 0xc3, 0x17, 0xf6, 0x21, 0xfe, 0x01,
X   0x8c, 0x01, 0x04, 0x03, 0x08, 0x03, 0x00, 0x0f, 0x00, 0x1f, 0x00, 0x0f, 0x80, 0x0e, 0x00, 0x04
X  },
X  {		/* kli rotated 180.0000 degrees */
X   0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x8c, 0x31, 0xfc, 0x3f, 0xfc, 0x3f, 0x84, 0x21,
X   0x84, 0x21, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0xc0, 0x03, 0xe0, 0x07, 0xc0, 0x03, 0x80, 0x01
X  },
X  {		/* kli rotated 202.5000 degrees */
X   0x20, 0x00, 0x10, 0x00, 0x10, 0x00, 0x38, 0x80, 0x78, 0x83, 0xe8, 0xc3, 0x84, 0x6f, 0x80, 0x7f,
X   0x80, 0x31, 0xc0, 0x20, 0xc0, 0x10, 0xf0, 0x00, 0xf8, 0x00, 0xf0, 0x00, 0x70, 0x01, 0x20, 0x00
X  },
X  {		/* kli rotated 225.0000 degrees */
X   0x80, 0x01, 0x40, 0x00, 0xe0, 0x00, 0xf0, 0x00, 0xc8, 0x01, 0x80, 0x07, 0x00, 0x07, 0x80, 0x8f,
X   0xc0, 0xbd, 0xe0, 0x78, 0x7c, 0x30, 0x3c, 0x10, 0x3c, 0x08, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00
X  },
X  {		/* kli rotated 247.5000 degrees */
X   0x00, 0x1c, 0x00, 0x07, 0xc0, 0x03, 0xa0, 0x01, 0x00, 0x03, 0x00, 0x03, 0x00, 0x0f, 0x82, 0x0f,
X   0xfc, 0x07, 0x7e, 0x0c, 0x1f, 0x9c, 0x1e, 0x78, 0x08, 0x1c, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00
X  },
X  {		/* kli rotated 270.0000 degrees */
X   0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x00, 0x0e, 0x00, 0x06, 0x04, 0x06, 0x0e, 0x06, 0xff, 0x0f,
X   0xff, 0x0f, 0x0e, 0x06, 0x04, 0x06, 0x00, 0x06, 0x00, 0x0e, 0x80, 0xff, 0x00, 0x00, 0x00, 0x00
X  },
X  {		/* kli rotated 292.5000 degrees */
X   0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x08, 0x1c, 0x1e, 0x78, 0x1f, 0x9c, 0x7e, 0x0c, 0xfc, 0x07,
X   0x82, 0x0f, 0x00, 0x0f, 0x00, 0x03, 0x00, 0x03, 0xa0, 0x01, 0xc0, 0x03, 0x00, 0x07, 0x00, 0x1c
X  },
X  {		/* kli rotated 315.0000 degrees */
X   0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x3c, 0x08, 0x3c, 0x10, 0x7c, 0x30, 0xe0, 0x78, 0xc0, 0xbd,
X   0x80, 0x8f, 0x00, 0x07, 0x80, 0x07, 0xc8, 0x01, 0xf0, 0x00, 0xe0, 0x00, 0x40, 0x00, 0x80, 0x00
X  },
X  {		/* kli rotated 337.5000 degrees */
X   0x20, 0x00, 0x70, 0x01, 0xf0, 0x00, 0xf8, 0x00, 0xf0, 0x00, 0xc0, 0x10, 0xc0, 0x20, 0x80, 0x31,
X   0x80, 0x7f, 0x84, 0x6f, 0xe8, 0xc3, 0x78, 0x83, 0x38, 0x80, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00
X  },
X};
X
Xchar ori_bits[VIEWS][32] = {
X  {		/* ori rotated 0 degrees */
X   0x80, 0x01, 0xc0, 0x03, 0xc0, 0x03, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0xc0, 0x03, 0xe0, 0x07,
X   0xf0, 0x0f, 0xf8, 0x1f, 0xdc, 0x3b, 0x8c, 0x31, 0x8c, 0x31, 0x8c, 0x31, 0x8c, 0x31, 0x8c, 0x31
X  },
X  {		/* ori rotated 22.5000 degrees */
X   0x00, 0x04, 0x00, 0x0e, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0x07, 0x00, 0x03, 0xe0, 0x03, 0xf8, 0x03,
X   0xfe, 0x07, 0xe6, 0x0f, 0xc7, 0x07, 0xe3, 0x0c, 0x63, 0x1c, 0x61, 0x0c, 0x30, 0x0c, 0x20, 0x06
X  },
X  {		/* ori rotated 45.0000 degrees */
X   0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x3c, 0x00, 0x3c, 0x7c, 0x1f, 0xfe, 0x07, 0xe7, 0x03,
X   0xe3, 0x07, 0xe1, 0x07, 0xf0, 0x07, 0x38, 0x06, 0x1c, 0x06, 0x08, 0x07, 0x80, 0x03, 0xc0, 0x01
X  },
X  {		/* ori rotated 67.5000 degrees */
X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x5e, 0x70, 0xff, 0xf8, 0xe1, 0x7f, 0xe0, 0x2f,
X   0xf0, 0x03, 0xfc, 0x03, 0xdf, 0x03, 0x82, 0x01, 0x80, 0x01, 0xe0, 0x00, 0xf8, 0x00, 0x3c, 0x00
X  },
X  {		/* ori rotated 90.0000 degrees */
X   0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x7f, 0x00, 0xe0, 0x00, 0xc0, 0x01, 0xe0, 0x63, 0xff, 0xff,
X   0xff, 0xff, 0xe0, 0x63, 0xc0, 0x01, 0xe0, 0x00, 0x7f, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00
X  },
X  {		/* ori rotated 112.5000 degrees */
X   0x3c, 0x00, 0xf8, 0x00, 0xe0, 0x00, 0x80, 0x01, 0x82, 0x01, 0xdf, 0x03, 0xfc, 0x03, 0xf0, 0x03,
X   0xe0, 0x2f, 0xe1, 0x7f, 0xff, 0xf8, 0x5e, 0x70, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
X  },
X  {		/* ori rotated 135.0000 degrees */
X   0xe0, 0x01, 0x80, 0x03, 0x08, 0x07, 0x1c, 0x06, 0x38, 0x06, 0x70, 0x07, 0xe1, 0x07, 0xc3, 0x03,
X   0xe7, 0x07, 0xfe, 0x07, 0xfc, 0x1e, 0x00, 0x3c, 0x00, 0x3c, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00
X  },
X  {		/* ori rotated 157.5000 degrees */
X   0x20, 0x06, 0x30, 0x0c, 0x61, 0x0c, 0x63, 0x1c, 0xe3, 0x0c, 0xc7, 0x07, 0xe6, 0x0f, 0xfe, 0x07,
X   0xf8, 0x03, 0xe0, 0x03, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0e, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0x04
X  },
X  {		/* ori rotated 180.0000 degrees */
X   0x8c, 0x31, 0x8c, 0x31, 0x8c, 0x31, 0x8c, 0x31, 0x8c, 0x31, 0xdc, 0x3b, 0xf8, 0x1f, 0xf0, 0x0f,
X   0xe0, 0x07, 0xc0, 0x03, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0xc0, 0x03, 0xc0, 0x03, 0x80, 0x01
X  },
X  {		/* ori rotated 202.5000 degrees */
X   0x60, 0x04, 0x30, 0x0c, 0x30, 0x86, 0x38, 0xc6, 0x30, 0xc7, 0xe0, 0xe3, 0xf0, 0x67, 0xe0, 0x7f,
X   0xc0, 0x1f, 0xc0, 0x07, 0xc0, 0x00, 0xe0, 0x00, 0x70, 0x00, 0xf0, 0x00, 0x70, 0x00, 0x20, 0x00
X  },
X  {		/* ori rotated 225.0000 degrees */
X   0x80, 0x07, 0xc0, 0x01, 0xe0, 0x10, 0x60, 0x38, 0x60, 0x1c, 0xe0, 0x8e, 0xe0, 0x87, 0xe0, 0xc3,
X   0xc0, 0xe7, 0xe0, 0x7f, 0xf8, 0x3e, 0x3c, 0x00, 0x3c, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00
X  },
X  {		/* ori rotated 247.5000 degrees */
X   0x00, 0x3c, 0x00, 0x1f, 0x00, 0x07, 0x80, 0x01, 0x80, 0x41, 0xc0, 0xfb, 0xc0, 0x3f, 0xc0, 0x0f,
X   0xf4, 0x07, 0xfe, 0x87, 0x1f, 0xff, 0x0e, 0x7a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
X  },
X  {		/* ori rotated 270.0000 degrees */
X   0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0xfe, 0x00, 0x07, 0x80, 0x03, 0xc6, 0x07, 0xff, 0xff,
X   0xff, 0xff, 0xc6, 0x07, 0x80, 0x03, 0x00, 0x07, 0x00, 0xfe, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00
X  },
X  {		/* ori rotated 292.5000 degrees */
X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0e, 0x7a, 0x1f, 0xff, 0xfe, 0x87, 0xf4, 0x07,
X   0xc0, 0x0f, 0xc0, 0x3f, 0xc0, 0xfb, 0x80, 0x41, 0x80, 0x01, 0x00, 0x07, 0x00, 0x1f, 0x00, 0x3c
X  },
X  {		/* ori rotated 315.0000 degrees */
X   0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x3c, 0x00, 0x3c, 0x00, 0x78, 0x3f, 0xe0, 0x7f, 0xe0, 0xf7,
X   0xc0, 0xc3, 0xe0, 0x87, 0xe0, 0x8e, 0x60, 0x1c, 0xe0, 0x38, 0xe0, 0x10, 0xc0, 0x00, 0x80, 0x03
X  },
X  {		/* ori rotated 337.5000 degrees */
X   0x20, 0x00, 0x70, 0x00, 0xf0, 0x00, 0x70, 0x00, 0xe0, 0x00, 0xc0, 0x00, 0xc0, 0x07, 0xc0, 0x1f,
X   0xe0, 0x7f, 0xf0, 0x67, 0xe0, 0xe3, 0x30, 0xc7, 0x38, 0xc6, 0x30, 0x86, 0x30, 0x0c, 0x60, 0x04
X  },
X};
X
X/**** These are the explosions ****/
X
X#define EX_FRAMES		5
X#define ex_width	64
X#define ex_height	64
X
Xchar ex_bits[5][512] = {
X    {
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x10, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x1c, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x08, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x94, 0x15, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0xd5, 0x75, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x95, 0x22, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x60, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x1e, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x26, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x06, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
X    }, {
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x04, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x04, 0x10, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x04, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0xa0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x25, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x20, 0x00, 0x12, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x02, 0x02, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x60, 0x12, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x22, 0x92, 0x00, 0x12, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x40, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x42, 0x00, 0x08, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x28, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x47, 0x02, 0x00, 0x00,
X	0x00, 0x00, 0x20, 0x28, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x18, 0x01, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x14, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x14, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
X   }, {
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x40, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x80, 0x20, 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00,
X	0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x00, 0x09, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x91, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x04, 0x20, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x40, 0x44, 0x40, 0x00, 0x00, 0x00, 0x00, 0x10, 0x80, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x30, 0x44, 0x80, 0x10, 0x00, 0x00, 0x04, 0x40, 0x00, 0x00, 0x00, 0x05, 0x00,
X	0x00, 0x00, 0x01, 0x88, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x00, 0x20, 0x00, 0x00, 0x02, 0x00,
X	0x00, 0x00, 0x00, 0x12, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x40, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x08, 0x12, 0x04, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x02, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x10, 0x90, 0x20, 0x00, 0x00, 0x00, 0x00, 0x40, 0x20, 0x30, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x48, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x20, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
X   }, {
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
X	0x00, 0x00, 0x08, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x80, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x80, 0x00, 0x00,
X	0x00, 0x00, 0x40, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x11, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00,
X	0x00, 0x00, 0x02, 0x40, 0x08, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x20, 0x08, 0x02, 0x10, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x40, 0x00,
X	0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x04, 0x00, 0x82, 0x00, 0x00, 0x08, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x40, 0x00, 0x08, 0x02, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x08, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x04, 0x22, 0x20, 0x00, 0x00,
X	0x00, 0x00, 0x40, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x08, 0x40, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0x08, 0x10, 0xc0, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00,
X	0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x40, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x10, 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
X   }, {
X	0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x08, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x24, 0x00, 0x40, 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x42, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
X	0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x80, 0x00,
X	0x00, 0x20, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x10, 0x00, 0x08, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x08, 0x00, 0x00, 0x10,
X	0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01,
X	0x20, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
X	0x00, 0x00, 0x00, 0x01, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x80, 0x00, 0x00,
X	0x20, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x20, 0x00, 0x00, 0x00, 0x01, 0x08, 0x80, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
X	0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x08, 0x00, 0x00,
X	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
X    }
X};
X
XPixmap	expview[EX_FRAMES];
X
X/**** These are the misc things ****/
X
XPixmap fedview[VIEWS];
XPixmap romview[VIEWS];
XPixmap kliview[VIEWS];
XPixmap oriview[VIEWS];
XPixmap cloud;
XPixmap etorp, mtorp;
XPixmap bplanet;
XPixmap mbplanet;
XPixmap shield;
X
XCursor crosshair;
X
X#define cloud_width 7
X#define cloud_height 7
Xchar cloud_bits[] = {
X   0x14, 0x00, 0x2a, 0x00, 0x55, 0x00, 0x2a, 0x00,
X   0x55, 0x00, 0x2a, 0x00, 0x14, 0x00};
X
X#define etorp_width 3
X#define etorp_height 3
Xchar etorp_bits[] = {
X   0x05, 0x00, 0x02, 0x00, 0x05, 0x00};
X
X#define mtorp_width 3
X#define mtorp_height 3
Xchar mtorp_bits[] = {
X   0x02, 0x00, 0x07, 0x00, 0x02, 0x00};
X
X#define crossw 15
X#define crossh 15
Xchar crossbits[] = {
X   0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00,
X   0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0xff, 0x7f,
X   0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00,
X   0x80, 0x00, 0x80, 0x00, 0x80, 0x00};
X
X#define crossmask_width 15
X#define crossmask_height 15
Xchar crossmask_bits[] = {
X   0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01,
X   0xc0, 0x01, 0xc0, 0x01, 0xff, 0x7f, 0xff, 0x7f,
X   0xff, 0x7f, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01,
X   0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01};
X
X#define planet_width 30
X#define planet_height 30
Xchar planet_bits[] = {
X   0x00, 0xf8, 0x03, 0x00, 0x00, 0x07, 0x1c, 0x00,
X   0xc0, 0x00, 0x60, 0x00, 0x20, 0x00, 0x80, 0x00,
X   0x10, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x02,
X   0x04, 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, 0x04,
X   0x02, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x08,
X   0x02, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, 0x10,
X   0x01, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x10,
X   0x01, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x10,
X   0x01, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x10,
X   0x02, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x08,
X   0x02, 0x00, 0x00, 0x08, 0x04, 0x00, 0x00, 0x04,
X   0x04, 0x00, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02,
X   0x10, 0x00, 0x00, 0x01, 0x20, 0x00, 0x80, 0x00,
X   0xc0, 0x00, 0x60, 0x00, 0x00, 0x07, 0x1c, 0x00,
X   0x00, 0xf8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00};
X
X#define mplanet_width 16
X#define mplanet_height 16
Xchar mplanet_bits[] = {
X   0xe0, 0x03, 0x18, 0x0c, 0x04, 0x10, 0x02, 0x20,
X   0x02, 0x20, 0x01, 0x40, 0x01, 0x40, 0x01, 0x40,
X   0x01, 0x40, 0x01, 0x40, 0x02, 0x20, 0x02, 0x20,
X   0x04, 0x10, 0x18, 0x0c, 0xe0, 0x03, 0x00, 0x00};
X
X#define shield_width 20
X#define shield_height 20
Xchar shield_bits[] = {
X   0xc0, 0x3f, 0x00, 0x00, 0x30, 0xc0, 0x00, 0x00,
X   0x08, 0x00, 0x01, 0x00, 0x04, 0x00, 0x02, 0x00,
X   0x02, 0x00, 0x04, 0x00, 0x02, 0x00, 0x04, 0x00,
X   0x01, 0x00, 0x08, 0x00, 0x01, 0x00, 0x08, 0x00,
X   0x01, 0x00, 0x08, 0x00, 0x01, 0x00, 0x08, 0x00,
X   0x01, 0x00, 0x08, 0x00, 0x01, 0x00, 0x08, 0x00,
X   0x01, 0x00, 0x08, 0x00, 0x01, 0x00, 0x08, 0x00,
X   0x02, 0x00, 0x04, 0x00, 0x02, 0x00, 0x04, 0x00,
X   0x04, 0x00, 0x02, 0x00, 0x08, 0x00, 0x01, 0x00,
X   0x30, 0xc0, 0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00};
X
XPixmap	e_bplanetPix, a_bplanetPix;
XPixmap	e_mbplanetPix, a_mbplanetPix;
X
X#define icon_width 64
X#define icon_height 64
Xchar icon_bits[] = {
X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X   0xf8, 0x83, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00,
X   0xf0, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
X   0xe0, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
X   0xc0, 0x83, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
X   0xc0, 0x83, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
X   0x80, 0xc7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X   0x80, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X   0x00, 0x6f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X   0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X   0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X   0x00, 0x1e, 0xf0, 0xbf, 0x7f, 0xe0, 0x1b, 0x0e,
X   0x00, 0x3c, 0xf8, 0x9f, 0xff, 0xf8, 0x19, 0x07,
X   0x00, 0x3c, 0x80, 0x81, 0xe1, 0x1c, 0x98, 0x03,
X   0x00, 0x7e, 0x80, 0x81, 0x71, 0x0e, 0xd8, 0x01,
X   0x00, 0x7b, 0x80, 0x81, 0x39, 0x06, 0xf8, 0x00,
X   0x00, 0xf3, 0x80, 0x81, 0x1d, 0xfe, 0xf9, 0x03,
X   0x80, 0xf1, 0x80, 0x81, 0x7f, 0xfe, 0xf8, 0x07,
X   0xc0, 0xe0, 0x81, 0x81, 0xe1, 0x06, 0x18, 0x0e,
X   0xc0, 0xe0, 0x81, 0x81, 0xc1, 0x0e, 0x18, 0x0c,
X   0x60, 0xe0, 0x83, 0x81, 0xc1, 0x1c, 0x1a, 0x0c,
X   0x70, 0xc0, 0x87, 0x81, 0xc1, 0xf8, 0x1b, 0x7c,
X   0xfc, 0xe0, 0xdf, 0xc3, 0xe3, 0xe0, 0x3d, 0x3e,
X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X   0x00, 0x20, 0xe0, 0xff, 0x0f, 0x30, 0x08, 0x06,
X   0x00, 0xfc, 0xe1, 0xff, 0x07, 0x30, 0x7f, 0x06,
X   0xe0, 0xff, 0x1f, 0x01, 0x00, 0xf8, 0xff, 0x0f,
X   0x00, 0xfe, 0x0f, 0x01, 0x00, 0x80, 0xff, 0x00,
X   0x00, 0x70, 0x1c, 0x01, 0x00, 0x00, 0x5d, 0x00,
X   0x00, 0x00, 0xf0, 0xff, 0x01, 0x00, 0x3e, 0x00,
X   0x00, 0x00, 0xe0, 0xff, 0x00, 0x00, 0x36, 0x00,
X   0x00, 0x00, 0xf0, 0x3f, 0x00, 0x00, 0x3e, 0x00,
X   0x00, 0x00, 0xe0, 0x1f, 0x00, 0x00, 0x1c, 0x00,
X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X   0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x7f,
X   0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x40,
X   0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x40,
X   0x00, 0xf8, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x40,
X   0x00, 0xfe, 0xe3, 0xff, 0x0f, 0xa1, 0x6e, 0x40,
X   0x00, 0xff, 0xe7, 0xff, 0x0f, 0xa1, 0xa2, 0x40,
X   0x80, 0xff, 0x0f, 0x01, 0x00, 0xa1, 0x66, 0x40,
X   0x80, 0x8f, 0x0f, 0x01, 0x00, 0xa1, 0xa2, 0x40,
X   0xc0, 0x77, 0x1f, 0x01, 0x00, 0x41, 0xae, 0x42,
X   0xc0, 0xfb, 0xfe, 0xff, 0x01, 0x01, 0x00, 0x40,
X   0xc0, 0xdb, 0xfe, 0xff, 0x01, 0x01, 0x00, 0x40,
X   0xc0, 0xfb, 0xfe, 0xff, 0x01, 0x01, 0x00, 0x40,
X   0xc0, 0x77, 0x1f, 0x01, 0x00, 0x81, 0xc0, 0x43,
X   0x80, 0x8f, 0x0f, 0x01, 0x00, 0xc1, 0x20, 0x43,
X   0x80, 0xff, 0x0f, 0x01, 0x00, 0xa1, 0xa0, 0x42,
X   0x00, 0xff, 0xe7, 0xff, 0x0f, 0x91, 0xa0, 0x42,
X   0x00, 0xfe, 0xe3, 0xff, 0x0f, 0xf1, 0xa1, 0x42,
X   0x00, 0xf8, 0x00, 0x00, 0x00, 0x81, 0x60, 0x42,
X   0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0xec, 0x41,
X   0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x40,
X   0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x7f,
X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
X
X#define stipple_width 16
X#define stipple_height 16
Xchar stipple_bits[] = {
X   0xfe, 0xfe, 0xfd, 0xfd, 0xfb, 0xfb, 0xf7, 0xf7,
X   0xef, 0xef, 0xdf, 0xdf, 0xbf, 0xbf, 0x7f, 0x7f,
X   0xfe, 0xfe, 0xfd, 0xfd, 0xfb, 0xfb, 0xf7, 0xf7,
X   0xef, 0xef, 0xdf, 0xdf, 0xbf, 0xbf, 0x7f, 0x7f};
X
END_OF_FILE
if test 38466 -ne `wc -c <'bitmaps.c'`; then
    echo shar: \"'bitmaps.c'\" unpacked with wrong size!
fi
# end of 'bitmaps.c'
fi
if test -f 'coup.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'coup.c'\"
else
echo shar: Extracting \"'coup.c'\" \(1756 characters\)
sed "s/^X//" >'coup.c' <<'END_OF_FILE'
Xstatic char sccsid[] = "@(#)coup.c	1.1";
X/*
X
X	Copyright (c) 1986 	Chris Guthrie
X
XPermission to use, copy, modify, and distribute this
Xsoftware and its documentation for any purpose and without
Xfee is hereby granted, provided that the above copyright
Xnotice appear in all copies and that both that copyright
Xnotice and this permission notice appear in supporting
Xdocumentation.  No representations are made about the
Xsuitability of this software for any purpose.  It is
Xprovided "as is" without express or implied warranty.
X
X*/
X
X
X#include <X11/Xlib.h>
X
X#include <stdio.h>
X#include <sys/types.h>
X#include <sys/ipc.h>
X#include <sys/shm.h>
X#include "defs.h"
X#include "data.h"
X
X/* throw a coup */
X
Xcoup(p)
Xregister struct player	*p;
X{
X    register int i;
X    register struct planet *l;
X
X    if (p->p_kills < 1.0) {
X	warning(p, "You must have one kill to throw a coup");
X	return;
X    }
X    if (!(p->p_flags & PFORBIT)) {
X	warning(p, "You must orbit your home planet to throw a coup");
X	return;
X    }
X    for (i = 0, l = &planets[0]; i < MAXPLANETS; i++, l++) {
X	if ((l->pl_owner == p->p_team) && (l->pl_armies > 0)) {
X	    warning(p, "You already own a planet!!!");
X	    return;
X	}
X    }
X    l = &planets[p->p_planet];
X
X    if ((!(l->pl_flags & PLHOME)) || ((l->pl_flags & ALLTEAM) != p->p_team)) {
X	warning(p, "You must orbit your home planet to throw a coup");
X	return;
X    }
X
X    if (l->pl_armies > 4) {
X	warning(p, "Too many armies on planet to throw a coup");
X	return;
X    }
X
X    if (l->pl_couptime > 0) {
X	warning(p, "Planet not yet ready for a coup");
X	return;
X    }
X
X    if (l->pl_flags & PLCOUP) { /* Avoid race conditions */
X	return;
X    }
X
X    /* the cases are now met.  We can have a coup. */
X
X    l->pl_flags |= PLCOUP;
X    p->p_stats.st_coups++;
X}
END_OF_FILE
if test 1756 -ne `wc -c <'coup.c'`; then
    echo shar: \"'coup.c'\" unpacked with wrong size!
fi
# end of 'coup.c'
fi
echo shar: End of archive 1 \(of 7\).
cp /dev/null ark1isdone
MISSING=""
for I in 1 2 3 4 5 6 7 ; do
    if test ! -f ark${I}isdone ; then
	MISSING="${MISSING} ${I}"
    fi
done
if test "${MISSING}" = "" ; then
    echo You have unpacked all 7 archives.
    rm -f ark[1-9]isdone
else
    echo You still need to unpack the following archives:
    echo "        " ${MISSING}
fi
##  End of shell archive.
exit 0
-- 
Mike Wexler(wyse!mikew)    Phone: (408)433-1000 x1330
Moderator of comp.sources.x



More information about the Comp.sources.x mailing list