[comp.sources.games] v05i074: wanderer2 - mini rogue-like adventure game

games@tekred.TEK.COM (10/18/88)

Submitted by: Steven Shipway <csupt@cu.warwick.ac.uk>
Comp.sources.games: Volume 5, Issue 74
Archive-name: wanderer2/Part02

#! /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 2 (of 2)."
# Contents:  Makefile Makefile.msdos display.c help.c icon.c m.c save.c
#   screens/README screens/credits screens/screen.1 screens/screen.10
#   screens/screen.11 screens/screen.12 screens/screen.13
#   screens/screen.14 screens/screen.15 screens/screen.16
#   screens/screen.17 screens/screen.18 screens/screen.19
#   screens/screen.2 screens/screen.20 screens/screen.3
#   screens/screen.4 screens/screen.5 screens/screen.6
#   screens/screen.7 screens/screen.8 screens/screen.9
#   screens/screen.ken
# Wrapped by billr@saab on Mon Oct 17 11:23:32 1988
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'Makefile' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'Makefile'\"
else
echo shar: Extracting \"'Makefile'\" \(498 characters\)
sed "s/^X//" >'Makefile' <<'END_OF_FILE'
X# Makefile for wanderer - modified by Bill Randle 6/30/88
X# modified again by play@cwi.nl
X# and again by me.. maujp@uk.ac.warwick.cu
X
XOBJ = m.o save.o jump.o display.o icon.o game.o read.o help.o fall.o scores.o edit.o
X
XCFLAGS = -O
XLIBS = -lcurses -ltermcap
X
Xall:	wanderer
X	@echo DONE
X
Xwanderer:	$(OBJ)
X	cc $(CFLAGS) -o wanderer $(OBJ) $(LIBS)
X
X$(OBJ): wand_head.h
X
Xinstall:
X	@mkdir /usr/games/lib/wand
X	cp -r screens /usr/games/lib/wand
X	touch /usr/games/lib/wand/hiscores
X	mv wanderer /usr/games
END_OF_FILE
if test 498 -ne `wc -c <'Makefile'`; then
    echo shar: \"'Makefile'\" unpacked with wrong size!
fi
# end of 'Makefile'
fi
if test -f 'Makefile.msdos' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'Makefile.msdos'\"
else
echo shar: Extracting \"'Makefile.msdos'\" \(654 characters\)
sed "s/^X//" >'Makefile.msdos' <<'END_OF_FILE'
X# Makefile for wanderer - modified by Bill Randle 6/30/88
X# modified again by play@cwi.nl
X# and again by me.. maujp@uk.ac.warwick.cu
X# and for MSDOS by Gregory H. Margo (uunet!netxcom!nxsysf!gmargo)
X
XOBJ = jump.obj display.obj icon.obj game.obj read.obj help.obj fall.obj scores.obj edit.obj m.obj save.obj
X
XCFLAGS = -O -Ic:\src\lib\curses -DLINT_ARGS
XLIBS = c:\src\lib\curses\scurses.lib /NOI /STACK:0x1000
X
Xall:	wanderer.exe
X	@echo DONE
X
Xwanderer.exe:	$(OBJ)
X	link $(OBJ),wanderer.exe,NUL,$(LIBS);
X
X$(OBJ):	wand_head.h
X
Xinstall:
X	@mkdir /usr/games/lib/wand
X	cp -r screens /usr/games/lib/wand
X	touch /usr/games/lib/wand/hiscores
X	mv wanderer /usr/games
END_OF_FILE
if test 654 -ne `wc -c <'Makefile.msdos'`; then
    echo shar: \"'Makefile.msdos'\" unpacked with wrong size!
fi
# end of 'Makefile.msdos'
fi
if test -f 'display.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'display.c'\"
else
echo shar: Extracting \"'display.c'\" \(2478 characters\)
sed "s/^X//" >'display.c' <<'END_OF_FILE'
X#include "wand_head.h"
X
Xextern int debug_disp;
X
Xvoid map(row_ptr)
Xchar (*row_ptr)[ROWLEN+1];
X{
Xint  x,y;
Xchar ch;
Xmove(0,0);
Xaddch('+');
Xfor(x = 0;x < ROWLEN; x++)
X    addch('-');
Xaddch('+');
Xfor(y = 0;y < NOOFROWS; y++)
X    {
X    move(y+1,0);
X    addch('|');
X    for(x = 0; x < ROWLEN; x++)
X	{
X	ch = (*row_ptr)[x];
X	if(!debug_disp)
X	    {
X	    if((ch == 'M')||(ch == 'S'))
X		ch = ' ';
X	    addch(ch);
X	    }
X	else
X	    if(ch==' '||ch=='#'||ch=='<'||ch=='>'||ch=='O'||ch==':'||
X	       ch=='/'||ch=='\\'||ch=='*'||ch=='='||ch=='@'||ch=='T'||
X	       ch=='X'||ch=='!'||ch=='M'||ch=='S'||ch=='C'||ch=='+'||
X	       ch=='A')
X		addch(ch);
X	    else
X		addch('"');
X	}
X    addch('|');
X    row_ptr++;
X    }
Xmove(y+1,0);
Xaddch('+');
Xfor(x = 0;x < ROWLEN; x++)
X    addch('-');
Xaddch('+');
Xif(!debug_disp)
X    {
X    move(18,0);
X    addstr("Press any key to return to the game.");
X    refresh();
X    (void) getchar();
X    move(18,0);
X    addstr("                                    ");
X    refresh();
X    for(y=0;y<=(NOOFROWS+1);y++)
X        {
X        move(y,0);
X        for(x=0;x<=(ROWLEN+2);x++)
X	    addch(' ');
X	}
X    }
Xelse
X    refresh();
X}
X
Xvoid display(cx,cy,row_ptr,score)
Xchar (*row_ptr)[ROWLEN+1];
Xint  cx,cy,score;
X{
X    int  x,y = 0,
X         x_coord,y_coord;
X    char ch;
X    while(y<(cy-3))
X    {
X        y++;
X        row_ptr++;
X    };
X    move(0,0);
X    addstr("+---------------------------------+");
X    move(15,0);
X    addstr("+---------------------------------+");
X    for(y=(cy-3);y<=(cy+3);y++)
X    {
X        y_coord = (y+3-cy)*2;
X        if ((y<0) || (y>=NOOFROWS))
X        {
X            move(y_coord+1,0);
X            addstr("|#################################|");
X            move(y_coord+2,0);
X            addstr("|#################################|");
X        }
X        else
X	{
X	    move(y_coord+1,0);
X            addch('|');
X	    move(y_coord+1,34);
X            addch('|');
X	    move(y_coord+2,0);
X            addch('|');
X	    move(y_coord+2,34);
X            addch('|');
X            for(x=(cx-5);x<=(cx+5);x++)
X            {
X                x_coord = (x+5-cx)*3;
X                if ((x<0) || (x>ROWLEN-1))
X                    draw_symbol(x_coord,y_coord,'#');
X                else
X                {
X                    ch = (*row_ptr)[x];
X                    draw_symbol(x_coord,y_coord,ch);
X                }
X            };
X	    row_ptr++;
X        }                   /*   end if   */
X    }                       /* end y loop */
X    move(16,0);
X    refresh();
X}
END_OF_FILE
if test 2478 -ne `wc -c <'display.c'`; then
    echo shar: \"'display.c'\" unpacked with wrong size!
fi
# end of 'display.c'
fi
if test -f 'help.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'help.c'\"
else
echo shar: Extracting \"'help.c'\" \(3817 characters\)
sed "s/^X//" >'help.c' <<'END_OF_FILE'
X/* From jason@uucp.aeras */
X
X#include "wand_head.h"
X
Xchar *help[]={
X"      **  W A N D E R E R  **      ", /* 0 */
X"    ===========================    ", /* 1 */
X"        by Steven Shipway          ", /* 2 */
X"How to play:                       ", /* 3 */
X" Collect all the treasure:    /$\\  ", /* 4 */
X"                              \\$/  ", /* 5 */
X" Then go through the exit:    Way  ", /* 6 */
X" Default keys are:            out  ", /* 7 */
X"  h  Left       j  Down            ", /* 8 */
X"  k  Up         l  Right           ", /* 9 */
X"  1  Loud       q  Quit game       ", /* 10 */
X"  0  Quiet      !  Look at map     ", /* 11 */
X"  S  Save game  R  Restore Game    ", /* 12 */
X"  ?  Enter help mode               ", /* 13 */
X"  ~  Jump to next level            ", /* 14 */
X"     (does not receive level bonus)", /* 15 */
X
X"This is you:  You are a spider.    ", /* 0 */
X"      o       (At least, that's    ", /* 1 */
X"     <|>      what you look like)  ", /* 2 */
X"                                   ", /* 3 */
X"The other items you will find are: ", /* 4 */
X"                                   ", /* 5 */
X"  ###     -=-                      ", /* 6 */
X"  ### and =-=    Solid rock        ", /* 7 */
X"                                   ", /* 8 */
X"  <O>   Time capsule (5 points,    ", /* 9 */
X"        +250 extra moves)          ", /* 10 */
X"   .                               ", /* 11 */
X"  . .   Passable earth (one point) ", /* 12 */
X"                                   ", /* 13 */
X" (*)   Teleport  (50 points for    ", /* 14 */
X" (*)              using it)        ", /* 15 */
X
X"  /^\\   Boulder (falls down, other ", /* 0 */
X"  \\_/   boulders and arrows fall   ", /* 1 */
X"        off of it)                 ", /* 2 */
X"                                   ", /* 3 */
X"  <--     -->  Arrows              ", /* 4 */
X"  <-- and -->  (run left and right)", /* 5 */
X"                                   ", /* 6 */
X"  TTT   Cage - holds baby monsters ", /* 7 */
X"  III   and changes into diamonds  ", /* 8 */
X"                                   ", /* 9 */
X"  /$\\    (10 points)               ", /* 0 */
X"  \\$/    Money  (collect it)       ", /* 1 */
X"                                   ", /* 2 */
X"  -o-  Baby monster (kills you)    ", /* 3 */
X"  /*\\                              ", /* 4 */
X"                                   ", /* 5 */
X
X"When a baby monster hits a cage it ", /* 0 */
X"is captured and you get 50 points. ", /* 1 */
X"The cage also becomes a diamond.   ", /* 2 */
X"                                   ", /* 3 */
X" !!! and  I  Instant annihilation  ", /* 4 */
X" !!!      o                        ", /* 5 */
X"                                   ", /* 6 */
X" \\_       _/   Slopes (boulders    ", /* 7 */
X"   \\ and /     and etc slide off)  ", /* 8 */
X"                                   ", /* 9 */
X" }o{  Monster  (eats you up whole. ", /* 0 */
X" /^\\  Yum Yum yum..) (100 points)  ", /* 1 */
X"      (kill with a rock or arrow)  ", /* 2 */
X"                                   ", /* 3 */
X" Way  Exit -- Must Collect all the ", /* 4 */
X" out  treasure first. (250 bonus)  ", /* 5 */
X};
X
X
X
Xvoid
Xhelpme()	/* routine to show help menu. */
X{
X	int i = 0, i1 = 0, i2 = 0;  /* loop counters */
X	char *ptr;  /* pointer in array.. */
X	char ch;
X
X	for(i1 = 0; i1 < 4; i1++)  /* times to show loop. */
X	{
X		for(i = 0; i < 16; i++)	/* show one menu. */
X		{
X			ptr = help[i2++];
X			move(i,0);  /* move to start of line. */
X			addstr(ptr);
X		}
X		move(i,0);  /* move to start of line. */
X		addstr("<return> to continue, <space> to exit");
X		refresh();	/* show on screen. */
X		ch = (char) getchar();	/* just for now, get anything. */
X		if(ch == ' ') /* if return or what ever.. */
X			break;  /* exit routine now. */
X	}
X	move(i,0);  /* move to start of line. */
X	addstr("                                        ");
X}
END_OF_FILE
if test 3817 -ne `wc -c <'help.c'`; then
    echo shar: \"'help.c'\" unpacked with wrong size!
fi
# end of 'help.c'
fi
if test -f 'icon.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'icon.c'\"
else
echo shar: Extracting \"'icon.c'\" \(2294 characters\)
sed "s/^X//" >'icon.c' <<'END_OF_FILE'
X#include "wand_head.h"
X
Xvoid draw_symbol(x,y,ch)        /* this is where the pretty graphics are */
X				/* all defined - change them if you want.. */
Xint  x,y;
Xchar ch;
X{
X    char icon[2][4],
X         (*iconrow)[4] = icon;
X    switch(ch)
X    {
X    case ' ':
X        strcpy((*iconrow++),"   ");
X        strcpy((*iconrow),"   ");
X        break;
X    case '#':
X        strcpy(*iconrow++,"###");
X        strcpy(*iconrow,"###");
X        break;
X    case '<':
X        strcpy(*iconrow++,"<--");
X        strcpy(*iconrow,"<--");
X        break;
X    case '>':
X        strcpy(*iconrow++,"-->");
X        strcpy(*iconrow,"-->");
X        break;
X    case 'O':
X        strcpy(*iconrow++,"/^\\");
X        strcpy(*iconrow,"\\_/");
X        break;
X    case ':':
X        strcpy(*iconrow++,". .");
X        strcpy(*iconrow," . ");
X        break;
X    case '/':
X        strcpy(*iconrow++," _/");
X        strcpy(*iconrow,"/  ");
X        break;
X    case '\\':
X        strcpy(*iconrow++,"\\_ ");
X        strcpy(*iconrow,"  \\");
X        break;
X    case '*':
X        strcpy(*iconrow++,"/$\\");
X        strcpy(*iconrow, "\\$/");
X        break;
X    case '=':
X        strcpy(*iconrow++,"=-=");
X        strcpy(*iconrow,  "-=-");
X        break;
X    case '@':
X        strcpy(*iconrow++," o ");
X        strcpy(*iconrow,  "<|>");
X        break;
X    case 'T':
X        strcpy(*iconrow++,"(*)");
X        strcpy(*iconrow,  "(*)");
X        break;
X    case 'X':
X        strcpy(*iconrow++,"Way");
X        strcpy(*iconrow,  "Out");
X        break;
X    case '!':
X        strcpy(*iconrow++," I ");
X        strcpy(*iconrow,  " o ");
X        break;
X    case 'M':
X        strcpy(*iconrow++,"}o{");
X        strcpy(*iconrow,  "/^\\");
X        break;
X    case 'S':
X        strcpy(*iconrow++,"-o-");
X        strcpy(*iconrow,  "/*\\");
X        break;
X    case 'C':
X        strcpy(*iconrow++,"   ");
X        strcpy(*iconrow,  "<O>");
X        break;
X    case '+':
X        strcpy(*iconrow++,"TTT");
X        strcpy(*iconrow,  "III");
X        break;
X    default:                         /* this is what it uses if it doesnt */
X				     /* recognise the character  */
X        strcpy(*iconrow++,"OOO");
X        strcpy(*iconrow,  "OOO");
X        break;
X    };
X    move(y+1,x+1);
X    iconrow--;
X    addstr(*iconrow++);
X    move(y+2,x+1);
X    addstr(*iconrow);
X}
END_OF_FILE
if test 2294 -ne `wc -c <'icon.c'`; then
    echo shar: \"'icon.c'\" unpacked with wrong size!
fi
# end of 'icon.c'
fi
if test -f 'm.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'m.c'\"
else
echo shar: Extracting \"'m.c'\" \(3337 characters\)
sed "s/^X//" >'m.c' <<'END_OF_FILE'
X#include "wand_head.h"
X
Xextern char *playscreen();
X
Xextern int rscreen();
X
Xextern int savescore();
X
Xint debug_disp = 0;
Xint no_passwords = 0;
Xint maxscreens;
Xchar screen[NOOFROWS][ROWLEN+1];
Xint edit_mode = 0;
Xint saved_game = 0;
X
Xmain(argc,argv)
Xint  argc;
Xchar *argv[];
X{
Xchar (*frow)[ROWLEN+1] = screen;
Xint num = 1,score = 0,bell = 0,maxmoves = 0,fp,x,y;
Xchar howdead[25],buffer[100],
X     *name,*keys,*dead,ch;
Xchar *malloc();
X
Xif(argc == 2)
X    {
X    if(!strcmp(argv[1], "-e"))
X	{
X	edit_mode = 1;
X	}
X    else if(!strcmp(argv[1], "-m"))
X	{
X	erase_scores();
X	return 0;
X	}
X    else if(!strcmp(argv[1], "-c"))
X	{
X	/* show credits */
X	sprintf(buffer,"%s/credits",SCREENPATH);
X	if((fp = open(buffer,O_RDONLY)) == -1) {
X            printf(" Sorry - credits unavailable!\n");
X	    exit(1);
X	    }
X	while(read(fp,&ch,1) == 1)
X	    printf("%c",ch);
X	printf("\n");
X	exit(0);
X        }
X    else if(!strcmp(argv[1], "-s"))
X	{
X        savescore("-",0,0,"-");
X        return 0;
X	}
X    else if(!strcmp(argv[1], "-f"))
X        {
X	debug_disp = 1;
X	}
X    else
X	{
X	fprintf(stderr,"Usage: %s [ -e | -m | -c | -s | -f ]\n",argv[0]);
X	exit(1);
X        }
X    }
Xif(argc > 2)
X    {
X    fprintf(stderr,"Usage: %s [ -e | -m | -c | -s | -f ]\n",argv[0]);
X    exit(1);
X    }
X
X/* check for passwords - if file no_pws is in screen dir no pws! */
Xsprintf(buffer,"%s/no_pws",SCREENPATH);
Xif((fp = open(buffer,O_RDONLY)) != -1) {
X    close(fp);
X    no_passwords = 1;
X}
X
X/* count available screens */
Xfor(maxscreens = 0;;maxscreens++) {
X    sprintf(buffer,"%s/screen.%d",SCREENPATH,(maxscreens+1));
X    if((fp = open(buffer, O_RDONLY)) == -1 )
X	break;
X    close(fp);
X}
X
Xif((name = (char *)getenv("NEWNAME")) == NULL)
X    if((name = (char *)getenv("NAME")) == NULL)
X        if((name = (char *)getenv("FULLNAME")) == NULL)
X            if((name = (char *)getenv("USER")) == NULL)
X		if((name = (char *)getenv("LOGNAME")) == NULL)
X#ifdef	ASKNAME	/* M001 */
X		{
X		    name = malloc(80);
X		    if (name == NULL) {
X			printf("malloc error\n");
X			exit(1);
X		    }
X		    printf("Name? "); fflush(stdout);
X		    gets(name);
X		    if (name[0] == '\0')
X			    name = "noname";
X		}
X#else
X	            name = "noname";
X#endif
X
Xif((keys = (char *)getenv("NEWKEYS")) == NULL)
X    {
X    keys = malloc(5);
X    strcpy(keys,"kjhl");
X    }
X
Xinitscr();
X
X/* MAIN PROGRAM HERE */
X
XCBON; noecho();
X
Xif(!edit_mode) {
X    for (;;) {
X        if (rscreen(num,&maxmoves)) {
X	    strcpy(howdead,"a non-existant screen");
X	    break;
X	    };
X        dead = playscreen(&num,&score,&bell,maxmoves,keys);
X        if ((dead != NULL) && (*dead == '~')) {
X	    num = (int)(dead[1]) - 1;
X	    dead = NULL;
X	    }
X        if (dead != NULL)
X	    {
X	    strcpy(howdead,dead);
X            break;
X            }
X        num++;
X        };
X
X    printf("\n\n%s killed by %s with a score of %d on level %d.\n",name,howdead,score,num);
X    }
Xelse
X    {
X    if(rscreen(num,&maxmoves))
X	{
X	for(x=0;x<ROWLEN;x++)
X	    for(y=0;y<NOOFROWS;y++)
X		screen[y][x] =  ' ';
X	}
X    editscreen(num,&score,&bell,maxmoves,keys);
X    }
X/* END OF MAIN PROGRAM */
X
X/* SAVE ROUTINES FOR SCORES */
X
Xif(!edit_mode)
X    {
X    if((savescore(howdead,score,num,name) == 0)&&(score != 0))
X         printf("\nWARNING: %s error: score not saved!\n\n",argv[0]);
X    }
X
Xecho();
XCBOFF;
Xendwin();
Xprintf("WANDERER (C)1988 S. Shipway\n");
Xreturn 0;
X}
END_OF_FILE
if test 3337 -ne `wc -c <'m.c'`; then
    echo shar: \"'m.c'\" unpacked with wrong size!
fi
# end of 'm.c'
fi
if test -f 'save.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'save.c'\"
else
echo shar: Extracting \"'save.c'\" \(3696 characters\)
sed "s/^X//" >'save.c' <<'END_OF_FILE'
X#include "wand_head.h"
X
Xextern char screen[NOOFROWS][ROWLEN+1];
Xextern int saved_game;
X
Xstruct	saved_game	{
X	short	num;
X	short	score;
X	short	bell;
X	short	maxmoves;
X	short	num_monsters;
X};
X
Xstruct	save_vars	zz;
X
Xvoid
Xsave_game(num, score, bell, maxmoves, start_of_list, tail_of_list)
Xint	num, *score, *bell, maxmoves;
Xstruct	mon_rec	*start_of_list, *tail_of_list;
X{
X	char	fname[128], *fp;
X	FILE	*fo;
X	struct	saved_game	s;
X	extern	char	*getenv();
X	struct	mon_rec	*mp;
X
X	clear();
X	refresh();
X	echo();
X	CBOFF;
X	endwin();
X
X	if ((char *)NULL == (fp = getenv("SAVENAME"))) {
X		printf("Saving game.... Filename ? ");
X		fflush(stdout);
X		fp = fname;
X		gets(fp);
X	}
X	if ((FILE *)NULL == (fo = fopen(fp, W_BIN))) {
X		printf("Open error on '%s'n", fp);
X		exit(1);
X	}
X
X	s.num = num;
X	s.score = *score;
X	s.bell = *bell;
X	s.maxmoves = maxmoves;
X	s.num_monsters = 0;
X
X	mp = start_of_list;		/* first entry is dummy	*/
X	while (mp != tail_of_list) {
X		mp = mp->next;
X		s.num_monsters++;	/* count them monsters	*/
X	}
X
X	if ( (1 != fwrite((char *)&s, sizeof(s), 1, fo)) ||
X	     (1 != fwrite((char *)screen, sizeof(screen), 1, fo)) ||
X	     (1 != fwrite((char *)&zz, sizeof(zz), 1, fo)) )
X	{
X		printf("Write error on '%s'n", fname);
X		fclose(fo);
X		unlink(fname);
X		exit(1);
X	}
X
X	mp = start_of_list;
X	while (mp != tail_of_list) {
X		/* save them monsters	*/
X		mp = mp->next;
X		if (1 != fwrite((char *)mp, sizeof(struct mon_rec), 1, fo)) {
X			printf("Write error on '%s'n", fname);
X			fclose(fo);
X			unlink(fname);
X			exit(1);
X		}
X	}
X
X	fclose(fo);
X
X	exit(0);
X}
X
Xvoid
Xrestore_game(num, score, bell, maxmoves, start_of_list, tail_of_list)
Xint	*num, *score, *bell, *maxmoves;
Xstruct	mon_rec	*start_of_list, **tail_of_list;
X{
X	FILE	*fi;
X	struct	saved_game	s;
X	struct	mon_rec	*mp, *tmp, tmp_monst;
X	char	fname[128], *fp;
X	FILE	*fo;
X	extern	char	*getenv();
X
X	if ((char *)NULL == (fp = getenv("SAVENAME"))) {
X		move((LINES-1),0);
X		addstr("Restore Filename ? ");
X		refresh();
X		echo(); CBOFF;
X		fp = fname;
X		gets(fp);
X		CBON; noecho();
X	}
X	clear();
X	refresh();
X
X	if ((FILE *)NULL == (fi = fopen(fp, R_BIN))) {
X		endwin();
X		printf("Open error on '%s'n", fp);
X		exit(1);
X	}
X	if ( (1 != fread((char *)&s, sizeof(s), 1, fi)) ||
X	     (1 != fread((char *)screen, sizeof(screen), 1, fi)) ||
X	     (1 != fread((char *)&zz, sizeof(zz), 1, fi)) ) {
X		endwin();
X		printf("Read error on '%s'n", fp);
X		fclose(fi);
X		exit(1);
X	}
X
X	*num = s.num;
X	*score = s.score;
X	*bell = s.bell;
X	*maxmoves = s.maxmoves;
X
X	/* free any monsters already on chain, to start clean */
X	mp = start_of_list->next;
X	while ((mp != NULL) && (mp != start_of_list)) {
X		/* free them monsters	*/
X		tmp = mp;
X		mp = mp->next;
X		free(tmp);
X	}
X
X	/* re-initialize the monster list	*/
X	/* *start_of_list = {0,0,0,0,0,NULL,NULL}; */
X	start_of_list->x = 0;
X	start_of_list->y = 0;
X	start_of_list->mx = 0;
X	start_of_list->my = 0;
X	start_of_list->under = 0;
X	start_of_list->next = (struct mon_rec *)NULL;
X	start_of_list->prev = (struct mon_rec *)NULL;
X
X	*tail_of_list = start_of_list;
X
X	while (s.num_monsters--) {
X		/* use make_monster to allocate the monster structures	*/
X		/* to get all the linking right without even trying	*/
X		if ((struct mon_rec *)NULL == (mp = make_monster(0, 0))) {
X			endwin();
X			printf("Monster alloc error on '%s'n", fp);
X			fclose(fi);
X			exit(1);
X		}
X		if (1 != fread((char *)&tmp_monst, sizeof(struct mon_rec), 1, fi)) {
X			endwin();
X			printf("Monster read error on '%s'n", fp);
X			fclose(fi);
X			exit(1);
X		}
X		/* copy info without trashing links	*/
X		mp->x     = tmp_monst.x;
X		mp->y     = tmp_monst.y;
X		mp->mx    = tmp_monst.mx;
X		mp->my    = tmp_monst.my;
X		mp->under = tmp_monst.under;
X	}
X
X	fclose(fi);
X	unlink(fp);
X	saved_game = 1;
X}
END_OF_FILE
if test 3696 -ne `wc -c <'save.c'`; then
    echo shar: \"'save.c'\" unpacked with wrong size!
fi
# end of 'save.c'
fi
if test -f 'screens/README' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'screens/README'\"
else
echo shar: Extracting \"'screens/README'\" \(952 characters\)
sed "s/^X//" >'screens/README' <<'END_OF_FILE'
XNote:
X
XAll the files in thescreens directory MUST be readable by everyone. The
Xfile 'no_pws' will cause passwords to be disabled if it is not readable. This
Xis one way for the 'wizard' to make all screens easily accessible by himself,
Xbut not by everyone - make the perms on no_pws 700 .
X
XThe credits file must be in existance and readable by everyone. If you make
Xany changes to wanderer, or add any screens, feel free to mention the
Xpeople responsible in the file.
X
XThe screens must be numbered consecutively - if screen.2 doesnt exist, the
Xprogram will think there is only one screen. All screens must be named
Xscreen.## where ## is a decimal number - any number of digits. If you
Xdesign any screens, please send them to csupt@uk.ac.warwick.cu (thats me).
X
XFeel free to alter the order of the screens, if you feel that they are not
Xcorrectly aranged inorder of difficulty.
X
X-Steve
X
X{maujp,csupt}@uk.ac.warwick.cu
X...!mcvax!ukc!warwick!{maujp,csupt}
END_OF_FILE
if test 952 -ne `wc -c <'screens/README'`; then
    echo shar: \"'screens/README'\" unpacked with wrong size!
fi
# end of 'screens/README'
fi
if test -f 'screens/credits' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'screens/credits'\"
else
echo shar: Extracting \"'screens/credits'\" \(2624 characters\)
sed "s/^X//" >'screens/credits' <<'END_OF_FILE'
X                            WANDERER CREDITS
X                           ==================
X
XThis file should always be available to all players of the game. Feel free to
Xadd anything necessary, eg, if you create some new screens, but don't *delete*
Xanything! -Steven Shipway
X
X-----------------------------------------------------------------------------
X
X        Wanderer was created by Steven Shipway, a first year mathematics
Xstudent at Warwick University, England.  The idea came from games such as
XBoulderdash, Xor, and especially Repton, from Superior Software.
X
X        Later improvements came from play@nl.cwi, who designed the editor
Xand made countless bugfixes, of which there are too many to list here. He
Xalso improved many parts of the original code, and also designed some
Xscreens. Also Dave (david@ist.co.uk), who did most of the work towards the
Ximproved level jumping routine (sorry, I had to alter it a bit due to other
Xchanges). Jason (jason@uucp.aeras) is responsible for the help routine, for
Xwhich I am eternally grateful since it saved me a lot of work.
X
X        Assisting in the development were Rob McMahon (our systems manager)
Xand Mark Sunnarks. In screen development were the following:
X
XScreens 1,2,3,4,7,8,10,16  Steven Shipway (although some of them are AWFUL)
XScreens 5,6             James Beckett  (far more evil than mine)
XScreen  9               Kenton Oatley  (also the late (bugged) screen no.13)
XScreens 11,13,14,19,20  play@nl.cwi    (who wishes to remain nameless to avoid
X                                        the netherlands mafia :-)
XScreen  17              david@ist.co.uk  (sorry, I dont know your full name)
XScreen  15              Bruce Butterfield (from Down Under)
XScreen  18              Alex Butterfield  (yes they are relations. age 10)
X
XAny new screens you wish to have added to the list please mail to me for
Xrelease in a official update package. The address is
X{maujp,csupt}@uk.ac.warwick.cu or ...!mcvax!ukc!warwick!{maujp,csupt}.
X
XThe official PC Port for Wanderer was done by Greg Margo, who may be found at
Xgmago@uucp.netxcom or uunet!netxcom!gmargo. He is also responsible for the
Xsave/restore game feature, so any bugs in that are *his* fault :-)
X
XThe X-Windows port - which is pretty impressive - comes from Mike Cuddy.
XHis address is cuddy%convex@edu.umich.cc.umix or ihnp4!convex!cuddy. Although
XI haven't been able to see this one for myself a friend assures me that the
Xgraphics are fantastic.
X
XAlso thanks to Paul Metcalf for thinking of a name for the game!
X(fame for you at last, Paul!)
X
XIf you missed some of this, try again with 'wanderer -c | more' .
END_OF_FILE
if test 2624 -ne `wc -c <'screens/credits'`; then
    echo shar: \"'screens/credits'\" unpacked with wrong size!
fi
# end of 'screens/credits'
fi
if test -f 'screens/screen.1' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'screens/screen.1'\"
else
echo shar: Extracting \"'screens/screen.1'\" \(702 characters\)
sed "s/^X//" >'screens/screen.1' <<'END_OF_FILE'
X=O=====================\OOO*OOOO/#OO####
X*O       O:#         O/ \OOOOOO/# ::A**#
X# O #### #:#       **/   \OOOO/   ######
X# #  O  *#:#              \OO/   ##    -
X# #* * ###:# OOO         @ O/    ##    -
X# ######:::#*****         :/  *###* O  -
X#    #*                       *<*###*< -
X#*#! ###                  \   *###*    -
X###              !     ::  \     ##    -
X# #          \ /=O=   ::::   \O     / O/
X#*           O O  =    ::   / \*   / */-
X###         #***# =        /   \    O/ -
XX < !!!     #\*/# =       /    O*O*O*O -
X>*   *   *<  # #  =      /     =**O*O= -
X    !!!   ! !# #! =! \    /    =:O*O:= -
X          ! *#T#*:::::\**/     =::::::*-
X########################################
X2000
END_OF_FILE
if test 702 -ne `wc -c <'screens/screen.1'`; then
    echo shar: \"'screens/screen.1'\" unpacked with wrong size!
fi
# end of 'screens/screen.1'
fi
if test -f 'screens/screen.10' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'screens/screen.10'\"
else
echo shar: Extracting \"'screens/screen.10'\" \(700 characters\)
sed "s/^X//" >'screens/screen.10' <<'END_OF_FILE'
X                      OOOOO        OC >O
X     !        ===     :OO::       /\  >O
X    !O!!!!=== =*=      ::        /    *O
X /===     = = = =              =*=    *O
X !    =   = =+= =        =     \=/    >O
X \====    = === ==       S             O
X     * ====      =    +               O:
X     = S    ======     :              :/
X     == =====           :::          / -
X      ===       /\         : =====   : -
X /==\        ==+X!          :=S S=  \  -
X   =======  =S *!         :: *   =     -
X   = S S =   ==    ===O=:    =====     -
X== !     =         =  :=           \   -
XC+       =     OOO== =:=          * \  -
XC+      @*     ***  +=:              \ -
X########################################
X25
END_OF_FILE
if test 700 -ne `wc -c <'screens/screen.10'`; then
    echo shar: \"'screens/screen.10'\" unpacked with wrong size!
fi
# end of 'screens/screen.10'
fi
if test -f 'screens/screen.11' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'screens/screen.11'\"
else
echo shar: Extracting \"'screens/screen.11'\" \(697 characters\)
sed "s/^X//" >'screens/screen.11' <<'END_OF_FILE'
X*OOO:::O:::::O*::<:>::<::O:O:*:O:::O::*<
X:::*O::::O:::::>*:::OO:*<:>::O::O:::O:O*
X:OO:::O:::O:O:*::O:O:::O:O:O:*O:::<:::::
XO:*:O:::O:::::O*>:O::O::::::*<::O:O>:O:<
X::O::>*O:O:O:<::<:O:::*:O:O::O:::::*::O:
X:::::O:>*::::O<:O:::O:O*::::O::O:O::>*:O
X:O::O:::::O*::::::O:::<*:<>::::::::*:O::
X::::::<*O::::>:O:O:OX::>*:O:>::>::O:<::*
X>::O::O::::>:*:::>:@O::::O:*:::::::::*OO
X::::::::O:*:::O:::O::<:>*::O:O::O:O::O:*
X::O:<:>O:::O:>:*<::O:O:::O:::*:O::::::::
X*:::::>::<::*:O:::::<:O::*:O::O:::<>::OO
X:O*:O:::::::O:*:O:O::O:>::<::*::O:::::::
X*:::O:>:O:O:::*O:::::::::>*O:>:::::O::O:
X>*O::::::O:O::*<>::OOO::O:::O::*:O::<:::
X*::::O:>:::::O*:::::::::*::::::O::O:*:>*
X########################################
END_OF_FILE
if test 697 -ne `wc -c <'screens/screen.11'`; then
    echo shar: \"'screens/screen.11'\" unpacked with wrong size!
fi
# end of 'screens/screen.11'
fi
if test -f 'screens/screen.12' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'screens/screen.12'\"
else
echo shar: Extracting \"'screens/screen.12'\" \(697 characters\)
sed "s/^X//" >'screens/screen.12' <<'END_OF_FILE'
X==/*<</O       #OM# >OO     O  /      =*
X+      :\      :<## *OO     :         O<
X/     *:             ::           /==*OO
X      ===          ===\     /  + /*  :OO
X       *       +  =S S=    /  /  \===:##
X       \ /       *S   =      /     *=:##
X       =*=  *   *@*=== O   *       =::<#
X        = ::==   *     :   O         \<#
X  /:<<:       =  ====     =+=    \     #
X    :<<:       ===*  :::::   \       O:<
X */  :<<:                     \      *:*
X               ::              *       !
X**=      :::::::::       /  !        \ -
XS:*       :   ::+:  /##>T   X##       \*
X: *   =   :   :::: /##*#######A *      \
X :*   S       ::*:/#          *<<<<<<<<<
X########################################
END_OF_FILE
if test 697 -ne `wc -c <'screens/screen.12'`; then
    echo shar: \"'screens/screen.12'\" unpacked with wrong size!
fi
# end of 'screens/screen.12'
fi
if test -f 'screens/screen.13' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'screens/screen.13'\"
else
echo shar: Extracting \"'screens/screen.13'\" \(697 characters\)
sed "s/^X//" >'screens/screen.13' <<'END_OF_FILE'
X\ *OOOOOOO*                 * OOOOOOOOO*
XO\ *OOOOO*          *       = OOOOOOOOO<
X *\ *OOO*   ================= OOOOOOOO<<
X   \ *O*      O O O O O O   = OOOOOOO<<<
X    \ *     :             < = OOOOOO<<<<
X  /  \      :      *        = OOOOO<<<<<
X*/          :>           /  = OOOO<<<<<<
X/           :             < = OOO<<<<<<<
X            :  * * @ * *    / OO<<<<<<<<
X            :>           /    O<<<<<<<<<
X+=****                   S<            -
XX=T                *     =: \          -
X================ ==       :  \         -
X>O:O>*<O=::::::= O= ===       \        -
X>*O*O>*:**OOOO*  := =O=========\ O O O O
X*:::*::*=::::::= ==    A       *:*:*:*:*
X########################################
END_OF_FILE
if test 697 -ne `wc -c <'screens/screen.13'`; then
    echo shar: \"'screens/screen.13'\" unpacked with wrong size!
fi
# end of 'screens/screen.13'
fi
if test -f 'screens/screen.14' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'screens/screen.14'\"
else
echo shar: Extracting \"'screens/screen.14'\" \(699 characters\)
sed "s/^X//" >'screens/screen.14' <<'END_OF_FILE'
X==O=O O======OO======O =  /*<<  ******X*
X*:::: ::*=   *     + *<= /*<<<<=>      *
X===== ====O==== == =   =/*<<<< ====== ==
X          *:::= S  =         *  /<*=   -
X ===:::======:====O======O\  O*/<<<=:==O
X  M::<<<**=:::=C==       * \  <<<<<=   *
X===========:===O*=      +O  \      ====-
X=:::::::::=::::O<=  ==  ::         *<= -
X=:=======:=:===O=O O==  :          *<= =
X=:=>*O*<=:=:::=O=* *===O==           =C=
X=:=>* *<=:===:=O=====                = -
X=:      =O ==:=OBooby       O  C====== =
X =  O  =** *=:::Trap>              @   =
XO   O     *==:===***=          C======*=
X =>========:::::::::S *      ====OO O=*=
X*:::::::::::===========*==::    A****===
X########################################
X8
END_OF_FILE
if test 699 -ne `wc -c <'screens/screen.14'`; then
    echo shar: \"'screens/screen.14'\" unpacked with wrong size!
fi
# end of 'screens/screen.14'
fi
if test -f 'screens/screen.15' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'screens/screen.15'\"
else
echo shar: Extracting \"'screens/screen.15'\" \(700 characters\)
sed "s/^X//" >'screens/screen.15' <<'END_OF_FILE'
XO            ###  MX#     OO#*OOOOCOOO*#
X**O             O ###     */==\OOOOOO/==
X>>:     === /###O#/ #     /    \OOOO/ !*
X            \   O   #O   /    \OOOOOO/ -
X                   ##:  /  /\*<\OOOO/\ \
X   ==========      #>*      *## \OO/<! !
X   ! O<**>O !      ######  *##   :: *! !
X   >*  !!  *<             *##     ! \/ /
X   !   <>   !            *###       / OO
X    :======: @          ##/           **
X>>C                      O        :\::<*
X   /*:*\                 #        *<\ \<
X>:/==:==\==== ===== ==== ===========!*O*
X /OOO*OOO\*>*   <O#:OOO*:* ! * !:OT#::O:
X #*:*:*:*#>*   <O #:OO:!:! ! ! !:O<#::O:
X*#:*:*:*:#    <***#::*A!*! * ! *:::#:***
X########################################
X70
END_OF_FILE
if test 700 -ne `wc -c <'screens/screen.15'`; then
    echo shar: \"'screens/screen.15'\" unpacked with wrong size!
fi
# end of 'screens/screen.15'
fi
if test -f 'screens/screen.16' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'screens/screen.16'\"
else
echo shar: Extracting \"'screens/screen.16'\" \(700 characters\)
sed "s/^X//" >'screens/screen.16' <<'END_OF_FILE'
X*!   !!                       O OO    O-
X   ! !   O                  + =*==*=*==*
X!!!  !   *O     ! >>*              *   -
X          :\   >>>/               *    -
X    \           >/           /         -
X  :   :  :    * /    !<<    /          -
X>>O*       :      /O><<<<           *  -
X##*    *     *   /*O*                  -
X    *      #*####  O*      !###        -
X           #    # \*      !##O#        -
X        \O ###\<<<<\     !##O<##       -
X *<      \:::  #*##     !#*#O          -
X ====     ####  ##     !#CC#*        ===
X =  =  C   : ###      !#CCC#/       *<=M
X  = =  * @ : * :     !#CC        /=====-
X+ S *      :   :    !*CC    /    *     -
X########################################
X50
END_OF_FILE
if test 700 -ne `wc -c <'screens/screen.16'`; then
    echo shar: \"'screens/screen.16'\" unpacked with wrong size!
fi
# end of 'screens/screen.16'
fi
if test -f 'screens/screen.17' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'screens/screen.17'\"
else
echo shar: Extracting \"'screens/screen.17'\" \(697 characters\)
sed "s/^X//" >'screens/screen.17' <<'END_OF_FILE'
X O    O  \OOO*OO>   O    O   OOO   !O O=
X        * \OOOO/ ***     \*=:::: !X!OO:=
X      \ =  \OO/              ====== :::=
X      =* +>::/      <               /\:=
X   @   \  !        \     <   ======: = =
X        \          !*!        S  *+= =T*
X                O  !!!>  /   ======O  ==
X=*===           >       /      S   : O -
X*= !*=                                 -
XA=      =\        >                /   -
X   <===   \               <=======*== =*
X /       <= ==            = OO OO =   *=
X=>           *\           = /O O\ =>>>/!
X=>       <=====   <<<   = = =***= : !*!*
X*  \*=======* >  =*=*!=*=         =#####
X########################################
X########################################
END_OF_FILE
if test 697 -ne `wc -c <'screens/screen.17'`; then
    echo shar: \"'screens/screen.17'\" unpacked with wrong size!
fi
# end of 'screens/screen.17'
fi
if test -f 'screens/screen.18' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'screens/screen.18'\"
else
echo shar: Extracting \"'screens/screen.18'\" \(700 characters\)
sed "s/^X//" >'screens/screen.18' <<'END_OF_FILE'
X>>>O       :      O      O      O      O
X+>>O      /*      :      :      :      :
X +>O     /*    >O\# O    #      # #### #
X  +*    /* O    :              \  \OO*O/
XO +     *  :                     \#OOOO#
X: +                     ##O##O#    \O:/#
X* + C                   # : *<#        #
X  +           O    ##   # ##C #        -
X  +           :/=\ * =  #>*####    \  /-
X     >*           \=/         O    \  /*
X   #      #@#                       \/##
X          # #  S S S S S S S S     # OOT
X          # # ################ O     O:#
X          # # #O# :< #:#   O     ##  O -
X # * #    # # #:   #   #  # # #>* # #:#-
X*#*#*#    #M#*#A# ### X#  #*  # # # ***C
X========================================
X25
END_OF_FILE
if test 700 -ne `wc -c <'screens/screen.18'`; then
    echo shar: \"'screens/screen.18'\" unpacked with wrong size!
fi
# end of 'screens/screen.18'
fi
if test -f 'screens/screen.19' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'screens/screen.19'\"
else
echo shar: Extracting \"'screens/screen.19'\" \(697 characters\)
sed "s/^X//" >'screens/screen.19' <<'END_OF_FILE'
XO*O*O                            O     *
X*O*O*      ***  ***          =S=:=   O -
XO O /      OOO  OOO          = S *    O-
X O /       ***            O  =====     -
XO /             S+         O =         :
X /           ====== ======*= =     = +:-
X                   O       =*=    = +  -
X**=         +      O<    ! === ===     -
X*==         :      O     > :   *=      -
X=======:S   =            ! ======      -
X        =   =         ***  =           -
X        =   =         ***  = !  !   /\ -
X S +    =   =              = ! T!  /AX\-
X =      :   S       @      = !!!!  !!!!-
X::::::::=========+==*=:==S = !  !  !  !-
X        + * * * * ====    *= : *!**!* :-
X########################################
END_OF_FILE
if test 697 -ne `wc -c <'screens/screen.19'`; then
    echo shar: \"'screens/screen.19'\" unpacked with wrong size!
fi
# end of 'screens/screen.19'
fi
if test -f 'screens/screen.2' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'screens/screen.2'\"
else
echo shar: Extracting \"'screens/screen.2'\" \(701 characters\)
sed "s/^X//" >'screens/screen.2' <<'END_OF_FILE'
XC      O  OOO ##       \OOO*OOOO/    O *
X       *       *#       \OOOOOO/ >     A
X#!        /    #         \OOOO/        -
X  O    /         O      *<\OO/  =*==\  -
X\O<   /          :        :O/!!!    O\*/
X>O   /                     /        := -
X#O\ /                              = * -
X#O          /   @         \         ====
X#O         /    O    *<    \           -
X**              :            /         -
X====/                       /          -
X       \                   /           -
XX!   \ *\                 /            -
X!    /!!!*/!!!!!/*<      /   *         -
X>*   \!!!/         !!\    /            -
X*      *             *\ */T            *
X########################################
X350
END_OF_FILE
if test 701 -ne `wc -c <'screens/screen.2'`; then
    echo shar: \"'screens/screen.2'\" unpacked with wrong size!
fi
# end of 'screens/screen.2'
fi
if test -f 'screens/screen.20' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'screens/screen.20'\"
else
echo shar: Extracting \"'screens/screen.20'\" \(696 characters\)
sed "s/^X//" >'screens/screen.20' <<'END_OF_FILE'
XOO                   =                 -
X**    >*        / == =    ::::::::::::::
X               /=  =        O * O * O  -
X*/             O<= = *       \   \   \:=
X/              >>>*=>      /   /   /   *
X                == = *        /   /   :=
X:=====          =  =         /   /     -
XO=   ============ ========== === === ===
X **<<<                 *=*   *=* *=*   *
X ========= :::==========================
X          *<<<===OO=====================
X*  ====    ===                        *-
X====OO=         ====O=O=O=O=O=O=O=O=O==-
XOO==OO=      O= =* * * * * * * * * * *=-
XT@ <OO=>==== *< =O=O=O=O=O=O=O=O=O=O=O=-
XXA  ::**T**  *=                       *
X########################################
END_OF_FILE
if test 696 -ne `wc -c <'screens/screen.20'`; then
    echo shar: \"'screens/screen.20'\" unpacked with wrong size!
fi
# end of 'screens/screen.20'
fi
if test -f 'screens/screen.3' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'screens/screen.3'\"
else
echo shar: Extracting \"'screens/screen.3'\" \(707 characters\)
sed "s/^X//" >'screens/screen.3' <<'END_OF_FILE'
X   ====>*O        O<           /O:     -
X *       :*      *<    /        *<     O
X##<      /                  *<\       O/
X*                           O<       O/*
X######## #\ ###            OO====== O/ O
XAOO*OOO/*<<#               */     **/ */
X\OO!OO/: *#      /\      O#:   *   /   -
X*\OOO/::\*      /#O\ /   :#\      /    -
X  \O/ @  *     /O*<#* OO#   \    /    \-
X* :::   *      #O<  ##\O#    \**/     !*
X ::/:O#       # O *    : */   ><      !!
X  /# *       :##O## ######O \          *
X  ###\     ::::#O#: :::::::::#####::####
X::OOO#   ::::#:::::/>>::O  /##O*O:*::O*O
X::*OOO ::::!:#*## ##/*<!!  #!*O:*::O:*:*
X*::::*O::::::#:#*>T*      X# O:*::*::O:*
X########################################
X750 moves
END_OF_FILE
if test 707 -ne `wc -c <'screens/screen.3'`; then
    echo shar: \"'screens/screen.3'\" unpacked with wrong size!
fi
# end of 'screens/screen.3'
fi
if test -f 'screens/screen.4' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'screens/screen.4'\"
else
echo shar: Extracting \"'screens/screen.4'\" \(697 characters\)
sed "s/^X//" >'screens/screen.4' <<'END_OF_FILE'
XX#O#                          *        O
X*#:       O      O       O    *<<<<<<<<<
X   #\                    :   ##        -
X##A#          * \           #*         -
X  !*         >O< \           #   \     -
X   !!         *   \               \    -
X   #O#             \  <     O   != \ < -
X    *<   >            *          *=    -
X*   *#                           = >/  -
X             O      @            #     -
X             ==     \               \< -
X O            *##    \     >           -
X>/\           #*                     : /
X   \*          #   == \    /         O<#
X    \<    \       = = *\  /          :O#
X*!   \<   !*!     =    M\*!*!       =::T
X########################################
END_OF_FILE
if test 697 -ne `wc -c <'screens/screen.4'`; then
    echo shar: \"'screens/screen.4'\" unpacked with wrong size!
fi
# end of 'screens/screen.4'
fi
if test -f 'screens/screen.5' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'screens/screen.5'\"
else
echo shar: Extracting \"'screens/screen.5'\" \(697 characters\)
sed "s/^X//" >'screens/screen.5' <<'END_OF_FILE'
XX##O#:::/O*#*#*## *#O#*#*#*#*#*#*#*##**#
X*#::::#  :      :<#>>O                 #
X   #######:#: : :#:: :  #########>:::::#
X #*#**#**::::::::#     #OO :O  *#>:::::#
X* ##O#*######:###      #*O  /####*######
X<<<<<::::::O#           *<    **# OOO O#
X>:::       *#          ::########!*****#
X##         /    :              #O## /###
X#/                              *<# ##*#
X/                               *      #
X  O\                            \  # #*#
X O/      /\  ##***    :    \          ##
X*/      /##:::##>*:      :       \   : #
X/**/\   ##*:#:*#**#               \  O<#
X*>/!! ##*#/:<<#***# />::           \ :O#
XA/*****#     #***@#*#*#          ! *\:*T
X########################################
END_OF_FILE
if test 697 -ne `wc -c <'screens/screen.5'`; then
    echo shar: \"'screens/screen.5'\" unpacked with wrong size!
fi
# end of 'screens/screen.5'
fi
if test -f 'screens/screen.6' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'screens/screen.6'\"
else
echo shar: Extracting \"'screens/screen.6'\" \(702 characters\)
sed "s/^X//" >'screens/screen.6' <<'END_OF_FILE'
X###O#######################*############
X#*>:*            ::::= O=*OO      :<<<O=
X#==:    !      OOO:=   *=*::    ==*<*<*=
X#       *<<>>>>::::=== = =      X=======
X# =\  / !      O  :<*=  >OO/=====/  * O<
X#O==*/*  :<<<<<<======   :*=O* O*    =O=
X#O===============O=**=======::O==    ::=
X#:  :       :<<*=O=     : == :*     == =
X#   :</   :<<====O      :         ==== =
X# =         =O*=**       =       ::<== =
X# =  ======  : ===== =====O    : : :== =
X#*=  =*=**======O O=     ============= =
X#==*:=O=   O :: ::**=    =*::::*    ::O<
X#***= : =*=O====\ \      =======    *=O=
X# === / ==:>>>:***=>\OO      O<====:@=O=
X#    *>:  : ==****=A=T*****<<<==*   :<<=
X########################################
X2000
END_OF_FILE
if test 702 -ne `wc -c <'screens/screen.6'`; then
    echo shar: \"'screens/screen.6'\" unpacked with wrong size!
fi
# end of 'screens/screen.6'
fi
if test -f 'screens/screen.7' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'screens/screen.7'\"
else
echo shar: Extracting \"'screens/screen.7'\" \(697 characters\)
sed "s/^X//" >'screens/screen.7' <<'END_OF_FILE'
XX                                      M
X          =  =  ==                     -
X          = O= =  O:      :            -
X          ==== = ==                    -
X             = =*A=                    -
X          ===   ==                     -
X                      O       *     OOOO
X  #   #          #   ##  #    *     \OO/
X  ## ##  #  # ## #*<   # #    *      \O=
X  # # * O # ##   #   #*# #          /=O=
X  #   # # # #    #  # ## #    O       O=
X  #   #  #  #    ##  T # #   /*       **
X                            /        ===
X                           /           -
X                    ><    /            -
X COO!                    /             @
X########################################
END_OF_FILE
if test 697 -ne `wc -c <'screens/screen.7'`; then
    echo shar: \"'screens/screen.7'\" unpacked with wrong size!
fi
# end of 'screens/screen.7'
fi
if test -f 'screens/screen.8' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'screens/screen.8'\"
else
echo shar: Extracting \"'screens/screen.8'\" \(697 characters\)
sed "s/^X//" >'screens/screen.8' <<'END_OF_FILE'
X!\ !  /\      *            >>OOOO*OOOOOM
X! \! !XA!                  >>>OOOOOOOOOO
X!  !  \/                   >>>>OOOOOOOO<
X        O                  >>>>>OOOOOO<<
X!= /== /= /=\ !=\ !=  *    >>>>>OOOOO<<*
X!  !   !  ! ! ! ! !   *    >>>>//OOO<<<<
X!= \=\ !  !=! !=/ !=  *          OO<<<<<
X!    ! !  ! ! !   !              :<<<<<<
X!= ==/ \= ! ! !   !=  *          *O<<<<<
X                                  :O<<<<
X *   # #  #     # #  #   !         :\<<<
X     # # # #    # # # #  !    \      \<<
X     ### ###    ### ###  !     \      \<
X     # # # #    # # # #         \      -
X     # # # #    # # # #  !             -
XT                 @                    *
X########################################
END_OF_FILE
if test 697 -ne `wc -c <'screens/screen.8'`; then
    echo shar: \"'screens/screen.8'\" unpacked with wrong size!
fi
# end of 'screens/screen.8'
fi
if test -f 'screens/screen.9' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'screens/screen.9'\"
else
echo shar: Extracting \"'screens/screen.9'\" \(702 characters\)
sed "s/^X//" >'screens/screen.9' <<'END_OF_FILE'
X**********=  >* \>* \>* \>*    *<      O
XOOOOOOOOOO==  O   O            :=     @/
X::::O::O::O ===:=:=:=:=:=:=:          /-
X::::*::*===                 O :OO    /*T
X===:::::::= ================: /OO:  /:O/
X::::====  =:                 ! ::  /  /*
X::=:*=    = =O==O==O==O==O==O==   /<   -
X::O<:=  O==*O:::::::::::::::::   /: *\ /
X: O :=::O:==X                 ::    =!*!
X::/::=::O::=============================
X:A:===:/O=:=:::<=O=O=O=O=O=O=O=:=#######
X>::**=***=:::O:::::::*:*:*:*:*:*<##    #
X# ###########:/#################### ## #
X#                                   #  #
X###########::::###################### :#
X* * * * * >>>>::    M                >/#
X########################################
X2001
END_OF_FILE
if test 702 -ne `wc -c <'screens/screen.9'`; then
    echo shar: \"'screens/screen.9'\" unpacked with wrong size!
fi
# end of 'screens/screen.9'
fi
if test -f 'screens/screen.ken' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'screens/screen.ken'\"
else
echo shar: Extracting \"'screens/screen.ken'\" \(697 characters\)
sed "s/^X//" >'screens/screen.ken' <<'END_OF_FILE'
XOOO#*#                                 @
XOOO:*#                                 -
XT::::#   O   O   O   O   O         O:  -
X###\O#      /:            =========O=  -
XS   :   >:          \      :       :   -
X           /         \    # ++++++++++ -
XS     >>>>/            O #  +========+ -
X                \      #<   +#      O+ -
XS  :             \          +#A######+ -
X      S S S S S S S S S:<<< +#      #+ -
XS   S###################    +###### #+ -
X      S S S S S S S S S#    +#OOOOO #+ -
XS                      #    +#X:::: #+ -
X  !*!*!*!******!*!*!*! #    +========+ -
XS                           ++++++++++ -
X S S S S S S S S S S S                 -
X########################################
END_OF_FILE
if test 697 -ne `wc -c <'screens/screen.ken'`; then
    echo shar: \"'screens/screen.ken'\" unpacked with wrong size!
fi
# end of 'screens/screen.ken'
fi
echo shar: End of archive 2 \(of 2\).
cp /dev/null ark2isdone
MISSING=""
for I in 1 2 ; do
    if test ! -f ark${I}isdone ; then
	MISSING="${MISSING} ${I}"
    fi
done
if test "${MISSING}" = "" ; then
    echo You have unpacked both 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