games@tekred.TEK.COM (07/01/88)
Submitted by: "Stanley T. Shebs" <shebs%defun@cs.utah.edu>
Comp.sources.games: Volume 4, Issue 95
Archive-name: xconq5/Part07
#! /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 7 (of 18)."
# Contents: input.c lib/xconq.bdf map.h
# Wrapped by billr@saab on Wed Jun 29 08:55:39 1988
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f input.c -a "${1}" != "-c" ; then
echo shar: Will not over-write existing file \"input.c\"
else
echo shar: Extracting \"input.c\" \(19011 characters\)
sed "s/^X//" >input.c <<'END_OF_input.c'
X/* Copyright (c) 1987, 1988 Stanley T. Shebs, University of Utah. */
X/* This program may be used, copied, modified, and redistributed freely */
X/* for noncommercial purposes, so long as this notice remains intact. */
X
X/* RCS $Header: input.c,v 1.1 88/06/21 12:30:17 shebs Exp $ */
X
X/* To accommodate simultaneous movement by several players, our setup must */
X/* be a little elaborate. Basically, the program keeps the initiative; */
X/* when a side's movement phase needs input, it posts a "request" and a */
X/* handler for that request. When X gets an event, data about it is */
X/* preprocessed and then stuffed into the request structure. At the end */
X/* of a movement subphase, the requests are fulfilled by calling the handler */
X/* and passing it the side and a pointer to the request. */
X
X/* The bad part about all this is that *every* *single* interaction must */
X/* be handled this way - no more calling a routine to get a value and */
X/* waiting until it is complete! :-( */
X
X#include "config.h"
X#include "misc.h"
X#include "dir.h"
X#include "period.h"
X#include "side.h"
X#include "unit.h"
X#include "global.h"
X#include "map.h"
X
X/* Magic values (unlikely to show up as player input) */
X
X#define DFLTFLAG (-12345) /* flags when default arg to be used */
X#define NEGFLAG (-12346) /* flags when default arg to be used */
X#define ITERFLAG (-12347) /* flags args that are "itertime" */
X
X#define ESCAPE '\033' /* standard abort character */
X#define BACKSPACE '\010' /* for fixing strings being entered */
X
X/* The following structure is used only for the dispatch table. */
X
Xtypedef struct func_tab {
X char fchar; /* character to match against */
X int (*code)(); /* pointer to command's function */
X int defaultarg; /* default for argument */
X bool needunit; /* true if cmd always applies to a unit */
X char *help; /* short documentation string */
X} FuncTab;
X
Xextern int giventime; /* flags use of chess clock */
X
X/* Predeclarations of all commands. */
X
Xint do_sentry(), do_delay(), do_wakeup(), do_wakemain(), do_embark(),
X do_exit(), do_resign(), do_message(), do_follow(),
X do_redraw(), do_disband(), do_return(),
X do_sit(), do_product(), do_idle(), do_help(), do_version(),
X do_save(), do_standing(), do_ident(), do_moveto(), do_coast(),
X do_survey_mode(), do_unit_info(), do_printables(), do_occupant(),
X do_options(), do_name(), do_unit(), do_give_unit(), do_center(),
X do_mark_unit(), do_add_player(), do_patrol(), do_give(), do_take();
X
Xchar dirchars[] = DIRCHARS; /* typable characters for directions */
X
X/* The command table itself. Default iterations of ITERFLAG actually turn */
X/* into the value of "itertime", which can be set by options cmd. */
X
XFuncTab commands[] = {
X 's', do_sentry, ITERFLAG, TRUE, "put a unit on sentry duty",
X 'w', do_wakemain, 0, FALSE, "wake units up from whatever they were doing",
X ' ', do_sit, 1, FALSE, "(Space Bar) make unit be on sentry this turn only",
X 'r', do_return, 1, TRUE, "return unit to nearest city/transport",
X 'd', do_delay, 1, TRUE, "delay unit's move until later in turn",
X 'f', do_follow, ITERFLAG, TRUE, "follow a designated leader",
X 'm', do_moveto, 1, TRUE, "move to given location",
X 'z', do_survey_mode, 1, FALSE, "toggle between survey and move modes",
X 'a', do_occupant, 1, TRUE, "look at the occupants",
X 'e', do_embark, 1, TRUE, "embark units onto transport occupying same unit",
X 'x', do_mark_unit, 1, TRUE, "mark unit for later reference",
X 'g', do_give, -1, TRUE, "give supplies to the transport",
X 't', do_take, -1, TRUE, "take supplies from the transport",
X 'c', do_center, 1, FALSE, "designate current location as center of action",
X 'o', do_options, 5, FALSE, "set various options",
X 'p', do_printables, 1, FALSE, "put various data into files for printing",
X ' ', NULL, 0, 0, "",
X 'P', do_product, 1, TRUE, "set/change unit production",
X 'I', do_idle, ITERFLAG, TRUE, "set unit to not produce anything",
X 'W', do_wakeup, 0, FALSE, "wake ALL units in area, including occupants",
X 'D', do_disband, 1, TRUE, "disband a unit and send it home",
X 'F', do_coast, ITERFLAG, TRUE, "follow a coastline",
X 'Z', do_patrol, ITERFLAG, TRUE, "go on a patrol",
X 'O', do_standing, 1, TRUE, "set standing orders for occupants",
X 'G', do_give_unit, -2, TRUE, "turn unit over to another side",
X 'M', do_message, -2, FALSE, "send a message to other sides",
X 'C', do_name, 1, FALSE, "call a unit or side by a name",
X 'X', do_resign, -2, FALSE, "resign from the game",
X 'Q', do_exit, 1, FALSE, "kill game for all players",
X 'S', do_save, 1, FALSE, "save the game into a file",
X 'A', do_add_player, 1, FALSE, "add a new player to the game",
X '?', do_help, 1, FALSE, "display help info",
X '/', do_ident, 1, FALSE, "identify things on screen",
X '=', do_unit_info, 1, FALSE, "display details about a type of unit",
X 'V', do_version, 1, FALSE, "display program version",
X '\\', do_unit, 1, FALSE, "build a new unit (Build mode only)",
X '\022', do_redraw, 1, FALSE, "(^R) redraw screen",
X '\014', do_redraw, 1, FALSE, "(^L) redraw screen",
X '\0', NULL, 0, FALSE, NULL /* end of table marker */
X};
X
X/* Just to get everything off on the right foot. */
X
Xinit_requests(side)
XSide *side;
X{
X side->reqvalue = DFLTFLAG;
X}
X
X/* Post a request - need only know the handler that will be called to */
X/* fulfill the request later, and sometimes a relevant unit. */
X
Xrequest_input(side, unit, handler)
XSide *side;
XUnit *unit;
Xint (*handler)();
X{
X if (Debug) printf("Making %s request ", side->name);
X if (!humanside(side)) fprintf(stderr, "Gack!\n");
X if (!side->reqactive) {
X if (Debug) printf("(accepted)\n");
X side->reqactive = TRUE;
X side->reqhandler = handler;
X side->reqtype = GARBAGE;
X side->requnit = unit;
X /* any other data slots are setup by callers of this routine */
X } else {
X if (Debug) printf("(ignored)\n");
X }
X}
X
X/* Make a request go away. Careful about using this! */
X
Xcancel_request(side)
XSide *side;
X{
X if (side->reqactive) {
X if (Debug) printf("Canceling %s request\n", side->name);
X side->reqactive = FALSE;
X erase_cursor(side);
X clear_info(side);
X flush_output(side);
X }
X}
X
X/* Handle all requests at once. This routine *will* wait forever for */
X/* input (polling is evil). This is also the right place to draw the */
X/* unit cursor, since it is unwanted unless we are waiting on input. */
X
Xhandle_requests()
X{
X bool waiters = FALSE;
X Side *side;
X
X for_all_sides(side) {
X if (side->reqactive) {
X waiters = TRUE;
X /* wasteful to call this for everybody... */
X show_info(side);
X draw_cursor(side);
X }
X }
X if (waiters) {
X get_input();
X for_all_sides(side) {
X if (side->reqactive && side->reqtype != GARBAGE) {
X if (Debug) printf("Fulfilling %s request with input type %d\n",
X side->name, side->reqtype);
X side->reqactive = FALSE;
X (*(side->reqhandler))(side);
X erase_cursor(side);
X clear_info(side);
X flush_output(side);
X }
X }
X }
X}
X
X/* Acquire a command from the player. Command may be prefixed with a */
X/* nonnegative number which is given as an argument to the command function */
X/* (otherwise arg defaults to value in third column of command table). */
X/* This routine takes in both keyboard and mouse input, other kinds of */
X/* devices should be handled here also (rriiiight...). Don't do any of */
X/* this if the clock ran out, just supply an innocuous command. */
X
Xx_command(side)
XSide *side;
X{
X int dir, terr, sign = 1;
X
X switch (side->reqtype) {
X case KEYBOARD:
X if (Debug) printf("%s keyboard input: %c (%d)\n",
X side->name, side->reqch, side->reqvalue);
X if (isdigit(side->reqch)) {
X if (side->reqvalue == DFLTFLAG) {
X side->reqvalue = 0;
X } else if (side->reqvalue == NEGFLAG) {
X side->reqvalue = 0;
X sign = -1;
X } else {
X side->reqvalue *= 10;
X }
X side->reqvalue +=
X (side->reqvalue >= 0 ? 1 : -1) * (side->reqch - '0');
X side->reqvalue *= sign;
X sprintf(side->promptbuf, "Arg: %d", side->reqvalue);
X show_prompt(side);
X request_input(side, side->curunit, x_command);
X return;
X } else {
X clear_prompt(side);
X if (Build && ((terr = find_terr(side->reqch)) >= 0)) {
X if (side->reqvalue == DFLTFLAG) side->reqvalue = 0;
X do_terrain(side, terr, side->reqvalue);
X } else if (side->reqch == '-') {
X side->reqvalue = NEGFLAG;
X request_input(side, side->curunit, x_command);
X return;
X } else if ((dir = iindex(side->reqch, dirchars)) >= 0) {
X if (side->reqvalue == DFLTFLAG) side->reqvalue = 1;
X do_dir(side, dir, side->reqvalue);
X } else if ((dir = iindex(lowercase(side->reqch), dirchars)) >= 0) {
X if (side->reqvalue == DFLTFLAG)
X side->reqvalue = side->itertime;
X if (side->mode == SURVEY) side->reqvalue = 10;
X do_dir(side, dir, side->reqvalue);
X } else {
X execute_command(side, side->reqch, side->reqvalue);
X }
X }
X break;
X case MAPPOS:
X if (Debug) printf("%s map input: %d,%d (%d)\n",
X side->name, side->reqx, side->reqy, side->reqvalue);
X clear_prompt(side);
X if (side->reqx == side->curx && side->reqy == side->cury) {
X if (side->curunit) do_sit(side, 1);
X break;
X } else {
X if (side->teach) {
X cache_moveto(side, side->reqx, side->reqy);
X } else {
X switch (side->mode) {
X case MOVE:
X if (side->curunit) {
X order_moveto(side->curunit, side->reqx, side->reqy);
X side->curunit->orders.flags &= ~SHORTESTPATH;
X }
X break;
X case SURVEY:
X move_survey(side, side->reqx, side->reqy);
X break;
X default:
X case_panic("mode", side->mode);
X }
X }
X }
X break;
X default:
X break;
X }
X if (giventime && !side->timedout && side->timeleft <= 0) {
X side->timedout = TRUE;
X notify(side, "You ran out of time!!");
X beep(side);
X }
X /* Reset the arg so we don't get confused next time around */
X side->reqvalue = DFLTFLAG;
X}
X
X/* The requester proper, which just sets up the hook to call the main */
X/* command interpreter when some input comes by. */
X
Xrequest_command(side)
XSide *side;
X{
X request_input(side, side->curunit, x_command);
X}
X
X/* Search in command table and execute function if found, complaining if */
X/* the command is not recognized. Many commands operate on the "current */
X/* unit", and all uniformly error out if there is no current unit, so put */
X/* that test here. Also fix up the arg if the value passed is one of the */
X/* specially recognized ones. */
X
Xexecute_command(side, ch, n)
XSide *side;
Xchar ch;
Xint n;
X{
X struct func_tab *cmd;
X
X for (cmd = commands; cmd->fchar != '\0'; ++cmd) {
X if (ch == cmd->fchar) {
X if (n == DFLTFLAG) n = cmd->defaultarg;
X if (n == NEGFLAG) n = 0 - cmd->defaultarg;
X if (n == ITERFLAG) n = side->itertime;
X if (Debug) printf("... actual arg is %d\n", n);
X if (cmd->needunit) {
X if (side->curunit != NULL) {
X (*(cmd->code))(side, side->curunit, n);
X } else {
X cmd_error(side, "No unit to operate on here!");
X }
X } else {
X (*(cmd->code))(side, n);
X }
X return;
X }
X }
X cmd_error(side, "Unknown command '%c'", ch);
X}
X
X/* Help for the main command mode just dumps part of the table, and a little */
X/* extra info about what's not in the table. This may go onto a screen or */
X/* into a file, depending on where this was called from. */
X
Xcommand_help(side)
XSide *side;
X{
X FuncTab *cmd;
X
X wprintf(side, "To move a unit, use the mouse or [hlyubn]");
X wprintf(side, "[HLYUBN] moves unit repeatedly in that direction");
X wprintf(side, "Mousing unit makes it sit, mousing enemy unit attacks");
X if (Build) wprintf(side, "Terrain characters set what will be painted.");
X wprintf(side, " ");
X for (cmd = commands; cmd->fchar != '\0'; ++cmd) {
X wprintf(side, "%c %s", cmd->fchar, cmd->help);
X }
X}
X
X/* The handler for unit production needs to make sure valid input has */
X/* been received, will put in another request if not. */
X
Xx_product_type(side)
XSide *side;
X{
X int u;
X
X if ((u = grok_unit_type(side)) >= 0) {
X set_product(side->requnit, u);
X set_schedule(side->requnit);
X } else {
X request_input(side, side->requnit, x_product_type);
X }
X}
X
X/* This is called when production is to be set or changed. Note that since */
X/* the user has a pretty dull choice if there is only one possible type of */
X/* unit to build, in such cases we can bypass requests altogether. */
X
Xrequest_new_product(unit)
XUnit *unit;
X{
X int u;
X Side *us = unit->side;
X
X if (humanside(us)) {
X sprintf(spbuf, "%s will build: ", unit_handle(us, unit));
X u = ask_unit_type(us, spbuf, utypes[unit->type].make);
X if (u < 0) {
X make_current(us, unit);
X request_input(us, unit, x_product_type);
X } else {
X set_product(unit, u);
X set_schedule(unit);
X }
X } else {
X set_product(unit, machine_product(unit));
X set_schedule(unit);
X }
X}
X
X/* Prompt for a type of a unit from player, maybe only allowing some types */
X/* to be accepted. Also allow specification of no unit type. We do this */
X/* by scanning the vector, building a string of chars and a vector of */
X/* unit types, so as to be able to map back when done. */
X
Xask_unit_type(side, prompt, possibles)
XSide *side;
Xchar *prompt;
Xshort *possibles;
X{
X int numtypes = 0, u, type;
X
X for_all_unit_types(u) {
X side->bvec[u] = 0;
X if (possibles == NULL || possibles[u]) {
X side->bvec[u] = 1;
X side->ustr[numtypes] = utypes[u].uchar;
X side->uvec[numtypes] = u;
X numtypes++;
X }
X }
X if (numtypes == 0) {
X type = NOTHING;
X } else if (numtypes == 1) {
X type = side->uvec[0];
X side->bvec[type] = 0;
X } else {
X side->ustr[numtypes] = '\0';
X sprintf(side->promptbuf, "%s [%s] ", prompt, side->ustr);
X show_prompt(side);
X draw_unit_list(side, side->bvec);
X type = -1;
X }
X return type;
X}
X
X/* Do something with the char or unit type that the player entered. */
X
Xgrok_unit_type(side)
XSide *side;
X{
X int i, type = -1;
X
X switch (side->reqtype) {
X case KEYBOARD:
X echo_at_prompt(side, side->reqch);
X if (side->reqch == '?') {
X help_unit_type(side);
X } else if (side->reqch == ESCAPE) {
X type = NOTHING;
X } else if (iindex(side->reqch, side->ustr) == -1) {
X notify(side, "Unit type '%c' not in \"%s\"!",
X side->reqch, side->ustr);
X } else {
X type = find_unit_char(side->reqch);
X }
X break;
X case UNITTYPE:
X if (between(0, side->requtype, period.numutypes-1) &&
X side->bvec[side->requtype]) {
X type = side->requtype;
X } else {
X notify(side, "Not a valid unit type!");
X }
X break;
X default:
X break;
X }
X if (type >= 0) {
X clear_prompt(side);
X for_all_unit_types(i) side->bvec[i] = 0;
X draw_unit_list(side, side->bvec);
X }
X return type;
X}
X
X/* User is asked to pick a position on map. This will iterate until the */
X/* space bar designates the final position. */
X
Xask_position(side, prompt)
XSide *side;
Xchar *prompt;
X{
X sprintf(side->promptbuf, "%s [mouse or keys to move, space bar to set]",
X prompt);
X show_prompt(side);
X side->tmpcurx = side->curx; side->tmpcury = side->cury;
X side->tmpcurunit = side->curunit;
X}
X
X/* Restore the saved "cur" slots. */
X
Xrestore_cur(side)
XSide *side;
X{
X side->curx = side->tmpcurx; side->cury = side->tmpcury;
X side->curunit = side->tmpcurunit;
X}
X
X/* Interpret the user's input in response to a position request. All we */
X/* have to comprehend is direction keys and mouse hits. Space bars and */
X/* unmoving mice both mean that a position has been decided on. */
X
Xgrok_position(side)
XSide *side;
X{
X int dir;
X
X switch (side->reqtype) {
X case KEYBOARD:
X if (side->reqch == ' ') {
X clear_prompt(side);
X return TRUE;
X } else if ((dir = iindex(side->reqch, dirchars)) >= 0) {
X side->reqposx = wrap(side->reqposx + dirx[dir]);
X side->reqposy = side->reqposy + diry[dir];
X } else if ((dir = iindex(lowercase(side->reqch), dirchars)) >= 0) {
X side->reqposx = wrap(side->reqposx + 10*dirx[dir]);
X side->reqposy = side->reqposy + 10*diry[dir];
X }
X break;
X case MAPPOS:
X if (side->reqx == side->reqposx && side->reqy == side->reqposy) {
X clear_prompt(side);
X return TRUE;
X } else {
X side->reqposx = side->reqx; side->reqposy = side->reqy;
X }
X break;
X default:
X break;
X }
X side->curx = side->reqposx; side->cury = side->reqposy;
X side->curunit = NULL;
X show_info(side);
X return FALSE;
X}
X
X/* Prompt for a yes/no answer with a settable default. */
X
Xask_bool(side, question, dflt)
XSide *side;
Xchar *question;
Xbool dflt;
X{
X sprintf(side->promptbuf, "%s [%s]", question, (dflt ? "yn" : "ny"));
X show_prompt(side);
X side->reqvalue2 = dflt;
X}
X
X/* Figure out what the answer actually is, keeping the default in mind. */
X
Xgrok_bool(side)
XSide *side;
X{
X bool dflt = side->reqvalue2;
X char ch = side->reqch;
X
X if (side->reqtype == KEYBOARD) {
X if (dflt ? (lowercase(ch) == 'n') : (lowercase(ch) == 'y'))
X dflt = !dflt;
X }
X clear_prompt(side);
X return dflt;
X}
X
X/* Prompt for a single character. */
X
Xask_char(side, question, choices)
XSide *side;
Xchar *question, *choices;
X{
X sprintf(side->promptbuf, "%s [%s]", question, choices);
X show_prompt(side);
X}
X
X/* The char has already been processed, so just pass it through. */
X
Xgrok_char(side)
XSide *side;
X{
X if (side->reqtype == KEYBOARD) {
X clear_prompt(side);
X return side->reqch;
X } else {
X return '\0';
X }
X}
X
X/* Read a string from the prompt window. Deletion is allowed, and a */
X/* cursor is displayed (this should definitely be a toolkit call...) */
X/* Some restrictions on what strings can be read - for instance can't */
X/* read or default to a NULL string. */
X
Xask_string(side, prompt, dflt)
XSide *side;
Xchar *prompt, *dflt;
X{
X if (dflt == NULL) {
X sprintf(side->promptbuf, "%s ", prompt);
X } else {
X sprintf(side->promptbuf, "%s (default \"%s\") ", prompt, dflt);
X }
X show_prompt(side);
X side->reqstrbeg = strlen(side->promptbuf);
X side->reqcurstr = side->reqstrbeg;
X write_str_cursor(side);
X side->reqdeflt = dflt;
X}
X
X/* Dig a character from the filled-in request and add it into the string. */
X/* Keep returning NULL until we get something. */
X
Xchar *
Xgrok_string(side)
XSide *side;
X{
X if (side->reqtype == KEYBOARD) {
X if (side->reqch == '\r' ||
X side->reqch == '\n' ||
X side->reqcurstr >= BUFSIZE-2) {
X if (side->reqcurstr == side->reqstrbeg && side->reqdeflt != NULL) {
X strcpy(side->promptbuf+side->reqstrbeg, side->reqdeflt);
X } else {
X (side->promptbuf)[side->reqcurstr] = '\0';
X }
X clear_prompt(side);
X return copy_string(side->promptbuf + side->reqstrbeg);
X } else {
X if (side->reqch == BACKSPACE) {
X if (side->reqcurstr > side->reqstrbeg) --side->reqcurstr;
X } else {
X echo_at_prompt(side, side->reqch);
X (side->promptbuf)[side->reqcurstr++] = side->reqch;
X }
X }
X write_str_cursor(side);
X (side->promptbuf)[side->reqcurstr+1] = '\0';
X }
X return NULL;
X}
END_OF_input.c
if test 19011 -ne `wc -c <input.c`; then
echo shar: \"input.c\" unpacked with wrong size!
fi
# end of overwriting check
fi
if test -f lib/xconq.bdf -a "${1}" != "-c" ; then
echo shar: Will not over-write existing file \"lib/xconq.bdf\"
else
echo shar: Extracting \"lib/xconq.bdf\" \(29701 characters\)
sed "s/^X//" >lib/xconq.bdf <<'END_OF_lib/xconq.bdf'
XSTARTFONT 2.1
XCOMMENT The X10 name for this font was "/site/Chris/Xconq/lib/xconq.onx"
XFONT /site/Chris/Xconq/lib/xconq.onx.bdf
XSIZE 11 75 75
XFONTBOUNDINGBOX 20 22 0 0
XSTARTPROPERTIES 2
XFONT_DESCENT 8
XFONT_ASCENT 14
XENDPROPERTIES
XCHARS 127
XSTARTCHAR C000
XENCODING 0
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X800010
X406020
X209040
X108080
X088100
X049200
X026400
X3108c0
X489120
X486120
X586120
X489120
X3508c0
X020400
X049200
X089100
X10d080
X20b040
X409020
X809010
X000000
X000000
XENDCHAR
XSTARTCHAR C001
XENCODING 1
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C002
XENCODING 2
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C003
XENCODING 3
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C004
XENCODING 4
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C005
XENCODING 5
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C006
XENCODING 6
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C007
XENCODING 7
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C010
XENCODING 8
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C011
XENCODING 9
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C012
XENCODING 10
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C013
XENCODING 11
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C014
XENCODING 12
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C015
XENCODING 13
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C016
XENCODING 14
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C017
XENCODING 15
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C020
XENCODING 16
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C021
XENCODING 17
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C022
XENCODING 18
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C023
XENCODING 19
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C024
XENCODING 20
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C025
XENCODING 21
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C026
XENCODING 22
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C027
XENCODING 23
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C030
XENCODING 24
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C031
XENCODING 25
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C032
XENCODING 26
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C033
XENCODING 27
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C034
XENCODING 28
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C035
XENCODING 29
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C036
XENCODING 30
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C037
XENCODING 31
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C040
XENCODING 32
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR !
XENCODING 33
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR "
XENCODING 34
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR #
XENCODING 35
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR $
XENCODING 36
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR %
XENCODING 37
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X00e000
X0d2000
X120600
X20e900
X1c21c0
X36c640
X424940
X4d2220
X0128a0
X560820
X088240
X1c3100
X256860
X448ca0
X451420
X180a40
X028800
X022300
X019000
X004000
X000000
XENDCHAR
XSTARTCHAR &
XENCODING 38
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR '
XENCODING 39
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR (
XENCODING 40
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X00f800
X838610
X760360
X0c0180
X3800c0
Xe00070
X000010
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR )
XENCODING 41
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR *
XENCODING 42
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR +
XENCODING 43
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X040100
X040100
X040100
X040100
X040100
X040100
X040100
X040100
Xfffff0
X040100
X040100
X040100
X040100
X040100
X040100
X040100
X040100
X040100
X000000
X000000
XENDCHAR
XSTARTCHAR ,
XENCODING 44
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X003800
X000000
X07ce00
X000000
X73ffc0
X000000
X3ff1f0
X000000
Xff3fe0
X000000
X3ffe70
X000000
Xffcf30
X000000
X3f7fe0
X000000
X1cfe00
X000000
X00f800
X000000
X000000
XENDCHAR
XSTARTCHAR -
XENCODING 45
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR .
XENCODING 46
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X004000
X00a000
X031880
X1c0700
X000000
X080200
X360d80
Xc1f070
X000000
X004010
Xc1b060
X3e0f80
X000000
X080200
X360d80
Xc1f070
X000000
X004000
X00a000
X011800
X000000
X000000
XENDCHAR
XSTARTCHAR /
XENCODING 47
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR 0
XENCODING 48
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000380
X000280
X000280
X000280
X000380
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR 1
XENCODING 49
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000100
X000100
X000100
X000100
X000100
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR 2
XENCODING 50
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000380
X000080
X000380
X000200
X000380
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR 3
XENCODING 51
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000380
X000080
X000380
X000080
X000380
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR 4
XENCODING 52
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000280
X000280
X000380
X000080
X000080
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR 5
XENCODING 53
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000380
X000200
X000380
X000080
X000380
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR 6
XENCODING 54
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000380
X000200
X000380
X000280
X000380
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR 7
XENCODING 55
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR 8
XENCODING 56
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR 9
XENCODING 57
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR :
XENCODING 58
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X008000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000100
X000000
X000000
X080000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR ;
XENCODING 59
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR <
XENCODING 60
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR =
XENCODING 61
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X01f000
X000000
X000400
X7e4440
X002480
X1fa480
X001500
X7f1570
X000000
X07ff80
Xf00000
X0207e0
X222000
X124fc0
X124000
X0a8000
X0abf00
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR >
XENCODING 62
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR ?
XENCODING 63
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR @
XENCODING 64
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR A
XENCODING 65
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR B
XENCODING 66
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C
XENCODING 67
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR D
XENCODING 68
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR E
XENCODING 69
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR F
XENCODING 70
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR G
XENCODING 71
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR H
XENCODING 72
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR I
XENCODING 73
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR J
XENCODING 74
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR K
XENCODING 75
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR L
XENCODING 76
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR M
XENCODING 77
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR N
XENCODING 78
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR O
XENCODING 79
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X006000
X01f800
X07fe00
X1fff80
X7fffe0
Xfffff0
Xfffff0
Xfffff0
Xfffff0
Xfffff0
Xfffff0
Xfffff0
Xfffff0
Xfffff0
Xfffff0
Xfffff0
Xfffff0
X7fffe0
X1fff80
X07fe00
X01f800
X006000
XENDCHAR
XSTARTCHAR P
XENCODING 80
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR Q
XENCODING 81
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR R
XENCODING 82
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR S
XENCODING 83
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR T
XENCODING 84
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR U
XENCODING 85
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR V
XENCODING 86
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR W
XENCODING 87
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR X
XENCODING 88
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR Y
XENCODING 89
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR Z
XENCODING 90
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR [
XENCODING 91
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X1fff80
X3fffc0
X3fffc0
X3801c0
X3801c0
X3801c0
X3801c0
X3801c0
X3801c0
X3801c0
X3801c0
X3801c0
X3801c0
X3fffc0
X3fffc0
X1fff80
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR \
XENCODING 92
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR ]
XENCODING 93
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X0fff00
X100080
X100080
X100080
X100080
X100080
X100080
X100080
X100080
X100080
X100080
X100080
X100080
X0fff00
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR ^
XENCODING 94
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X006000
X007000
X00d000
X019800
X014c00
X034600
X065380
X1c88c0
X32a660
X641120
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR _
XENCODING 95
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X001000
X001000
X003000
X003800
X002800
X065800
X065800
X0a5400
X19d400
X11da00
Xf34bf0
Xe24df0
Xc445f0
X448280
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR `
XENCODING 96
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR a
XENCODING 97
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR b
XENCODING 98
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X005000
X019000
X00e800
X017000
X00a800
X012000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR c
XENCODING 99
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X025000
X012800
X02aa00
X0ca400
X029800
X056500
X0af200
X04f400
X036c00
X0c9300
X015400
X029200
X024800
X002800
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR d
XENCODING 100
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X004000
X01a000
X029a00
X1eb500
X2a5280
X452a40
X3a5520
X09fa20
X65f9c0
X13fca0
X09fa20
X6ffdc0
X19f860
X42af40
X5452a0
X054540
X1aad00
X029400
X005000
X000000
X000000
XENDCHAR
XSTARTCHAR e
XENCODING 101
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR f
XENCODING 102
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR g
XENCODING 103
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR h
XENCODING 104
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR i
XENCODING 105
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR j
XENCODING 106
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR k
XENCODING 107
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR l
XENCODING 108
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR m
XENCODING 109
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR n
XENCODING 110
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR o
XENCODING 111
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X006000
X01f800
X07fe00
X1fff80
X7fffe0
Xffffe0
Xffffe0
Xffffe0
Xffffe0
Xffffe0
Xffffe0
Xffffe0
Xffffe0
Xffffe0
Xffffe0
Xffffe0
X7fffe0
X1fff80
X07fe00
X01f800
X006000
X000000
XENDCHAR
XSTARTCHAR p
XENCODING 112
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR q
XENCODING 113
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR r
XENCODING 114
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR s
XENCODING 115
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR t
XENCODING 116
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR u
XENCODING 117
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR v
XENCODING 118
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR w
XENCODING 119
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR x
XENCODING 120
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR y
XENCODING 121
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR z
XENCODING 122
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR {
XENCODING 123
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR |
XENCODING 124
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR }
XENCODING 125
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR ~
XENCODING 126
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X004000
X002000
X008800
X061200
X094280
X490c20
X1a8280
X485250
X10a200
X8a0920
X08a500
Xe7f6f0
X050100
X895220
X2c0a80
X2a2a10
X889480
X090280
X045200
X00a000
X000000
X004000
XENDCHAR
XENDFONT
END_OF_lib/xconq.bdf
if test 29701 -ne `wc -c <lib/xconq.bdf`; then
echo shar: \"lib/xconq.bdf\" unpacked with wrong size!
fi
# end of overwriting check
fi
if test -f map.h -a "${1}" != "-c" ; then
echo shar: Will not over-write existing file \"map.h\"
else
echo shar: Extracting \"map.h\" \(3444 characters\)
sed "s/^X//" >map.h <<'END_OF_map.h'
X/* Copyright (c) 1987, 1988 Stanley T. Shebs, University of Utah. */
X/* This program may be used, copied, modified, and redistributed freely */
X/* for noncommercial purposes, so long as this notice remains intact. */
X
X/* RCS $Header: map.h,v 1.1 88/06/21 12:29:42 shebs Exp $ */
X
X/* Definitions of levels of detail in mapfiles. These values must be */
X/* ordered, so careful about fiddling with them. */
X
X#define SIDEBASIC 1
X#define SIDESLOTS 2
X#define SIDEVIEW 3
X#define SIDEMISC 4
X#define SIDEALL 9 /* guaranteed max */
X
X#define UNITBASIC 1
X#define UNITSLOTS 2
X#define UNITORDERS 3
X#define UNITALL 9 /* guaranteed max */
X
X/* These limit the junk in mapfile headers. */
X
X#define MAXINCLUDES 9 /* max number of included files */
X#define MAXMAPNOTES 40 /* max lines of notes */
X
X/* Theoretically, there is no maximum size to xconq maps, but the minimum */
X/* size is set by mystical properties of display, and is not negotiable. */
X
X#define MINWIDTH 5
X#define MINHEIGHT 5
X
X/* Letters for hex and outlined hex. Exact use is up to the interface - */
X/* the X interface has hexagonal shapes in its xconq font for these. No */
X/* problems about conflicting with unit or terrain characters. */
X
X#define HEX 'O'
X#define OHEX 'o'
X
X/* This structure should be as small as possible, since it is an */
X/* individual entry in the array containing the entire world. */
X/* The "type" and "people" slots could be combined, but this might */
X/* slow accesses undesirably, because of bit field extraction. */
X
Xtypedef struct a_hex {
X char type; /* terrain type at this spot */
X char people; /* alignment/number of people in this hex */
X struct a_unit *surf; /* pointer to unit if any */
X} Hex;
X
X/* Just for convenience, global variables about map live in this structure. */
X
Xtypedef struct a_world {
X int width, height; /* size of the world */
X int scale; /* scale in km (not really very important) */
X bool known; /* true if everybody knows what world looks like */
X Hex *terrain; /* pointer to array of hexes */
X} World;
X
X/* The type of a hex in the world is a small number representing the */
X/* terrain type. Only about 10 types are defined, in terrain.h */
X
X#define terrain_at(x,y) ((world.terrain[(y)*world.width+(x)]).type)
X
X#define set_terrain_at(x,y,t) \
X ((world.terrain[(y)*world.width+(x)]).type = (t))
X
X/* The people only have a side alignment, no mention of population */
X/* (at least for now). */
X
X#define people_at(x,y) ((world.terrain[(y)*world.width+(x)]).people)
X
X#define set_people_at(x,y,p) \
X ((world.terrain[(y)*world.width+(x)]).people = (p))
X
X#define NOBODY 0
X
X#define unpopulated(x,y) (people_at((x),(y)) == NOBODY)
X
X/* The unit is a raw pointer - this macro is used a *lot*. (Any prospects */
X/* for optimization?) */
X
X#define unit_at(x,y) ((world.terrain[(y)*world.width+(x)]).surf)
X
X#define set_unit_at(x,y,u) \
X ((world.terrain[(y)*world.width+(x)]).surf = (u))
X
X/* This little macro implements wraparound in the x direction. */
X/* The stupid add is for the benefit of brain-damaged mod operators */
X/* that don't handle negative numbers properly. */
X
X#define wrap(x) (((x) + 4*world.width) % world.width)
X
X/* Constrain y to northern and southern edges. */
X
X#define limit(y) (max(0, min((y), (world.height-1))))
X
X#define interior(y) (max(1, min((y), (world.height-2))))
X
X/* Declaration of the world itself. */
X
Xextern World world;
END_OF_map.h
if test 3444 -ne `wc -c <map.h`; then
echo shar: \"map.h\" unpacked with wrong size!
fi
# end of overwriting check
fi
echo shar: End of archive 7 \(of 18\).
cp /dev/null ark7isdone
MISSING=""
for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ; do
if test ! -f ark${I}isdone ; then
MISSING="${MISSING} ${I}"
fi
done
if test "${MISSING}" = "" ; then
echo You have unpacked all 18 archives.
rm -f ark[1-9]isdone ark[1-9][0-9]isdone
else
echo You still need to unpack the following archives:
echo " " ${MISSING}
fi
## End of shell archive.
exit 0