home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / games / volume18 / xboing / part25 < prev    next >
Encoding:
Internet Message Format  |  1993-09-13  |  59.5 KB

  1. Path: uunet!news.tek.com!news.cna.tek.com!not-for-mail
  2. From: billr@saab.cna.tek.com (Bill Randle)
  3. Newsgroups: comp.sources.games
  4. Subject: v18i084:  xboing - blockout variant with color and sound for X, Part25/30
  5. Date: 30 Aug 1993 10:29:30 -0700
  6. Organization: Tektronix, Inc., Redmond, OR
  7. Lines: 1701
  8. Approved: billr@saab.CNA.TEK.COM
  9. Message-ID: <25tddq$i2p@saab.cna.tek.com>
  10. NNTP-Posting-Host: saab.cna.tek.com
  11. Xref: uunet comp.sources.games:1884
  12.  
  13. Submitted-by: jck@kimba.catt.citri.edu.au (Justin Kibell)
  14. Posting-number: Volume 18, Issue 84
  15. Archive-name: xboing/part25
  16. Environment: X11, Xlib, XPM
  17.  
  18.  
  19.  
  20. #! /bin/sh
  21. # This is a shell archive.  Remove anything before this line, then unpack
  22. # it by saving it into a file and typing "sh file".  To overwrite existing
  23. # files, type "sh file -c".  You can also feed this as standard input via
  24. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  25. # will see the following message at the end:
  26. #        "End of archive 25 (of 30)."
  27. # Contents:  audio/HPaudio.c audio/LINUXaudio.c
  28. #   bitmaps/blackblock.xpm.uu bitmaps/bullet.xpm.uu
  29. #   bitmaps/digit0.xpm.uu bitmaps/digit1.xpm.uu bitmaps/digit2.xpm.uu
  30. #   bitmaps/digit3.xpm.uu bitmaps/digit5.xpm.uu bitmaps/digit6.xpm.uu
  31. #   bitmaps/digit8.xpm.uu bitmaps/digit9.xpm.uu
  32. #   bitmaps/fulldigit.xpm.uu bitmaps/mouse.xpm.uu
  33. #   bitmaps/stickyblock.xpm.uu error.c include/ball.h include/blocks.h
  34. #   mess.c sounds/toggle.au.uu
  35. # Wrapped by billr@saab on Mon Aug 30 09:14:30 1993
  36. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  37. if test -f 'audio/HPaudio.c' -a "${1}" != "-c" ; then 
  38.   echo shar: Will not clobber existing file \"'audio/HPaudio.c'\"
  39. else
  40. echo shar: Extracting \"'audio/HPaudio.c'\" \(3535 characters\)
  41. sed "s/^X//" >'audio/HPaudio.c' <<'END_OF_FILE'
  42. X#include "include/copyright.h"
  43. X
  44. X/* HP Audio - .au much the same as how LINUXaudio.c is done */
  45. X/*            I`m not sure but does the HP audio device accept .au data
  46. X *            and know what to do with the header?? Anyone know.
  47. X */
  48. X
  49. X/*
  50. X *  Include file dependencies:
  51. X */
  52. X
  53. X#include <stdio.h>
  54. X#include <fcntl.h>
  55. X
  56. X#include "include/error.h"
  57. X#include "include/audio.h"
  58. X
  59. X/*
  60. X *  Internal macro definitions:
  61. X */
  62. X
  63. X#define BUFFER_SIZE                (1024 * SBUF_SIZE)    
  64. X
  65. X/*
  66. X *  Internal type declarations:
  67. X */
  68. X
  69. X/*
  70. X *  Internal variable declarations:
  71. X */
  72. X
  73. Xstatic char                *Audio_dev = "/dev/audio";
  74. Xstatic int                 Audio_fd;
  75. X/* size should depend on sample_rate */
  76. Xstatic unsigned char       buf[BUFFER_SIZE];       
  77. Xstatic char             errorString[255];
  78. Xstatic int                 parentid = 0;
  79. X
  80. X#if NeedFunctionPrototypes
  81. Xint SetUpAudioSystem(Display *display)
  82. X#else
  83. Xint SetUpAudioSystem(display)
  84. X    Display *display;
  85. X#endif
  86. X{
  87. X    /* Try to open the audio device */
  88. X     if (Audio_fd = open(Audio_dev, O_WRONLY))
  89. X      {    
  90. X        /* Success - audio device opened */
  91. X          return True;
  92. X      }
  93. X     else
  94. X      {
  95. X        ErrorMessage("Cannot open audio device.");
  96. X
  97. X        /* Bummer - cannot open audio device */
  98. X          return False;
  99. X      }
  100. X}
  101. X
  102. X#if NeedFunctionPrototypes
  103. Xvoid FreeAudioSystem(void)
  104. X#else
  105. Xvoid FreeAudioSystem()
  106. X#endif
  107. X{
  108. X    flushAudioDevice();
  109. X
  110. X    /* Close the audio device */
  111. X     if (close(Audio_fd) < 0)
  112. X        ErrorMessage("Cannot open audio device.");
  113. X}
  114. X
  115. X#if NeedFunctionPrototypes
  116. Xstatic void flushAudioDevice(void)
  117. X#else
  118. Xstatic void flushAudioDevice()
  119. X#endif
  120. X{
  121. X     /* Flush any audio activity - hope this works */
  122. X     if (ioctl(Audio_fd, I_FLUSH, FLUSHW) < 0)
  123. X      {
  124. X          sprintf(errorString, "Unable to flush audio device.");
  125. X          WarningMessage(errorString);
  126. X          return;
  127. X      }
  128. X}
  129. X
  130. X#if NeedFunctionPrototypes
  131. Xvoid setNewVolume(unsigned int Volume)
  132. X#else
  133. Xvoid setNewVolume(Volume)
  134. X    unsigned int Volume;
  135. X#endif
  136. X{
  137. X    /* Do nothing here as we don't have audio support */
  138. X}
  139. X
  140. X#if NeedFunctionPrototypes
  141. Xvoid audioDeviceEvents(void)
  142. X#else
  143. Xvoid audioDeviceEvents()
  144. X#endif
  145. X{
  146. X    /* None to do */
  147. X}
  148. X
  149. X#if NeedFunctionPrototypes
  150. Xvoid playSoundFile(char *filename, int volume)
  151. X#else
  152. Xvoid playSoundFile(filename, volume)
  153. X    char *filename;
  154. X    int volume;
  155. X#endif
  156. X{
  157. X    int err, cnt, ifd;
  158. X    char soundfile[1024];
  159. X    char *str;
  160. X
  161. X    if (parentid) kill(parentid, 9);
  162. X    parentid = getpid();
  163. X
  164. X    if (fork() != 0)
  165. X    {
  166. X        if ((str = getenv("XBOING_SOUND_DIR")) != NULL)
  167. X            sprintf(soundfile, "%s/%s.au", str, filename);
  168. X        else
  169. X            sprintf(soundfile, "%s/%s.au", SOUNDS_DIR, filename);
  170. X
  171. X        /* Open the sound file for reading */
  172. X        if ((ifd = open(soundfile, O_RDONLY, 0)) < 0) 
  173. X        {
  174. X            /* Issue an error about not opening sound file */
  175. X            sprintf(errorString, "Unable to open sound file %s.", soundfile);
  176. X            WarningMessage(errorString);
  177. X
  178. X            exit(0);
  179. X        }
  180. X
  181. X        /* At this point, we're all ready to copy the data. */
  182. X        while ((cnt = read(ifd, (char *) buf, BUFFER_SIZE)) >= 0) 
  183. X        {
  184. X            /* If input EOF, write an eof marker */
  185. X            err = write(Audio_fd, (char *)buf, cnt);
  186. X
  187. X            if (err != cnt) 
  188. X            {
  189. X                sprintf(errorString, "Problem while writing to audio device");
  190. X                WarningMessage(errorString);
  191. X                break;
  192. X            }    
  193. X
  194. X            /* End of file? */
  195. X            if (cnt == 0) break;
  196. X        }
  197. X
  198. X        if (cnt < 0) 
  199. X        {
  200. X            /* Some error - while reading - notify user */
  201. X            sprintf(errorString, "Problem while reading soundfile %s", 
  202. X                soundfile);
  203. X            WarningMessage(errorString);
  204. X        }
  205. X     
  206. X        flushAudioDevice();
  207. X
  208. X        /* Close the sound file */
  209. X        (void) close(ifd);
  210. X
  211. X        exit(0);
  212. X    }
  213. X}
  214. X
  215. X#if NeedFunctionPrototypes
  216. Xvoid SetMaximumVolume(int Volume)
  217. X#else
  218. Xvoid SetMaximumVolume(Volume)
  219. X    int Volume;
  220. X#endif
  221. X{
  222. X}
  223. X
  224. END_OF_FILE
  225. if test 3535 -ne `wc -c <'audio/HPaudio.c'`; then
  226.     echo shar: \"'audio/HPaudio.c'\" unpacked with wrong size!
  227. fi
  228. # end of 'audio/HPaudio.c'
  229. fi
  230. if test -f 'audio/LINUXaudio.c' -a "${1}" != "-c" ; then 
  231.   echo shar: Will not clobber existing file \"'audio/LINUXaudio.c'\"
  232. else
  233. echo shar: Extracting \"'audio/LINUXaudio.c'\" \(3535 characters\)
  234. sed "s/^X//" >'audio/LINUXaudio.c' <<'END_OF_FILE'
  235. X#include "include/copyright.h"
  236. X
  237. X/* Soundblaster Audio - PC LINUX - original code by 
  238. X * Peter C. Ludwig, email: urpc01@ux1.uni-dortmund.de 
  239. X */
  240. X
  241. X/*
  242. X *  Include file dependencies:
  243. X */
  244. X
  245. X#include <stdio.h>
  246. X#include <fcntl.h>
  247. X#include <linux/soundcard.h>
  248. X
  249. X#include "include/error.h"
  250. X#include "include/audio.h"
  251. X
  252. X/*
  253. X *  Internal macro definitions:
  254. X */
  255. X
  256. X#define BUFFER_SIZE                (1024 * SBUF_SIZE)
  257. X
  258. X/*
  259. X *  Internal type declarations:
  260. X */
  261. X
  262. X/*
  263. X *  Internal variable declarations:
  264. X */
  265. X
  266. Xstatic char                *Audio_dev = "/dev/audio";
  267. Xstatic int                 Audio_fd;
  268. X/* size should depend on sample_rate */
  269. Xstatic unsigned char       buf[BUFFER_SIZE];       
  270. Xstatic char             errorString[255];
  271. Xstatic int                 parentid = 0;
  272. X
  273. X#if NeedFunctionPrototypes
  274. Xint SetUpAudioSystem(Display *display)
  275. X#else
  276. Xint SetUpAudioSystem(display)
  277. X    Display *display;
  278. X#endif
  279. X{
  280. X    /* Try to open the audio device */
  281. X     if (Audio_fd = open(Audio_dev, O_WRONLY))
  282. X      {    
  283. X        /* Success - audio device opened */
  284. X          return True;
  285. X      }
  286. X     else
  287. X      {
  288. X        ErrorMessage("Cannot open audio device.");
  289. X
  290. X        /* Bummer - cannot open audio device */
  291. X          return False;
  292. X      }
  293. X}
  294. X
  295. X#if NeedFunctionPrototypes
  296. Xvoid FreeAudioSystem(void)
  297. X#else
  298. Xvoid FreeAudioSystem()
  299. X#endif
  300. X{
  301. X    /* Make sure that the audio device is flushed and reset */
  302. X     ioctl(Audio_fd, SNDCTL_DSP_RESET, 0);
  303. X
  304. X    /* Close the audio device */
  305. X     if (close(Audio_fd) < 0)
  306. X        ErrorMessage("Cannot open audio device.");
  307. X}
  308. X
  309. X#if NeedFunctionPrototypes
  310. Xstatic void flushAudioDevice(void)
  311. X#else
  312. Xstatic void flushAudioDevice()
  313. X#endif
  314. X{
  315. X     /* Flush any audio activity */
  316. X     if (ioctl(Audio_fd, SNDCTL_DSP_SYNC, 0) < 0)
  317. X      {
  318. X          sprintf(errorString, "Unable to flush audio device.");
  319. X          WarningMessage(errorString);
  320. X          return;
  321. X      }
  322. X}
  323. X
  324. X#if NeedFunctionPrototypes
  325. Xvoid setNewVolume(unsigned int Volume)
  326. X#else
  327. Xvoid setNewVolume(Volume)
  328. X    unsigned int Volume;
  329. X#endif
  330. X{
  331. X    /* Do nothing here as we don't have audio support */
  332. X}
  333. X
  334. X#if NeedFunctionPrototypes
  335. Xvoid audioDeviceEvents(void)
  336. X#else
  337. Xvoid audioDeviceEvents()
  338. X#endif
  339. X{
  340. X    /* None to do */
  341. X}
  342. X
  343. X#if NeedFunctionPrototypes
  344. Xvoid playSoundFile(char *filename, int volume)
  345. X#else
  346. Xvoid playSoundFile(filename, volume)
  347. X    char *filename;
  348. X    int volume;
  349. X#endif
  350. X{
  351. X    int err, cnt, ifd;
  352. X    char soundfile[1024];
  353. X    char *str;
  354. X
  355. X    if (parentid) kill(parentid, 9);
  356. X    parentid = getpid();
  357. X
  358. X    if (fork() != 0)
  359. X    {
  360. X        if ((str = getenv("XBOING_SOUND_DIR")) != NULL)
  361. X            sprintf(soundfile, "%s/%s.au", str, filename);
  362. X        else
  363. X            sprintf(soundfile, "%s/%s.au", SOUNDS_DIR, filename);
  364. X
  365. X        /* Open the sound file for reading */
  366. X        if ((ifd = open(soundfile, O_RDONLY, 0)) < 0) 
  367. X        {
  368. X            /* Issue an error about not opening sound file */
  369. X            sprintf(errorString, "Unable to open sound file %s.", soundfile);
  370. X            WarningMessage(errorString);
  371. X
  372. X            exit(0);
  373. X        }
  374. X
  375. X        /* At this point, we're all ready to copy the data. */
  376. X        while ((cnt = read(ifd, (char *) buf, BUFFER_SIZE)) >= 0) 
  377. X        {
  378. X            /* If input EOF, write an eof marker */
  379. X            err = write(Audio_fd, (char *)buf, cnt);
  380. X
  381. X            if (err != cnt) 
  382. X            {
  383. X                sprintf(errorString, "Problem while writing to audio device");
  384. X                WarningMessage(errorString);
  385. X                break;
  386. X            }    
  387. X
  388. X            /* End of file? */
  389. X            if (cnt == 0) break;
  390. X        }
  391. X
  392. X        if (cnt < 0) 
  393. X        {
  394. X            /* Some error - while reading - notify user */
  395. X            sprintf(errorString, "Problem while reading soundfile %s", 
  396. X                soundfile);
  397. X            WarningMessage(errorString);
  398. X        }
  399. X     
  400. X        flushAudioDevice();
  401. X
  402. X        /* Close the sound file */
  403. X        (void) close(ifd);
  404. X
  405. X        exit(0);
  406. X    }
  407. X}
  408. X
  409. X#if NeedFunctionPrototypes
  410. Xvoid SetMaximumVolume(int Volume)
  411. X#else
  412. Xvoid SetMaximumVolume(Volume)
  413. X    int Volume;
  414. X#endif
  415. X{
  416. X}
  417. X
  418. END_OF_FILE
  419. if test 3535 -ne `wc -c <'audio/LINUXaudio.c'`; then
  420.     echo shar: \"'audio/LINUXaudio.c'\" unpacked with wrong size!
  421. fi
  422. # end of 'audio/LINUXaudio.c'
  423. fi
  424. if test -f 'bitmaps/blackblock.xpm.uu' -a "${1}" != "-c" ; then 
  425.   echo shar: Will not clobber existing file \"'bitmaps/blackblock.xpm.uu'\"
  426. else
  427. echo shar: Extracting \"'bitmaps/blackblock.xpm.uu'\" \(2459 characters\)
  428. sed "s/^X//" >'bitmaps/blackblock.xpm.uu' <<'END_OF_FILE'
  429. Xbegin 644 blackblock.xpm
  430. XM+RH@6%!-("HO"G-T871I8R!C:&%R("H@8FQA8VMB;&]C:U]X<&U;72`]('L*
  431. XM(C4P(#,P(#4@,2(L"B(@"7,@3F]N90EC($YO;F4B+`HB+@EC(",X0CA".3DY
  432. XM.4(U0C4B+`HB6`EC(&)L86-K(BP*(F\)8R!G<F%Y,C8B+`HB3PEC(&=R87DU
  433. XM,"(L"B(@("XN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN
  434. XM+BXN+BXN+BX@("(L"B(@6"XN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN
  435. XM+BXN+BXN+BXN+BXN+BXN+BY8("(L"B(N+E@N+BXN+BXN+BXN+BXN+BXN+BXN
  436. XM+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+EAO;R(L"B(N+BY86%A86%A86%A8
  437. XM6%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86&]O;R(L"B(N+BY8
  438. XM3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/6&]O
  439. XM;R(L"B(N+BY83T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/
  440. XM3T]/3T]/6&]O;R(L"B(N+BY83T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/
  441. XM3T]/3T]/3T]/3T]/3T]/6&]O;R(L"B(N+BY83T]/3T]/3T]/3T]/3T]/3T]/
  442. XM3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/6&]O;R(L"B(N+BY83T]/3T]/;V]O
  443. XM;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O3T]/3T]/6&]O;R(L"B(N+BY8
  444. XM3T]/3T]/;UA86%A86%A86%A86%A86%A86%A86%A86%A86%@N3T]/3T]/6&]O
  445. XM;R(L"B(N+BY83T]/3T]/;U@@("`@("`@("`@("`@("`@("`@("`@("`@(%@N
  446. XM3T]/3T]/6&]O;R(L"B(N+BY83T]/3T]/;U@@("`@("`@("`@("`@("`@("`@
  447. XM("`@("`@(%@N3T]/3T]/6&]O;R(L"B(N+BY83T]/3T]/;U@@("`@("`@("`@
  448. XM("`@("`@("`@("`@("`@(%@N3T]/3T]/6&]O;R(L"B(N+BY83T]/3T]/;U@@
  449. XM("`@("`@("`@("`@("`@("`@("`@("`@(%@N3T]/3T]/6&]O;R(L"B(N+BY8
  450. XM3T]/3T]/;U@@("`@("`@("`@("`@("`@("`@("`@("`@(%@N3T]/3T]/6&]O
  451. XM;R(L"B(N+BY83T]/3T]/;U@@("`@("`@("`@("`@("`@("`@("`@("`@(%@N
  452. XM3T]/3T]/6&]O;R(L"B(N+BY83T]/3T]/;U@@("`@("`@("`@("`@("`@("`@
  453. XM("`@("`@(%@N3T]/3T]/6&]O;R(L"B(N+BY83T]/3T]/;U@@("`@("`@("`@
  454. XM("`@("`@("`@("`@("`@(%@N3T]/3T]/6&]O;R(L"B(N+BY83T]/3T]/;U@@
  455. XM("`@("`@("`@("`@("`@("`@("`@("`@(%@N3T]/3T]/6&]O;R(L"B(N+BY8
  456. XM3T]/3T]/;U@@("`@("`@("`@("`@("`@("`@("`@("`@(%@N3T]/3T]/6&]O
  457. XM;R(L"B(N+BY83T]/3T]/;UA86%A86%A86%A86%A86%A86%A86%A86%A86%@N
  458. XM3T]/3T]/6&]O;R(L"B(N+BY83T]/3T]/;RXN+BXN+BXN+BXN+BXN+BXN+BXN
  459. XM+BXN+BXN+BXN3T]/3T]/6&]O;R(L"B(N+BY83T]/3T]/3T]/3T]/3T]/3T]/
  460. XM3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/6&]O;R(L"B(N+BY83T]/3T]/3T]/
  461. XM3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/6&]O;R(L"B(N+BY8
  462. XM3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/6&]O
  463. XM;R(L"B(N+BY83T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/
  464. XM3T]/3T]/6&]O;R(L"B(N+BY86%A86%A86%A86%A86%A86%A86%A86%A86%A8
  465. XM6%A86%A86%A86%A86%A86&]O;R(L"B(N+EAO;V]O;V]O;V]O;V]O;V]O;V]O
  466. XM;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;UAO;R(L"B(@6&]O;V]O;V]O;V]O
  467. XM;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]8("(L"B(@(&]O
  468. XM;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V\@
  469. X%(")].PIO
  470. X`
  471. Xend
  472. END_OF_FILE
  473. if test 2459 -ne `wc -c <'bitmaps/blackblock.xpm.uu'`; then
  474.     echo shar: \"'bitmaps/blackblock.xpm.uu'\" unpacked with wrong size!
  475. fi
  476. # end of 'bitmaps/blackblock.xpm.uu'
  477. fi
  478. if test -f 'bitmaps/bullet.xpm.uu' -a "${1}" != "-c" ; then 
  479.   echo shar: Will not clobber existing file \"'bitmaps/bullet.xpm.uu'\"
  480. else
  481. echo shar: Extracting \"'bitmaps/bullet.xpm.uu'\" \(537 characters\)
  482. sed "s/^X//" >'bitmaps/bullet.xpm.uu' <<'END_OF_FILE'
  483. Xbegin 644 bullet.xpm
  484. XM+RH@6%!-("HO"G-T871I8R!C:&%R("H@8G5L;&5T7WAP;5M=(#T@>PHB-R`Q
  485. XM-B`X(#$B+`HB(`ES($YO;F4)8R!.;VYE(BP*(BX)8R!B;&%C:R(L"B)8"6,@
  486. XM(T,V0S9$-40U13)%,B(L"B)O"6,@9W)A>3@P(BP*(D\)8R`C.$(X0CDY.3E"
  487. XM-4(U(BP*(BL)8R!G<F%Y-#`B+`HB0`EC("-"-T(W0C="-T(W0C<B+`HB(PEC
  488. XM(&=R87DU,"(L"B(@("`N("`@(BP*(B`@+E@N("`B+`HB("Y8;T\N("(L"B(N
  489. XM6&]/3RLN(BP*(BXN+BXN+BXB+`HB+EAO0",K+B(L"B(N6&]`(RLN(BP*(BY8
  490. XM;T`C*RXB+`HB+EAO0",K+B(L"B(N6&]`(RLN(BP*(BY8;T`C*RXB+`HB+EAO
  491. XM0",K+B(L"B(N6&]`(RLN(BP*(BY8;T`C*RXB+`HB+BXN+BXN+B(L"B(@+BXN
  492. X'+BX@(GT["B(N
  493. X`
  494. Xend
  495. END_OF_FILE
  496. if test 537 -ne `wc -c <'bitmaps/bullet.xpm.uu'`; then
  497.     echo shar: \"'bitmaps/bullet.xpm.uu'\" unpacked with wrong size!
  498. fi
  499. # end of 'bitmaps/bullet.xpm.uu'
  500. fi
  501. if test -f 'bitmaps/digit0.xpm.uu' -a "${1}" != "-c" ; then 
  502.   echo shar: Will not clobber existing file \"'bitmaps/digit0.xpm.uu'\"
  503. else
  504. echo shar: Extracting \"'bitmaps/digit0.xpm.uu'\" \(2011 characters\)
  505. sed "s/^X//" >'bitmaps/digit0.xpm.uu' <<'END_OF_FILE'
  506. Xbegin 644 digit0.xpm
  507. XM+RH@6%!-("HO"G-T871I8R!C:&%R("H@9&EG:70P7WAP;5M=(#T@>PHB,S`@
  508. XM-#`@,B`Q(BP*(B`)8R!.;VYE(BP*(BX)8R!R960B+`HB("`@("`@("`@("`@
  509. XM("`@("`@("`@("`@("`@("`@(BP*(B`@("`@("`@("`@("`@("`@("`@("`@
  510. XM("`@("`@("(L"B(@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`B+`HB
  511. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@(BP*(B`@("`N+BXN+BXN
  512. XM+BXN+BXN+BXN+BXN+BXN+B`@("(L"B(@("`N("XN+BXN+BXN+BXN+BXN+BXN
  513. XM+BXN+B`N("`B+`HB("`@+BX@+BXN+BXN+BXN+BXN+BXN+BXN+B`N+B`@(BP*
  514. XM(B`@("XN+B`N+BXN+BXN+BXN+BXN+BXN+B`N+BX@("(L"B(@("`N+BXN("XN
  515. XM+BXN+BXN+BXN+BXN+B`N+BXN("`B+`HB("`@+BXN+BX@("`@("`@("`@("`@
  516. XM("`N+BXN+B`@(BP*(B`@("XN+BXN("`@("`@("`@("`@("`@+BXN+BX@("(L
  517. XM"B(@("`N+BXN+B`@("`@("`@("`@("`@("XN+BXN("`B+`HB("`@+BXN+BX@
  518. XM("`@("`@("`@("`@("`N+BXN+B`@(BP*(B`@("XN+BXN("`@("`@("`@("`@
  519. XM("`@+BXN+BX@("(L"B(@("`N+BXN+B`@("`@("`@("`@("`@("XN+BXN("`B
  520. XM+`HB("`@+BXN+BX@("`@("`@("`@("`@("`N+BXN+B`@(BP*(B`@("XN+BXN
  521. XM("`@("`@("`@("`@("`@+BXN+BX@("(L"B(@("`N+BXN+B`@("`@("`@("`@
  522. XM("`@("XN+BXN("`B+`HB("`@+BXN+BX@("`@("`@("`@("`@("`N+BXN+B`@
  523. XM(BP*(B`@("XN+BX@("`@("`@("`@("`@("`@("XN+BX@("(L"B(@("`N+BX@
  524. XM("`@("`@("`@("`@("`@("`@+BXN("`B+`HB("`@("`@("`@("`@("`@("`@
  525. XM("`@("`@("`@("`@(BP*(B`@("XN+B`@("`@("`@("`@("`@("`@("`N+BX@
  526. XM("(L"B(@("`N+BXN("`@("`@("`@("`@("`@("`N+BXN("`B+`HB("`@+BXN
  527. XM+BX@("`@("`@("`@("`@("`N+BXN+B`@(BP*(B`@("XN+BXN("`@("`@("`@
  528. XM("`@("`@+BXN+BX@("(L"B(@("`N+BXN+B`@("`@("`@("`@("`@("XN+BXN
  529. XM("`B+`HB("`@+BXN+BX@("`@("`@("`@("`@("`N+BXN+B`@(BP*(B`@("XN
  530. XM+BXN("`@("`@("`@("`@("`@+BXN+BX@("(L"B(@("`N+BXN+B`@("`@("`@
  531. XM("`@("`@("XN+BXN("`B+`HB("`@+BXN+BX@("`@("`@("`@("`@("`N+BXN
  532. XM+B`@(BP*(B`@("XN+BXN("`@("`@("`@("`@("`@+BXN+BX@("(L"B(@("`N
  533. XM+BXN+B`@("`@("`@("`@("`@("XN+BXN("`B+`HB("`@+BXN+B`N+BXN+BXN
  534. XM+BXN+BXN+BX@+BXN+B`@(BP*(B`@("XN+B`N+BXN+BXN+BXN+BXN+BXN+B`N
  535. XM+BX@("(L"B(@("`N+B`N+BXN+BXN+BXN+BXN+BXN+BXN("XN("`B+`HB("`@
  536. XM+B`N+BXN+BXN+BXN+BXN+BXN+BXN+BX@+B`@(BP*(B`@("`N+BXN+BXN+BXN
  537. XM+BXN+BXN+BXN+BXN+B`@("(L"B(@("`@("`@("`@("`@("`@("`@("`@("`@
  538. XK("`@("`B+`HB("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@(GT["B`@
  539. X`
  540. Xend
  541. END_OF_FILE
  542. if test 2011 -ne `wc -c <'bitmaps/digit0.xpm.uu'`; then
  543.     echo shar: \"'bitmaps/digit0.xpm.uu'\" unpacked with wrong size!
  544. fi
  545. # end of 'bitmaps/digit0.xpm.uu'
  546. fi
  547. if test -f 'bitmaps/digit1.xpm.uu' -a "${1}" != "-c" ; then 
  548.   echo shar: Will not clobber existing file \"'bitmaps/digit1.xpm.uu'\"
  549. else
  550. echo shar: Extracting \"'bitmaps/digit1.xpm.uu'\" \(2011 characters\)
  551. sed "s/^X//" >'bitmaps/digit1.xpm.uu' <<'END_OF_FILE'
  552. Xbegin 644 digit1.xpm
  553. XM+RH@6%!-("HO"G-T871I8R!C:&%R("H@9&EG:70Q7WAP;5M=(#T@>PHB,S`@
  554. XM-#`@,B`Q(BP*(B`)8R!.;VYE(BP*(BX)8R!R960B+`HB("`@("`@("`@("`@
  555. XM("`@("`@("`@("`@("`@("`@(BP*(B`@("`@("`@("`@("`@("`@("`@("`@
  556. XM("`@("`@("(L"B(@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`B+`HB
  557. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@(BP*(B`@("`@("`@("`@
  558. XM("`@("`@("`@("`@("`@("`@("(L"B(@("`@("`@("`@("`@("`@("`@("`@
  559. XM("`@("`N("`B+`HB("`@("`@("`@("`@("`@("`@("`@("`@("`N+B`@(BP*
  560. XM(B`@("`@("`@("`@("`@("`@("`@("`@("`N+BX@("(L"B(@("`@("`@("`@
  561. XM("`@("`@("`@("`@("`N+BXN("`B+`HB("`@("`@("`@("`@("`@("`@("`@
  562. XM("`N+BXN+B`@(BP*(B`@("`@("`@("`@("`@("`@("`@("`@+BXN+BX@("(L
  563. XM"B(@("`@("`@("`@("`@("`@("`@("`@("XN+BXN("`B+`HB("`@("`@("`@
  564. XM("`@("`@("`@("`@("`N+BXN+B`@(BP*(B`@("`@("`@("`@("`@("`@("`@
  565. XM("`@+BXN+BX@("(L"B(@("`@("`@("`@("`@("`@("`@("`@("XN+BXN("`B
  566. XM+`HB("`@("`@("`@("`@("`@("`@("`@("`N+BXN+B`@(BP*(B`@("`@("`@
  567. XM("`@("`@("`@("`@("`@+BXN+BX@("(L"B(@("`@("`@("`@("`@("`@("`@
  568. XM("`@("XN+BXN("`B+`HB("`@("`@("`@("`@("`@("`@("`@("`N+BXN+B`@
  569. XM(BP*(B`@("`@("`@("`@("`@("`@("`@("`@("XN+BX@("(L"B(@("`@("`@
  570. XM("`@("`@("`@("`@("`@("`@+BXN("`B+`HB("`@("`@("`@("`@("`@("`@
  571. XM("`@("`@("`@("`@(BP*(B`@("`@("`@("`@("`@("`@("`@("`@("`N+BX@
  572. XM("(L"B(@("`@("`@("`@("`@("`@("`@("`@("`N+BXN("`B+`HB("`@("`@
  573. XM("`@("`@("`@("`@("`@("`N+BXN+B`@(BP*(B`@("`@("`@("`@("`@("`@
  574. XM("`@("`@+BXN+BX@("(L"B(@("`@("`@("`@("`@("`@("`@("`@("XN+BXN
  575. XM("`B+`HB("`@("`@("`@("`@("`@("`@("`@("`N+BXN+B`@(BP*(B`@("`@
  576. XM("`@("`@("`@("`@("`@("`@+BXN+BX@("(L"B(@("`@("`@("`@("`@("`@
  577. XM("`@("`@("XN+BXN("`B+`HB("`@("`@("`@("`@("`@("`@("`@("`N+BXN
  578. XM+B`@(BP*(B`@("`@("`@("`@("`@("`@("`@("`@+BXN+BX@("(L"B(@("`@
  579. XM("`@("`@("`@("`@("`@("`@("XN+BXN("`B+`HB("`@("`@("`@("`@("`@
  580. XM("`@("`@("`@+BXN+B`@(BP*(B`@("`@("`@("`@("`@("`@("`@("`@("`N
  581. XM+BX@("(L"B(@("`@("`@("`@("`@("`@("`@("`@("`@("XN("`B+`HB("`@
  582. XM("`@("`@("`@("`@("`@("`@("`@("`@+B`@(BP*(B`@("`@("`@("`@("`@
  583. XM("`@("`@("`@("`@("`@("(L"B(@("`@("`@("`@("`@("`@("`@("`@("`@
  584. XK("`@("`B+`HB("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@(GT["B`@
  585. X`
  586. Xend
  587. END_OF_FILE
  588. if test 2011 -ne `wc -c <'bitmaps/digit1.xpm.uu'`; then
  589.     echo shar: \"'bitmaps/digit1.xpm.uu'\" unpacked with wrong size!
  590. fi
  591. # end of 'bitmaps/digit1.xpm.uu'
  592. fi
  593. if test -f 'bitmaps/digit2.xpm.uu' -a "${1}" != "-c" ; then 
  594.   echo shar: Will not clobber existing file \"'bitmaps/digit2.xpm.uu'\"
  595. else
  596. echo shar: Extracting \"'bitmaps/digit2.xpm.uu'\" \(2011 characters\)
  597. sed "s/^X//" >'bitmaps/digit2.xpm.uu' <<'END_OF_FILE'
  598. Xbegin 644 digit2.xpm
  599. XM+RH@6%!-("HO"G-T871I8R!C:&%R("H@9&EG:70R7WAP;5M=(#T@>PHB,S`@
  600. XM-#`@,B`Q(BP*(B`)8R!.;VYE(BP*(BX)8R!R960B+`HB("`@("`@("`@("`@
  601. XM("`@("`@("`@("`@("`@("`@(BP*(B`@("`@("`@("`@("`@("`@("`@("`@
  602. XM("`@("`@("(L"B(@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`B+`HB
  603. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@(BP*(B`@("`N+BXN+BXN
  604. XM+BXN+BXN+BXN+BXN+BXN+B`@("(L"B(@("`@("XN+BXN+BXN+BXN+BXN+BXN
  605. XM+BXN+B`N("`B+`HB("`@("`@+BXN+BXN+BXN+BXN+BXN+BXN+B`N+B`@(BP*
  606. XM(B`@("`@("`N+BXN+BXN+BXN+BXN+BXN+B`N+BX@("(L"B(@("`@("`@("XN
  607. XM+BXN+BXN+BXN+BXN+B`N+BXN("`B+`HB("`@("`@("`@("`@("`@("`@("`@
  608. XM("`N+BXN+B`@(BP*(B`@("`@("`@("`@("`@("`@("`@("`@+BXN+BX@("(L
  609. XM"B(@("`@("`@("`@("`@("`@("`@("`@("XN+BXN("`B+`HB("`@("`@("`@
  610. XM("`@("`@("`@("`@("`N+BXN+B`@(BP*(B`@("`@("`@("`@("`@("`@("`@
  611. XM("`@+BXN+BX@("(L"B(@("`@("`@("`@("`@("`@("`@("`@("XN+BXN("`B
  612. XM+`HB("`@("`@("`@("`@("`@("`@("`@("`N+BXN+B`@(BP*(B`@("`@("`@
  613. XM("`@("`@("`@("`@("`@+BXN+BX@("(L"B(@("`@("`@("`@("`@("`@("`@
  614. XM("`@("XN+BXN("`B+`HB("`@("`@("`@("`@("`@("`@("`@("`N+BXN+B`@
  615. XM(BP*(B`@("`@("`@+BXN+BXN+BXN+BXN+BXN("XN+BX@("(L"B(@("`@("`@
  616. XM+BXN+BXN+BXN+BXN+BXN+BX@+BXN("`B+`HB("`@("`@+BXN+BXN+BXN+BXN
  617. XM+BXN+BXN+B`@("`@(BP*(B`@("XN+B`N+BXN+BXN+BXN+BXN+BXN+B`@("`@
  618. XM("(L"B(@("`N+BXN("XN+BXN+BXN+BXN+BXN+B`@("`@("`B+`HB("`@+BXN
  619. XM+BX@("`@("`@("`@("`@("`@("`@("`@(BP*(B`@("XN+BXN("`@("`@("`@
  620. XM("`@("`@("`@("`@("(L"B(@("`N+BXN+B`@("`@("`@("`@("`@("`@("`@
  621. XM("`B+`HB("`@+BXN+BX@("`@("`@("`@("`@("`@("`@("`@(BP*(B`@("XN
  622. XM+BXN("`@("`@("`@("`@("`@("`@("`@("(L"B(@("`N+BXN+B`@("`@("`@
  623. XM("`@("`@("`@("`@("`B+`HB("`@+BXN+BX@("`@("`@("`@("`@("`@("`@
  624. XM("`@(BP*(B`@("XN+BXN("`@("`@("`@("`@("`@("`@("`@("(L"B(@("`N
  625. XM+BXN+B`@("`@("`@("`@("`@("`@("`@("`B+`HB("`@+BXN+B`N+BXN+BXN
  626. XM+BXN+BXN+BX@("`@("`@(BP*(B`@("XN+B`N+BXN+BXN+BXN+BXN+BXN+B`@
  627. XM("`@("(L"B(@("`N+B`N+BXN+BXN+BXN+BXN+BXN+BXN("`@("`B+`HB("`@
  628. XM+B`N+BXN+BXN+BXN+BXN+BXN+BXN+BX@("`@(BP*(B`@("`N+BXN+BXN+BXN
  629. XM+BXN+BXN+BXN+BXN+B`@("(L"B(@("`@("`@("`@("`@("`@("`@("`@("`@
  630. XK("`@("`B+`HB("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@(GT["B`@
  631. X`
  632. Xend
  633. END_OF_FILE
  634. if test 2011 -ne `wc -c <'bitmaps/digit2.xpm.uu'`; then
  635.     echo shar: \"'bitmaps/digit2.xpm.uu'\" unpacked with wrong size!
  636. fi
  637. # end of 'bitmaps/digit2.xpm.uu'
  638. fi
  639. if test -f 'bitmaps/digit3.xpm.uu' -a "${1}" != "-c" ; then 
  640.   echo shar: Will not clobber existing file \"'bitmaps/digit3.xpm.uu'\"
  641. else
  642. echo shar: Extracting \"'bitmaps/digit3.xpm.uu'\" \(2011 characters\)
  643. sed "s/^X//" >'bitmaps/digit3.xpm.uu' <<'END_OF_FILE'
  644. Xbegin 644 digit3.xpm
  645. XM+RH@6%!-("HO"G-T871I8R!C:&%R("H@9&EG:70S7WAP;5M=(#T@>PHB,S`@
  646. XM-#`@,B`Q(BP*(B`)8R!.;VYE(BP*(BX)8R!R960B+`HB("`@("`@("`@("`@
  647. XM("`@("`@("`@("`@("`@("`@(BP*(B`@("`@("`@("`@("`@("`@("`@("`@
  648. XM("`@("`@("(L"B(@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`B+`HB
  649. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@(BP*(B`@("`N+BXN+BXN
  650. XM+BXN+BXN+BXN+BXN+BXN+B`@("(L"B(@("`@("XN+BXN+BXN+BXN+BXN+BXN
  651. XM+BXN+B`N("`B+`HB("`@("`@+BXN+BXN+BXN+BXN+BXN+BXN+B`N+B`@(BP*
  652. XM(B`@("`@("`N+BXN+BXN+BXN+BXN+BXN+B`N+BX@("(L"B(@("`@("`@("XN
  653. XM+BXN+BXN+BXN+BXN+B`N+BXN("`B+`HB("`@("`@("`@("`@("`@("`@("`@
  654. XM("`N+BXN+B`@(BP*(B`@("`@("`@("`@("`@("`@("`@("`@+BXN+BX@("(L
  655. XM"B(@("`@("`@("`@("`@("`@("`@("`@("XN+BXN("`B+`HB("`@("`@("`@
  656. XM("`@("`@("`@("`@("`N+BXN+B`@(BP*(B`@("`@("`@("`@("`@("`@("`@
  657. XM("`@+BXN+BX@("(L"B(@("`@("`@("`@("`@("`@("`@("`@("XN+BXN("`B
  658. XM+`HB("`@("`@("`@("`@("`@("`@("`@("`N+BXN+B`@(BP*(B`@("`@("`@
  659. XM("`@("`@("`@("`@("`@+BXN+BX@("(L"B(@("`@("`@("`@("`@("`@("`@
  660. XM("`@("XN+BXN("`B+`HB("`@("`@("`@("`@("`@("`@("`@("`N+BXN+B`@
  661. XM(BP*(B`@("`@("`@+BXN+BXN+BXN+BXN+BXN("XN+BX@("(L"B(@("`@("`@
  662. XM+BXN+BXN+BXN+BXN+BXN+BX@+BXN("`B+`HB("`@("`@+BXN+BXN+BXN+BXN
  663. XM+BXN+BXN+B`@("`@(BP*(B`@("`@("`N+BXN+BXN+BXN+BXN+BXN+B`N+BX@
  664. XM("(L"B(@("`@("`@("XN+BXN+BXN+BXN+BXN+B`N+BXN("`B+`HB("`@("`@
  665. XM("`@("`@("`@("`@("`@("`N+BXN+B`@(BP*(B`@("`@("`@("`@("`@("`@
  666. XM("`@("`@+BXN+BX@("(L"B(@("`@("`@("`@("`@("`@("`@("`@("XN+BXN
  667. XM("`B+`HB("`@("`@("`@("`@("`@("`@("`@("`N+BXN+B`@(BP*(B`@("`@
  668. XM("`@("`@("`@("`@("`@("`@+BXN+BX@("(L"B(@("`@("`@("`@("`@("`@
  669. XM("`@("`@("XN+BXN("`B+`HB("`@("`@("`@("`@("`@("`@("`@("`N+BXN
  670. XM+B`@(BP*(B`@("`@("`@("`@("`@("`@("`@("`@+BXN+BX@("(L"B(@("`@
  671. XM("`@("`@("`@("`@("`@("`@("XN+BXN("`B+`HB("`@("`@("`N+BXN+BXN
  672. XM+BXN+BXN+BX@+BXN+B`@(BP*(B`@("`@("`N+BXN+BXN+BXN+BXN+BXN+B`N
  673. XM+BX@("(L"B(@("`@("`N+BXN+BXN+BXN+BXN+BXN+BXN("XN("`B+`HB("`@
  674. XM("`N+BXN+BXN+BXN+BXN+BXN+BXN+BX@+B`@(BP*(B`@("`N+BXN+BXN+BXN
  675. XM+BXN+BXN+BXN+BXN+B`@("(L"B(@("`@("`@("`@("`@("`@("`@("`@("`@
  676. XK("`@("`B+`HB("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@(GT["B`@
  677. X`
  678. Xend
  679. END_OF_FILE
  680. if test 2011 -ne `wc -c <'bitmaps/digit3.xpm.uu'`; then
  681.     echo shar: \"'bitmaps/digit3.xpm.uu'\" unpacked with wrong size!
  682. fi
  683. # end of 'bitmaps/digit3.xpm.uu'
  684. fi
  685. if test -f 'bitmaps/digit5.xpm.uu' -a "${1}" != "-c" ; then 
  686.   echo shar: Will not clobber existing file \"'bitmaps/digit5.xpm.uu'\"
  687. else
  688. echo shar: Extracting \"'bitmaps/digit5.xpm.uu'\" \(2011 characters\)
  689. sed "s/^X//" >'bitmaps/digit5.xpm.uu' <<'END_OF_FILE'
  690. Xbegin 644 digit5.xpm
  691. XM+RH@6%!-("HO"G-T871I8R!C:&%R("H@9&EG:70U7WAP;5M=(#T@>PHB,S`@
  692. XM-#`@,B`Q(BP*(B`)8R!.;VYE(BP*(BX)8R!R960B+`HB("`@("`@("`@("`@
  693. XM("`@("`@("`@("`@("`@("`@(BP*(B`@("`@("`@("`@("`@("`@("`@("`@
  694. XM("`@("`@("(L"B(@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`B+`HB
  695. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@(BP*(B`@("`N+BXN+BXN
  696. XM+BXN+BXN+BXN+BXN+BXN+B`@("(L"B(@("`N("XN+BXN+BXN+BXN+BXN+BXN
  697. XM+BXN+B`@("`B+`HB("`@+BX@+BXN+BXN+BXN+BXN+BXN+BXN+B`@("`@(BP*
  698. XM(B`@("XN+B`N+BXN+BXN+BXN+BXN+BXN+B`@("`@("(L"B(@("`N+BXN("XN
  699. XM+BXN+BXN+BXN+BXN+B`@("`@("`B+`HB("`@+BXN+BX@("`@("`@("`@("`@
  700. XM("`@("`@("`@(BP*(B`@("XN+BXN("`@("`@("`@("`@("`@("`@("`@("(L
  701. XM"B(@("`N+BXN+B`@("`@("`@("`@("`@("`@("`@("`B+`HB("`@+BXN+BX@
  702. XM("`@("`@("`@("`@("`@("`@("`@(BP*(B`@("XN+BXN("`@("`@("`@("`@
  703. XM("`@("`@("`@("(L"B(@("`N+BXN+B`@("`@("`@("`@("`@("`@("`@("`B
  704. XM+`HB("`@+BXN+BX@("`@("`@("`@("`@("`@("`@("`@(BP*(B`@("XN+BXN
  705. XM("`@("`@("`@("`@("`@("`@("`@("(L"B(@("`N+BXN+B`@("`@("`@("`@
  706. XM("`@("`@("`@("`B+`HB("`@+BXN+BX@("`@("`@("`@("`@("`@("`@("`@
  707. XM(BP*(B`@("XN+BX@+BXN+BXN+BXN+BXN+BXN("`@("`@("(L"B(@("`N+BX@
  708. XM+BXN+BXN+BXN+BXN+BXN+BX@("`@("`B+`HB("`@("`@+BXN+BXN+BXN+BXN
  709. XM+BXN+BXN+B`@("`@(BP*(B`@("`@("`N+BXN+BXN+BXN+BXN+BXN+B`N+BX@
  710. XM("(L"B(@("`@("`@("XN+BXN+BXN+BXN+BXN+B`N+BXN("`B+`HB("`@("`@
  711. XM("`@("`@("`@("`@("`@("`N+BXN+B`@(BP*(B`@("`@("`@("`@("`@("`@
  712. XM("`@("`@+BXN+BX@("(L"B(@("`@("`@("`@("`@("`@("`@("`@("XN+BXN
  713. XM("`B+`HB("`@("`@("`@("`@("`@("`@("`@("`N+BXN+B`@(BP*(B`@("`@
  714. XM("`@("`@("`@("`@("`@("`@+BXN+BX@("(L"B(@("`@("`@("`@("`@("`@
  715. XM("`@("`@("XN+BXN("`B+`HB("`@("`@("`@("`@("`@("`@("`@("`N+BXN
  716. XM+B`@(BP*(B`@("`@("`@("`@("`@("`@("`@("`@+BXN+BX@("(L"B(@("`@
  717. XM("`@("`@("`@("`@("`@("`@("XN+BXN("`B+`HB("`@("`@("`N+BXN+BXN
  718. XM+BXN+BXN+BX@+BXN+B`@(BP*(B`@("`@("`N+BXN+BXN+BXN+BXN+BXN+B`N
  719. XM+BX@("(L"B(@("`@("`N+BXN+BXN+BXN+BXN+BXN+BXN("XN("`B+`HB("`@
  720. XM("`N+BXN+BXN+BXN+BXN+BXN+BXN+BX@+B`@(BP*(B`@("`N+BXN+BXN+BXN
  721. XM+BXN+BXN+BXN+BXN+B`@("(L"B(@("`@("`@("`@("`@("`@("`@("`@("`@
  722. XK("`@("`B+`HB("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@(GT["B`@
  723. X`
  724. Xend
  725. END_OF_FILE
  726. if test 2011 -ne `wc -c <'bitmaps/digit5.xpm.uu'`; then
  727.     echo shar: \"'bitmaps/digit5.xpm.uu'\" unpacked with wrong size!
  728. fi
  729. # end of 'bitmaps/digit5.xpm.uu'
  730. fi
  731. if test -f 'bitmaps/digit6.xpm.uu' -a "${1}" != "-c" ; then 
  732.   echo shar: Will not clobber existing file \"'bitmaps/digit6.xpm.uu'\"
  733. else
  734. echo shar: Extracting \"'bitmaps/digit6.xpm.uu'\" \(2011 characters\)
  735. sed "s/^X//" >'bitmaps/digit6.xpm.uu' <<'END_OF_FILE'
  736. Xbegin 644 digit6.xpm
  737. XM+RH@6%!-("HO"G-T871I8R!C:&%R("H@9&EG:70V7WAP;5M=(#T@>PHB,S`@
  738. XM-#`@,B`Q(BP*(B`)8R!.;VYE(BP*(BX)8R!R960B+`HB("`@("`@("`@("`@
  739. XM("`@("`@("`@("`@("`@("`@(BP*(B`@("`@("`@("`@("`@("`@("`@("`@
  740. XM("`@("`@("(L"B(@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`B+`HB
  741. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@(BP*(B`@("`@("`@("`@
  742. XM("`@("`@("`@("`@("`@("`@("(L"B(@("`N("`@("`@("`@("`@("`@("`@
  743. XM("`@("`@("`B+`HB("`@+BX@("`@("`@("`@("`@("`@("`@("`@("`@(BP*
  744. XM(B`@("XN+B`@("`@("`@("`@("`@("`@("`@("`@("(L"B(@("`N+BXN("`@
  745. XM("`@("`@("`@("`@("`@("`@("`B+`HB("`@+BXN+BX@("`@("`@("`@("`@
  746. XM("`@("`@("`@(BP*(B`@("XN+BXN("`@("`@("`@("`@("`@("`@("`@("(L
  747. XM"B(@("`N+BXN+B`@("`@("`@("`@("`@("`@("`@("`B+`HB("`@+BXN+BX@
  748. XM("`@("`@("`@("`@("`@("`@("`@(BP*(B`@("XN+BXN("`@("`@("`@("`@
  749. XM("`@("`@("`@("(L"B(@("`N+BXN+B`@("`@("`@("`@("`@("`@("`@("`B
  750. XM+`HB("`@+BXN+BX@("`@("`@("`@("`@("`@("`@("`@(BP*(B`@("XN+BXN
  751. XM("`@("`@("`@("`@("`@("`@("`@("(L"B(@("`N+BXN+B`@("`@("`@("`@
  752. XM("`@("`@("`@("`B+`HB("`@+BXN+BX@("`@("`@("`@("`@("`@("`@("`@
  753. XM(BP*(B`@("XN+BX@+BXN+BXN+BXN+BXN+BXN("`@("`@("(L"B(@("`N+BX@
  754. XM+BXN+BXN+BXN+BXN+BXN+BX@("`@("`B+`HB("`@("`@+BXN+BXN+BXN+BXN
  755. XM+BXN+BXN+B`@("`@(BP*(B`@("XN+B`N+BXN+BXN+BXN+BXN+BXN+B`N+BX@
  756. XM("(L"B(@("`N+BXN("XN+BXN+BXN+BXN+BXN+B`N+BXN("`B+`HB("`@+BXN
  757. XM+BX@("`@("`@("`@("`@("`N+BXN+B`@(BP*(B`@("XN+BXN("`@("`@("`@
  758. XM("`@("`@+BXN+BX@("(L"B(@("`N+BXN+B`@("`@("`@("`@("`@("XN+BXN
  759. XM("`B+`HB("`@+BXN+BX@("`@("`@("`@("`@("`N+BXN+B`@(BP*(B`@("XN
  760. XM+BXN("`@("`@("`@("`@("`@+BXN+BX@("(L"B(@("`N+BXN+B`@("`@("`@
  761. XM("`@("`@("XN+BXN("`B+`HB("`@+BXN+BX@("`@("`@("`@("`@("`N+BXN
  762. XM+B`@(BP*(B`@("XN+BXN("`@("`@("`@("`@("`@+BXN+BX@("(L"B(@("`N
  763. XM+BXN+B`@("`@("`@("`@("`@("XN+BXN("`B+`HB("`@+BXN+B`N+BXN+BXN
  764. XM+BXN+BXN+BX@+BXN+B`@(BP*(B`@("XN+B`N+BXN+BXN+BXN+BXN+BXN+B`N
  765. XM+BX@("(L"B(@("`N+B`N+BXN+BXN+BXN+BXN+BXN+BXN("XN("`B+`HB("`@
  766. XM+B`N+BXN+BXN+BXN+BXN+BXN+BXN+BX@+B`@(BP*(B`@("`N+BXN+BXN+BXN
  767. XM+BXN+BXN+BXN+BXN+B`@("(L"B(@("`@("`@("`@("`@("`@("`@("`@("`@
  768. XK("`@("`B+`HB("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@(GT["B`@
  769. X`
  770. Xend
  771. END_OF_FILE
  772. if test 2011 -ne `wc -c <'bitmaps/digit6.xpm.uu'`; then
  773.     echo shar: \"'bitmaps/digit6.xpm.uu'\" unpacked with wrong size!
  774. fi
  775. # end of 'bitmaps/digit6.xpm.uu'
  776. fi
  777. if test -f 'bitmaps/digit8.xpm.uu' -a "${1}" != "-c" ; then 
  778.   echo shar: Will not clobber existing file \"'bitmaps/digit8.xpm.uu'\"
  779. else
  780. echo shar: Extracting \"'bitmaps/digit8.xpm.uu'\" \(2011 characters\)
  781. sed "s/^X//" >'bitmaps/digit8.xpm.uu' <<'END_OF_FILE'
  782. Xbegin 644 digit8.xpm
  783. XM+RH@6%!-("HO"G-T871I8R!C:&%R("H@9&EG:70X7WAP;5M=(#T@>PHB,S`@
  784. XM-#`@,B`Q(BP*(B`)8R!.;VYE(BP*(BX)8R!R960B+`HB("`@("`@("`@("`@
  785. XM("`@("`@("`@("`@("`@("`@(BP*(B`@("`@("`@("`@("`@("`@("`@("`@
  786. XM("`@("`@("(L"B(@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`B+`HB
  787. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@(BP*(B`@("`N+BXN+BXN
  788. XM+BXN+BXN+BXN+BXN+BXN+B`@("(L"B(@("`N("XN+BXN+BXN+BXN+BXN+BXN
  789. XM+BXN+B`N("`B+`HB("`@+BX@+BXN+BXN+BXN+BXN+BXN+BXN+B`N+B`@(BP*
  790. XM(B`@("XN+B`N+BXN+BXN+BXN+BXN+BXN+B`N+BX@("(L"B(@("`N+BXN("XN
  791. XM+BXN+BXN+BXN+BXN+B`N+BXN("`B+`HB("`@+BXN+BX@("`@("`@("`@("`@
  792. XM("`N+BXN+B`@(BP*(B`@("XN+BXN("`@("`@("`@("`@("`@+BXN+BX@("(L
  793. XM"B(@("`N+BXN+B`@("`@("`@("`@("`@("XN+BXN("`B+`HB("`@+BXN+BX@
  794. XM("`@("`@("`@("`@("`N+BXN+B`@(BP*(B`@("XN+BXN("`@("`@("`@("`@
  795. XM("`@+BXN+BX@("(L"B(@("`N+BXN+B`@("`@("`@("`@("`@("XN+BXN("`B
  796. XM+`HB("`@+BXN+BX@("`@("`@("`@("`@("`N+BXN+B`@(BP*(B`@("XN+BXN
  797. XM("`@("`@("`@("`@("`@+BXN+BX@("(L"B(@("`N+BXN+B`@("`@("`@("`@
  798. XM("`@("XN+BXN("`B+`HB("`@+BXN+BX@("`@("`@("`@("`@("`N+BXN+B`@
  799. XM(BP*(B`@("XN+BX@+BXN+BXN+BXN+BXN+BXN("XN+BX@("(L"B(@("`N+BX@
  800. XM+BXN+BXN+BXN+BXN+BXN+BX@+BXN("`B+`HB("`@("`@+BXN+BXN+BXN+BXN
  801. XM+BXN+BXN+B`@("`@(BP*(B`@("XN+B`N+BXN+BXN+BXN+BXN+BXN+B`N+BX@
  802. XM("(L"B(@("`N+BXN("XN+BXN+BXN+BXN+BXN+B`N+BXN("`B+`HB("`@+BXN
  803. XM+BX@("`@("`@("`@("`@("`N+BXN+B`@(BP*(B`@("XN+BXN("`@("`@("`@
  804. XM("`@("`@+BXN+BX@("(L"B(@("`N+BXN+B`@("`@("`@("`@("`@("XN+BXN
  805. XM("`B+`HB("`@+BXN+BX@("`@("`@("`@("`@("`N+BXN+B`@(BP*(B`@("XN
  806. XM+BXN("`@("`@("`@("`@("`@+BXN+BX@("(L"B(@("`N+BXN+B`@("`@("`@
  807. XM("`@("`@("XN+BXN("`B+`HB("`@+BXN+BX@("`@("`@("`@("`@("`N+BXN
  808. XM+B`@(BP*(B`@("XN+BXN("`@("`@("`@("`@("`@+BXN+BX@("(L"B(@("`N
  809. XM+BXN+B`@("`@("`@("`@("`@("XN+BXN("`B+`HB("`@+BXN+B`N+BXN+BXN
  810. XM+BXN+BXN+BX@+BXN+B`@(BP*(B`@("XN+B`N+BXN+BXN+BXN+BXN+BXN+B`N
  811. XM+BX@("(L"B(@("`N+B`N+BXN+BXN+BXN+BXN+BXN+BXN("XN("`B+`HB("`@
  812. XM+B`N+BXN+BXN+BXN+BXN+BXN+BXN+BX@+B`@(BP*(B`@("`N+BXN+BXN+BXN
  813. XM+BXN+BXN+BXN+BXN+B`@("(L"B(@("`@("`@("`@("`@("`@("`@("`@("`@
  814. XK("`@("`B+`HB("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@(GT["B`@
  815. X`
  816. Xend
  817. END_OF_FILE
  818. if test 2011 -ne `wc -c <'bitmaps/digit8.xpm.uu'`; then
  819.     echo shar: \"'bitmaps/digit8.xpm.uu'\" unpacked with wrong size!
  820. fi
  821. # end of 'bitmaps/digit8.xpm.uu'
  822. fi
  823. if test -f 'bitmaps/digit9.xpm.uu' -a "${1}" != "-c" ; then 
  824.   echo shar: Will not clobber existing file \"'bitmaps/digit9.xpm.uu'\"
  825. else
  826. echo shar: Extracting \"'bitmaps/digit9.xpm.uu'\" \(2011 characters\)
  827. sed "s/^X//" >'bitmaps/digit9.xpm.uu' <<'END_OF_FILE'
  828. Xbegin 644 digit9.xpm
  829. XM+RH@6%!-("HO"G-T871I8R!C:&%R("H@9&EG:70Y7WAP;5M=(#T@>PHB,S`@
  830. XM-#`@,B`Q(BP*(B`)8R!.;VYE(BP*(BX)8R!R960B+`HB("`@("`@("`@("`@
  831. XM("`@("`@("`@("`@("`@("`@(BP*(B`@("`@("`@("`@("`@("`@("`@("`@
  832. XM("`@("`@("(L"B(@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`B+`HB
  833. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@(BP*(B`@("`N+BXN+BXN
  834. XM+BXN+BXN+BXN+BXN+BXN+B`@("(L"B(@("`N("XN+BXN+BXN+BXN+BXN+BXN
  835. XM+BXN+B`N("`B+`HB("`@+BX@+BXN+BXN+BXN+BXN+BXN+BXN+B`N+B`@(BP*
  836. XM(B`@("XN+B`N+BXN+BXN+BXN+BXN+BXN+B`N+BX@("(L"B(@("`N+BXN("XN
  837. XM+BXN+BXN+BXN+BXN+B`N+BXN("`B+`HB("`@+BXN+BX@("`@("`@("`@("`@
  838. XM("`N+BXN+B`@(BP*(B`@("XN+BXN("`@("`@("`@("`@("`@+BXN+BX@("(L
  839. XM"B(@("`N+BXN+B`@("`@("`@("`@("`@("XN+BXN("`B+`HB("`@+BXN+BX@
  840. XM("`@("`@("`@("`@("`N+BXN+B`@(BP*(B`@("XN+BXN("`@("`@("`@("`@
  841. XM("`@+BXN+BX@("(L"B(@("`N+BXN+B`@("`@("`@("`@("`@("XN+BXN("`B
  842. XM+`HB("`@+BXN+BX@("`@("`@("`@("`@("`N+BXN+B`@(BP*(B`@("XN+BXN
  843. XM("`@("`@("`@("`@("`@+BXN+BX@("(L"B(@("`N+BXN+B`@("`@("`@("`@
  844. XM("`@("XN+BXN("`B+`HB("`@+BXN+BX@("`@("`@("`@("`@("`N+BXN+B`@
  845. XM(BP*(B`@("XN+BX@+BXN+BXN+BXN+BXN+BXN("XN+BX@("(L"B(@("`N+BX@
  846. XM+BXN+BXN+BXN+BXN+BXN+BX@+BXN("`B+`HB("`@("`@+BXN+BXN+BXN+BXN
  847. XM+BXN+BXN+B`@("`@(BP*(B`@("`@("`N+BXN+BXN+BXN+BXN+BXN+B`N+BX@
  848. XM("(L"B(@("`@("`@("XN+BXN+BXN+BXN+BXN+B`N+BXN("`B+`HB("`@("`@
  849. XM("`@("`@("`@("`@("`@("`N+BXN+B`@(BP*(B`@("`@("`@("`@("`@("`@
  850. XM("`@("`@+BXN+BX@("(L"B(@("`@("`@("`@("`@("`@("`@("`@("XN+BXN
  851. XM("`B+`HB("`@("`@("`@("`@("`@("`@("`@("`N+BXN+B`@(BP*(B`@("`@
  852. XM("`@("`@("`@("`@("`@("`@+BXN+BX@("(L"B(@("`@("`@("`@("`@("`@
  853. XM("`@("`@("XN+BXN("`B+`HB("`@("`@("`@("`@("`@("`@("`@("`N+BXN
  854. XM+B`@(BP*(B`@("`@("`@("`@("`@("`@("`@("`@+BXN+BX@("(L"B(@("`@
  855. XM("`@("`@("`@("`@("`@("`@("XN+BXN("`B+`HB("`@("`@("`N+BXN+BXN
  856. XM+BXN+BXN+BX@+BXN+B`@(BP*(B`@("`@("`N+BXN+BXN+BXN+BXN+BXN+B`N
  857. XM+BX@("(L"B(@("`@("`N+BXN+BXN+BXN+BXN+BXN+BXN("XN("`B+`HB("`@
  858. XM("`N+BXN+BXN+BXN+BXN+BXN+BXN+BX@+B`@(BP*(B`@("`N+BXN+BXN+BXN
  859. XM+BXN+BXN+BXN+BXN+B`@("(L"B(@("`@("`@("`@("`@("`@("`@("`@("`@
  860. XK("`@("`B+`HB("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@(GT["B`@
  861. X`
  862. Xend
  863. END_OF_FILE
  864. if test 2011 -ne `wc -c <'bitmaps/digit9.xpm.uu'`; then
  865.     echo shar: \"'bitmaps/digit9.xpm.uu'\" unpacked with wrong size!
  866. fi
  867. # end of 'bitmaps/digit9.xpm.uu'
  868. fi
  869. if test -f 'bitmaps/fulldigit.xpm.uu' -a "${1}" != "-c" ; then 
  870.   echo shar: Will not clobber existing file \"'bitmaps/fulldigit.xpm.uu'\"
  871. else
  872. echo shar: Extracting \"'bitmaps/fulldigit.xpm.uu'\" \(2020 characters\)
  873. sed "s/^X//" >'bitmaps/fulldigit.xpm.uu' <<'END_OF_FILE'
  874. Xbegin 644 fulldigit.xpm
  875. XM+RH@6%!-("HO"G-T871I8R!C:&%R("H@9G5L;&1I9VET7WAP;5M=(#T@>PHB
  876. XM,S`@-#`@,B`Q(BP*(B`)8R!.;VYE(BP*(BX)8R!R960B+`HB("`@("`@("`@
  877. XM("`@("`@("`@("`@("`@("`@("`@(BP*(B`@("`@("`@("`@("`@("`@("`@
  878. XM("`@("`@("`@("(L"B(@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`B
  879. XM+`HB("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@(BP*(B`@("`N+BXN
  880. XM+BXN+BXN+BXN+BXN+BXN+BXN+B`@("(L"B(@("`N("XN+BXN+BXN+BXN+BXN
  881. XM+BXN+BXN+B`N("`B+`HB("`@+BX@+BXN+BXN+BXN+BXN+BXN+BXN+B`N+B`@
  882. XM(BP*(B`@("XN+B`N+BXN+BXN+BXN+BXN+BXN+B`N+BX@("(L"B(@("`N+BXN
  883. XM("XN+BXN+BXN+BXN+BXN+B`N+BXN("`B+`HB("`@+BXN+BX@("`@("`@("`@
  884. XM("`@("`N+BXN+B`@(BP*(B`@("XN+BXN("`@("`@("`@("`@("`@+BXN+BX@
  885. XM("(L"B(@("`N+BXN+B`@("`@("`@("`@("`@("XN+BXN("`B+`HB("`@+BXN
  886. XM+BX@("`@("`@("`@("`@("`N+BXN+B`@(BP*(B`@("XN+BXN("`@("`@("`@
  887. XM("`@("`@+BXN+BX@("(L"B(@("`N+BXN+B`@("`@("`@("`@("`@("XN+BXN
  888. XM("`B+`HB("`@+BXN+BX@("`@("`@("`@("`@("`N+BXN+B`@(BP*(B`@("XN
  889. XM+BXN("`@("`@("`@("`@("`@+BXN+BX@("(L"B(@("`N+BXN+B`@("`@("`@
  890. XM("`@("`@("XN+BXN("`B+`HB("`@+BXN+BX@("`@("`@("`@("`@("`N+BXN
  891. XM+B`@(BP*(B`@("XN+BX@+BXN+BXN+BXN+BXN+BXN("XN+BX@("(L"B(@("`N
  892. XM+BX@+BXN+BXN+BXN+BXN+BXN+BX@+BXN("`B+`HB("`@("`@+BXN+BXN+BXN
  893. XM+BXN+BXN+BXN+B`@("`@(BP*(B`@("XN+B`N+BXN+BXN+BXN+BXN+BXN+B`N
  894. XM+BX@("(L"B(@("`N+BXN("XN+BXN+BXN+BXN+BXN+B`N+BXN("`B+`HB("`@
  895. XM+BXN+BX@("`@("`@("`@("`@("`N+BXN+B`@(BP*(B`@("XN+BXN("`@("`@
  896. XM("`@("`@("`@+BXN+BX@("(L"B(@("`N+BXN+B`@("`@("`@("`@("`@("XN
  897. XM+BXN("`B+`HB("`@+BXN+BX@("`@("`@("`@("`@("`N+BXN+B`@(BP*(B`@
  898. XM("XN+BXN("`@("`@("`@("`@("`@+BXN+BX@("(L"B(@("`N+BXN+B`@("`@
  899. XM("`@("`@("`@("XN+BXN("`B+`HB("`@+BXN+BX@("`@("`@("`@("`@("`N
  900. XM+BXN+B`@(BP*(B`@("XN+BXN("`@("`@("`@("`@("`@+BXN+BX@("(L"B(@
  901. XM("`N+BXN+B`@("`@("`@("`@("`@("XN+BXN("`B+`HB("`@+BXN+B`N+BXN
  902. XM+BXN+BXN+BXN+BX@+BXN+B`@(BP*(B`@("XN+B`N+BXN+BXN+BXN+BXN+BXN
  903. XM+B`N+BX@("(L"B(@("`N+B`N+BXN+BXN+BXN+BXN+BXN+BXN("XN("`B+`HB
  904. XM("`@+B`N+BXN+BXN+BXN+BXN+BXN+BXN+BX@+B`@(BP*(B`@("`N+BXN+BXN
  905. XM+BXN+BXN+BXN+BXN+BXN+B`@("(L"B(@("`@("`@("`@("`@("`@("`@("`@
  906. XM("`@("`@("`B+`HB("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@(GT[
  907. X!"B`@
  908. X`
  909. Xend
  910. END_OF_FILE
  911. if test 2020 -ne `wc -c <'bitmaps/fulldigit.xpm.uu'`; then
  912.     echo shar: \"'bitmaps/fulldigit.xpm.uu'\" unpacked with wrong size!
  913. fi
  914. # end of 'bitmaps/fulldigit.xpm.uu'
  915. fi
  916. if test -f 'bitmaps/mouse.xpm.uu' -a "${1}" != "-c" ; then 
  917.   echo shar: Will not clobber existing file \"'bitmaps/mouse.xpm.uu'\"
  918. else
  919. echo shar: Extracting \"'bitmaps/mouse.xpm.uu'\" \(3256 characters\)
  920. sed "s/^X//" >'bitmaps/mouse.xpm.uu' <<'END_OF_FILE'
  921. Xbegin 644 mouse.xpm
  922. XM+RH@6%!-("HO"G-T871I8R!C:&%R("H@;6]U<V5?>'!M6UT@/2!["B(S-2`U
  923. XM-R`T(#$B+`HB(`ES($YO;F4)8R!.;VYE(BP*(BX)8R!I=F]R>2(L"B)8"6,@
  924. XM8FQA8VLB+`HB;PEC("-",D(R0S!#,$1#1$,B+`HB("`@("`@("`@("`@("`@
  925. XM("`@("XN("`@("`@("`@("`@("`B+`HB("`@("`@("`@("`@("`@("`@("XN
  926. XM("`@("`@("`@("`@("`B+`HB("`@("`@("`@("`@("`@("`@+BX@("`@("`@
  927. XM("`@("`@("`B+`HB("`@("`@("`@("`@("`@("`@+BX@("`@("`@("`@("`@
  928. XM("`B+`HB("`@("`@("`@("`@("`@("`N+B`@("`@("`@("`@("`@("`B+`HB
  929. XM("`@("`@("`@("`@("`@("`N+B`@("`@("`@("`@("`@("`B+`HB("`@("`@
  930. XM("`@("`@("`@("`N+B`@("`@("`@("`@("`@("`B+`HB("`@("`@("`@("`@
  931. XM("`@("`N+B`@("`@("`@("`@("`@("`B+`HB("`@("`@("`@("`@("`@("`N
  932. XM+B`@("`@("`@("`@("`@("`B+`HB("`@("`@("`@("`@("`@("`N+B`@("`@
  933. XM("`@("`@("`@("`B+`HB("`@("`@("`@("`@("`@("`N+B`@("`@("`@("`@
  934. XM("`@("`B+`HB("`@("`@("`@("`@("`@+BXN+BXN("`@("`@("`@("`@("`B
  935. XM+`HB("`@("`@("`@("`@("`@+BXN+BXN("`@("`@("`@("`@("`B+`HB("`@
  936. XM("`@("`@("`@("`@6%A86%A8("`@("`@("`@("`@("`B+`HB("`@+BXN+BXN
  937. XM+BY8+BXN+BXN+BXN+BXN6"XN+BXN+BX@("`B+`HB("XN+BXN+BXN+BY8+BXN
  938. XM+BXN+BXN+BXN6"XN+BXN+BXN+B`B+`HB("XN+BXN+BXN+BY8+BXN+BXN+BXN
  939. XM+BXN6"XN+BXN+BXN+B`B+`HB+BXN+BXN+BXN+BY8+BXN+BXN+BXN+BXN6"XN
  940. XM+BXN+BXN+BXB+`HB+BXN+BXN+BXN+BY8+BXN+BXN+BXN+BXN6"XN+BXN+BXN
  941. XM+BXB+`HB+BXN+BXN+BXN+BY8+BXN+BXN+BXN+BXN6"XN+BXN+BXN+BXB+`HB
  942. XM+BXN+BXN+BXN+BY8+BXN+BXN+BXN+BXN6"XN+BXN+BXN+BXB+`HB+BXN+BXN
  943. XM+BXN+BY8+BXN+BXN+BXN+BXN6"XN+BXN+BXN+BXB+`HB+BXN+BXN+BXN+BY8
  944. XM+BXN+BXN+BXN+BXN6"XN+BXN+BXN+BXB+`HB+BXN+BXN+BXN+BY8+BXN+BXN
  945. XM+BXN+BXN6"XN+BXN+BXN+BXB+`HB+BXN+BXN+BXN+BY8+BXN+BXN+BXN+BXN
  946. XM6"XN+BXN+BXN+BXB+`HB+BXN+BXN+BXN+BY8+BXN+BXN+BXN+BXN6"XN+BXN
  947. XM+BXN+BXB+`HB+BXN+BXN+BXN+BY8+BXN+BXN+BXN+BXN6"XN+BXN+BXN+BXB
  948. XM+`HB6%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%@B+`HB+BXN
  949. XM+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXB+`HB+BXN+BXN+BXN
  950. XM+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXB+`HB+BXN+BXN+BXN+BXN+BXN
  951. XM+BXN+BXN+BXN+BXN+BXN+BXN+BXB+`HB+BXN+BXN+BXN+BXN+BXN+BXN+BXN
  952. XM+BXN+BXN+BXN+BXN+BXB+`HB+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN
  953. XM+BXN+BXN+BXB+`HB+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN
  954. XM+BXB+`HB+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXB+`HB
  955. XM+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXB+`HB+BXN+BXN
  956. XM+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXB+`HB+BXN+BXN+BXN+BXN
  957. XM+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXB+`HB+BXN+BXN+BXN+BXN+BXN+BXN
  958. XM+BXN+BXN+BXN+BXN+BXN+BXB+`HB+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN
  959. XM+BXN+BXN+BXN+BXB+`HB+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN
  960. XM+BXN+BXB+`HB+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXB
  961. XM+`HB+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXB+`HB+BXN
  962. XM+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXB+`HB+BXN+BXN+BXN
  963. XM+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXB+`HB+BXN+BXN+BXN+BXN+BXN
  964. XM+BXN+BXN+BXN+BXN+BXN+BXN+BXB+`HB+BXN+BXN+BXN+BXN+BXN+BXN+BXN
  965. XM+BXN+BXN+BXN+BXN+BXB+`HB+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN
  966. XM+BXN+BXN+BXB+`HB+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN
  967. XM+BXB+`HB+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXB+`HB
  968. XM+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXB+`HB+BXN+BXN
  969. XM+BXN+BXN+BXN+BXN+BXN+BXN;V]O;V]O;RXN+BXB+`HB+BXN+BXN+BXN+BXN
  970. XM+BXN+BXN+BXN+BXN;V]O;V]O;RXN+BXB+`HB+BXN+BXN+BXN+BXN+BXN+BXN
  971. XM+BXN+BXN;V]O;V]O;RXN+BXB+`HB("XN+BXN+BXN+BXN+BXN+BXN+BXN+BXN
  972. XM;V]O;V]O;RXN+B`B+`HB("XN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN
  973. XM+BXN+B`B+`HB("`@+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BX@("`B
  974. X#?3L*
  975. X`
  976. Xend
  977. END_OF_FILE
  978. if test 3256 -ne `wc -c <'bitmaps/mouse.xpm.uu'`; then
  979.     echo shar: \"'bitmaps/mouse.xpm.uu'\" unpacked with wrong size!
  980. fi
  981. # end of 'bitmaps/mouse.xpm.uu'
  982. fi
  983. if test -f 'bitmaps/stickyblock.xpm.uu' -a "${1}" != "-c" ; then 
  984.   echo shar: Will not clobber existing file \"'bitmaps/stickyblock.xpm.uu'\"
  985. else
  986. echo shar: Extracting \"'bitmaps/stickyblock.xpm.uu'\" \(2026 characters\)
  987. sed "s/^X//" >'bitmaps/stickyblock.xpm.uu' <<'END_OF_FILE'
  988. Xbegin 644 stickyblock.xpm
  989. XM+RH@6%!-("HO"G-T871I8R!C:&%R("H@<W1I8VMY8FQO8VM?>'!M6UT@/2![
  990. XM"B(S,B`S,B`Q-2`Q(BP*(B`)<R!.;VYE"6,@3F]N92(L"B(N"6,@=VAI=&4B
  991. XM+`HB6`EC(",S,#`P03DB+`HB;PEC("-!.3$W,#`B+`HB3PEC(",Q03`P.#0B
  992. XM+`HB*PEC(",R0S`P1$,B+`HB0`EC(",S1#`P1C(B+`HB(PEC("-#0S)#,#`B
  993. XM+`HB)`EC(",T-#`P1D4B+`HB)0EC("-%.#-%,#`B+`HB)@EC("-&.#5&,#`B
  994. XM+`HB*@EC(",X-#`P,#`B+`HB/0EC(",T,#0P03!!,$,P0S`B+`HB+0EC('-T
  995. XM965L(&)L=64B+`HB.PEC(')E9"(L"B(@("`@("`@("`@("`@("`@("`@("`@
  996. XM("`@("`@("`@("(L"B(@("`@("`@("`@("`N+BXN+BXN+B`@("`@("`@("`@
  997. XM("(L"B(@("`@("`@("`@+BY86%A86%AO3RXN("`@("`@("`@("(L"B(@("X@
  998. XM("`@("XN6%@K*RLK*RMO6%A/+BX@("X@+B`@("(L"B(@+B`@+BX@("Y/6%@K
  999. XM*RLK*RMO6%A/3RX@("X@("X@("(L"B(@+B`@+B`@+EA8*RM`0$`C(R,K*UA8
  1000. XM3T\N("`N("X@("(L"B(@+B`N("`@+EA8*T`D)"5`0$`K*UA83T\N("`N("`@
  1001. XM("(L"B(@("`N("`N6"LK0"0D)B1`0$!`*RM86%A/+B`@("`@("(L"B(@("`N
  1002. XM("`N;RLK0"0F)"9`0$!`*RM86%A/+B`@("`@("(L"B(@("`@("`N6",C0"4D
  1003. XM)$`E)25`*RMO;V]/+B`@("`@("(L"B(@("`@("`N6",C0"4D)$`E)25`*RMO
  1004. XM;V]/+B`@("`@("(L"B(@("`@("`N6"LK(T!`0$!`0$`C*R-86%@J+B`@("`@
  1005. XM("(L"B(@("`@("`N6%A8(RM`0$`K*RLC(UA86%A/+B`@("`@("(L"B(@("`@
  1006. XM("`N3V]O*RLK*RLC(R,K*UA83T]/+B`@("`@("(L"B(@("`@("`@+EA86%@K
  1007. XM*RLK*RMO6%A83T\N("`N("`@("(L"B(@("`@("`@+D]/6%A86%A86%AO6%A/
  1008. XM3T\N("`N("`@("(L"B(@("`@("`@("Y/3T]86%A86%A8*BI/3RX@("`N("X@
  1009. XM("(L"B(@("`N("`@("XN3T]86%A86%A8*BI/+BX@("`N("X@("(L"B(@("`@
  1010. XM+B`@("`]+BY/3T]/3T]/3RXN/2`@("X@("X@("(L"B(@+B`@+B`@("`]/3TN
  1011. XM+BXN+BXN+CT]/2`@("X@+B`@("(L"B(@("X@("X@("`@/3T]/3T]/3T]/3T]
  1012. XM("`@("`@+B`@("(L"B(@("`N("`@("`@(#T]+3T]+3TM/3T@("`@("`@("`@
  1013. XM("(L"B(@("`@("`@("`@(#T]+3T]+3TM/3T@("`@("`@("`@("(L"B(@("`@
  1014. XM("`@("`@/3T]+3T]+3TM/3T]("`@("`@("`@("(L"B(@("`@("`@("`]/3TM
  1015. XM+3T]+3T]+3T]/2`@("`@("`@("(L"B(@("`@("`@/3T]/2TM/3T]+3T]/2TM
  1016. XM/3T]("`@("`@("(L"B(@("`@("`]/3T]/3T]/3T]/3T]/3T]/3T]("`@("`@
  1017. XM("(L"B(@+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN("(L"B(N.SL[
  1018. XM.SL[.SL[.SL[.SL[.SL[.SL[.SL[.SL[.SL[+B(L"B(N.SL[.SL[.SL[.SL[
  1019. XM.SL[.SL[.SL[.SL[.SL[.SL[+B(L"B(N.SL[.SL[.SL[.SL[.SL[.SL[.SL[
  1020. XM.SL[.SL[.SL[+B(L"B(@+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN
  1021. X%(")].PH[
  1022. X`
  1023. Xend
  1024. END_OF_FILE
  1025. if test 2026 -ne `wc -c <'bitmaps/stickyblock.xpm.uu'`; then
  1026.     echo shar: \"'bitmaps/stickyblock.xpm.uu'\" unpacked with wrong size!
  1027. fi
  1028. # end of 'bitmaps/stickyblock.xpm.uu'
  1029. fi
  1030. if test -f 'error.c' -a "${1}" != "-c" ; then 
  1031.   echo shar: Will not clobber existing file \"'error.c'\"
  1032. else
  1033. echo shar: Extracting \"'error.c'\" \(2496 characters\)
  1034. sed "s/^X//" >'error.c' <<'END_OF_FILE'
  1035. X#include "include/copyright.h"
  1036. X
  1037. X/*
  1038. X *  Include file dependencies:
  1039. X */
  1040. X
  1041. X#include <stdio.h>
  1042. X#include <xpm.h>
  1043. X
  1044. X#include "include/init.h"
  1045. X
  1046. X#include "include/error.h"
  1047. X
  1048. X/*
  1049. X *  Internal macro definitions:
  1050. X */
  1051. X
  1052. X/*
  1053. X *  Internal type declarations:
  1054. X */
  1055. X
  1056. X/*
  1057. X *  Internal variable declarations:
  1058. X */
  1059. X
  1060. X#if NeedFunctionPrototypes
  1061. Xvoid NormalMessage(char *message)
  1062. X#else
  1063. Xvoid NormalMessage(message)
  1064. X    char *message;
  1065. X#endif
  1066. X{
  1067. X    /* Print a message to standard out flush it */
  1068. X    fprintf(stdout, "XBoing - %s\n", message);
  1069. X    fflush(stdout);
  1070. X}
  1071. X
  1072. X#if NeedFunctionPrototypes
  1073. Xvoid ErrorMessage(char *message)
  1074. X#else
  1075. Xvoid ErrorMessage(message)
  1076. X    char *message;
  1077. X#endif
  1078. X{
  1079. X    /* Print a standard error message to stdout and flush it */
  1080. X    fprintf(stdout, "XBoing - Error: %s\n", message);
  1081. X    fprintf(stdout, "\nPlease read README.problems document for help.\n");
  1082. X    fflush(stdout);
  1083. X}
  1084. X
  1085. X#if NeedFunctionPrototypes
  1086. Xvoid WarningMessage(char *message)
  1087. X#else
  1088. Xvoid WarningMessage(message)
  1089. X    char *message;
  1090. X#endif
  1091. X{
  1092. X    /* Print a standard warning message to stdout and flush it */
  1093. X    fprintf(stdout, "XBoing - Warning: %s\n", message);
  1094. X    fflush(stdout);
  1095. X}
  1096. X
  1097. X#if NeedFunctionPrototypes
  1098. Xvoid HandleXPMError(Display *display, int ErrorStatus, char *tag)
  1099. X#else
  1100. Xvoid HandleXPMError(display, ErrorStatus, tag)
  1101. X    Display *display;
  1102. X    int ErrorStatus;
  1103. X    char *tag;
  1104. X#endif
  1105. X{
  1106. X    char *error = NULL;
  1107. X    char *warning = NULL;
  1108. X
  1109. X    /* Switch on the type of error returned by xpm library */
  1110. X    switch (ErrorStatus) 
  1111. X    {
  1112. X        case XpmSuccess:
  1113. X            return;
  1114. X
  1115. X        case XpmColorError:
  1116. X            /* The colour name passed was bung */
  1117. X            warning = "Could not parse or alloc requested colour";
  1118. X            break;
  1119. X
  1120. X        case XpmNoMemory:
  1121. X            /* Not enough memory for pixmap */
  1122. X            error = "Not enough memory for pixmap creation";
  1123. X            break;
  1124. X
  1125. X        case XpmColorFailed:
  1126. X            /* No more entries available in colourmap */
  1127. X            error = "Colourmap is full - cannot allocate a colour";
  1128. X            break;
  1129. X
  1130. X        case XpmOpenFailed:
  1131. X            /* Xpm could not open the pixmap file */
  1132. X            error = "Unable to open pixmap file";
  1133. X            break;
  1134. X
  1135. X        case XpmFileInvalid:
  1136. X            /* XPM file contains invalid or corrupt data */
  1137. X            error = "XPM file contains invalid or corrupt data";
  1138. X            break;
  1139. X
  1140. X        default:
  1141. X            /* Unexpected xpm error code */
  1142. X            error = "Unexpected xpm error code";
  1143. X            break;
  1144. X    }
  1145. X
  1146. X    /* If there is to be a warning then issue it */
  1147. X    if (warning)
  1148. X        fprintf(stdout, "%s - Warning: %s.\n", tag, warning);
  1149. X
  1150. X    if (error) 
  1151. X    {
  1152. X        /* Argg. An error so tell everyone */
  1153. X        fprintf(stderr, "%s - Error: %s.\n", tag, error);
  1154. X        ShutDown(display, 1, "Fatal error.");
  1155. X    }
  1156. X}
  1157. END_OF_FILE
  1158. if test 2496 -ne `wc -c <'error.c'`; then
  1159.     echo shar: \"'error.c'\" unpacked with wrong size!
  1160. fi
  1161. # end of 'error.c'
  1162. fi
  1163. if test -f 'include/ball.h' -a "${1}" != "-c" ; then 
  1164.   echo shar: Will not clobber existing file \"'include/ball.h'\"
  1165. else
  1166. echo shar: Extracting \"'include/ball.h'\" \(3331 characters\)
  1167. sed "s/^X//" >'include/ball.h' <<'END_OF_FILE'
  1168. X#ifndef _BALL_H_
  1169. X#define _BALL_H_
  1170. X
  1171. X#include "copyright.h"
  1172. X
  1173. X/*
  1174. X *  Dependencies on other include files:
  1175. X */
  1176. X
  1177. X#include <X11/Xlib.h>
  1178. X
  1179. X/*
  1180. X *  Constants and macros:
  1181. X */
  1182. X
  1183. X#define BALL_WIDTH  20
  1184. X#define BALL_HEIGHT 19
  1185. X
  1186. X#define BALL_WC     (BALL_WIDTH / 2)
  1187. X#define BALL_HC     (BALL_HEIGHT / 2)
  1188. X
  1189. X#define BIRTH_SLIDES        8
  1190. X#define BALL_SLIDES         5
  1191. X
  1192. X#define MAX_BALLS             5
  1193. X
  1194. X#define MAX_X_VEL           14
  1195. X#define MAX_Y_VEL           14
  1196. X
  1197. X#define MIN_DY_BALL            2
  1198. X#define MIN_DX_BALL            2
  1199. X
  1200. X#define BALL_ANIM_RATE      50
  1201. X#define BIRTH_FRAME_RATE    5
  1202. X#define BALL_FRAME_RATE     5
  1203. X#define BORDER_ANIM_DELAY   15
  1204. X
  1205. X#define PADDLE_HIT_SCORE    10
  1206. X
  1207. X#define BALL_AUTO_ACTIVE_DELAY  3000
  1208. X
  1209. X#define DIST_BALL_OF_PADDLE 45
  1210. X
  1211. X#define PADDLE_BALL_FRAME_TILT  10000
  1212. X
  1213. X
  1214. X/*
  1215. X *  Type declarations:
  1216. X */
  1217. X
  1218. Xenum BallStates 
  1219. X{ 
  1220. X    BALL_POP, 
  1221. X    BALL_ACTIVE, 
  1222. X    BALL_STOP, 
  1223. X    BALL_CREATE, 
  1224. X    BALL_DIE, 
  1225. X    BALL_WAIT, 
  1226. X    BALL_READY, 
  1227. X    BALL_NONE 
  1228. X};
  1229. X
  1230. Xtypedef struct ball
  1231. X{
  1232. X    int                waitMode;        /* Ball waiting mode */
  1233. X    int                waitingFrame;    /* Frame to wait until */
  1234. X    int                newMode;        /* Ball's new mode */
  1235. X    int                nextFrame;        /* next frame for something */
  1236. X    int                active;            /* True - in use, False - dead */
  1237. X    int             oldx;            /* Old x coord of ball centre */
  1238. X    int             oldy;            /* Old y coord of ball centre */
  1239. X    int             ballx;            /* Current x coord of ball centre */
  1240. X    int             bally;            /* Current y coord of ball centre */
  1241. X    int             dx;                /* Change in x axis increment */
  1242. X    int             dy;                /* Change in y axis increment */
  1243. X    int             slide;            /* Current pixmap visible */
  1244. X    int             lastPaddleHitFrame;    /* Last frame the ball hit paddle */
  1245. X    enum BallStates ballState;        /* The state of the ball */
  1246. X} BALL;
  1247. X
  1248. X/*
  1249. X *  Function prototypes:
  1250. X */
  1251. X
  1252. X#if NeedFunctionPrototypes
  1253. Xvoid InitialiseBall(Display *display, Window window, Colormap colormap);
  1254. Xvoid FreeBall(Display *display);
  1255. Xvoid RedrawBall(Display *display, Window window);
  1256. Xvoid DrawTheBall(Display *display, Window window, int x, int y, int slide);
  1257. Xvoid DrawTheBallBirth(Display *display, Window window, int x, int y, int slide);
  1258. Xvoid KillBallNow(Display *display, Window window, int i);
  1259. Xvoid GetBallPosition(int *ballX, int *ballY, int i);
  1260. Xvoid ResetBallStart(Display *display, Window window);
  1261. Xint GetBallMode(int i);
  1262. Xvoid ChangeBallMode(int newMode, int i);
  1263. Xint AddANewBall(int x, int y, int dx, int dy);
  1264. Xvoid ClearAllBalls(void);
  1265. Xvoid HandleBallMode(Display *display, Window window);
  1266. Xint StartAnotherBall(Display *display, Window window);
  1267. Xint IsBallWaiting(void);
  1268. Xvoid ClearBall(int i);
  1269. Xvoid SplitBallInTwo(Display *display, Window window);
  1270. Xvoid ClearBallNow(Display *display, Window window, int i);
  1271. Xint GetAnActiveBall(void);
  1272. Xint ActivateWaitingBall(void);
  1273. Xint GetNumberOfActiveBalls(void);
  1274. X#else
  1275. Xint GetNumberOfActiveBalls();
  1276. Xint ActivateWaitingBall();
  1277. Xint GetAnActiveBall();
  1278. Xvoid ClearBallNow();
  1279. Xvoid SplitBallInTwo();
  1280. Xvoid ClearBall();
  1281. Xvoid InitialiseBall();
  1282. Xvoid FreeBall();
  1283. Xvoid RedrawBall();
  1284. Xvoid DrawTheBall();
  1285. Xvoid DrawTheBallBirth();
  1286. Xvoid KillBallNow();
  1287. Xvoid GetBallPosition();
  1288. Xvoid ResetBallStart();
  1289. Xint GetBallMode();
  1290. Xvoid ChangeBallMode();
  1291. Xint AddANewBall();
  1292. Xvoid ClearAllBalls();
  1293. Xvoid HandleBallMode();
  1294. Xint StartAnotherBall();
  1295. Xint IsBallWaiting();
  1296. X#endif
  1297. X
  1298. Xextern BALL balls[MAX_BALLS];
  1299. Xextern int speedLevel;
  1300. Xextern int paddleDx;
  1301. X
  1302. X#endif
  1303. END_OF_FILE
  1304. if test 3331 -ne `wc -c <'include/ball.h'`; then
  1305.     echo shar: \"'include/ball.h'\" unpacked with wrong size!
  1306. fi
  1307. # end of 'include/ball.h'
  1308. fi
  1309. if test -f 'include/blocks.h' -a "${1}" != "-c" ; then 
  1310.   echo shar: Will not clobber existing file \"'include/blocks.h'\"
  1311. else
  1312. echo shar: Extracting \"'include/blocks.h'\" \(3240 characters\)
  1313. sed "s/^X//" >'include/blocks.h' <<'END_OF_FILE'
  1314. X#ifndef _BLOCKS_H_
  1315. X#define _BLOCKS_H_
  1316. X
  1317. X#include "copyright.h"
  1318. X
  1319. X/*
  1320. X *  Dependencies on other include files:
  1321. X */
  1322. X
  1323. X#include <X11/Xlib.h>
  1324. X
  1325. X/*
  1326. X *  Constants and macros:
  1327. X */
  1328. X
  1329. X#define NONE_BLK        -2
  1330. X#define KILL_BLK        -1
  1331. X#define RED_BLK            0
  1332. X#define BLUE_BLK        1
  1333. X#define GREEN_BLK        2
  1334. X#define TAN_BLK            3
  1335. X#define YELLOW_BLK        4
  1336. X#define PURPLE_BLK        5
  1337. X#define BULLET_BLK        6
  1338. X#define BLACK_BLK        7
  1339. X#define COUNTER_BLK        8
  1340. X#define BONUSX2_BLK        9
  1341. X#define BONUSX4_BLK        10
  1342. X#define BONUS_BLK        11
  1343. X#define BOMB_BLK        12
  1344. X#define DEATH_BLK        13
  1345. X#define RANDOM_BLK        14
  1346. X#define REVERSE_BLK        15
  1347. X#define HYPERSPACE_BLK    16
  1348. X#define EXTRABALL_BLK    17
  1349. X#define MGUN_BLK        18
  1350. X#define WALLOFF_BLK        19
  1351. X#define MULTIBALL_BLK    20
  1352. X#define STICKY_BLK        21
  1353. X#define PAD_SHRINK_BLK    22
  1354. X#define PAD_EXPAND_BLK    23
  1355. X
  1356. X#define MAX_ROW            18    
  1357. X#define MAX_COL            9    
  1358. X
  1359. X#define BLOCK_WIDTH        40
  1360. X#define BLOCK_HEIGHT    20
  1361. X
  1362. X#define SPACE            7
  1363. X
  1364. X#define MAX_NUM_LEVELS  50
  1365. X
  1366. X#define REGION_NONE        0
  1367. X#define REGION_TOP        1
  1368. X#define REGION_BOTTOM    2
  1369. X#define REGION_LEFT        4
  1370. X#define REGION_RIGHT    8
  1371. X
  1372. X/*
  1373. X *  Type declarations:
  1374. X */
  1375. X
  1376. Xstruct aBlock
  1377. X{
  1378. X    int         occupied;
  1379. X    int         exploding;
  1380. X    int         currentFrame;
  1381. X    int         nextFrame;
  1382. X    int         lastFrame;
  1383. X    int            blockOffsetX;
  1384. X    int            blockOffsetY;
  1385. X    Region        regionTop;
  1386. X    Region        regionBottom;
  1387. X    Region        regionLeft;
  1388. X    Region        regionRight;
  1389. X    int            x;
  1390. X    int            y;
  1391. X    int         width;
  1392. X    int         height;
  1393. X    int         blockType;
  1394. X    int         hitPoints;
  1395. X    int         explodeStartFrame;
  1396. X    int         explodeNextFrame;
  1397. X    int         explodeSlide;
  1398. X    int         counterSlide;        /* For counter blocks only */
  1399. X    int         bonusSlide;            /* For bonus blocks only */
  1400. X    int            random;
  1401. X
  1402. X    /* Used for splitting of the ball in multiball mode */
  1403. X    int         ballHitIndex;
  1404. X    int            balldx;
  1405. X    int            balldy;
  1406. X};
  1407. X
  1408. Xtypedef struct aBlock **BLOCKPTR;
  1409. X
  1410. X/*
  1411. X *  Function prototypes:
  1412. X */
  1413. X
  1414. X#if NeedFunctionPrototypes
  1415. Xvoid FreeBlockPixmaps(Display *display);
  1416. Xvoid InitialiseBlocks(Display *display, Window window, Colormap colormap);
  1417. Xvoid DrawBlock(Display *display, Window window, int row, int col, 
  1418. X    int blockType);
  1419. Xvoid SetupStage(Display *display, Window window);
  1420. Xvoid ExplodeBlocksPending(Display *display, Window window);
  1421. Xvoid RedrawAllBlocks(Display *display, Window window);
  1422. Xvoid DrawTheBlock(Display *display, Window window, int x, int y, 
  1423. X    int blockType, int slide);
  1424. Xvoid ExplodeBlockType(Display *display, Window window, int x, int y,
  1425. X    int type, int slide);
  1426. Xvoid AddNewBlock(Display *display, Window window, int row, int col,
  1427. X    int blockType, int counterSlide);
  1428. Xvoid HandlePendingAnimations(Display *display, Window window);
  1429. Xvoid AddBonusBlock(Display *display, Window window, int *row, int *col,
  1430. X    int type);
  1431. Xvoid ClearBlockArray(void);
  1432. Xint StillActiveBlocks(void);
  1433. Xvoid SkipToNextLevel(Display *display, Window window);
  1434. Xvoid PlaySoundForBlock(int type);
  1435. X#else
  1436. Xvoid PlaySoundForBlock();
  1437. Xvoid FreeBlockPixmaps();
  1438. Xvoid InitialiseBlocks();
  1439. Xvoid DrawBlock();
  1440. Xvoid SetupStage();
  1441. Xvoid ExplodeBlocksPending();
  1442. Xvoid RedrawAllBlocks();
  1443. Xvoid DrawTheBlock();
  1444. Xvoid ExplodeBlockType();
  1445. Xvoid AddNewBlock();
  1446. Xvoid HandlePendingAnimations();
  1447. Xvoid AddBonusBlock();
  1448. Xvoid ClearBlockArray();
  1449. Xint StillActiveBlocks();
  1450. Xvoid SkipToNextLevel();
  1451. X#endif
  1452. X
  1453. Xextern struct aBlock blocks[MAX_ROW][MAX_COL];
  1454. Xextern int rowHeight;
  1455. Xextern int colWidth;
  1456. Xextern int blocksExploding;
  1457. X
  1458. X#endif
  1459. END_OF_FILE
  1460. if test 3240 -ne `wc -c <'include/blocks.h'`; then
  1461.     echo shar: \"'include/blocks.h'\" unpacked with wrong size!
  1462. fi
  1463. # end of 'include/blocks.h'
  1464. fi
  1465. if test -f 'mess.c' -a "${1}" != "-c" ; then 
  1466.   echo shar: Will not clobber existing file \"'mess.c'\"
  1467. else
  1468. echo shar: Extracting \"'mess.c'\" \(2880 characters\)
  1469. sed "s/^X//" >'mess.c' <<'END_OF_FILE'
  1470. X#include "include/copyright.h"
  1471. X
  1472. X/*
  1473. X *  Include file dependencies:
  1474. X */
  1475. X
  1476. X#include <stdio.h>
  1477. X#include <stdlib.h>
  1478. X#include <stddef.h>
  1479. X#include <X11/Xlib.h>
  1480. X#include <X11/Xutil.h>
  1481. X#include <X11/Xos.h>
  1482. X
  1483. X#include "include/error.h"
  1484. X#include "include/level.h"
  1485. X#include "include/init.h"
  1486. X#include "include/stage.h"
  1487. X#include "include/intro.h"
  1488. X#include "include/main.h"
  1489. X#include "include/misc.h"
  1490. X
  1491. X#include "include/mess.h"
  1492. X
  1493. X/*
  1494. X *  Internal macro definitions:
  1495. X */
  1496. X
  1497. X#define CLEAR_DELAY        2000
  1498. X
  1499. X/*
  1500. X *  Internal type declarations:
  1501. X */
  1502. X
  1503. X/*
  1504. X *  Internal variable declarations:
  1505. X */
  1506. X
  1507. Xchar currentMessage[1024];
  1508. Xint        clearFrame;
  1509. X
  1510. X#if NeedFunctionPrototypes
  1511. Xvoid InitialiseMessageSystem(Display *display, Window window, Colormap colormap)
  1512. X#else
  1513. Xvoid InitialiseMessageSystem(display, window, colormap)
  1514. X    Display *display;
  1515. X    Window window;
  1516. X    Colormap colormap;
  1517. X#endif
  1518. X{
  1519. X    /* Frame to clear message area */
  1520. X    clearFrame = 0;
  1521. X}
  1522. X
  1523. X#if NeedFunctionPrototypes
  1524. Xvoid FreeMessageSystem(Display *display)
  1525. X#else
  1526. Xvoid FreeMessageSystem(display)
  1527. X    Display *display;
  1528. X#endif
  1529. X{
  1530. X    /* Not much to free yet - maybe one day .... */
  1531. X}
  1532. X
  1533. X#if NeedFunctionPrototypes
  1534. Xvoid DrawMessage(Display *display, Window window, char *message, int clear)
  1535. X#else
  1536. Xvoid DrawMessage(display, window, message, clear)
  1537. X    Display *display; 
  1538. X    Window window;
  1539. X    char *message;
  1540. X    int clear;
  1541. X#endif
  1542. X{
  1543. X    int len = strlen(message);
  1544. X    int plen;
  1545. X
  1546. X    if (clear)
  1547. X        clearFrame = frame + CLEAR_DELAY;
  1548. X    else
  1549. X        clearFrame = frame - 1;
  1550. X
  1551. X    /* Clear the message window */
  1552. X    XClearWindow(display, window);
  1553. X
  1554. X    /* Obtain the text width so it can be centered */
  1555. X    plen = XTextWidth(textFont, message, len);
  1556. X
  1557. X    /* Draw the string in the message window */
  1558. X    DrawText(display, window, ((PLAY_WIDTH/2) - plen) / 2, 5,
  1559. X        textFont, green, message, len);
  1560. X
  1561. X    /* Just to be sure, flush the display */
  1562. X    XFlush(display);
  1563. X}
  1564. X
  1565. X#if NeedFunctionPrototypes
  1566. Xvoid SetCurrentMessage(Display *display, Window window, char *newMessage, 
  1567. X    int clear)
  1568. X#else
  1569. Xvoid SetCurrentMessage(display, window, newMessage, clear)
  1570. X    Display *display;
  1571. X    Window window;
  1572. X    char *newMessage;
  1573. X    int clear;
  1574. X#endif
  1575. X{
  1576. X    /* Draw out new message */
  1577. X    DrawMessage(display, window, newMessage, clear);
  1578. X}
  1579. X
  1580. X#if NeedFunctionPrototypes
  1581. Xvoid AddMessage(char *newMessage)
  1582. X#else
  1583. Xvoid AddMessage(newMessage)
  1584. X    char *newMessage;
  1585. X#endif
  1586. X{
  1587. X}
  1588. X
  1589. X#if NeedFunctionPrototypes
  1590. Xvoid DisplayCurrentMessage(Display *display, Window window)
  1591. X#else
  1592. Xvoid DisplayCurrentMessage(display, window)
  1593. X    Display *display;
  1594. X    Window window;
  1595. X#endif
  1596. X{
  1597. X    char str[80];
  1598. X    char str2[80];
  1599. X
  1600. X    /* Clear the frame when it's time */
  1601. X    if (frame == clearFrame)
  1602. X    {
  1603. X        /* Effectively erases message */
  1604. X        strcpy(str2, GetLevelName());
  1605. X        if (str2[0] != '\0')
  1606. X        {
  1607. X            /* Set the message to the name of the level */
  1608. X            sprintf(str, "- %s -", str2);
  1609. X            SetCurrentMessage(display, window, str, False);
  1610. X        }
  1611. X        else
  1612. X            DrawMessage(display, window, "", False);
  1613. X
  1614. X        /* To be sure to be sure */
  1615. X        XFlush(display);
  1616. X    }
  1617. X}
  1618. END_OF_FILE
  1619. if test 2880 -ne `wc -c <'mess.c'`; then
  1620.     echo shar: \"'mess.c'\" unpacked with wrong size!
  1621. fi
  1622. # end of 'mess.c'
  1623. fi
  1624. if test -f 'sounds/toggle.au.uu' -a "${1}" != "-c" ; then 
  1625.   echo shar: Will not clobber existing file \"'sounds/toggle.au.uu'\"
  1626. else
  1627. echo shar: Extracting \"'sounds/toggle.au.uu'\" \(3574 characters\)
  1628. sed "s/^X//" >'sounds/toggle.au.uu' <<'END_OF_FILE'
  1629. Xbegin 644 toggle.au
  1630. XM+G-N9````"#_____`````0``'T`````!``````````!=74(\+4VZ75\Z2ME=
  1631. XM0SE)PM%%,ENNN-E95;2XN[2S2U7/KZTS+DC/QCHU.#0UR\5(,2JOJKI51<2O
  1632. XMM[:O44;3K:DS+#S.QCDO/S\U+\S%4RPHKZR\34RVL;RUKM-%=[*I]RH^Y\4X
  1633. XM+SD[,#G`]SPISZFT9T7)K[>[KZ]$4;JKM2@N6\'3+C9`/"XWQ=U`*E>JL.M#
  1634. XMV:^YO+*W5TV]K;`J,DW(63,U.S8PS\5/+"FOIJTR+["GK2HK1]/3*RY*.2]%
  1635. XMXULW)[^OMTU9NKZRKZW//]&JI4PS2MG9.4,\+BLZOL\N)3^QNME)O<7"L:^O
  1636. XMODG-KJ:]+SGWNDPQ+C0U.=E.."E5M+S_2LS*QJ^NME==LJJO-#M3S&M'1R\N
  1637. XM-\W)-RHQO,/*4]?%V:^OK^-"OZRQ:SU._UT\.SXX-#A+74$M,%&]PV-,8_^L
  1638. XMK;#13[VLJ+I%0]7/V^LO*S$_QCLM*4O1Q.]=:T.NJ*O1.=6HH\PN,__,3S@O
  1639. XM,S0Y0T5`*RKCL[I1W\G&JZROR/^^JZ[-/#UOVU-9+BPN0=D]+BM9Q;MO8]GK
  1640. XMMZROLV?1N:JP13=&QM-7,RPS.D1+0#8M3LJ\VU?GXZ^MK\)GRK*MN/=$1]?W
  1641. XM[STM,#_C638O-6?%Q6?K7]>LK+1-=[JHNCDP4\],+C,Z-C4_44HY+-VZN&=1
  1642. XMO[NVL*^ZY\6SKLY`/%GK1T(X,S`]7V,U+46_O,Q?PL"]L["QTU/%K:I,,$;7
  1643. XM=S0Q.#HV/%]C.BM$MKI=3[Z\MK:SM^/5O:_$03]9V4]`.#4V/UU;.S(_P;S)
  1644. XM6]/!O;6VM]=WQ;.P7SU#]U]&.SX^/#U37T4P-]&[RE?GSKVUMKG?W<.RM>=!
  1645. XM3-WC8TXW-SM1[TPV..?+R&-OX].XM+K+3<:VKU$[1-OO1T$\/CY#2U=).3K.
  1646. XMOLE;V\O"N+F]U>O&N+?C14/K_U=..CL]3N]..CM7R,?K]]?7O+J[P6O/O[/3
  1647. XM24!OUUE(/SU`0E-=1#HZV]7K255W_]/1W=-74[RZNO_CQ;K$TV]WR?_#SE<[
  1648. XM-5E9539"1F=O6V\^3$VUN>]WQ+'!=_?*Q-O/S[P^,CC?;SHV36=W5T9*1%],
  1649. XMN\O#S<RXO<OKV<C7PLWG..=)7T8[/$=?6TM90#Y&M,C.Z\:^N\OCS</&W;W#
  1650. XM1D9'[TM)-45/9U-)0D<^5[Y9X\W!O[O$U]7(OLF[ST#K74Q".SM#6U]+0$<\
  1651. XM3_?'U]&_P+O#U<W'P,_%O^LY:TQ`1#(X04Y%/40].4.[RKN]PZZRM\3'N[FV
  1652. XMO;?;0>L_-SHP-#M*/CHY.S=?N4K5M+>UMK_$N[>YQ[#*/$]&/#HR,3I&0SDU
  1653. XM2#8[W<W+N+:]K[.]PKZWM;VVU4YC:S0X-C,V13XY-SPX/;G=[[&WM+*ZPKVV
  1654. XMN+NWL49/V3,U."XT.3PV,34W+TJ]9[>NNJNNMKJWL+&OM+G?/NLU+C(M+SHY
  1655. XM,S`N.#'OO4NNK:^NL[:UK["SN:SC.FL_+2TM,#4X,2TQ.#`RO,SGJK"OK+&V
  1656. XMLZZNKK>OO$%13"LN,"XU-#`R+S0Q/\#K6ZJMKZ^RLZ^QK["NO#];6RDP+"TU
  1657. XM.#,O,C$S+;SC=ZFOKZVOM[6QK:^RK.=;RRXN-2LO-S@T,#$O-#Y;S]^MKJ^O
  1658. XMM;6SL;*NLK7'1UTR+C`M,3<U,#$Q-#)'P-7#K:ZKKK:VL:VNMJZT/?=(*C`N
  1659. XM+3,V-#$O,#,Z1\[=N*NOL:^TL["PLZ^SRU%70RPN+R\U-C`Q-"\Q2='?P:RR
  1660. XMK*ZTM[2OKK.QL.=?]RPP,"TR-S8T,3(O.DY?V[JNKZ^OM[2RLK.QL]/55SDN
  1661. XM+R\Q-#8S,3,P+T%9W;VPL:VNL[:UL*^TKZ_?5^<S+S$N,S<W,S$R,CE`:^^_
  1662. XMLZ^RL;2VL[2UL['(]W<]-B\P,C4W-3`U-B\];^?+L;&RKK*WN+2QM+FRRE7?
  1663. XM."\U,#4X.#<U,S<X/==OUZ^TM;.VN+:WM;:SO-WO9S<S-#0X.SHU-S@W.7=G
  1664. XMU[2XLK6VNKJXMK>YL]MOUS4U.30W/#P[.3DX.D%OU^>UM;FWN+NZN[JWNKW3
  1665. XM8VLZ.3DW.ST\.CLY.SU9U^^^N;BWNKR^O+FYO;F]4>,^-CTY.CT_/CL\/#Y'
  1666. XM2]_9O+B\N[N^O;R]N[O!SW=?13H[/#Q`/SP]/3P]5>?GPKN\N;N_P;Z[N[^\
  1667. XMO%G?ZS<_/CL_0D(_/CX^1T_CX\BZOKV]P;^]O,*]RVM92#@R,C8T,B\T+CXZ
  1668. XM0L'$MJ^NKZ^NK:FOJ;Z[S=<X-#$M+R\N+"LO*CHY2TB[N+"OK:ZOK*FJJ\>W
  1669. XMS]D[,C0S+RXN+BXJ*BM&.DW7MJ^NKJZNKJ^KJZR]O,[#-3,U+BXR+B\M*BXT
  1670. XM/5E(OK*OL:ZOL*^NJJZMQ,;!3#@Q,3`O,"\Q+BHM-41,2[VYK*RQKZ^QK:JN
  1671. XMMLK"R><W+RPQ,3`R,"LN+4P_6U^VL+"OL;&QL*RMKL^_U\PT,RTM+S`O+BHG
  1672. XM*UU/13VMIZRMKJVMKJVII*[3Y\3W+2@H+2XN+2PJ)"M!749KM:>KK:VNK:VI
  1673. XMIJO#V\?O+RLJ+2TN+BXL)28O5W=(O*VFJZZNK:ZNJ:2HPW??T3DK)BLO+B\N
  1674. XM+"8J,V=;2..KIZJNKZZNJZ>FLE]9S.\K)2<L+"TL*B0B*.?W1&NNHZ2IK*NK
  1675. XMJJBEG[-&2+Q%)A\H+"LK*B@E("S3R4+WII^EJZNKJJFEGZ?K/M_5*2`B*BLK
  1676. XM*BDE("8^Q$@_NI^?J:NIJ:FGI)^KO$';XS,@("@L*RLI(Q\I][MO7\"@H*:K
  1677. XMJZNJI)^BOSU3RC\E'R<K+2PL*!\A-<;5/<FCGZ2LK*RLJJ*?IE$^O,,N'R`L
  1678. XM+2TL+"DC(36ZT3UOI)^FKJVLK*BDG[=-/,3'+1\F+"XM+2DC("[&N55=MY^C
  1679. XMK*VLK:RGGY]W-/^Y."$@*RXN+2LJ)",NR[]?9ZR@HZRNK:RJI:&Q9SO,T3<A
  1680. XM(BHO+BTL)R`KU[A?:[RCHJFMK:VMJJ.?N3Y#O_\M'R@N+BXN+"8D*EF[RE>]
  1681. XMJ:"JK["NK:>CILXU2,E+*R`I+R\O+2DB*#VUVTW=IY^HKZZMK:NEH+D^/L+"
  1682. XM+Q\D+C`N+BTI)2I;N-55Q:JDJ:ZOKJZKI:?!.T711#`D*2XP,"\K)B0YN=-K
  1683. XMSJZEIZZPL*^NJ:&I4SG+QSDE)"TR,S(O+"8J/[/;3N^JI*JRL[*OK*BJOD]"
  1684. XMW><W*2<O-34S+B@H/,2^4_^YJJJOM;.TL:RFK>\][\P]+B<Q-C8V-3$K+#JY
  1685. XMR5=;LJBKM[BVMK*MJL))1\S/-BHL-3DX.3,N*CK?OV-?OZNMLKJXN+:NJZU/
  1686. XM.-O%/2PL.#LZ.3@V+BT\P\%?;[^LK[FZN;FXKZVW4T7WVS\O+C<\.SHX,2PZ
  1687. X'[\!O6\NMKCLZ
  1688. X`
  1689. Xend
  1690. END_OF_FILE
  1691. if test 3574 -ne `wc -c <'sounds/toggle.au.uu'`; then
  1692.     echo shar: \"'sounds/toggle.au.uu'\" unpacked with wrong size!
  1693. fi
  1694. # end of 'sounds/toggle.au.uu'
  1695. fi
  1696. echo shar: End of archive 25 \(of 30\).
  1697. cp /dev/null ark25isdone
  1698. MISSING=""
  1699. 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 27 28 29 30 ; do
  1700.     if test ! -f ark${I}isdone ; then
  1701.     MISSING="${MISSING} ${I}"
  1702.     fi
  1703. done
  1704. if test "${MISSING}" = "" ; then
  1705.     echo You have unpacked all 30 archives.
  1706.     echo "Now execute sdecode.sh to build files."
  1707.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  1708. else
  1709.     echo You still need to unpack the following archives:
  1710.     echo "        " ${MISSING}
  1711. fi
  1712. ##  End of shell archive.
  1713. exit 0
  1714.