home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-09-03 | 54.3 KB | 1,683 lines |
- Newsgroups: comp.sources.x
- From: jck@kimba.catt.citri.edu.au (Justin Kibell)
- Subject: v20i128: xboing - a simple blockout type game, Part21/26
- Message-ID: <1993Sep3.123544.8398@sparky.sterling.com>
- X-Md4-Signature: 469cdfed85615cbe120986ce38999936
- Sender: chris@sparky.sterling.com (Chris Olson)
- Organization: Sterling Software
- Date: Fri, 3 Sep 1993 12:35:44 GMT
- Approved: chris@sterling.com
-
- Submitted-by: jck@kimba.catt.citri.edu.au (Justin Kibell)
- Posting-number: Volume 20, Issue 128
- Archive-name: xboing/part21
- Environment: X11, xpm, color
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then feed it
- # into a shell via "sh file" or similar. To overwrite existing files,
- # type "sh file -c".
- # Contents: audio/HPaudio.c audio/LINUXaudio.c ball.h bitmaps/flag.xpm
- # bitmaps/icon.xpm bitmaps/mouse.xpm bitmaps/titleI.xpm blocks.h
- # error.c level.h mess.c sounds/ballshot.au.uue sounds/boing.au.uue
- # sounds/toggle.au.uue sounds/touch.au.uue
- # Wrapped by chris@sparky on Fri Sep 3 07:14:49 1993
- PATH=/bin:/usr/bin:/usr/ucb:/usr/local/bin:/usr/lbin ; export PATH
- echo If this archive is complete, you will see the following message:
- echo ' "shar: End of archive 21 (of 26)."'
- if test -f 'audio/HPaudio.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'audio/HPaudio.c'\"
- else
- echo shar: Extracting \"'audio/HPaudio.c'\" \(3547 characters\)
- sed "s/^X//" >'audio/HPaudio.c' <<'END_OF_FILE'
- X#include "copyright.h"
- X
- X/* HP Audio - .au much the same as how LINUXaudio.c is done */
- X/* I`m not sure but does the HP audio device accept .au data
- X * and know what to do with the header?? Anyone know.
- X */
- X
- X/*
- X * Include file dependencies:
- X */
- X
- X#include <stdio.h>
- X#include <fcntl.h>
- X
- X#include "audio.h"
- X
- X/*
- X * Internal macro definitions:
- X */
- X
- X#define BUFFER_SIZE (1024 * 32) /* 32K */
- X
- X/*
- X * Internal type declarations:
- X */
- X
- X/*
- X * Internal variable declarations:
- X */
- X
- Xstatic char *Audio_dev = "/dev/audio";
- Xstatic int Audio_fd;
- X/* size should depend on sample_rate */
- Xstatic unsigned char buf[BUFFER_SIZE];
- Xstatic char errorString[255];
- Xstatic int parentid = 0;
- X
- X#if NeedFunctionPrototypes
- Xint SetUpAudioSystem(Display *display)
- X#else
- Xint SetUpAudioSystem(display)
- X Display *display;
- X#endif
- X{
- X /* Try to open the audio device */
- X if (Audio_fd = open(Audio_dev, O_WRONLY))
- X {
- X /* Success - audio device opened */
- X return True;
- X }
- X else
- X {
- X ErrorMessage("Error: Cannot open audio device.");
- X
- X /* Bummer - cannot open audio device */
- X return False;
- X }
- X}
- X
- X#if NeedFunctionPrototypes
- Xvoid FreeAudioSystem(void)
- X#else
- Xvoid FreeAudioSystem()
- X#endif
- X{
- X flushAudioDevice();
- X
- X /* Close the audio device */
- X if (close(Audio_fd) < 0)
- X ErrorMessage("Error: Cannot open audio device.");
- X}
- X
- X#if NeedFunctionPrototypes
- Xstatic void flushAudioDevice(void)
- X#else
- Xstatic void flushAudioDevice()
- X#endif
- X{
- X /* Flush any audio activity - hope this works */
- X if (ioctl(Audio_fd, I_FLUSH, FLUSHW) < 0)
- X {
- X sprintf(errorString, "Warning: Unable to flush audio device.");
- X ErrorMessage(errorString);
- X return;
- X }
- X}
- X
- X#if NeedFunctionPrototypes
- Xvoid setNewVolume(unsigned int Volume)
- X#else
- Xvoid setNewVolume(Volume)
- X unsigned int Volume;
- X#endif
- X{
- X /* Do nothing here as we don't have audio support */
- X}
- X
- X#if NeedFunctionPrototypes
- Xvoid audioDeviceEvents(void)
- X#else
- Xvoid audioDeviceEvents()
- X#endif
- X{
- X /* None to do */
- X}
- X
- X#if NeedFunctionPrototypes
- Xvoid playSoundFile(char *filename, int volume)
- X#else
- Xvoid playSoundFile(filename, volume)
- X char *filename;
- X int volume;
- X#endif
- X{
- X int err, cnt, ifd;
- X char soundfile[1024];
- X char *str;
- X
- X if (parentid) kill(parentid, 9);
- X parentid = getpid();
- X
- X if (fork() != 0)
- X {
- X if ((str = getenv("XBOING_SOUND_DIR")) != NULL)
- X sprintf(soundfile, "%s/%s.au", str, filename);
- X else
- X sprintf(soundfile, "%s/%s.au", SOUNDS_DIR, filename);
- X
- X /* Open the sound file for reading */
- X if ((ifd = open(soundfile, O_RDONLY, 0)) < 0)
- X {
- X /* Issue an error about not opening sound file */
- X sprintf(errorString,
- X "Warning: Unable to open sound file %s.", soundfile);
- X ErrorMessage(errorString);
- X
- X exit(0);
- X }
- X
- X /* At this point, we're all ready to copy the data. */
- X while ((cnt = read(ifd, (char *) buf, BUFFER_SIZE)) >= 0)
- X {
- X /* If input EOF, write an eof marker */
- X err = write(Audio_fd, (char *)buf, cnt);
- X
- X if (err != cnt)
- X {
- X sprintf(errorString,
- X "Warning: Problem while writing to audio device");
- X ErrorMessage(errorString);
- X break;
- X }
- X
- X /* End of file? */
- X if (cnt == 0) break;
- X }
- X
- X if (cnt < 0)
- X {
- X /* Some error - while reading - notify user */
- X sprintf(errorString,
- X "Warning: Problem while reading soundfile %s", soundfile);
- X ErrorMessage(errorString);
- X }
- X
- X flushAudioDevice();
- X
- X /* Close the sound file */
- X (void) close(ifd);
- X
- X exit(0);
- X }
- X}
- X
- X#if NeedFunctionPrototypes
- Xvoid SetMaximumVolume(int Volume)
- X#else
- Xvoid SetMaximumVolume(Volume)
- X int Volume;
- X#endif
- X{
- X}
- X
- END_OF_FILE
- if test 3547 -ne `wc -c <'audio/HPaudio.c'`; then
- echo shar: \"'audio/HPaudio.c'\" unpacked with wrong size!
- fi
- # end of 'audio/HPaudio.c'
- fi
- if test -f 'audio/LINUXaudio.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'audio/LINUXaudio.c'\"
- else
- echo shar: Extracting \"'audio/LINUXaudio.c'\" \(3552 characters\)
- sed "s/^X//" >'audio/LINUXaudio.c' <<'END_OF_FILE'
- X#include "copyright.h"
- X
- X/* Soundblaster Audio - PC LINUX - original code by
- X * Peter C. Ludwig, email: urpc01@ux1.uni-dortmund.de
- X */
- X
- X/*
- X * Include file dependencies:
- X */
- X
- X#include <stdio.h>
- X#include <fcntl.h>
- X#include <linux/soundcard.h>
- X
- X#include "audio.h"
- X
- X/*
- X * Internal macro definitions:
- X */
- X
- X#define BUFFER_SIZE (1024 * 32) /* 32K yup */
- X
- X/*
- X * Internal type declarations:
- X */
- X
- X/*
- X * Internal variable declarations:
- X */
- X
- Xstatic char *Audio_dev = "/dev/audio";
- Xstatic int Audio_fd;
- X/* size should depend on sample_rate */
- Xstatic unsigned char buf[BUFFER_SIZE];
- Xstatic char errorString[255];
- Xstatic int parentid = 0;
- X
- X#if NeedFunctionPrototypes
- Xint SetUpAudioSystem(Display *display)
- X#else
- Xint SetUpAudioSystem(display)
- X Display *display;
- X#endif
- X{
- X /* Try to open the audio device */
- X if (Audio_fd = open(Audio_dev, O_WRONLY))
- X {
- X /* Success - audio device opened */
- X return True;
- X }
- X else
- X {
- X ErrorMessage("Error: Cannot open audio device.");
- X
- X /* Bummer - cannot open audio device */
- X return False;
- X }
- X}
- X
- X#if NeedFunctionPrototypes
- Xvoid FreeAudioSystem(void)
- X#else
- Xvoid FreeAudioSystem()
- X#endif
- X{
- X /* Make sure that the audio device is flushed and reset */
- X ioctl(Audio_fd, SNDCTL_DSP_RESET, 0);
- X
- X /* Close the audio device */
- X if (close(Audio_fd) < 0)
- X ErrorMessage("Error: Cannot open audio device.");
- X}
- X
- X#if NeedFunctionPrototypes
- Xstatic void flushAudioDevice(void)
- X#else
- Xstatic void flushAudioDevice()
- X#endif
- X{
- X /* Flush any audio activity */
- X if (ioctl(Audio_fd, SNDCTL_DSP_SYNC, 0) < 0)
- X {
- X sprintf(errorString, "Warning: Unable to flush audio device.");
- X ErrorMessage(errorString);
- X return;
- X }
- X}
- X
- X#if NeedFunctionPrototypes
- Xvoid setNewVolume(unsigned int Volume)
- X#else
- Xvoid setNewVolume(Volume)
- X unsigned int Volume;
- X#endif
- X{
- X /* Do nothing here as we don't have audio support */
- X}
- X
- X#if NeedFunctionPrototypes
- Xvoid audioDeviceEvents(void)
- X#else
- Xvoid audioDeviceEvents()
- X#endif
- X{
- X /* None to do */
- X}
- X
- X#if NeedFunctionPrototypes
- Xvoid playSoundFile(char *filename, int volume)
- X#else
- Xvoid playSoundFile(filename, volume)
- X char *filename;
- X int volume;
- X#endif
- X{
- X int err, cnt, ifd;
- X char soundfile[1024];
- X char *str;
- X
- X if (parentid) kill(parentid, 9);
- X parentid = getpid();
- X
- X if (fork() != 0)
- X {
- X if ((str = getenv("XBOING_SOUND_DIR")) != NULL)
- X sprintf(soundfile, "%s/%s.au", str, filename);
- X else
- X sprintf(soundfile, "%s/%s.au", SOUNDS_DIR, filename);
- X
- X /* Open the sound file for reading */
- X if ((ifd = open(soundfile, O_RDONLY, 0)) < 0)
- X {
- X /* Issue an error about not opening sound file */
- X sprintf(errorString,
- X "Warning: Unable to open sound file %s.", soundfile);
- X ErrorMessage(errorString);
- X
- X exit(0);
- X }
- X
- X /* At this point, we're all ready to copy the data. */
- X while ((cnt = read(ifd, (char *) buf, BUFFER_SIZE)) >= 0)
- X {
- X /* If input EOF, write an eof marker */
- X err = write(Audio_fd, (char *)buf, cnt);
- X
- X if (err != cnt)
- X {
- X sprintf(errorString,
- X "Warning: Problem while writing to audio device");
- X ErrorMessage(errorString);
- X break;
- X }
- X
- X /* End of file? */
- X if (cnt == 0) break;
- X }
- X
- X if (cnt < 0)
- X {
- X /* Some error - while reading - notify user */
- X sprintf(errorString,
- X "Warning: Problem while reading soundfile %s", soundfile);
- X ErrorMessage(errorString);
- X }
- X
- X flushAudioDevice();
- X
- X /* Close the sound file */
- X (void) close(ifd);
- X
- X exit(0);
- X }
- X}
- X
- X#if NeedFunctionPrototypes
- Xvoid SetMaximumVolume(int Volume)
- X#else
- Xvoid SetMaximumVolume(Volume)
- X int Volume;
- X#endif
- X{
- X}
- X
- END_OF_FILE
- if test 3552 -ne `wc -c <'audio/LINUXaudio.c'`; then
- echo shar: \"'audio/LINUXaudio.c'\" unpacked with wrong size!
- fi
- # end of 'audio/LINUXaudio.c'
- fi
- if test -f 'ball.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'ball.h'\"
- else
- echo shar: Extracting \"'ball.h'\" \(3267 characters\)
- sed "s/^X//" >'ball.h' <<'END_OF_FILE'
- X#ifndef _BALL_H_
- X#define _BALL_H_
- X
- X#include "copyright.h"
- X
- X/*
- X * Dependencies on other include files:
- X */
- X
- X#include <X11/Xlib.h>
- X
- X/*
- X * Constants and macros:
- X */
- X
- X#define BALL_WIDTH 20
- X#define BALL_HEIGHT 19
- X
- X#define BALL_WC (BALL_WIDTH / 2)
- X#define BALL_HC (BALL_HEIGHT / 2)
- X
- X#define BIRTH_SLIDES 8
- X#define BALL_SLIDES 5
- X
- X#define MAX_BALLS 5
- X
- X#define MAX_X_VEL 14
- X#define MAX_Y_VEL 14
- X
- X#define MIN_DY_BALL 2
- X#define MIN_DX_BALL 2
- X
- X#define BALL_ANIM_RATE 50
- X#define BIRTH_FRAME_RATE 5
- X#define BALL_FRAME_RATE 5
- X#define BORDER_ANIM_DELAY 15
- X
- X#define PADDLE_HIT_SCORE 10
- X
- X#define BALL_AUTO_ACTIVE_DELAY 3000
- X
- X#define DIST_BALL_OF_PADDLE 45
- X
- X#define PADDLE_BALL_FRAME_TILT 10000
- X
- X
- X/*
- X * Type declarations:
- X */
- X
- Xenum BallStates
- X{
- X BALL_POP,
- X BALL_ACTIVE,
- X BALL_STOP,
- X BALL_CREATE,
- X BALL_DIE,
- X BALL_WAIT,
- X BALL_READY,
- X BALL_NONE
- X};
- X
- Xtypedef struct ball
- X{
- X int waitMode; /* Ball waiting mode */
- X int waitingFrame; /* Frame to wait until */
- X int newMode; /* Ball's new mode */
- X int nextFrame; /* next frame for something */
- X int active; /* True - in use, False - dead */
- X int oldx; /* Old x coord of ball centre */
- X int oldy; /* Old y coord of ball centre */
- X int ballx; /* Current x coord of ball centre */
- X int bally; /* Current y coord of ball centre */
- X int dx; /* Change in x axis increment */
- X int dy; /* Change in y axis increment */
- X int slide; /* Current pixmap visible */
- X int lastPaddleHitFrame; /* Last frame the ball hit paddle */
- X enum BallStates ballState; /* The state of the ball */
- X} BALL;
- X
- X/*
- X * Function prototypes:
- X */
- X
- X#if NeedFunctionPrototypes
- Xvoid InitialiseBall(Display *display, Window window, Colormap colormap);
- Xvoid FreeBall(Display *display);
- Xvoid RedrawBall(Display *display, Window window);
- Xvoid DrawTheBall(Display *display, Window window, int x, int y, int slide);
- Xvoid DrawTheBallBirth(Display *display, Window window, int x, int y, int slide);
- Xvoid KillBallNow(Display *display, Window window, int i);
- Xvoid GetBallPosition(int *ballX, int *ballY, int i);
- Xvoid ResetBallStart(Display *display, Window window);
- Xint GetBallMode(int i);
- Xvoid ChangeBallMode(int newMode, int i);
- Xint AddANewBall(int x, int y, int dx, int dy);
- Xvoid ClearAllBalls(void);
- Xvoid HandleBallMode(Display *display, Window window);
- Xint StartAnotherBall(Display *display, Window window);
- Xint IsBallWaiting(void);
- Xvoid ClearBall(int i);
- Xvoid SplitBallInTwo(Display *display, Window window);
- Xvoid ClearBallNow(Display *display, Window window, int i);
- Xint GetAnActiveBall(void);
- Xint ActivateWaitingBall(void);
- X#else
- Xint ActivateWaitingBall();
- Xint GetAnActiveBall();
- Xvoid ClearBallNow();
- Xvoid SplitBallInTwo();
- Xvoid ClearBall();
- Xvoid InitialiseBall();
- Xvoid FreeBall();
- Xvoid RedrawBall();
- Xvoid DrawTheBall();
- Xvoid DrawTheBallBirth();
- Xvoid KillBallNow();
- Xvoid GetBallPosition();
- Xvoid ResetBallStart();
- Xint GetBallMode();
- Xvoid ChangeBallMode();
- Xint AddANewBall();
- Xvoid ClearAllBalls();
- Xvoid HandleBallMode();
- Xint StartAnotherBall();
- Xint IsBallWaiting();
- X#endif
- X
- Xextern BALL balls[MAX_BALLS];
- Xextern int speedLevel;
- Xextern int paddleDx;
- X
- X#endif
- END_OF_FILE
- if test 3267 -ne `wc -c <'ball.h'`; then
- echo shar: \"'ball.h'\" unpacked with wrong size!
- fi
- # end of 'ball.h'
- fi
- if test -f 'bitmaps/flag.xpm' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'bitmaps/flag.xpm'\"
- else
- echo shar: Extracting \"'bitmaps/flag.xpm'\" \(3113 characters\)
- sed "s/^X//" >'bitmaps/flag.xpm' <<'END_OF_FILE'
- X/* XPM */
- Xstatic char * flag_xpm[] = {
- X"71 40 4 1",
- X" s None c None",
- X". c red",
- X"X c white",
- X"o c royalblue",
- X".XXXXooooooooX...XooooooooooXX.ooooooooooooooooooooooooooooooooooooooo ",
- X"X..XXXXooooooX...XooooooooXX..Xooooooooooooooooooooooooooooooooooooooo ",
- X"oXX..XXXXooooX...XooooooXX..XXXooooooooooooooooooooooooooooooooooooooo ",
- X"oooXX..XXXXooX...XooooXX..XXXXoooooooooooooooooooooooooooooooooooooooo ",
- X"oooooXX..XXXXX...XooXX..XXXXoooooooooooooooooooooooooooooooooooooooooo ",
- X"oooooooXX..XXX...XXX..XXXXoooooooooooooooooooooooooXoooooooooooooooooo ",
- X"oooooooooXX..X...X..XXXXooooooooooooooooooooooooooXXXooooooooooooooooo ",
- X"XXXXXXXXXXXXXX...XXXXXXXXXXXXXXooooooooooooooooooXXXXXoooooooooooooooo ",
- X"...............................oooooooooooooooooooXXXooooooooooooooooo ",
- X"...............................ooooooooooooooooooooXoooooooooooooooooo ",
- X"...............................ooooooooooooooooooooooooooooooooooooooo ",
- X"XXXXXXXXXXXXXX...XXXXXXXXXXXXXXooooooooooooooooooooooooooooooooooooooo ",
- X"ooooooooXXXX.X...X.XXooooooooooooooooooooooooooooooooooooooooooooooooo ",
- X"ooooooXXXX..XX...XX..XXooooooooooooooooooooooooooooooooooooooooooooooo ",
- X"ooooXXXX..XXoX...XXXX..XXooooooooooooooooooooooooooooooooooooooooooooo ",
- X"ooXXXX..XXoooX...XoXXXX..XXoooooooooooooooooooooooooooooooooXooooooooo ",
- X"XXXX..XXoooooX...XoooXXXX..XXoooooooooooooXooooooooooooooooXXXoooooooo ",
- X"XX..XXoooooooX...XoooooXXXX..XXooooooooooXXXooooooooooooooXXXXXooooooo ",
- X"..XXoooooooooX...XoooooooXXXX..oooooooooXXXXXooooooooooooooXXXoooooooo ",
- X"oooooooooooooooooooooooooooooooooooooooooXXXooooooooooooooooXooooooooo ",
- X"ooooooooooooooooooooooooooooooooooooooooooXooooooooooooooooooooooooooo ",
- X"oooooooooooooooooooooooooooooooooooooooooooooooooooooXoooooooooooooooo ",
- X"ooooooooooooooooooooooooooooooooooooooooooooooooooooXXXooooooooooooooo ",
- X"oooooooooooooooooooooooooooooooooooooooooooooooooooooXoooooooooooooooo ",
- X"oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo ",
- X"oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo ",
- X"oooooooooooooooXoooooooooooooooooooooooooooooooooooooooooooooooooooooo ",
- X"oooooooooooXooXXXooXoooooooooooooooooooooooooooooooooooooooooooooooooo ",
- X"ooooooooooooXXXXXXXooooooooooooooooooooooooooooooooooooooooooooooooooo ",
- X"ooooooooooooXXXXXXXooooooooooooooooooooooooooooooooooooooooooooooooooo ",
- X"oooooooooooXXXXXXXXXoooooooooooooooooooooooooooooooooooooooooooooooooo ",
- X"ooooooooooXXXXXXXXXXXooooooooooooooooooooooooooooooooooooooooooooooooo ",
- X"oooooooooooXXXXXXXXXoooooooooooooooooooooooooooooooXoooooooooooooooooo ",
- X"ooooooooooooXXXXXXXoooooooooooooooooooooooooooooooXXXooooooooooooooooo ",
- X"ooooooooooooXXXXXXXooooooooooooooooooooooooooooooXXXXXoooooooooooooooo ",
- X"oooooooooooXooXXXooXooooooooooooooooooooooooooooooXXXooooooooooooooooo ",
- X"oooooooooooooooXoooooooooooooooooooooooooooooooooooXoooooooooooooooooo ",
- X"oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo ",
- X"oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo ",
- X"oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo "};
- END_OF_FILE
- if test 3113 -ne `wc -c <'bitmaps/flag.xpm'`; then
- echo shar: \"'bitmaps/flag.xpm'\" unpacked with wrong size!
- fi
- # end of 'bitmaps/flag.xpm'
- fi
- if test -f 'bitmaps/icon.xpm' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'bitmaps/icon.xpm'\"
- else
- echo shar: Extracting \"'bitmaps/icon.xpm'\" \(2854 characters\)
- sed "s/^X//" >'bitmaps/icon.xpm' <<'END_OF_FILE'
- X/* XPM */
- Xstatic char * icon_xpm[] = {
- X"50 50 8 1",
- X" c black",
- X". c red",
- X"X c blue",
- X"o c green",
- X"O c yellow",
- X"+ c tan",
- X"@ c purple",
- X"# c white",
- X" ",
- X" ",
- X" ",
- X" ",
- X" ....... XXXXXXXX oooooooo OOOOOOOO ",
- X" ....... XXXXXXXX oooooooo OOOOOOOO ",
- X" ....... XXXXXXXX oooooooo OOOOOOOO ",
- X" ....... XXXXXXXX oooooooo OOOOOOOO ",
- X" ",
- X" ",
- X" ",
- X" XXXXXXX ++++++++ ........ oooooooo ",
- X" XXXXXXX ++++++++ ........ oooooooo ",
- X" XXXXXXX ++++++++ ........ oooooooo ",
- X" XXXXXXX ++++++++ ........ oooooooo ",
- X" ",
- X" ",
- X" ",
- X" OOOOOOO oooooooo XXXXXXXX OOOOOOOO ",
- X" OOOOOOO oooooooo XXXXXXXX OOOOOOOO ",
- X" OOOOOOO oooooooo XXXXXXXX OOOOOOOO ",
- X" OOOOOOO oooooooo XXXXXXXX OOOOOOOO ",
- X" ",
- X" ",
- X" ",
- X" @@@@@@@ . . ++++++++ ",
- X" @@@@@@@ . . . . ++++++++ ",
- X" @@@@@@@ . . ++++++++ ",
- X" @@@@@@@ . . . . ### ++++++++ ",
- X" #...# ",
- X" #.....# ",
- X" #.....# ",
- X" XXXXXXX #.....# @@@@@@@@ ",
- X" XXXXXXX #...# @@@@@@@@ ",
- X" XXXXXXX ### @@@@@@@@ ",
- X" XXXXXXX @@@@@@@@ ",
- X" ",
- X" ",
- X" ",
- X" ",
- X" ",
- X" ",
- X" ",
- X" OOOOOOOOOOOOOO ",
- X" OOOOOOOOOOOOOOOO ",
- X" OOOOOOOOOOOOOO ",
- X" ",
- X" ",
- X" ",
- X" "};
- END_OF_FILE
- if test 2854 -ne `wc -c <'bitmaps/icon.xpm'`; then
- echo shar: \"'bitmaps/icon.xpm'\" unpacked with wrong size!
- fi
- # end of 'bitmaps/icon.xpm'
- fi
- if test -f 'bitmaps/mouse.xpm' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'bitmaps/mouse.xpm'\"
- else
- echo shar: Extracting \"'bitmaps/mouse.xpm'\" \(2343 characters\)
- sed "s/^X//" >'bitmaps/mouse.xpm' <<'END_OF_FILE'
- X/* XPM */
- Xstatic char * mouse_xpm[] = {
- X"35 57 4 1",
- X" s None c None",
- X". c ivory",
- X"X c black",
- X"o c #B2B2C0C0DCDC",
- X" .. ",
- X" .. ",
- X" .. ",
- X" .. ",
- X" .. ",
- X" .. ",
- X" .. ",
- X" .. ",
- X" .. ",
- X" .. ",
- X" .. ",
- X" ...... ",
- X" ...... ",
- X" XXXXXX ",
- X" ........X............X....... ",
- X" ..........X............X......... ",
- X" ..........X............X......... ",
- X"...........X............X..........",
- X"...........X............X..........",
- X"...........X............X..........",
- X"...........X............X..........",
- X"...........X............X..........",
- X"...........X............X..........",
- X"...........X............X..........",
- X"...........X............X..........",
- X"...........X............X..........",
- X"...........X............X..........",
- X"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
- X"...................................",
- X"...................................",
- X"...................................",
- X"...................................",
- X"...................................",
- X"...................................",
- X"...................................",
- X"...................................",
- X"...................................",
- X"...................................",
- X"...................................",
- X"...................................",
- X"...................................",
- X"...................................",
- X"...................................",
- X"...................................",
- X"...................................",
- X"...................................",
- X"...................................",
- X"...................................",
- X"...................................",
- X"...................................",
- X"...................................",
- X"........................ooooooo....",
- X"........................ooooooo....",
- X"........................ooooooo....",
- X" .......................ooooooo... ",
- X" ................................. ",
- X" ............................. "};
- END_OF_FILE
- if test 2343 -ne `wc -c <'bitmaps/mouse.xpm'`; then
- echo shar: \"'bitmaps/mouse.xpm'\" unpacked with wrong size!
- fi
- # end of 'bitmaps/mouse.xpm'
- fi
- if test -f 'bitmaps/titleI.xpm' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'bitmaps/titleI.xpm'\"
- else
- echo shar: Extracting \"'bitmaps/titleI.xpm'\" \(3578 characters\)
- sed "s/^X//" >'bitmaps/titleI.xpm' <<'END_OF_FILE'
- X/* XPM */
- Xstatic char * titleI_xpm[] = {
- X/* width height ncolors chars_per_pixel */
- X"41 74 8 1",
- X/* colors */
- X" s None c None",
- X". c #802F00",
- X"X c #A06000",
- X"o c #903F10",
- X"O c #F0D040",
- X"+ c #D09E20",
- X"@ c #F0C030",
- X"# c #C07F10",
- X/* pixels */
- X" ",
- X" ",
- X".Xoooooooooooooooooooooooooooooooooooooo ",
- X"XOO+++++++++++++++++++++++++++++++++++++X",
- X"XOO@+++++++++++++++++++++++++++++++++++# ",
- X"XOOO@+++++++++++++++++++++++++++++++++#X.",
- X"XOOOO++++++++++++++++++++++++++++++++#XX ",
- X"XOOOOO@+++++++++++++++++++++++++++++#XXX.",
- X"XOOOOO+XXXXXXXXXXX++@@+#XXXXXXXXXX##XXXX ",
- X"XOOOOO#...........#OOO+Xo.o.......oXXXXXX",
- X"XOOO+#oo....o#####+OOO#oXoo.o.......XXXX ",
- X"XOOO#.......#OOOOOO@OO#ooXXX.o....o..XXX.",
- X"XO+#oo..o###+OOOOO@@OO#ooX.X.....o..o.XX.",
- X"XO#.o...#OOOOOO@@@@@OO#oooooXXXXX......X ",
- X" # . #+OOO@@@@@@OO#ooooooXXXo . . . ",
- X" oO@@@@@@@@OO#ooooooooX. ",
- X" XO@@@O@@@@OO#ooooooooX. ",
- X" X@@@@@@@O+OO#ooooXXooo ",
- X" X@OO@@@@O@OO#ooooXoooX. ",
- X" X@@OO@@+OOOO#ooooXXoXX. ",
- X" XO@O@O+O@@OO+ooooXoXoX. ",
- X" XOO@@@@@@@@O+XooooXXXX. ",
- X" XO@OOO@@O@OO+XXooooXXX. ",
- X" X@@OOOOOOOOO+XXXXoXXXX. ",
- X" XOOOOOOOOOOO+XXXXoXXXX. ",
- X" XOOOOOOOOOOO+XXXXXXXXX. ",
- X" XOOOOOOOOOOO+XXXXXXXXX. ",
- X" XOOOOOOOOOOO+XXXXXXXXX. ",
- X" XO@+@OOO@+@O+XX#XXX#XX. ",
- X" XO+#+OOO+#+O+XX#XX##XX. ",
- X" XO@+OO@+++OO+X###XXX#X. ",
- X" XOOOOO+#+OOO+XX#XXXXX#. ",
- X" o+++++++OOOO+X#X#X#X##. ",
- X" o#####+OOOOO+##XX#####. ",
- X" o#####++OOOO+##X#X#X##. ",
- X" .#######+OOO+###XXXXX#. ",
- X" o++#####++@O+####X#X##. ",
- X" XO+#######+O+#########. ",
- X" o@+#######+O+#####+++#. ",
- X" .#########+O@#####+O+#. ",
- X" .##X##XX##+O+#####++++X ",
- X" .#XXX##XX#+O+#######+OX ",
- X" .+#X##XXX#+OO++##++#+OX ",
- X" .#####XXXX+OOO+#+O+#+OX ",
- X" .##XX#XXX#+OOO@+OO@+OOX ",
- X" .#XXXXXX##+OOOOOOOOOOOX ",
- X" .#XXXXXXX#+OOOOO@+@OOOX ",
- X" .XXXXXXXXX+OOOOO+#+OOOX ",
- X" .XXXXXXXXX+OOOOO@+OOOOX ",
- X" .XXXXXXXXX+OOOOOOOOOOOX ",
- X" oX.XXXXXX+OOOOOOOO@@OX ",
- X" .ooo.XXXXX+OOOOOOO@@@@X ",
- X" .oX.XXXXXo+OOOO@OOO@@OX ",
- X" .XXXXXXXoo#OOOO@OO@@@OX ",
- X" .oX.XoXXoX#OOO@@@O@O@OX ",
- X" ooooooooX+OOOO@@@OO@@X ",
- X" .ooooooooX#OO@O@@@@O@@X ",
- X" ooooooooo#OO@@OO@@@@@X ",
- X" .ooooooooo#OO@@O@@@@@OX ",
- X" .ooooooooo#O@@@@@@@@@OX ",
- X".XooooooooX###Xooooo#OO@@@@@@O@O+ooooooo ",
- X"XOO+++++++OOOO#ooooo#OO@@@@@OOOO++++++++X",
- X"XOO@+++++++@+O+###Xo#O@@@O@O@@+@+++++++# ",
- X"XOOO@++++++++++OOO#o#OO@OOO@@+++++++++#X.",
- X"XOOOO++++++++++O+O+#@O@+@@+@++++++++###X ",
- X"XOOOOO@+++++++++++@OOO@+++++++++++++#XXX.",
- X"XOOOOO+XXXXXXXXXXX####XXXX#XXXXXXXX##XXX ",
- X"XOOOOO#.................o.........oXXXXX.",
- X"XOOO+#oo..........................oo.XXX.",
- X"XOOO#...............................oXXX ",
- X"XO+#oo..............................oooX.",
- X"XO#.o.................................oX.",
- X" # . . . . . . . . . . . . . . . . ",
- X" "};
- END_OF_FILE
- if test 3578 -ne `wc -c <'bitmaps/titleI.xpm'`; then
- echo shar: \"'bitmaps/titleI.xpm'\" unpacked with wrong size!
- fi
- # end of 'bitmaps/titleI.xpm'
- fi
- if test -f 'blocks.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'blocks.h'\"
- else
- echo shar: Extracting \"'blocks.h'\" \(3240 characters\)
- sed "s/^X//" >'blocks.h' <<'END_OF_FILE'
- X#ifndef _BLOCKS_H_
- X#define _BLOCKS_H_
- X
- X#include "copyright.h"
- X
- X/*
- X * Dependencies on other include files:
- X */
- X
- X#include <X11/Xlib.h>
- X
- X/*
- X * Constants and macros:
- X */
- X
- X#define NONE_BLK -2
- X#define KILL_BLK -1
- X#define RED_BLK 0
- X#define BLUE_BLK 1
- X#define GREEN_BLK 2
- X#define TAN_BLK 3
- X#define YELLOW_BLK 4
- X#define PURPLE_BLK 5
- X#define BULLET_BLK 6
- X#define BLACK_BLK 7
- X#define COUNTER_BLK 8
- X#define BONUSX2_BLK 9
- X#define BONUSX4_BLK 10
- X#define BONUS_BLK 11
- X#define BOMB_BLK 12
- X#define DEATH_BLK 13
- X#define RANDOM_BLK 14
- X#define REVERSE_BLK 15
- X#define HYPERSPACE_BLK 16
- X#define EXTRABALL_BLK 17
- X#define MGUN_BLK 18
- X#define WALLOFF_BLK 19
- X#define MULTIBALL_BLK 20
- X#define STICKY_BLK 21
- X#define PAD_SHRINK_BLK 22
- X#define PAD_EXPAND_BLK 23
- X
- X#define MAX_ROW 18
- X#define MAX_COL 9
- X
- X#define BLOCK_WIDTH 40
- X#define BLOCK_HEIGHT 20
- X
- X#define SPACE 7
- X
- X#define MAX_NUM_LEVELS 50
- X
- X#define REGION_NONE 0
- X#define REGION_TOP 1
- X#define REGION_BOTTOM 2
- X#define REGION_LEFT 4
- X#define REGION_RIGHT 8
- X
- X/*
- X * Type declarations:
- X */
- X
- Xstruct aBlock
- X{
- X int occupied;
- X int exploding;
- X int currentFrame;
- X int nextFrame;
- X int lastFrame;
- X int blockOffsetX;
- X int blockOffsetY;
- X Region regionTop;
- X Region regionBottom;
- X Region regionLeft;
- X Region regionRight;
- X int x;
- X int y;
- X int width;
- X int height;
- X int blockType;
- X int hitPoints;
- X int explodeStartFrame;
- X int explodeNextFrame;
- X int explodeSlide;
- X int counterSlide; /* For counter blocks only */
- X int bonusSlide; /* For bonus blocks only */
- X int random;
- X
- X /* Used for splitting of the ball in multiball mode */
- X int ballHitIndex;
- X int balldx;
- X int balldy;
- X};
- X
- Xtypedef struct aBlock **BLOCKPTR;
- X
- X/*
- X * Function prototypes:
- X */
- X
- X#if NeedFunctionPrototypes
- Xvoid FreeBlockPixmaps(Display *display);
- Xvoid InitialiseBlocks(Display *display, Window window, Colormap colormap);
- Xvoid DrawBlock(Display *display, Window window, int row, int col,
- X int blockType);
- Xvoid SetupStage(Display *display, Window window);
- Xvoid ExplodeBlocksPending(Display *display, Window window);
- Xvoid RedrawAllBlocks(Display *display, Window window);
- Xvoid DrawTheBlock(Display *display, Window window, int x, int y,
- X int blockType, int slide);
- Xvoid ExplodeBlockType(Display *display, Window window, int x, int y,
- X int type, int slide);
- Xvoid AddNewBlock(Display *display, Window window, int row, int col,
- X int blockType, int counterSlide);
- Xvoid HandlePendingAnimations(Display *display, Window window);
- Xvoid AddBonusBlock(Display *display, Window window, int *row, int *col,
- X int type);
- Xvoid ClearBlockArray(void);
- Xint StillActiveBlocks(void);
- Xvoid SkipToNextLevel(Display *display, Window window);
- Xvoid PlaySoundForBlock(int type);
- X#else
- Xvoid PlaySoundForBlock();
- Xvoid FreeBlockPixmaps();
- Xvoid InitialiseBlocks();
- Xvoid DrawBlock();
- Xvoid SetupStage();
- Xvoid ExplodeBlocksPending();
- Xvoid RedrawAllBlocks();
- Xvoid DrawTheBlock();
- Xvoid ExplodeBlockType();
- Xvoid AddNewBlock();
- Xvoid HandlePendingAnimations();
- Xvoid AddBonusBlock();
- Xvoid ClearBlockArray();
- Xint StillActiveBlocks();
- Xvoid SkipToNextLevel();
- X#endif
- X
- Xextern struct aBlock blocks[MAX_ROW][MAX_COL];
- Xextern int rowHeight;
- Xextern int colWidth;
- Xextern int blocksExploding;
- X
- X#endif
- END_OF_FILE
- if test 3240 -ne `wc -c <'blocks.h'`; then
- echo shar: \"'blocks.h'\" unpacked with wrong size!
- fi
- # end of 'blocks.h'
- fi
- if test -f 'error.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'error.c'\"
- else
- echo shar: Extracting \"'error.c'\" \(1889 characters\)
- sed "s/^X//" >'error.c' <<'END_OF_FILE'
- X#include "copyright.h"
- X
- X/*
- X * Include file dependencies:
- X */
- X
- X#include <stdio.h>
- X#include <xpm.h>
- X#include "init.h"
- X
- X#include "error.h"
- X
- X/*
- X * Internal macro definitions:
- X */
- X
- X/*
- X * Internal type declarations:
- X */
- X
- X/*
- X * Internal variable declarations:
- X */
- X
- X#if NeedFunctionPrototypes
- Xvoid ErrorMessage(char *message)
- X#else
- Xvoid ErrorMessage(message)
- X char *message;
- X#endif
- X{
- X /* Print a standard error message to stdout */
- X fprintf(stdout, "XBoing - %s\n", message);
- X fflush(stdout);
- X}
- X
- X#if NeedFunctionPrototypes
- Xvoid HandleXPMError(Display *display, int ErrorStatus, char *tag)
- X#else
- Xvoid HandleXPMError(display, ErrorStatus, tag)
- X Display *display;
- X int ErrorStatus;
- X char *tag;
- X#endif
- X{
- X char *error = NULL;
- X char *warning = NULL;
- X
- X /* Switch on the type of error returned by xpm library */
- X switch (ErrorStatus)
- X {
- X case XpmSuccess:
- X return;
- X
- X case XpmColorError:
- X /* The colour name passed was bung */
- X warning = "Could not parse or alloc requested colour";
- X break;
- X
- X case XpmNoMemory:
- X /* Not enough memory for pixmap */
- X error = "Not enough memory for pixmap creation";
- X break;
- X
- X case XpmColorFailed:
- X /* No more entries available in colourmap */
- X error = "Colourmap is full - cannot allocate a colour";
- X break;
- X
- X case XpmOpenFailed:
- X /* Xpm could not open the pixmap file */
- X error = "Unable to open pixmap file";
- X break;
- X
- X case XpmFileInvalid:
- X /* XPM file contains invalid or corrupt data */
- X error = "XPM file contains invalid or corrupt data";
- X break;
- X
- X default:
- X /* Unexpected xpm error code */
- X error = "Unexpected xpm error code";
- X break;
- X }
- X
- X /* If there is to be a warning then issue it */
- X if (warning)
- X fprintf(stdout, "%s - Warning: %s.\n", tag, warning);
- X
- X if (error)
- X {
- X /* Argg. An error so tell everyone */
- X fprintf(stderr, "%s - Error: %s.\n", tag, error);
- X ShutDown(display, 1, "Fatal error.");
- X }
- X}
- END_OF_FILE
- if test 1889 -ne `wc -c <'error.c'`; then
- echo shar: \"'error.c'\" unpacked with wrong size!
- fi
- # end of 'error.c'
- fi
- if test -f 'level.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'level.h'\"
- else
- echo shar: Extracting \"'level.h'\" \(1891 characters\)
- sed "s/^X//" >'level.h' <<'END_OF_FILE'
- X#ifndef _LEVEL_H_
- X#define _LEVEL_H_
- X
- X#include "copyright.h"
- X
- X/*
- X * Dependencies on other include files:
- X */
- X
- X#include <X11/Xlib.h>
- X
- X/*
- X * Constants and macros:
- X */
- X
- X/*
- X * Type declarations:
- X */
- X
- X/*
- X * Function prototypes:
- X */
- X
- X#if NeedFunctionPrototypes
- Xvoid InitialiseLevelInfo(Display *display, Window window, Colormap colormap);
- Xvoid FreeLevelInfo(Display *display);
- Xvoid DisplayLevelInfo(Display *display, Window window, u_long level);
- Xvoid CheckGameRules(Display *display, Window window);
- Xvoid DeadBall(Display *display, Window window);
- Xvoid DeleteABullet(Display *display);
- Xvoid AddABullet(Display *display);
- Xvoid ReDrawBulletsLeft(Display *display);
- Xvoid RedrawLevelInfo(Display *display, Window window);
- Xvoid SetLevelNumber(int levelNum);
- Xvoid SetStartingLevel(int levelNum);
- Xint GetStartingLevel(void);
- Xint ReadNextLevel(Display *display, Window window, char *levelName);
- Xchar *GetLevelName(void);
- Xvoid DecLevelTimeBonus(Display *display, Window window);
- Xvoid SetLevelTimeBonus(Display *display, Window window, int seconds);
- Xint GetLevelTimeBonus(void);
- Xvoid UpdateHighScores(void);
- Xvoid AddExtraLife(Display *display);
- Xvoid EndTheGame(Display *display, Window window);
- Xvoid HandleGameTimer(Display *display, Window window);
- Xvoid DecExtraLife(Display *display);
- X#else
- Xvoid DecExtraLife();
- Xvoid HandleGameTimer();
- Xvoid EndTheGame();
- Xvoid AddExtraLife();
- Xvoid UpdateHighScores();
- Xint GetLevelTimeBonus();
- Xvoid SetLevelTimeBonus();
- Xvoid DecLevelTimeBonus();
- Xchar *GetLevelName();
- Xvoid InitialiseLevelInfo();
- Xvoid FreeLevelInfo();
- Xvoid DisplayLevelInfo();
- Xvoid CheckGameRules();
- Xvoid DeadBall();
- Xvoid DeleteABullet();
- Xvoid AddABullet();
- Xvoid ReDrawBulletsLeft();
- Xvoid RedrawLevelInfo();
- Xvoid SetLevelNumber();
- Xvoid SetStartingLevel();
- Xint GetStartingLevel();
- Xint ReadNextLevel();
- X#endif
- X
- Xextern int bonus, livesLeft, bonusBlock;
- Xextern time_t gameTime;
- Xextern u_long level;
- X
- X#endif
- END_OF_FILE
- if test 1891 -ne `wc -c <'level.h'`; then
- echo shar: \"'level.h'\" unpacked with wrong size!
- fi
- # end of 'level.h'
- fi
- if test -f 'mess.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'mess.c'\"
- else
- echo shar: Extracting \"'mess.c'\" \(2808 characters\)
- sed "s/^X//" >'mess.c' <<'END_OF_FILE'
- X#include "copyright.h"
- X
- X/*
- X * Include file dependencies:
- X */
- X
- X#include <stdio.h>
- X#include <stdlib.h>
- X#include <stddef.h>
- X#include <X11/Xlib.h>
- X#include <X11/Xutil.h>
- X#include <X11/Xos.h>
- X
- X#include "error.h"
- X#include "level.h"
- X#include "init.h"
- X#include "stage.h"
- X#include "intro.h"
- X#include "main.h"
- X#include "misc.h"
- X
- X#include "mess.h"
- X
- X/*
- X * Internal macro definitions:
- X */
- X
- X#define CLEAR_DELAY 2000
- X
- X/*
- X * Internal type declarations:
- X */
- X
- X/*
- X * Internal variable declarations:
- X */
- X
- Xchar currentMessage[1024];
- Xint clearFrame;
- X
- X#if NeedFunctionPrototypes
- Xvoid InitialiseMessageSystem(Display *display, Window window, Colormap colormap)
- X#else
- Xvoid InitialiseMessageSystem(display, window, colormap)
- X Display *display;
- X Window window;
- X Colormap colormap;
- X#endif
- X{
- X /* Frame to clear message area */
- X clearFrame = 0;
- X}
- X
- X#if NeedFunctionPrototypes
- Xvoid FreeMessageSystem(Display *display)
- X#else
- Xvoid FreeMessageSystem(display)
- X Display *display;
- X#endif
- X{
- X /* Not much to free yet - maybe one day .... */
- X}
- X
- X#if NeedFunctionPrototypes
- Xvoid DrawMessage(Display *display, Window window, char *message, int clear)
- X#else
- Xvoid DrawMessage(display, window, message, clear)
- X Display *display;
- X Window window;
- X char *message;
- X int clear;
- X#endif
- X{
- X int len = strlen(message);
- X int plen;
- X
- X if (clear)
- X clearFrame = frame + CLEAR_DELAY;
- X else
- X clearFrame = frame - 1;
- X
- X /* Clear the message window */
- X XClearWindow(display, window);
- X
- X /* Obtain the text width so it can be centered */
- X plen = XTextWidth(textFont, message, len);
- X
- X /* Draw the string in the message window */
- X DrawText(display, window, ((PLAY_WIDTH/2) - plen) / 2, 5,
- X textFont, green, message, len);
- X
- X /* Just to be sure, flush the display */
- X XFlush(display);
- X}
- X
- X#if NeedFunctionPrototypes
- Xvoid SetCurrentMessage(Display *display, Window window, char *newMessage,
- X int clear)
- X#else
- Xvoid SetCurrentMessage(display, window, newMessage, clear)
- X Display *display;
- X Window window;
- X char *newMessage;
- X int clear;
- X#endif
- X{
- X /* Draw out new message */
- X DrawMessage(display, window, newMessage, clear);
- X}
- X
- X#if NeedFunctionPrototypes
- Xvoid AddMessage(char *newMessage)
- X#else
- Xvoid AddMessage(newMessage)
- X char *newMessage;
- X#endif
- X{
- X}
- X
- X#if NeedFunctionPrototypes
- Xvoid DisplayCurrentMessage(Display *display, Window window)
- X#else
- Xvoid DisplayCurrentMessage(display, window)
- X Display *display;
- X Window window;
- X#endif
- X{
- X char str[80];
- X char str2[80];
- X
- X /* Clear the frame when it's time */
- X if (frame == clearFrame)
- X {
- X /* Effectively erases message */
- X strcpy(str2, GetLevelName());
- X if (str2[0] != '\0')
- X {
- X /* Set the message to the name of the level */
- X sprintf(str, "- %s -", str2);
- X SetCurrentMessage(display, window, str, False);
- X }
- X else
- X DrawMessage(display, window, "", False);
- X
- X /* To be sure to be sure */
- X XFlush(display);
- X }
- X}
- END_OF_FILE
- if test 2808 -ne `wc -c <'mess.c'`; then
- echo shar: \"'mess.c'\" unpacked with wrong size!
- fi
- # end of 'mess.c'
- fi
- if test -f 'sounds/ballshot.au.uue' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'sounds/ballshot.au.uue'\"
- else
- echo shar: Extracting \"'sounds/ballshot.au.uue'\" \(3926 characters\)
- sed "s/^X//" >'sounds/ballshot.au.uue' <<'END_OF_FILE'
- Xbegin 664 ballshot.au
- XM+G-N9 " KM 0 'T ! #G]5]:75]D:_?IVM%:
- XM0U9J_.O=T+_"-478<MK?S,.Q-3#04>%:V-&O0"G+5-M?V,NN7B;&:M#EUL:M
- XM5R7'8MEYWLJO-"?'3=AAS;RS)SK&;,OIO:Y/),?^SN+)LKXD1,UPS]RRN28T
- XMRUC1W:_!(S_7=<_(J#TCRF3*U*RV'T[2Y<FWJB [RFC!NZD>-\92P+>K'3S&
- XM7[RMO1S2[]J[I3<>N$[!N:4@+;M,O:RY&MG7W+JB+1^S3KNNK1I7R'>YHRX<
- XMM4J[K*\87\S8LJ(F(;%)M:;,%KU@QJZG&S&X5*^A+!NN2K&B]!:Z;[^COQ?O
- XMT-*@]QK:SLB>+1ZXT:>\'-V_IML<L[ZI'T6ML2XJJ+$R):BO,R>HL"HNH[DB
- XM8*)*(:ZG)2VAS1^\HB<NGVPAJJX?S:$F-IXT**%3)J1G)J5,+*,W.*8KX*XG
- XMK\TIISDZIRO'N"FJ/S.F*<NV)JA!-J8IM\0IHRY@K"6F/#NG)*Q$-Z@DJD$[
- XMJ26I-F&S**4KN-TTJ2>H,,[$+ZHGJR_&XCNO*ZHLKSS(WT.T+ZLLK3*Y1^?/
- XM/+<OKRVN+[4XOTS?VTW%/KDXMS6V-K<YNSO 1,Q9Y^!;ST[%1+\]NSRZ/+L]
- XMO#_ 2,I0VUGX?&+F3]1(SDG,2<E&QD7%1<9(R4O(3<U.SD[/6ME=V6;>['+L
- XM=]Q?UEK55-).STW23-1*TDS/3LU.SE//3L]4V5?78>1IX6;K=.AW_.UDZF7K
- XM6?1A^H<N]LW&SI=^QLZW'B;>)N['?L<^!U]'CM?GCO9_;W;V]T:71X;GYN
- XM?WCZ;&YU;OC^_O#MZNGF\.7LZ^[W?&][;&]O979B;&9G>W1Y]WS\]^SSZN?V
- XMZN[J[>KQ^'1X?&_[<6QG=6UR^WWX;_I]\WES]'SUZ_?U\'KL>/MR;F=M>6IO
- XM=WQX]^W\Z^U]\_[S[6A]<W/Y_VSW^?/V?>_^^.[R=>OV[G_S?7Y]]'IM=65K
- XM;VEH;VSR?>[ZZNQYZ>GL]OW_:7!R=&9K:6YL<G-X^'CO_'CN[.ONX>[GY^3H
- XMZV[];WAN;WIL<&1Y>6SX>V_[_7CK=7U[=/1Z]&=Z='9[>/_Z<??K\>;V[>CQ
- XM\O%\</Y\=71L9VEU9GYZ=^UOY/COYOKL]_;J_/7O?O-M[&]R<6=M>FGR:WGQ
- XM:^A?W5W@9?7P5]I-S4_79?CB6]!-Q4C'2\Q8Y/)CUD[)0\4_Q$+"0L%%Q4C*
- XM3MA>Z/!MUU[.3\I(PT+!/;X[PSS%/\M&U%+?;/C=6<I,PD2]/[H]NCV[0;]'
- XMR%'3<F'11<<]OCB[-[HVNSF_0LI/[>!,PCVZ.K4VL3:U.KI%R&1TST&]-K8O
- XMLB^S,KD\QUY>Q#ZT,ZXPK3.P.[Y.;,TZMR^O+*\NN#C,6$S!-K OK"^N-KM0
- XM_\ ZKRZK+:\VP&%(NB^M*JPMN$=2NBZI**HOO?$[K2BG*K1,1J\IIBNQ3S^M
- XM**<KNNTTJ26H,N"X*J0GL6,RIR.H-DNM)*,MS[(GH2O$N2BD*L:\**8KV;<H
- XMJ#)5KR>L0SRJ*KC1+J@S[Z\KKE<UJ"W1M2FL2S*H+.^P)JW\*Z4R.Z0J=J@F
- XMPJPEMK4DKKTDJLTDJ=4EJ<8DJ[LBKJ\BMZDCUJ0G0*$O*Z)J(JZK(DN?-R6I
- XMKR!3H#XBK:8F+:2T($6EP"%3I[\B4:>Z(D.HMB<UJ; Q**NQ^!^TMZ\B.[*T
- XMPANV[*8_'[1MGS4AM7*@71V_5+6K)3#"XZ^G*B6W6[ZSJ!PYP%F_O:,>,L96
- XMQ<JD)2B_2<#<IVP>RE3.T<"H/2?.8\KEP+'8)T[F;-/BO[% *,9>U6K1RK)'
- XM*,E,U'7<X+JZ*D_G9]EGTMRTT"SE8^CH>M7\N\(T2V]N<F+=:-"^:#ED76!I
- XM[>;RULOE1V-D_O+K[>[DW=CH;&EL?NKX>/ST_G3U['YZ^VQI:FAE;/%Z;W!O
- XM:71R?/5VZ^[\Z>OU=?_Q>?+J[>O^_/AN:VQW_>WI[>WZ;FEG7VSZZ.'G?GEF
- XM75Q47>O4TMG<ZVYB54I/T,73Z/KV:5I!.<.Y[^UEY&5<-4JKT.9L;7I2/#NM
- XMP63Y46M3/3JNO5_S5F5/.3ZKR%UZ6EQ(,_JHX>MB;EA ,K6M6MI6=THW0JC(
- XM6V%/4SLPMJU0XT]M1#'KI^'O85]/,T*GO%CP4E4T-JRR4^E/6S<OKJY5X%99
- XM."^PK5#F45@Y+J^L5^-6>#8OJZY.]518+S>GN59O55(L2J/$75I60BJ_I6_T
- XM4UTW+:NM3W-,42P^H\%C8EI#*+ND;_!.63 OI[-484Q+*-.CWO5-63,LJ*Y;
- XM;4U.*-2BXNE-6S$NIK)::$I')KND8]Y*6BPZH,)J64X[)ZNI6^-(4R9ZG]WF
- XM2E0O+**V7V]*122RI5G;0E4G1Y_9XTU.,RJCL67A2TTEM*18TD5;*4B?X=Q1
- XM33$JHKI5^T)")+"H3LY&7"EEG^W545(P+J"[8.M*1"6NJ$K;0U G8)_WWDU0
- XM,BRCMUKG3$DELZ52TTE:*CVATF]44#@IJ*Y6W$E1)L>C7]5+72\OH[QH;$Y(
- XM)[:F9]9,9RPZHL)^758_)[6I8/9)5"PXI;UO8UD^*;BG].957B\UI[1G<UE$
- XM*M6EU7)7430MKJU9<$](+3^FO63[5D(LQ:7?[EI4."ZNK5CT34PO.Z>[6F1/
- XM22SJIM9E4E(^+;JH9G!06#HOKZQ8^%19.#6KLE!M3D\S.JJ[3V]66#-#J+]9
- XM;5E4,DFIQE-E6D\P1JG'4VMA4#)#J<-7[655,SVKOE??:ETW.:VX4>1=6CHT
- XMLJ]8VF9B/C&_K%OO6EA",5ZJW&-K5DPW/:R[6=]<84(WN*U=V5Q?1S-6JMEF
- XM;5A..3>PM%397F9&.-JJWN]H5TT].+.W3^A.6D4W4ZO:?_%?64<XNZYCTUUE
- XM33\ZK[Y:[%-<33I-K-CO^&=E3S76K6SC7E].0S*_LE7K4UU213>TLWC58_59
- XM13JPN%_B6&E0/SFQOEGY4UU.03JQOEOB66141CFTNF7=66)42CBXMF+;7&I;
- XM43? LF7=6V-:5#;NKW_L7V9@5SQ'K]5M;UAG6D4YMKQNW5QV6U4VS;%JW&-T
- XM:&$\2*_0]NEJ?%M/-[ZZ6-]=_%QA.D^QW^-K75]82S:]NVG867]E=#U,L=;>
- XM[&=U8E<URK9XVEK^6F-".[?$\.-@\UUH.$^TW=]M<6QG7#?/M^/69.AE]$LX
- XMOKO@W65\6&X_.[S%]7!>:EIM/4.XQ=[I^WUN;SY+M\?B]&UC7EL[1[K,??UR
- XM:VQE/DRWR-[?]G]O:CY'M\?Y]F=I7&5 0KS*;GEB8UMN1C^_O^_F>O!MZE,^
- XMR;OCW7UY8GQ6/?&[X>=R8EYL73Y+O='V]&EB9GI)/\;!ZM]X\W7M6#[TN]C:
- XMZGUL>FI%1\'+^_-C:VAW3S[DO>+=>GAM_6)'2<+)].UJ;%]L5$!GOMG;YNKW
- XM[OI-0L["Z=S^^FSN:$A)QL[L[6=J7VY70UC V^OY_FIH=%A$^,'CWO/X;/7X
- XM5$;3P-C6XNEL^VI.1-;*\>AN8UYT84U&U,OGYOKX>^QX5$O0R.'@[O9N]756
- XM2>'+YNMV;V-K;%E);LS=Y.WW=O-]8$Y:SM7H[?CZ_7EE5$[GU-_>Z>_S\G-?
- XM5<W^ON_7E^]W)@6_/8V]_O?OY[<FE<67SCZOIT;FAD9%Y;8^S?X^CK[?/P
- XG]G9R_N??W^;T_F]G8F1G:'SKZ.SS_OMY;6YO=7_Z?7=O>'QU=/SZ
- X
- Xend
- END_OF_FILE
- if test 3926 -ne `wc -c <'sounds/ballshot.au.uue'`; then
- echo shar: \"'sounds/ballshot.au.uue'\" unpacked with wrong size!
- fi
- # end of 'sounds/ballshot.au.uue'
- fi
- if test -f 'sounds/boing.au.uue' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'sounds/boing.au.uue'\"
- else
- echo shar: Extracting \"'sounds/boing.au.uue'\" \(4015 characters\)
- sed "s/^X//" >'sounds/boing.au.uue' <<'END_OF_FILE'
- Xbegin 664 boing.au
- XM+G-N9 " LM 0 'T ! #GYUMG[UO976];6T79
- XMSN=;V\V]03]!4<K/OL?GJSX?19^FOQ\A+T*?GZN]71\C+#BCGZJ^21\H,TB?
- XMJ:[&'Q\K-DN?IZW9'Q\N/::?I[/!(1\H-JR?J;;.'R0O.J:?J;<P'R,O/9^?
- XMJ\$?'RPXOI^?K^<?(2]!J9^CNCH@)39?IJC&][=+)2$M/*V?H+/9(1\M-KZA
- XMH:M!*20L/K.DHJQ&)R4J3;VJJ*]++"DN7[RLJ[=5/#(K,L&HHZO)*1\D,\2I
- XMI*K"+",F-;^GI:Q&+24L/[FGIJ])*BDN=[BIJ;-%+2LR9[RLN\&Z6RPH+$B_
- XMIJ2IU2DC)C;KK::LS# H*3S%K*BLQ38J*C;9M:JNYSPM+3C7LJVST6,R+"I'
- XMKJ:GNS,F)2U%LJ.DKT K)2T]N::HL$(I*"Q3O:FHKU$L*2U.MJNJN6,O+"Y)
- XMO+*OL+E#*BDN4:^GJ;U/*R<J/<"LJ;'1,BHK.<^MJJ[7/2TM-'>RK*W"3S M
- XM.%NYKK"Y13,K-6.OJZW-,RLK.-FTJJNX0"TK,%/#K:ZX3S$O,D^[L*V[ZSDO
- XM,3[+MZZUR$(R,SMKN[&LP4TN+3)3MJRMO$,O*RX]TZZKKLM%+RXR4;RPK;I-
- XM-RXS/-&TKK/91S4T.F>^KJW5-"XXR;:UP%DT+S!'OJZJL-L\+2PQ5[JNKL%?
- XM-C(S3L.SK[?W0C,V/=^[MKG.53<X.D/(KZS(."XN/MVPJJ_&.RXK,4/)KJJO
- XMS3LQ+CE-P+*PO5<Y,#5+U[FSM\]'/#Q&7\FNL=TU,TZ^M+?W-2TP.V>VJZNY
- XM33(K+C[?M:VPS#\S,3M9OJ^ONE\^,CE+U[JUN^=!.3@Y3;FJLETR+S17MZVM
- XMN>\R*RPY:[NLJ['G-BTN.=^ZL+"_4S,O,DK7M[&WP4\W-SQ1SZVWTSL]7\&\
- XMQ$LR,31-PK*LK[Y +BLQ1=>UK[3-/S,S/MF]LK*[9SLV/%/9O+>_TT@\-CC5
- XMM*[.1#0U/=&TKK33.BTL,D+)L:RPQ%$R+C)!SK2OMM5(-#(X5<&VL[C(3#@W
- XM/N>UM]%'1]>[O<\\,2XU1[^MJZW'.2XJ,C[)LJZUVT0R,CACO*^OOE<]-#E!
- XMV[RXO,Q=/C8W6[.OOT8V-$3'N:ZVP44N+"]$S+6MK[AC-R\P/5N_L[*]9STR
- XM-4)?PK:UO.M).CM!RKW!6U',O+G*3"\L,$')LZFMMUDO+"PYV;ROLKM?-C$T
- XM2]6UK['&2S<V/%W.N;B\UTDZ+T+-K[WK/#5 =[JOM<1$-"PN.6.WKZRW=SXO
- XM,#5;OK2SP-T],C,\;\FWL[S313DY2,B_QF=GRKJ\S#\O+3)/RK"KK+I.,RLM
- XM,W>ZKZ^]53HP,T#3MK*RP7<[-#9#W<&VNM=?.2X]Q;3 33L[2\*XK[KC1"\L
- XM+D+/M:RNM=\Y+RXY3<&RL;GK.C0Q.TS%M;&WSE$Y-43;P</3X\S!P=E&,R\T
- XM/\VYK:ZZV3@M+#15R+2PM<U -C,\_\*SLK?-1CDT.TS,NKB]VTXO-].WOUD^
- XM.TW1MJZROT@U*RT_6[>LJK/90"XM,DW!M["ZSC\P+S5+P[6OML1/.#,[W\.[
- XMSMW7Q<C73#<P-43KN:ZMM=M#,"PT0,VXLK7'7SDS-DC-N[.VOV,\-39&U<"Z
- XMO<E3+S!=M[?;/CH^X[FQKKO5.BHJ,$C1KZFLN4TO+2\_][FOL;]+."XR.O^\
- XMKZ^Y[T4U-3_5N[K*V<_*UV\^-3<^=[^VL[K'3#4P,S]9Q;F[P7=#.CM)Y\"Y
- XMNL)W1SP]1'?'OK_/6S\T6\.QS4HX.D;'L:RQQ3TM*2TXW[&LJ[71.2PM-G>Y
- XMKZ^__S<O,#IWP;.QN-L^-C5)R+RZQ-EW;V=31$%$4__+Q,/*YTY$/D5,]]/(
- XMRL_C74]/7=?)Q<O9;TY*3F?CV]/7]UM&06N_M\H_-#9%Q+2LL;U$+"HM/<NS
- XMJJZX33 M,$/=M:ZPPD$O+C9/SK2OLLA(.34\4[ZQM,=50$%+7_?C_^MG75MK
- XMY^/7W6=724M+7>?3RLS5=U-.5?_CU='3W6=545%;;]_7VV],_\2^YSLS.E.W
- XMJJFR;S4H*3!5MJNIM5$W+3 \T;&NLME$,"\U7;VUM<1/.S<_6<:XMKY;03L]
- XM3L^]O<-=/3DZ3.>_N;[71SPX05O(O;[(8T,_2?_1P\3,:TQ*5>O1R\]W64Q.
- XM4UW!N[E/-BXT1[FIJ:]&*B8K/\JKJ:YG+RTO4[>MK;]-+RTP6;>NK]-!,# \
- XMS[&MLM\Y-#E)W[NRM<] -C$^U;ZVO]] -C=,RKZ[SUD^.T3CP;S$[T4^0FO-
- XMOK[%7T ]1G?.P\=12=G!T3PQ,E&TJJ>Y3"HG-5>QJJWK-2XVV;>LM-LW+3)/
- XMO:^T[S8O-%O&LK3%2#DZ6<>\O<U103Y,[[^]R4\Z.DK/P;[91SY#[\O S6]'
- XM25O/QLCK2$))X\&]QV=(/DEGS\7+8TG;O-,[,"YKM*.JU2TC*V^MJL8Y+##K
- XMKJJZ/S$R7<"PP%LU.$Z_M]=..#YCO;6]6SLY3<>\PF-#/%W$N\=-/#SKQ+S=
- XM2SU-V[W#5SX[8\J\R6<_0E75U=]?]]W-V5-(2/_7Q,YC3[RZ9S,L.[FBJ4\F
- XM)UVLK5,K+'>LK'<P+^.NMVLS.6NWO>LZ2MF[V4<Z7[RUR4H_4^_3WV-37^O1
- XMU5](2^?)S%M'2?_9T>]G7_]C44WGRLC?54]79V?OX]',U^=C6U]G[]W-SU%=
- XMO=-!*T&XJ/\Q-[RP6R] QKY5/%/!Q%5&_\/=3D[_XU]CU\?/64Y765_?R\;;
- XM8U=?65]CX]71_U%78__GW_?;76??W^?OW]EO3U=;8^?3U6]75UMC7V_WX]?9
- XMY_=93U55X\S+;\V_73 YOKY=5[_*0UG57T19Q>M+5_==5]7(V5U96U%OV<S/
- XMU^]125-KY]W/T^=C6V-=4>?-V^=W;U59V]MW_U]K8V_GW^-O9V=92U]OY^/W
- XM]V=G7U]G;^O7T]/59U=.7^O7SM%WT]M,9U-CS^?=_VO_:V_W__]O66-?=^/;
- XMW>MW7U-37^?3T^M?5U-;7V__Z]W;U]UC9U-GW^_=U]_9[VO_8V-K]^?W_V]W
- XM:V-G=W=O9UU;8_??W?=K9U]G[]?.S]?K7UE;8V_WX^/7;UM-3%%O9^/GV=_G
- XM=V]O]V_OY_]?]]WC=V-C]__K]_]W[^O_;UE94V?GV]/;[^]7:U'WY\O-U]EG
- XM65%?;^?C[_]C6UU?=^/G[U--3%=WY]WC=U]776/GU\W+T=UO6V/_Y]O9U=?W
- XM74U-3V_CW]G_8VM?9V-C;W?W[^_OZ]_C]VMK;W?WW^?GZ^M944QC_]W?V^?_
- XM55]37>_7S=/C;U]C__?=[^?W9V=?_^O?]U]53E5=[]_=YVMG_^OO_^_;U=/3
- XMW?]766O=U]]OZV=96U-C;VMO:___;V]?75]?8VOOZ^OKX^OG___K[]W;W>?O
- XM;V=?7V]O=_??V^=G7V?WY]O=W>]O[V__[W=C65EG;_]W=V-?6UM?8W?W[^_W
- XM[^?O_V]WW]O7U>?O;V___V=K_^_O;U]?8W=K___G=V=C:V_O9VMK_W?OV]O=
- XMZ^?_9V=?;_?GZW=G9V-?9^_=W__KY^?KZ^]O_W?OX^OO[V]K7UU97W?_[V=?
- XM7VMO;_]W;^_CV]_?X^/_=_?CV]W=]VM=7U]?9V]K;VMO8VMC=W=O9V=O=^_=
- XMZ^]C:W?GW^/G=VMO_V_O]V=W9W?GX_=W=^___W?_X]O3XW=?5UEG_^??W?__
- XM:UU=8^_O=^__[W?_=VMG9VOO=V___W?WZV]O:W?_[^OG[V]G6U]G=^_GX^_O
- X-;V/_]^OO_^OOZV]K9VMG
- X
- Xend
- END_OF_FILE
- if test 4015 -ne `wc -c <'sounds/boing.au.uue'`; then
- echo shar: \"'sounds/boing.au.uue'\" unpacked with wrong size!
- fi
- # end of 'sounds/boing.au.uue'
- fi
- if test -f 'sounds/toggle.au.uue' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'sounds/toggle.au.uue'\"
- else
- echo shar: Extracting \"'sounds/toggle.au.uue'\" \(3574 characters\)
- sed "s/^X//" >'sounds/toggle.au.uue' <<'END_OF_FILE'
- Xbegin 664 toggle.au
- XM+G-N9 "#_____ 0 'T ! !=74(\+4VZ75\Z2ME=
- XM0SE)PM%%,ENNN-E95;2XN[2S2U7/KZTS+DC/QCHU.#0UR\5(,2JOJKI51<2O
- XMM[:O44;3K:DS+#S.QCDO/S\U+\S%4RPHKZR\34RVL;RUKM-%=[*I]RH^Y\4X
- XM+SD[,#G ]SPISZFT9T7)K[>[KZ]$4;JKM2@N6\'3+C9 /"XWQ=U *E>JL.M#
- XMV:^YO+*W5TV]K; J,DW(63,U.S8PS\5/+"FOIJTR+["GK2HK1]/3*RY*.2]%
- XMXULW)[^OMTU9NKZRKZW//]&JI4PS2MG9.4,\+BLZOL\N)3^QNME)O<7"L:^O
- XMODG-KJ:]+SGWNDPQ+C0U.=E.."E5M+S_2LS*QJ^NME==LJJO-#M3S&M'1R\N
- XM-\W)-RHQO,/*4]?%V:^OK^-"OZRQ:SU._UT\.SXX-#A+74$M,%&]PV-,8_^L
- XMK;#13[VLJ+I%0]7/V^LO*S$_QCLM*4O1Q.]=:T.NJ*O1.=6HH\PN,__,3S@O
- XM,S0Y0T5 *RKCL[I1W\G&JZROR/^^JZ[-/#UOVU-9+BPN0=D]+BM9Q;MO8]GK
- XMMZROLV?1N:JP13=&QM-7,RPS.D1+0#8M3LJ\VU?GXZ^MK\)GRK*MN/=$1]?W
- XM[STM,#_C638O-6?%Q6?K7]>LK+1-=[JHNCDP4\],+C,Z-C4_44HY+-VZN&=1
- XMO[NVL*^ZY\6SKLY /%GK1T(X,S ]7V,U+46_O,Q?PL"]L["QTU/%K:I,,$;7
- XM=S0Q.#HV/%]C.BM$MKI=3[Z\MK:SM^/5O:_$03]9V4] .#4V/UU;.S(_P;S)
- XM6]/!O;6VM]=WQ;.P7SU#]U]&.SX^/#U37T4P-]&[RE?GSKVUMKG?W<.RM>=!
- XM3-WC8TXW-SM1[TPV..?+R&-OX].XM+K+3<:VKU$[1-OO1T$\/CY#2U=).3K.
- XMOLE;V\O"N+F]U>O&N+?C14/K_U=..CL]3N]..CM7R,?K]]?7O+J[P6O/O[/3
- XM24!OUUE(/SU 0E-=1#HZV]7K255W_]/1W=-74[RZNO_CQ;K$TV]WR?_#SE<[
- XM-5E9539"1F=O6V\^3$VUN>]WQ+'!=_?*Q-O/S[P^,CC?;SHV36=W5T9*1%],
- XMN\O#S<RXO<OKV<C7PLWG..=)7T8[/$=?6TM90#Y&M,C.Z\:^N\OCS</&W;W#
- XM1D9'[TM)-45/9U-)0D<^5[Y9X\W!O[O$U]7(OLF[ST#K74Q".SM#6U]+0$<\
- XM3_?'U]&_P+O#U<W'P,_%O^LY:TQ 1#(X04Y%/40].4.[RKN]PZZRM\3'N[FV
- XMO;?;0>L_-SHP-#M*/CHY.S=?N4K5M+>UMK_$N[>YQ[#*/$]&/#HR,3I&0SDU
- XM2#8[W<W+N+:]K[.]PKZWM;VVU4YC:S0X-C,V13XY-SPX/;G=[[&WM+*ZPKVV
- XMN+NWL49/V3,U."XT.3PV,34W+TJ]9[>NNJNNMKJWL+&OM+G?/NLU+C(M+SHY
- XM,S N.#'OO4NNK:^NL[:UK["SN:SC.FL_+2TM,#4X,2TQ.# RO,SGJK"OK+&V
- XMLZZNKK>OO$%13"LN,"XU-# R+S0Q/\#K6ZJMKZ^RLZ^QK["NO#];6RDP+"TU
- XM.#,O,C$S+;SC=ZFOKZVOM[6QK:^RK.=;RRXN-2LO-S@T,#$O-#Y;S]^MKJ^O
- XMM;6SL;*NLK7'1UTR+C M,3<U,#$Q-#)'P-7#K:ZKKK:VL:VNMJZT/?=(*C N
- XM+3,V-#$O,#,Z1\[=N*NOL:^TL["PLZ^SRU%70RPN+R\U-C Q-"\Q2='?P:RR
- XMK*ZTM[2OKK.QL.=?]RPP,"TR-S8T,3(O.DY?V[JNKZ^OM[2RLK.QL]/55SDN
- XM+R\Q-#8S,3,P+T%9W;VPL:VNL[:UL*^TKZ_?5^<S+S$N,S<W,S$R,CE :^^_
- XMLZ^RL;2VL[2UL['(]W<]-B\P,C4W-3 U-B\];^?+L;&RKK*WN+2QM+FRRE7?
- XM."\U,#4X.#<U,S<X/==OUZ^TM;.VN+:WM;:SO-WO9S<S-#0X.SHU-S@W.7=G
- XMU[2XLK6VNKJXMK>YL]MOUS4U.30W/#P[.3DX.D%OU^>UM;FWN+NZN[JWNKW3
- XM8VLZ.3DW.ST\.CLY.SU9U^^^N;BWNKR^O+FYO;F]4>,^-CTY.CT_/CL\/#Y'
- XM2]_9O+B\N[N^O;R]N[O!SW=?13H[/#Q /SP]/3P]5>?GPKN\N;N_P;Z[N[^\
- XMO%G?ZS<_/CL_0D(_/CX^1T_CX\BZOKV]P;^]O,*]RVM92#@R,C8T,B\T+CXZ
- XM0L'$MJ^NKZ^NK:FOJ;Z[S=<X-#$M+R\N+"LO*CHY2TB[N+"OK:ZOK*FJJ\>W
- XMS]D[,C0S+RXN+BXJ*BM&.DW7MJ^NKJZNKJ^KJZR]O,[#-3,U+BXR+B\M*BXT
- XM/5E(OK*OL:ZOL*^NJJZMQ,;!3#@Q,3 O,"\Q+BHM-41,2[VYK*RQKZ^QK:JN
- XMMLK"R><W+RPQ,3 R,"LN+4P_6U^VL+"OL;&QL*RMKL^_U\PT,RTM+S O+BHG
- XM*UU/13VMIZRMKJVMKJVII*[3Y\3W+2@H+2XN+2PJ)"M!749KM:>KK:VNK:VI
- XMIJO#V\?O+RLJ+2TN+BXL)28O5W=(O*VFJZZNK:ZNJ:2HPW??T3DK)BLO+B\N
- XM+"8J,V=;2..KIZJNKZZNJZ>FLE]9S.\K)2<L+"TL*B0B*.?W1&NNHZ2IK*NK
- XMJJBEG[-&2+Q%)A\H+"LK*B@E("S3R4+WII^EJZNKJJFEGZ?K/M_5*2 B*BLK
- XM*BDE("8^Q$@_NI^?J:NIJ:FGI)^KO$';XS,@("@L*RLI(Q\I][MO7\"@H*:K
- XMJZNJI)^BOSU3RC\E'R<K+2PL*!\A-<;5/<FCGZ2LK*RLJJ*?IE$^O,,N'R L
- XM+2TL+"DC(36ZT3UOI)^FKJVLK*BDG[=-/,3'+1\F+"XM+2DC("[&N55=MY^C
- XMK*VLK:RGGY]W-/^Y."$@*RXN+2LJ)",NR[]?9ZR@HZRNK:RJI:&Q9SO,T3<A
- XM(BHO+BTL)R KU[A?:[RCHJFMK:VMJJ.?N3Y#O_\M'R@N+BXN+"8D*EF[RE>]
- XMJ:"JK["NK:>CILXU2,E+*R I+R\O+2DB*#VUVTW=IY^HKZZMK:NEH+D^/L+"
- XM+Q\D+C N+BTI)2I;N-55Q:JDJ:ZOKJZKI:?!.T711# D*2XP,"\K)B0YN=-K
- XMSJZEIZZPL*^NJ:&I4SG+QSDE)"TR,S(O+"8J/[/;3N^JI*JRL[*OK*BJOD]"
- XMW><W*2<O-34S+B@H/,2^4_^YJJJOM;.TL:RFK>\][\P]+B<Q-C8V-3$K+#JY
- XMR5=;LJBKM[BVMK*MJL))1\S/-BHL-3DX.3,N*CK?OV-?OZNMLKJXN+:NJZU/
- XM.-O%/2PL.#LZ.3@V+BT\P\%?;[^LK[FZN;FXKZVW4T7WVS\O+C<\.SHX,2PZ
- X'[\!O6\NMKCLZ
- X
- Xend
- END_OF_FILE
- if test 3574 -ne `wc -c <'sounds/toggle.au.uue'`; then
- echo shar: \"'sounds/toggle.au.uue'\" unpacked with wrong size!
- fi
- # end of 'sounds/toggle.au.uue'
- fi
- if test -f 'sounds/touch.au.uue' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'sounds/touch.au.uue'\"
- else
- echo shar: Extracting \"'sounds/touch.au.uue'\" \(2333 characters\)
- sed "s/^X//" >'sounds/touch.au.uue' <<'END_OF_FILE'
- Xbegin 664 touch.au
- XM+G-N9 " 9I 0 'T ! #\?'S^_7[^?GM]>WM]
- XM?GAW>7AU=_[^?G[^_O]Z>/[Y]_?Y^OW\_?[_?O[Y^OW\^_GZ_7Y]?'[]^_W]
- XM^?Y]>WW^?GUZ>GE\??W_>WQ^?7Q\?OW^^_CV]G]^_7]\?_WZ^W[^_/KV^WU]
- XM_G]\?'I\>GI]?7AX__U_?_S\_?Y^_W]^^_G]?WQ_^_U_?'S]___^>GS[^/K]
- XM?GEY?_U_?_OX^?O__OU^?G[^_/W_?WY^_/C\?'MZ?/_^?GIW>'I\?WY_?GY^
- XM?O[Z^/7W_/O]?W=P=7[_?7Q[?OOZ^_GY^_W\^?M_?OY\>GAS='E]_?O\_W]^
- XM_/O[_O_^?7IW=WO]^?[^]_7Z_WWAS$5)O-]F2CV_NSH^OLM07FGFS&!.V&K[
- XMT6Q97,_*1%G<UM='2<+!03_$U_ME/\NZ/D:^<FC>1=J_1$_%[5/67U[+6DW/
- XM>VCI:F7KXF)7W-A><VMXS'U&\\5O3^M<SLL^5[YR4VY6T<1#1\7:7W1,ZL1?
- XM1N#1Z?Y-8,S83T[9SWM<5^/,=TIZSOA?;5C5SDI;SFW]X%'KREA4VVY\V%-?
- XMRW%6[?3^Z5UAV.Q7=]SM87/RY>U;8-;D5&;:^'AV6-S44VC8=/3A66S1:6/D
- XM7^_165;;W79F7>K/<$S]T.Q:7>[6[%)?U=Y;8/GU[6Y9Y]ME^^1@[=MD:=]_
- XM[.97;M)L6??S[/%>;MKS6_CC<GEX?.S\9_GE:U_N[&IN^_[H<5SHW65PZ7CO
- XM[5]^WFQWY6MYW7QK^7KVZV%>X>5>:/7J[&5>Z-YJ7_/K?7-L<>CU:^[N;>OG
- XM9GOE^/?]:.G?8F/G]G)R:/CD:V+O]&SY^F_Y^G;T?6WQZ&YG[N?\<G#QXGI?
- XM^N9S<W9U[?AF?NUM>>ES=^KU_W]M]^!Y9.SD=FUR\.5O7G_G>&I^^OUY<_SN
- XM>'#N]FE[[7Y[='?H\F1[XO9N???K^69WY/AK]>][^WM[]W1O[_QF<NOP<F_\
- XMZ.]E;>+G:6OR[OAK:^GL:W3R^?W^>?7S='S[;7/M^&UW].[T<'7H[VAL\_)Z
- XM;W?M['9X[/)X?_W^]W-N^GEK_O1Y?OS^]?YP]^QZ<7_^^?5X>/+X?/M]>/3T
- XM=71]>G9Q;G[R=V[^]WY[=7SK\'7][_+X<W7N['=O??[\_7;Z[/]N??GY?W)Z
- XM\?EQ=O]Z??U\?/YT<WQP>/EW;GSW^OG_^^ST=OOQ_GG^^/7]=?KP=6[Y\WIV
- XM_O/U<6_U\W!M__/\<G#S[/]U?WMS=GA^>W)Y]WQP_/-]?>[J]'-S\.MV;/KN
- XM_F]U\?%Q;?CO?'!^]?QU<?SX<';U_W9\^?=[=?OO?W'W[?IR=_OY>7;R[GIS
- XM^_=Z;WCS^7)Y\/-U<_SZ>7%[]GYL<O#S?7O]]/A[_._W?O?U_7E\^WMO=?CZ
- XM;W7Q[_MZ?_3Z>'SQ\GIX_/7^<W![_W!Q_GYX??WY_WC_^/[]]O3Z?OST]'Y]
- XM]O3[?_Y^>G)R?7UW?/CX>WO]_']]^O/[>O[V?WA[?'YZ>?SW^WQ\_/S]_GW_
- XM_O_\^?OZ^/[_?7_\?'M^_GQX__YX<F]Y^OUZ?OGZ?WE\^?KY]?+P\O=^>7AU
- XM=GI[??S^>GS^__KX?__]__[Z_'Y_>7K]?W=X_OK[?GA[?7M^^_K]^_?Z_?[Z
- XM_'AX_/IZ='A^>G1Y_'UV>/WZ?WI[_/C\_/?X^_CV^/Q^^OO]^_?Z=G9]?'=S
- XM>/OW_WS\^GIW>WUZ=GA^^OSY^?U[?/_]^OKY^/W^]O;[?'5]]_M[?'YX<G?]
- XM?GAW_OQ\?_7W___Z^?Q]_OM^=WW[_7MZ_OU\=WA]_?[\^_W]^?;T^O[[]_Q_
- XM]_IZ='1]?7AZ_GUU<GM_?7M_^/W^_/3R^OS\_7QZ>O]^>_[^>7E^___^^O/S
- XM_GO\^GYZ?7]]>WIX>'A[?/[\>GEZ?'Q]_/M]?']^?OW[^/]V>OW]?G[V]?Y^
- XM?_SZ^?GY_OWZ^7]V>7]Z<W5[?'EX>GQW='A\_?KV]OO]_?CY_?[]?GE\_OW[
- XM^G[^^'YZ__Q^?7U^?'E\?'IU>'S^?_[^?']]?'_[_'_]??[Z?GU]?_KZ^_G\
- XM_/Y_?'9W>7IY?/S]_?]^>WW_?OS\_OK\?7QU=_S]?O[Z^?O[^_S[^OK]?O_]
- XM_G]]>WU^?'[]?WAV?GYU<G9]_?OW]?GY]_O]?OWX_WI]_']Y='A]>WW\^OK\
- X(_OY[>GM^_WS]
- X
- Xend
- END_OF_FILE
- if test 2333 -ne `wc -c <'sounds/touch.au.uue'`; then
- echo shar: \"'sounds/touch.au.uue'\" unpacked with wrong size!
- fi
- # end of 'sounds/touch.au.uue'
- fi
- echo shar: End of archive 21 \(of 26\).
- cp /dev/null ark21isdone
- MISSING=""
- for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 26 archives.
- rm -f ark[1-9]isdone ark[1-9][0-9]isdone
- echo "merging split files..."
- cat blocks.c[12] > blocks.c
- rm blocks.c[12]
- echo "blocks.c done"
- cat bitmaps/earth.xpm.Z.u.[ab] > bitmaps/earth.xpm.Z.uue
- rm bitmaps/earth.xpm.Z.u.[ab]
- echo "bitmaps/earth.xpm.Z.uue done"
- else
- echo You still must unpack the following archives:
- echo " " ${MISSING}
- fi
- exit 0
- exit 0 # Just in case...
- --
- // chris@Sterling.COM | Send comp.sources.x submissions to:
- \X/ Amiga - The only way to fly! | sources-x@sterling.com
- "It's intuitively obvious to the |
- most casual observer..." | GCS d+/-- p+ c++ l+ m+ s++/+ g+ w+ t+ r+ x+
-