home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / games / volume15 / xmines2 / part01 < prev    next >
Encoding:
Internet Message Format  |  1993-01-26  |  45.4 KB

  1. Path: uunet!news.tek.com!master!saab!billr
  2. From: billr@saab.CNA.TEK.COM (Bill Randle)
  3. Newsgroups: comp.sources.games
  4. Subject: v15i028:  xmines2 - another minefield game for X11, Part01/01
  5. Message-ID: <4000@master.CNA.TEK.COM>
  6. Date: 1 Dec 92 01:00:54 GMT
  7. Sender: news@master.CNA.TEK.COM
  8. Lines: 1348
  9. Approved: billr@saab.CNA.TEK.COM
  10. Xref: uunet comp.sources.games:1527
  11.  
  12. Submitted-by: lourakis@csd.uch.gr (Manolis Lourakis)
  13. Posting-number: Volume 15, Issue 28
  14. Archive-name: xmines2/Part01
  15. Environment: X11, XView, ANSI-C
  16.  
  17.  
  18.  
  19. #! /bin/sh
  20. # This is a shell archive.  Remove anything before this line, then unpack
  21. # it by saving it into a file and typing "sh file".  To overwrite existing
  22. # files, type "sh file -c".  You can also feed this as standard input via
  23. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  24. # will see the following message at the end:
  25. #        "End of archive 1 (of 1)."
  26. # Contents:  README MANIFEST Copyright Imakefile Makefile xmines.c
  27. #   xmines.h xmines.icons
  28. # Wrapped by billr@saab on Sun Nov 29 18:29:21 1992
  29. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  30. if test -f 'README' -a "${1}" != "-c" ; then 
  31.   echo shar: Will not clobber existing file \"'README'\"
  32. else
  33. echo shar: Extracting \"'README'\" \(2085 characters\)
  34. sed "s/^X//" >'README' <<'END_OF_FILE'
  35. X1. About xmines
  36. XXmines creates a rectangle on the screen,divided into equally sized cells.
  37. XEach cell may contain 
  38. X    -a mine (hence the name xmines)
  39. X    -a number indicating the number of mines present in the 8-neighboring
  40. X         cells 
  41. Xor it may be empty.Initially,all cells are covered with tiles.A tile can be
  42. Xremoved uncovering the cell below, by clicking the left mouse button on it.
  43. XIn addition,a cell can be marked as containing a mine by clicking the right
  44. Xmouse button on it.Note however that marking a cell as containing a mine
  45. Xdoes not necessarily mean that the cell really contains a mine!
  46. XClicking the middle mouse button on a tile,marks it with a question mark
  47. Xacting as a reminder mechanism.
  48. XThe user can use the numbers in the uncovered cells to find (or sometimes guess...)
  49. Xwhich cells contain mines and which do not.
  50. XA game ends when all cells not containing mines have been uncovered and
  51. Xall cells containing mines have been marked.
  52. XThe user can alter some default settings by using the following command-line
  53. Xarguments:
  54. X-w value : Use value cells per row
  55. X-h value : Use value rows of cells
  56. X-m value : Use value mines
  57. X-q value : Record playing time every value seconds
  58. X
  59. X2. Compiling
  60. XXmines runs under the X-Window System.It is written using the XView window package.
  61. XSupposing that you have XView installed,all you have to do to compile xmines is
  62. Xto set the environment variable OPENWINHOME to point to the directory where XView
  63. Xfiles are stored,type xmkmf to create the appropriate makefile and finally type
  64. Xmake to start compilation.If OPENWINHOME is not set,the makefile will try to
  65. Xuse directory /usr/openwin. The compiler used by the makefile is the gcc,
  66. Xalthough there shouldn't be any serious problems using any other c compiler.
  67. X
  68. X3. Availability
  69. XXmines is available via anonymous ftp from crete.csd.uch.gr (147.52.16.2)
  70. XSources are in /pub/X/xmines-0.1.tar.Z
  71. X
  72. XXmines has been implemented in a couple of days,while doing other things,so there are
  73. Xmany things that can be added.Fell free to sent your suggestions or modifications to
  74. Xlourakis@csd.uch.gr
  75. X
  76. XHave fun
  77. END_OF_FILE
  78. if test 2085 -ne `wc -c <'README'`; then
  79.     echo shar: \"'README'\" unpacked with wrong size!
  80. fi
  81. # end of 'README'
  82. fi
  83. if test -f 'MANIFEST' -a "${1}" != "-c" ; then 
  84.   echo shar: Will not clobber existing file \"'MANIFEST'\"
  85. else
  86. echo shar: Extracting \"'MANIFEST'\" \(362 characters\)
  87. sed "s/^X//" >'MANIFEST' <<'END_OF_FILE'
  88. X   File Name        Archive #    Description
  89. X-----------------------------------------------------------
  90. X Copyright                  1    
  91. X Imakefile                  1    
  92. X MANIFEST                   1    This shipping list
  93. X Makefile                   1    
  94. X README                     1    
  95. X xmines.c                   1    
  96. X xmines.h                   1    
  97. X xmines.icons               1    
  98. END_OF_FILE
  99. if test 362 -ne `wc -c <'MANIFEST'`; then
  100.     echo shar: \"'MANIFEST'\" unpacked with wrong size!
  101. fi
  102. # end of 'MANIFEST'
  103. fi
  104. if test -f 'Copyright' -a "${1}" != "-c" ; then 
  105.   echo shar: Will not clobber existing file \"'Copyright'\"
  106. else
  107. echo shar: Extracting \"'Copyright'\" \(836 characters\)
  108. sed "s/^X//" >'Copyright' <<'END_OF_FILE'
  109. X/* 
  110. X * Xmines. Copyright (c) 1992 by M.Lourakis - S.Kostomanolakis
  111. X *
  112. X * Handmade by Manolis Lourakis       (lourakis@csd.uch.gr) and
  113. X *             Stavros Kostomanolakis (kostoman@csd.uch.gr).
  114. X * Computer Science Department,
  115. X * University of Crete, HELLAS
  116. X *
  117. X * Permission to use, copy, modify, and distribute this software and its
  118. X * documentation for any purpose and without fee is hereby granted, provided 
  119. X * that the above copyright notice appear in all copies and that both that 
  120. X * copyright notice and this permission notice appear in supporting 
  121. X * documentation.The authors make no representations about the 
  122. X * suitability of this software for any purpose.It is provided "as is"
  123. X * without express or implied warranty.
  124. X *
  125. X * Questions, bug reports, modifications, etc can be sent to any of the
  126. X * above addresses.
  127. X *
  128. X */
  129. X
  130. X
  131. END_OF_FILE
  132. if test 836 -ne `wc -c <'Copyright'`; then
  133.     echo shar: \"'Copyright'\" unpacked with wrong size!
  134. fi
  135. # end of 'Copyright'
  136. fi
  137. if test -f 'Imakefile' -a "${1}" != "-c" ; then 
  138.   echo shar: Will not clobber existing file \"'Imakefile'\"
  139. else
  140. echo shar: Extracting \"'Imakefile'\" \(307 characters\)
  141. sed "s/^X//" >'Imakefile' <<'END_OF_FILE'
  142. XWHERE :sh = (tmp=`echo /usr/openwin`;echo ${OPENWINHOME:=$tmp})
  143. X
  144. XCC = gcc
  145. XINCLUDES = -I${WHERE}/include
  146. XLOCAL_LIBRARIES = -L${WHERE}/lib
  147. X
  148. XSYS_LIBRARIES = -lxview -lolgx -lX11 -lm
  149. X
  150. XSRCS = xmines.c 
  151. XOBJS = xmines.o
  152. X
  153. X/*CDEBUGFLAGS = -g  */
  154. X/*CDEBUGFLAGS = -O4 */
  155. XCDEBUGFLAGS = -O
  156. X
  157. XComplexProgramTarget(xmines)
  158. END_OF_FILE
  159. if test 307 -ne `wc -c <'Imakefile'`; then
  160.     echo shar: \"'Imakefile'\" unpacked with wrong size!
  161. fi
  162. # end of 'Imakefile'
  163. fi
  164. if test -f 'Makefile' -a "${1}" != "-c" ; then 
  165.   echo shar: Will not clobber existing file \"'Makefile'\"
  166. else
  167. echo shar: Extracting \"'Makefile'\" \(10220 characters\)
  168. sed "s/^X//" >'Makefile' <<'END_OF_FILE'
  169. X# Makefile generated by imake - do not edit!
  170. X# $XConsortium: imake.c,v 1.65 91/07/25 17:50:17 rws Exp $
  171. X#
  172. X# The cpp used on this machine replaces all newlines and multiple tabs and
  173. X# spaces in a macro expansion with a single space.  Imake tries to compensate
  174. X# for this, but is not always successful.
  175. X#
  176. X
  177. X# -------------------------------------------------------------------------
  178. X# Makefile generated from "Imake.tmpl" and <Imakefile>
  179. X# $XConsortium: Imake.tmpl,v 1.139 91/09/16 08:52:48 rws Exp $
  180. X#
  181. X# Platform-specific parameters may be set in the appropriate <vendor>.cf
  182. X# configuration files.  Site-specific parameters should be set in the file
  183. X# site.def.  Full rebuilds are recommended if any parameters are changed.
  184. X#
  185. X# If your C preprocessor does not define any unique symbols, you will need
  186. X# to set BOOTSTRAPCFLAGS when rebuilding imake (usually when doing
  187. X# "make World" the first time).
  188. X#
  189. X
  190. X# -------------------------------------------------------------------------
  191. X# site-specific configuration parameters that need to come before
  192. X# the platform-specific parameters - edit site.def to change
  193. X
  194. X# site:  $XConsortium: site.def,v 1.2 91/07/30 20:26:44 rws Exp $
  195. X
  196. X# -------------------------------------------------------------------------
  197. X# platform-specific configuration parameters - edit sun.cf to change
  198. X
  199. X# platform:  $XConsortium: sun.cf,v 1.69 91/09/09 18:23:59 rws Exp $
  200. X
  201. X# operating system:  SunOS 4.1.1
  202. X
  203. X# $XConsortium: sunLib.rules,v 1.6 91/03/24 17:55:58 rws Exp $
  204. X
  205. X# -------------------------------------------------------------------------
  206. X# site-specific configuration parameters that go after
  207. X# the platform-specific parameters - edit site.def to change
  208. X
  209. X# site:  $XConsortium: site.def,v 1.2 91/07/30 20:26:44 rws Exp $
  210. X
  211. X            SHELL = /bin/sh
  212. X
  213. X              TOP = .
  214. X      CURRENT_DIR = .
  215. X
  216. X               AR = ar clq
  217. X  BOOTSTRAPCFLAGS =
  218. X               CC = cc
  219. X               AS = as
  220. X
  221. X         COMPRESS = compress
  222. X              CPP = /lib/cpp $(STD_CPP_DEFINES)
  223. X    PREPROCESSCMD = cc -E $(STD_CPP_DEFINES)
  224. X          INSTALL = install
  225. X               LD = ld
  226. X             LINT = lint
  227. X      LINTLIBFLAG = -C
  228. X         LINTOPTS = -axz
  229. X               LN = ln -s
  230. X             MAKE = make
  231. X               MV = mv
  232. X               CP = cp
  233. X
  234. X           RANLIB = ranlib
  235. X  RANLIBINSTFLAGS =
  236. X
  237. X               RM = rm -f
  238. X            TROFF = psroff
  239. X         MSMACROS = -ms
  240. X              TBL = tbl
  241. X              EQN = eqn
  242. X     STD_INCLUDES =
  243. X  STD_CPP_DEFINES = -DX_WCHAR -DX_LOCALE
  244. X      STD_DEFINES = -DX_WCHAR -DX_LOCALE
  245. X EXTRA_LOAD_FLAGS =
  246. X  EXTRA_LIBRARIES =
  247. X             TAGS = ctags
  248. X
  249. X    SHAREDCODEDEF = -DSHAREDCODE
  250. X         SHLIBDEF = -DSUNSHLIB
  251. X
  252. X    PROTO_DEFINES =
  253. X
  254. X     INSTPGMFLAGS =
  255. X
  256. X     INSTBINFLAGS = -m 0755
  257. X     INSTUIDFLAGS = -m 4755
  258. X     INSTLIBFLAGS = -m 0644
  259. X     INSTINCFLAGS = -m 0444
  260. X     INSTMANFLAGS = -m 0444
  261. X     INSTDATFLAGS = -m 0444
  262. X    INSTKMEMFLAGS = -m 4755
  263. X
  264. X      PROJECTROOT = /usr/local/X11R5
  265. X
  266. X     TOP_INCLUDES = -I$(INCROOT)
  267. X
  268. X      CDEBUGFLAGS = -O
  269. X        CCOPTIONS = -pipe
  270. X
  271. X      ALLINCLUDES = $(INCLUDES) $(EXTRA_INCLUDES) $(TOP_INCLUDES) $(STD_INCLUDES)
  272. X       ALLDEFINES = $(ALLINCLUDES) $(STD_DEFINES) $(EXTRA_DEFINES) $(PROTO_DEFINES) $(DEFINES)
  273. X           CFLAGS = $(CDEBUGFLAGS) $(CCOPTIONS) $(ALLDEFINES)
  274. X        LINTFLAGS = $(LINTOPTS) -DLINT $(ALLDEFINES)
  275. X
  276. X           LDLIBS = $(SYS_LIBRARIES) $(EXTRA_LIBRARIES)
  277. X
  278. X        LDOPTIONS = $(CDEBUGFLAGS) $(CCOPTIONS) $(LOCAL_LDFLAGS) -L$(USRLIBDIR)
  279. X
  280. X   LDCOMBINEFLAGS = -X -r
  281. X      DEPENDFLAGS =
  282. X
  283. X        MACROFILE = sun.cf
  284. X           RM_CMD = $(RM) *.CKP *.ln *.BAK *.bak *.o core errs ,* *~ *.a .emacs_* tags TAGS make.log MakeOut
  285. X
  286. X    IMAKE_DEFINES =
  287. X
  288. X         IRULESRC = $(CONFIGDIR)
  289. X        IMAKE_CMD = $(IMAKE) -DUseInstalled -I$(IRULESRC) $(IMAKE_DEFINES)
  290. X
  291. X     ICONFIGFILES = $(IRULESRC)/Imake.tmpl $(IRULESRC)/Imake.rules \
  292. X            $(IRULESRC)/Project.tmpl $(IRULESRC)/site.def \
  293. X            $(IRULESRC)/$(MACROFILE) $(EXTRA_ICONFIGFILES)
  294. X
  295. X# -------------------------------------------------------------------------
  296. X# X Window System Build Parameters
  297. X# $XConsortium: Project.tmpl,v 1.138 91/09/10 09:02:12 rws Exp $
  298. X
  299. X# -------------------------------------------------------------------------
  300. X# X Window System make variables; this need to be coordinated with rules
  301. X
  302. X          PATHSEP = /
  303. X        USRLIBDIR = /usr/local/X11R5/lib
  304. X           BINDIR = /usr/local/X11R5/bin
  305. X          INCROOT = /usr/local/X11R5/include
  306. X     BUILDINCROOT = $(TOP)
  307. X      BUILDINCDIR = $(BUILDINCROOT)/X11
  308. X      BUILDINCTOP = ..
  309. X           INCDIR = $(INCROOT)/X11
  310. X           ADMDIR = /usr/adm
  311. X           LIBDIR = $(USRLIBDIR)/X11
  312. X        CONFIGDIR = $(LIBDIR)/config
  313. X       LINTLIBDIR = $(USRLIBDIR)/lint
  314. X
  315. X          FONTDIR = $(LIBDIR)/fonts
  316. X         XINITDIR = $(LIBDIR)/xinit
  317. X           XDMDIR = $(LIBDIR)/xdm
  318. X           TWMDIR = $(LIBDIR)/twm
  319. X          MANPATH = /usr/local/X11R5/man
  320. X    MANSOURCEPATH = $(MANPATH)/man
  321. X        MANSUFFIX = n
  322. X     LIBMANSUFFIX = 3
  323. X           MANDIR = $(MANSOURCEPATH)$(MANSUFFIX)
  324. X        LIBMANDIR = $(MANSOURCEPATH)$(LIBMANSUFFIX)
  325. X           NLSDIR = $(LIBDIR)/nls
  326. X        PEXAPIDIR = $(LIBDIR)/PEX
  327. X      XAPPLOADDIR = $(LIBDIR)/app-defaults
  328. X       FONTCFLAGS = -t
  329. X
  330. X     INSTAPPFLAGS = $(INSTDATFLAGS)
  331. X
  332. X            IMAKE = imake
  333. X           DEPEND = makedepend
  334. X              RGB = rgb
  335. X
  336. X            FONTC = bdftopcf
  337. X
  338. X        MKFONTDIR = mkfontdir
  339. X        MKDIRHIER = /bin/sh $(BINDIR)/mkdirhier
  340. X
  341. X        CONFIGSRC = $(TOP)/config
  342. X       DOCUTILSRC = $(TOP)/doc/util
  343. X        CLIENTSRC = $(TOP)/clients
  344. X          DEMOSRC = $(TOP)/demos
  345. X           LIBSRC = $(TOP)/lib
  346. X          FONTSRC = $(TOP)/fonts
  347. X       INCLUDESRC = $(TOP)/X11
  348. X        SERVERSRC = $(TOP)/server
  349. X          UTILSRC = $(TOP)/util
  350. X        SCRIPTSRC = $(UTILSRC)/scripts
  351. X       EXAMPLESRC = $(TOP)/examples
  352. X       CONTRIBSRC = $(TOP)/../contrib
  353. X           DOCSRC = $(TOP)/doc
  354. X           RGBSRC = $(TOP)/rgb
  355. X        DEPENDSRC = $(UTILSRC)/makedepend
  356. X         IMAKESRC = $(CONFIGSRC)
  357. X         XAUTHSRC = $(LIBSRC)/Xau
  358. X          XLIBSRC = $(LIBSRC)/X
  359. X           XMUSRC = $(LIBSRC)/Xmu
  360. X       TOOLKITSRC = $(LIBSRC)/Xt
  361. X       AWIDGETSRC = $(LIBSRC)/Xaw
  362. X       OLDXLIBSRC = $(LIBSRC)/oldX
  363. X      XDMCPLIBSRC = $(LIBSRC)/Xdmcp
  364. X      BDFTOSNFSRC = $(FONTSRC)/bdftosnf
  365. X      BDFTOSNFSRC = $(FONTSRC)/clients/bdftosnf
  366. X      BDFTOPCFSRC = $(FONTSRC)/clients/bdftopcf
  367. X     MKFONTDIRSRC = $(FONTSRC)/clients/mkfontdir
  368. X         FSLIBSRC = $(FONTSRC)/lib/fs
  369. X    FONTSERVERSRC = $(FONTSRC)/server
  370. X     EXTENSIONSRC = $(TOP)/extensions
  371. X         XILIBSRC = $(EXTENSIONSRC)/lib/xinput
  372. X      PHIGSLIBSRC = $(EXTENSIONSRC)/lib/PEX
  373. X
  374. X# $XConsortium: sunLib.tmpl,v 1.11 91/07/31 11:32:08 rws Exp $
  375. X
  376. XSHLIBLDFLAGS = -assert pure-text
  377. XPICFLAGS = -pic
  378. X
  379. X  DEPEXTENSIONLIB =
  380. X     EXTENSIONLIB = -lXext
  381. X
  382. X          DEPXLIB = $(DEPEXTENSIONLIB)
  383. X             XLIB = $(EXTENSIONLIB) -lX11
  384. X
  385. X        DEPXMULIB = $(USRLIBDIR)/libXmu.sa.$(SOXMUREV)
  386. X           XMULIB = -lXmu
  387. X
  388. X       DEPOLDXLIB =
  389. X          OLDXLIB = -loldX
  390. X
  391. X      DEPXTOOLLIB = $(USRLIBDIR)/libXt.sa.$(SOXTREV)
  392. X         XTOOLLIB = -lXt
  393. X
  394. X        DEPXAWLIB = $(USRLIBDIR)/libXaw.sa.$(SOXAWREV)
  395. X           XAWLIB = -lXaw
  396. X
  397. X        DEPXILIB =
  398. X           XILIB = -lXi
  399. X
  400. X        SOXLIBREV = 4.10
  401. X          SOXTREV = 4.10
  402. X         SOXAWREV = 5.0
  403. X        SOOLDXREV = 4.10
  404. X         SOXMUREV = 4.10
  405. X        SOXEXTREV = 4.10
  406. X      SOXINPUTREV = 4.10
  407. X
  408. X      DEPXAUTHLIB = $(USRLIBDIR)/libXau.a
  409. X         XAUTHLIB =  -lXau
  410. X      DEPXDMCPLIB = $(USRLIBDIR)/libXdmcp.a
  411. X         XDMCPLIB =  -lXdmcp
  412. X
  413. X        DEPPHIGSLIB = $(USRLIBDIR)/libphigs.a
  414. X           PHIGSLIB =  -lphigs
  415. X
  416. X       DEPXBSDLIB = $(USRLIBDIR)/libXbsd.a
  417. X          XBSDLIB =  -lXbsd
  418. X
  419. X LINTEXTENSIONLIB = $(LINTLIBDIR)/llib-lXext.ln
  420. X         LINTXLIB = $(LINTLIBDIR)/llib-lX11.ln
  421. X          LINTXMU = $(LINTLIBDIR)/llib-lXmu.ln
  422. X        LINTXTOOL = $(LINTLIBDIR)/llib-lXt.ln
  423. X          LINTXAW = $(LINTLIBDIR)/llib-lXaw.ln
  424. X           LINTXI = $(LINTLIBDIR)/llib-lXi.ln
  425. X        LINTPHIGS = $(LINTLIBDIR)/llib-lphigs.ln
  426. X
  427. X          DEPLIBS = $(DEPXAWLIB) $(DEPXMULIB) $(DEPXTOOLLIB) $(DEPXLIB)
  428. X
  429. X         DEPLIBS1 = $(DEPLIBS)
  430. X         DEPLIBS2 = $(DEPLIBS)
  431. X         DEPLIBS3 = $(DEPLIBS)
  432. X
  433. X# -------------------------------------------------------------------------
  434. X# Imake rules for building libraries, programs, scripts, and data files
  435. X# rules:  $XConsortium: Imake.rules,v 1.123 91/09/16 20:12:16 rws Exp $
  436. X
  437. X# -------------------------------------------------------------------------
  438. X# start of Imakefile
  439. X
  440. XWHERE :sh = (tmp=`echo /usr/openwin`;echo ${OPENWINHOME:=$tmp})
  441. X
  442. XCC = gcc
  443. XINCLUDES = -I${WHERE}/include
  444. XLOCAL_LIBRARIES = -L${WHERE}/lib
  445. X
  446. XSYS_LIBRARIES = -lxview -lolgx -lX11 -lm
  447. X
  448. XSRCS = xmines.c
  449. XOBJS = xmines.o
  450. X
  451. XCDEBUGFLAGS = -O4
  452. X
  453. X PROGRAM = xmines
  454. X
  455. Xall:: xmines
  456. X
  457. Xxmines: $(OBJS) $(DEPLIBS)
  458. X    $(RM) $@
  459. X    $(CC) -o $@ $(OBJS) $(LDOPTIONS) $(LOCAL_LIBRARIES) $(LDLIBS) $(EXTRA_LOAD_FLAGS)
  460. X
  461. Xinstall:: xmines
  462. X    @if [ -d $(DESTDIR)$(BINDIR) ]; then set +x; \
  463. X    else (set -x; $(MKDIRHIER) $(DESTDIR)$(BINDIR)); fi
  464. X    $(INSTALL) -c $(INSTPGMFLAGS)  xmines $(DESTDIR)$(BINDIR)
  465. X
  466. Xinstall.man:: xmines.man
  467. X    @if [ -d $(DESTDIR)$(MANDIR) ]; then set +x; \
  468. X    else (set -x; $(MKDIRHIER) $(DESTDIR)$(MANDIR)); fi
  469. X    $(INSTALL) -c $(INSTMANFLAGS) xmines.man $(DESTDIR)$(MANDIR)/xmines.$(MANSUFFIX)
  470. X
  471. Xdepend::
  472. X    $(DEPEND) $(DEPENDFLAGS) -s "# DO NOT DELETE" -- $(ALLDEFINES) -- $(SRCS)
  473. X
  474. Xlint:
  475. X    $(LINT) $(LINTFLAGS) $(SRCS) $(LINTLIBS)
  476. Xlint1:
  477. X    $(LINT) $(LINTFLAGS) $(FILE) $(LINTLIBS)
  478. X
  479. Xclean::
  480. X    $(RM) $(PROGRAM)
  481. X
  482. X# -------------------------------------------------------------------------
  483. X# common rules for all Makefiles - do not edit
  484. X
  485. Xemptyrule::
  486. X
  487. Xclean::
  488. X    $(RM_CMD) "#"*
  489. X
  490. XMakefile::
  491. X    -@if [ -f Makefile ]; then set -x; \
  492. X    $(RM) Makefile.bak; $(MV) Makefile Makefile.bak; \
  493. X    else exit 0; fi
  494. X    $(IMAKE_CMD) -DTOPDIR=$(TOP) -DCURDIR=$(CURRENT_DIR)
  495. X
  496. Xtags::
  497. X    $(TAGS) -w *.[ch]
  498. X    $(TAGS) -xw *.[ch] > TAGS
  499. X
  500. X# -------------------------------------------------------------------------
  501. X# empty rules for directories that do not have SUBDIRS - do not edit
  502. X
  503. Xinstall::
  504. X    @echo "install in $(CURRENT_DIR) done"
  505. X
  506. Xinstall.man::
  507. X    @echo "install.man in $(CURRENT_DIR) done"
  508. X
  509. XMakefiles::
  510. X
  511. Xincludes::
  512. X
  513. X# -------------------------------------------------------------------------
  514. X# dependencies generated by makedepend
  515. X
  516. END_OF_FILE
  517. if test 10220 -ne `wc -c <'Makefile'`; then
  518.     echo shar: \"'Makefile'\" unpacked with wrong size!
  519. fi
  520. # end of 'Makefile'
  521. fi
  522. if test -f 'xmines.c' -a "${1}" != "-c" ; then 
  523.   echo shar: Will not clobber existing file \"'xmines.c'\"
  524. else
  525. echo shar: Extracting \"'xmines.c'\" \(13496 characters\)
  526. sed "s/^X//" >'xmines.c' <<'END_OF_FILE'
  527. X#include <math.h>
  528. X#include <sys/types.h>
  529. X#include <sys/timeb.h>
  530. X#include <sys/time.h>
  531. X#include <signal.h>
  532. X#include <stdio.h>
  533. X#include <X11/Xlib.h>
  534. X#include <X11/Xutil.h>
  535. X#include <xview/xview.h>
  536. X#include <xview/panel.h>
  537. X#include <xview/frame.h>
  538. X#include <xview/canvas.h>
  539. X#include <xview/notice.h>
  540. X#include "xmines.h"
  541. X
  542. X#include "xmines.icons"
  543. X
  544. X#define CREATE_ICON(bits,width,height) XCreateBitmapFromData(display,RootWindow(display,screen),\
  545. X                    bits,width,height) 
  546. X#define PLACE_ICON(icon,wherey,wherex) XCopyPlane(display,icon,pmap,def_gc,0,0, \
  547. X                                          IC_WIDTH,IC_HEIGHT,wherex,wherey,1L)
  548. X/*#define DEBUG */
  549. X
  550. X#define POW(x,y)        pow((double)(x),(double)(y))
  551. X#define INITRAND        srandom(time((time_t *)0))
  552. X#define MAXRANDOM       2147483648 /* 2^31 */
  553. X#define RAND01          (((double)(random()))/MAXRANDOM)
  554. X#define FRAND(min,max)  (RAND01*((max)-(min))+(min))
  555. X#define RAND(min,max)   (int)FRAND(min,max)
  556. X
  557. X#ifndef lint
  558. Xstatic char     sccsid[] = "@(#)xmines,v0.1 by Manolis Lourakis.";
  559. Xstatic char     Copyright[] = "(c) 1992 Lourakis Manolis.\n";
  560. Xstatic char     Mail[] = "lourakis@csd.uch.gr";
  561. X#endif
  562. X
  563. X
  564. Xextern char     *optarg ;
  565. Xextern int      optind ;
  566. X
  567. Xvoid canvas_event_proc(Xv_Window, Event*); 
  568. Xvoid canvas_repaint_proc(void);
  569. Xvoid settime(void);
  570. Xvoid finish(char *);
  571. X
  572. X
  573. XDisplay *display;
  574. XVisual *visual;
  575. Xint screen;
  576. XGC def_gc;
  577. X
  578. XFrame frame;
  579. XPanel panel1,panel2;
  580. XPanel_item pmsg,smsg,tmsg;
  581. XCanvas canvas;
  582. X
  583. XWindow dr_win;
  584. XPixmap pmap,icons[NUM_ICONS];
  585. Xcell *Cells;
  586. Xchar buff[256];
  587. X
  588. Xint quit_proc(),init();
  589. Xint place_tiles(int,int);
  590. Xint mark_tile(int,int);
  591. Xint open_tile(int,int);
  592. Xint auto_open(int,int);
  593. X
  594. Xint mines_2_go,closed_tiles,playing,checks,secs;
  595. Xint width=HORIZ_CELLS,
  596. X    height=VERT_CELLS,
  597. X    mines=NUM_MINES,
  598. X    quantum=QUANTUM;
  599. X
  600. Xstruct itimerval timer;
  601. Xint first_tile;
  602. X
  603. Xvoid main(int argc, char *argv[]){
  604. X  int ret,tmp;
  605. X  register int i,j;
  606. X  int   errflag = 0,gc;
  607. X  XWMHints        wm_hints;
  608. X  XClassHint      class_hints;
  609. X  XTextProperty   windowName, iconName;
  610. X  char           *window_name = "Xmines";
  611. X  char           *icon_name = "Xmines";
  612. X  
  613. X  xv_init (XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL);
  614. X  while ((gc = getopt(argc, argv, "w:h:m:q:")) != EOF)
  615. X  switch (gc) {
  616. X      case 'w' :
  617. X              tmp=atoi(optarg);
  618. X          if(tmp>0) width=tmp;
  619. X              break ;
  620. X      case 'h' :
  621. X          tmp=atoi(optarg);
  622. X          if(tmp>0) height=tmp;
  623. X              break ;
  624. X      case 'm' :
  625. X          tmp=atoi(optarg);
  626. X          if(tmp>0) mines=tmp;
  627. X              break;
  628. X      case 'q' :
  629. X          tmp=atoi(optarg);
  630. X          if(tmp>0) quantum=tmp;
  631. X          break;
  632. X      case '?' :
  633. X              errflag++;
  634. X              break ;
  635. X  }
  636. X  if(errflag){
  637. X    fprintf(stderr,
  638. X    "Usage: xmines [-w width] [-h height] [-m mines] [-q quantum]\n");
  639. X    exit(1);
  640. X  }
  641. X  if(mines>=width*height){
  642. X     fprintf(stderr,"xmines: Too many mines, using defaults\n");
  643. X     width=HORIZ_CELLS;
  644. X     height=VERT_CELLS;
  645. X     mines=NUM_MINES;
  646. X  }
  647. X  
  648. X  Cells=(cell *)malloc(width*height*sizeof(cell));
  649. X  if(Cells==NULL){
  650. X     fprintf(stderr,"xmines: malloc failed\n");
  651. X     exit(1);
  652. X  }
  653. X
  654. X  frame = (Frame) xv_create (NULL, FRAME,
  655. X                 FRAME_LABEL,PROG_NAME,
  656. X                 XV_WIDTH,width*IC_WIDTH,
  657. X                             NULL);
  658. X  display = (Display *)xv_get (frame, XV_DISPLAY);
  659. X  screen = DefaultScreen(display);
  660. X  visual = DefaultVisual(display, screen);
  661. X  def_gc = DefaultGC(display, screen);
  662. X
  663. X  panel1 = xv_create (frame, PANEL,
  664. X              PANEL_LAYOUT,PANEL_HORIZONTAL,
  665. X                      NULL);
  666. X
  667. X       xv_create (panel1, PANEL_BUTTON,
  668. X                   PANEL_LABEL_STRING, "Quit",
  669. X                   PANEL_NOTIFY_PROC, quit_proc,
  670. X                   NULL);
  671. X    xv_create (panel1, PANEL_BUTTON,
  672. X                    PANEL_LABEL_STRING, "New",
  673. X                    PANEL_NOTIFY_PROC, init,
  674. X                    NULL);
  675. X    tmsg=xv_create (panel1, PANEL_MESSAGE,
  676. X            PANEL_LABEL_STRING,"Time:  0:0",
  677. X            PANEL_LABEL_BOLD,TRUE,
  678. X                NULL);
  679. X    window_fit_height(panel1);
  680. X  panel2 = xv_create (frame, PANEL,
  681. X                      PANEL_LAYOUT,PANEL_HORIZONTAL,
  682. X                      NULL);
  683. X
  684. X    sprintf(buff,"Mines: %d\n",mines);
  685. X     xv_create(panel2,PANEL_MESSAGE,
  686. X                   PANEL_LABEL_STRING,buff,
  687. X           PANEL_LABEL_BOLD,TRUE,
  688. X                   NULL);
  689. X    sprintf(buff,"Checks: 0");
  690. X    pmsg=xv_create(panel2,PANEL_MESSAGE,
  691. X           PANEL_LABEL_STRING,buff,
  692. X           PANEL_LABEL_BOLD,TRUE,
  693. X           NULL);
  694. X    smsg=xv_create(panel2,PANEL_MESSAGE,
  695. X                   XV_SHOW, FALSE,
  696. X                   NULL);
  697. X    window_fit_height(panel2);
  698. X            
  699. X  canvas = xv_create (frame, CANVAS,
  700. X            CANVAS_X_PAINT_WINDOW, TRUE,
  701. X            XV_WIDTH,IC_WIDTH*width,
  702. X            XV_HEIGHT,IC_HEIGHT*height,
  703. X            WIN_EVENT_PROC, canvas_event_proc,
  704. X            CANVAS_REPAINT_PROC, canvas_repaint_proc,
  705. X            NULL);
  706. X  xv_set (canvas_paint_window (canvas), WIN_CONSUME_EVENTS,
  707. X      WIN_MOUSE_BUTTONS,
  708. X         NULL,
  709. X      WIN_EVENT_PROC, canvas_event_proc,
  710. X      NULL);
  711. X
  712. X  dr_win = xv_get(canvas_paint_window (canvas), XV_XID);
  713. X
  714. X  pmap=XCreatePixmap(display,dr_win,IC_WIDTH*width,
  715. X                     IC_HEIGHT*height,DefaultDepth(display,screen)); 
  716. X
  717. X  icons[EMPTY]=CREATE_ICON(empty_bits,empty_width,empty_height);
  718. X  icons[ONE]=CREATE_ICON(one_bits,one_width,one_height);
  719. X  icons[TWO]=CREATE_ICON(two_bits,two_width,two_height);
  720. X  icons[THREE]=CREATE_ICON(three_bits,three_width,three_height);
  721. X  icons[FOUR]=CREATE_ICON(four_bits,four_width,four_height);
  722. X  icons[FIVE]=CREATE_ICON(five_bits,five_width,five_height);
  723. X  icons[SIX]=CREATE_ICON(six_bits,six_width,six_height);
  724. X  icons[SEVEN]=CREATE_ICON(seven_bits,seven_width,seven_height); 
  725. X  icons[EIGHT]=CREATE_ICON(eight_bits,eight_width,eight_height);
  726. X  icons[CLOSED]=CREATE_ICON(closed_bits,closed_width,closed_height);
  727. X  icons[MARKED]=CREATE_ICON(marked_bits,marked_width,marked_height);
  728. X  icons[MINE]=CREATE_ICON(mine_bits,mine_width,mine_height);
  729. X  icons[QUEST]=CREATE_ICON(quest_bits,quest_width,quest_height);
  730. X  
  731. X  if (XStringListToTextProperty(&window_name, 1, &windowName) == 0) {
  732. X    fprintf(stderr, "structure allocation for windowName failed\n");
  733. X    exit(1);
  734. X  }
  735. X  if (XStringListToTextProperty(&icon_name, 1, &iconName) == 0) {
  736. X    fprintf(stderr, "structure allocation for windowName failed\n");
  737. X    exit(1);
  738. X  }
  739. X  wm_hints.initial_state = NormalState;
  740. X  wm_hints.input = True;
  741. X  wm_hints.icon_pixmap = icons[MINE];
  742. X  wm_hints.flags = StateHint | IconPixmapHint | InputHint;
  743. X
  744. X  class_hints.res_name = "Xmines";
  745. X  class_hints.res_class = "Games";
  746. X
  747. X  XSetWMProperties(display, xv_get(frame,XV_XID), &windowName, &iconName, argv,
  748. X                   argc, NULL, &wm_hints, &class_hints);
  749. X
  750. X  
  751. X  timer.it_interval.tv_sec=quantum;
  752. X  timer.it_interval.tv_usec=0;
  753. X
  754. X  timer.it_value.tv_sec=quantum;
  755. X  timer.it_value.tv_usec=0;
  756. X
  757. X  init();
  758. X  window_fit(frame);
  759. X  xv_main_loop(frame);
  760. X}
  761. X
  762. X
  763. Xvoid
  764. Xcanvas_repaint_proc ()
  765. X{ 
  766. X  XCopyArea(display,pmap,dr_win,def_gc,0,0,
  767. X             width*IC_WIDTH,height*IC_HEIGHT,0,0);
  768. X}
  769. X
  770. Xvoid
  771. Xcanvas_event_proc (Xv_Window window, Event *event)
  772. X{
  773. Xint x,y;
  774. Xcell *aux;
  775. X
  776. X  if(!playing) return;
  777. X  switch (event_xevent (event)->type)
  778. X    {
  779. X    case ButtonRelease:
  780. X      get_cell(event_xevent (event)->xbutton.x,event_xevent (event)->xbutton.y,
  781. X                        &x,&y);
  782. X      switch (event_xevent (event)->xbutton.button){
  783. X    case Button1: 
  784. X          if(open_tile(x,y)){
  785. X            XCopyArea(display,pmap,dr_win,def_gc,0,0,
  786. X               width*IC_WIDTH,height*IC_HEIGHT,0,0);
  787. X           }
  788. X          if(mines_2_go==0 && closed_tiles==mines)
  789. X           finish("  Successful");
  790. X      break;
  791. X    case Button2:
  792. X      aux=Cells+x*width+y;
  793. X      if(aux->out_state!=CLOSED) break;
  794. X      PLACE_ICON(icons[QUEST],x*IC_WIDTH,
  795. X                              y*IC_HEIGHT);
  796. X          aux->out_state=QUEST;
  797. X      XCopyArea(display,pmap,dr_win,def_gc,0,0,
  798. X               width*IC_WIDTH,height*IC_HEIGHT,0,0);
  799. X      break;
  800. X    case Button3:
  801. X          if(mark_tile(x,y)){
  802. X             XCopyArea(display,pmap,dr_win,def_gc,0,0,
  803. X                width*IC_WIDTH,height*IC_HEIGHT,0,0);
  804. X          }
  805. X      if(mines_2_go==0 && closed_tiles==mines)
  806. X        finish("  Successful");
  807. X
  808. X      break;
  809. X    }
  810. X      break;
  811. X    default:
  812. X      break;
  813. X    }
  814. X}
  815. X
  816. Xerror(char *msg)
  817. X{
  818. X fprintf(stderr,"xmines: %s\n",msg);
  819. X exit(1);
  820. X}
  821. X
  822. Xget_cell(int where_x,int where_y,int *i,int *j)
  823. X{
  824. X register int k;
  825. X
  826. X for(k=0;k*IC_WIDTH<where_x;k++)
  827. X      ;
  828. X *j=k-1;
  829. X for(k=0;k*IC_HEIGHT<where_y;k++)
  830. X          ;
  831. X *i=k-1;
  832. X}
  833. X
  834. Xquit_proc()
  835. X{
  836. X  int          result;
  837. X
  838. X  result = notice_prompt(panel1, NULL,
  839. X        NOTICE_MESSAGE_STRINGS,
  840. X                "Realy Quit?",
  841. X                "Press YES to confirm",
  842. X                "Press NO to cancel",
  843. X                NULL,
  844. X        NOTICE_BUTTON_YES,      "YES",
  845. X        NOTICE_BUTTON_NO,       "NO",
  846. X        NULL);
  847. X
  848. X  switch(result) {
  849. X        case NOTICE_YES:
  850. X            exit(0);
  851. X            break;
  852. X        case NOTICE_NO:
  853. X            break;
  854. X        case NOTICE_FAILED:
  855. X        default: break;
  856. X    }
  857. X}
  858. X
  859. X
  860. Xplace_tiles(int len,int num_mines)
  861. X{
  862. X register int i,j;
  863. X int where,aux,cnt;
  864. X
  865. X for(i=0;i<len;i++){
  866. X  (Cells+i)->in_state=EMPTY;
  867. X  (Cells+i)->out_state=CLOSED;
  868. X }
  869. X INITRAND;
  870. X
  871. X for(i=0;i<num_mines; ){
  872. X   aux=RAND(0,len);
  873. X   if((Cells+aux)->in_state==MINE) continue;
  874. X   (Cells+aux)->in_state=MINE;
  875. X   i++;
  876. X }
  877. X
  878. X for(j=0;j<width;j++)
  879. X  for(i=0;i<height;i++){
  880. X
  881. X     where=i*width+j;
  882. X     if((Cells+where)->in_state==MINE) continue;
  883. X
  884. X    cnt=0;
  885. X    if(i-1>=0){
  886. X       if((Cells+where-width)->in_state==MINE) cnt++;
  887. X    if(j-1>=0)
  888. X      if((Cells+where-width-1)->in_state==MINE) cnt++;
  889. X    if(j+1<width)
  890. X      if((Cells+where-width+1)->in_state==MINE) cnt++;
  891. X    }
  892. X    if(i+1<height){
  893. X       if((Cells+where+width)->in_state==MINE) cnt++;
  894. X    if(j-1>=0)
  895. X      if((Cells+where+width-1)->in_state==MINE) cnt++;
  896. X    if(j+1<width)
  897. X      if((Cells+where+width+1)->in_state==MINE) cnt++;
  898. X    }
  899. X    if(j-1>=0)
  900. X       if((Cells+where-1)->in_state==MINE) cnt++;
  901. X      
  902. X    if(j+1<width)
  903. X       if((Cells+where+1)->in_state==MINE) cnt++;
  904. X    (Cells+where)->in_state=cnt;
  905. X }
  906. X
  907. X#ifdef DEBUG
  908. X for(i=0;i<height;i++){
  909. X  for(j=0;j<width;j++)
  910. X   if((Cells+i*width+j)->in_state==MINE) printf("* "); else
  911. X   printf("%d ",(Cells+i*width+j)->in_state);
  912. X  printf("\n");
  913. X }
  914. X#endif
  915. X}   
  916. X   
  917. X
  918. Xopen_tile(int i,int j)
  919. X{
  920. X cell *aux;
  921. X
  922. X if (first_tile) {
  923. X      signal(SIGALRM,settime);
  924. X      setitimer(ITIMER_REAL,&timer,NULL);
  925. X      first_tile=0;
  926. X }
  927. X aux=Cells+i*width+j;
  928. X if(aux->out_state!=CLOSED && aux->out_state!=MARKED && aux->out_state!=QUEST) 
  929. X    return FALSE;
  930. X
  931. X if(aux->in_state==MINE){
  932. X         finish("  Game Over");
  933. X  }
  934. X  else if(aux->in_state==EMPTY)
  935. X           return auto_open(i,j); 
  936. X       else {
  937. X      if(aux->out_state==MARKED){
  938. X        checks--;
  939. X        sprintf(buff,"Checks: %d\n",checks);
  940. X        xv_set(pmsg,PANEL_LABEL_STRING,buff,NULL);
  941. X       }
  942. X
  943. X          PLACE_ICON(icons[aux->in_state],i*IC_WIDTH,
  944. X                              j*IC_HEIGHT);
  945. X          aux->out_state=aux->in_state;
  946. X          closed_tiles--;
  947. X          return TRUE;
  948. X       }
  949. X}
  950. X
  951. Xmark_tile(int i,int j)
  952. X{
  953. X cell *aux;
  954. X
  955. X aux=Cells+i*width+j;
  956. X
  957. X if(aux->out_state==MARKED || aux->out_state!=CLOSED && aux->out_state!=QUEST)
  958. X         return FALSE;
  959. X
  960. X PLACE_ICON(icons[MARKED],i*IC_WIDTH,j*IC_HEIGHT);
  961. X aux->out_state=MARKED;
  962. X checks++;
  963. X
  964. X if(aux->in_state==MINE)
  965. X    mines_2_go--;
  966. X
  967. X sprintf(buff,"Checks: %d\n",checks);
  968. X xv_set(pmsg,PANEL_LABEL_STRING,buff,NULL);
  969. X return TRUE;
  970. X}
  971. X
  972. Xauto_open(int i,int j)
  973. X{
  974. X int where;
  975. X cell *ptr;
  976. X
  977. X  ptr=Cells+i*width+j;
  978. X  if(ptr->out_state!=CLOSED && ptr->out_state!=MARKED && ptr->out_state!=QUEST
  979. X         || ptr->in_state>EIGHT) return FALSE;
  980. X
  981. X  if(ptr->out_state==MARKED){
  982. X        checks--;
  983. X        sprintf(buff,"Checks: %d\n",checks);
  984. X        xv_set(pmsg,PANEL_LABEL_STRING,buff,NULL);
  985. X  }
  986. X
  987. X  PLACE_ICON(icons[ptr->in_state],i*IC_WIDTH,j*IC_HEIGHT);
  988. X  ptr->out_state=ptr->in_state;
  989. X  closed_tiles--;
  990. X   if(ptr->in_state==EMPTY){
  991. X     if(i-1>=0){ 
  992. X    auto_open(i-1,j);
  993. X    if(j-1>=0) auto_open(i-1,j-1);
  994. X    if(j+1<width) auto_open(i-1,j+1);
  995. X     }
  996. X     if(i+1<height){
  997. X     auto_open(i+1,j);
  998. X     if(j-1>=0) auto_open(i+1,j-1);
  999. X        if(j+1<width) auto_open(i+1,j+1);
  1000. X     }
  1001. X
  1002. X     if(j-1>=0) auto_open(i,j-1);
  1003. X     if(j+1<width) auto_open(i,j+1);
  1004. X
  1005. X     return TRUE;
  1006. X  }
  1007. X}
  1008. X   
  1009. Xint init(){
  1010. Xregister int i;
  1011. Xint j;
  1012. X
  1013. X  place_tiles(width*height,mines);
  1014. X  mines_2_go=mines;
  1015. X  playing=TRUE;
  1016. X  j=closed_tiles=width*height;
  1017. X  checks=0;
  1018. X  for(i=0;i<j;i++)
  1019. X#ifndef DEBUG
  1020. X     PLACE_ICON(icons[CLOSED],(i/width)*IC_WIDTH,(i%width)*IC_HEIGHT);
  1021. X#else
  1022. X     PLACE_ICON(icons[(Cells+i)->in_state],(i/width)*IC_WIDTH,(i%width)*IC_HEIGHT);
  1023. X#endif
  1024. X
  1025. X  XCopyArea(display,pmap,dr_win,def_gc,0,0,
  1026. X             width*IC_WIDTH,height*IC_HEIGHT,0,0);
  1027. X  xv_set(smsg,XV_SHOW,FALSE,NULL);
  1028. X  xv_set(tmsg,PANEL_LABEL_STRING,"Time:  0:0",NULL);
  1029. X  xv_set(pmsg,PANEL_LABEL_STRING,"Checks: 0",NULL);
  1030. X  secs=0;
  1031. X  first_tile=1;
  1032. X  signal(SIGALRM,SIG_IGN);
  1033. X}
  1034. X   
  1035. X
  1036. Xshow_placements(int len){
  1037. X register int i;
  1038. X
  1039. X for(i=0;i<len;i++)
  1040. X    if((Cells+i)->in_state==MINE) PLACE_ICON(icons[MINE],(i/width)*IC_WIDTH,
  1041. X                        (i%width)*IC_HEIGHT);
  1042. X XCopyArea(display,pmap,dr_win,def_gc,0,0,
  1043. X             width*IC_WIDTH,height*IC_HEIGHT,0,0);
  1044. X}
  1045. X
  1046. Xvoid settime(void)
  1047. X{
  1048. X  secs+=quantum;
  1049. X  sprintf(buff,"Time:  %2d:%2d",secs/60,secs%60);
  1050. X  xv_set(tmsg,PANEL_LABEL_STRING,buff,NULL);
  1051. X}
  1052. X
  1053. Xvoid finish(char *result)
  1054. X{
  1055. X    playing=FALSE;
  1056. X    show_placements(width*height);
  1057. X        xv_set(smsg,PANEL_LABEL_STRING,result,
  1058. X                    XV_SHOW,TRUE,
  1059. X                    NULL);
  1060. X     getitimer(ITIMER_REAL,&timer);
  1061. X     secs+=quantum-timer.it_value.tv_sec;
  1062. X     sprintf(buff,"Time:  %2d:%2d",secs/60,secs%60);
  1063. X         xv_set(tmsg,PANEL_LABEL_STRING,buff,NULL);
  1064. X         signal(SIGALRM,SIG_IGN);
  1065. X}
  1066. X
  1067. END_OF_FILE
  1068. if test 13496 -ne `wc -c <'xmines.c'`; then
  1069.     echo shar: \"'xmines.c'\" unpacked with wrong size!
  1070. fi
  1071. # end of 'xmines.c'
  1072. fi
  1073. if test -f 'xmines.h' -a "${1}" != "-c" ; then 
  1074.   echo shar: Will not clobber existing file \"'xmines.h'\"
  1075. else
  1076. echo shar: Extracting \"'xmines.h'\" \(572 characters\)
  1077. sed "s/^X//" >'xmines.h' <<'END_OF_FILE'
  1078. X#define PROG_NAME    "Xmines"
  1079. X
  1080. X#define HORIZ_CELLS  10
  1081. X#define VERT_CELLS   10
  1082. X#define NUM_MINES    15 
  1083. X#define IC_WIDTH   32
  1084. X#define IC_HEIGHT  32
  1085. X
  1086. X#define EMPTY   0
  1087. X#define ONE     1
  1088. X#define TWO     2
  1089. X#define THREE   3
  1090. X#define FOUR    4
  1091. X#define FIVE     5
  1092. X#define SIX    6
  1093. X#define SEVEN    7
  1094. X#define EIGHT   8
  1095. X#define CLOSED  9
  1096. X#define MARKED  10 
  1097. X#define MINE    11 
  1098. X#define QUEST   12
  1099. X#define NUM_ICONS 13 
  1100. X
  1101. X
  1102. X#define FALSE      0
  1103. X#define TRUE       1
  1104. X
  1105. X#define QUANTUM   5 
  1106. X
  1107. X
  1108. Xtypedef struct _cell {
  1109. X    int in_state;  /* core state */
  1110. X    int out_state; /* displayed state */
  1111. X} cell;
  1112. END_OF_FILE
  1113. if test 572 -ne `wc -c <'xmines.h'`; then
  1114.     echo shar: \"'xmines.h'\" unpacked with wrong size!
  1115. fi
  1116. # end of 'xmines.h'
  1117. fi
  1118. if test -f 'xmines.icons' -a "${1}" != "-c" ; then 
  1119.   echo shar: Will not clobber existing file \"'xmines.icons'\"
  1120. else
  1121. echo shar: Extracting \"'xmines.icons'\" \(13143 characters\)
  1122. sed "s/^X//" >'xmines.icons' <<'END_OF_FILE'
  1123. X#define closed_width 32
  1124. X#define closed_height 32
  1125. Xstatic char closed_bits[] = {
  1126. X   0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0xe0, 0x05, 0x00, 0x00, 0xd0,
  1127. X   0xf9, 0xff, 0xff, 0xaf, 0xf9, 0xff, 0xff, 0xdf, 0xf9, 0xff, 0xff, 0xaf,
  1128. X   0xf9, 0xff, 0xff, 0xdf, 0xf9, 0xff, 0xff, 0xaf, 0xf9, 0xff, 0xff, 0xdf,
  1129. X   0xf9, 0xff, 0xff, 0xaf, 0xf9, 0xff, 0xff, 0xdf, 0xf9, 0xff, 0xff, 0xaf,
  1130. X   0xf9, 0xff, 0xff, 0xdf, 0xf9, 0xff, 0xff, 0xaf, 0xf9, 0xff, 0xff, 0xdf,
  1131. X   0xf9, 0xff, 0xff, 0xaf, 0xf9, 0xff, 0xff, 0xdf, 0xf9, 0xff, 0xff, 0xaf,
  1132. X   0xf9, 0xff, 0xff, 0xdf, 0xf9, 0xff, 0xff, 0xaf, 0xf9, 0xff, 0xff, 0xdf,
  1133. X   0xf9, 0xff, 0xff, 0xaf, 0xf9, 0xff, 0xff, 0xdf, 0xf9, 0xff, 0xff, 0xaf,
  1134. X   0xf9, 0xff, 0xff, 0xdf, 0xf9, 0xff, 0xff, 0xaf, 0xf9, 0xff, 0xff, 0xdf,
  1135. X   0xf9, 0xff, 0xff, 0xaf, 0xa9, 0xaa, 0xaa, 0xda, 0x55, 0x55, 0x55, 0xb5,
  1136. X   0xab, 0xaa, 0xaa, 0xea, 0xff, 0xff, 0xff, 0xff};
  1137. X#define eight_width 32
  1138. X#define eight_height 32
  1139. Xstatic char eight_bits[] = {
  1140. X   0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80,
  1141. X   0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80,
  1142. X   0x01, 0x00, 0x00, 0x80, 0x01, 0xf0, 0x03, 0x80, 0x01, 0xf0, 0x0f, 0x80,
  1143. X   0x01, 0x0c, 0x1e, 0x80, 0x01, 0x0e, 0x1c, 0x80, 0x01, 0x0e, 0x1c, 0x80,
  1144. X   0x01, 0x1e, 0x1c, 0x80, 0x01, 0x3e, 0x0e, 0x80, 0x01, 0xfe, 0x0f, 0x80,
  1145. X   0x01, 0xfc, 0x03, 0x80, 0x01, 0xf0, 0x0f, 0x80, 0x01, 0xfc, 0x1f, 0x80,
  1146. X   0x01, 0x0e, 0x1f, 0x80, 0x01, 0x0e, 0x3e, 0x80, 0x01, 0x0e, 0x3c, 0x80,
  1147. X   0x01, 0x0e, 0x1c, 0x80, 0x01, 0x0e, 0x1c, 0x80, 0x01, 0x1e, 0x0f, 0x80,
  1148. X   0x01, 0xfc, 0x03, 0x80, 0x01, 0xf0, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80,
  1149. X   0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80,
  1150. X   0x01, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff};
  1151. X#define empty_width 32
  1152. X#define empty_height 32
  1153. Xstatic char empty_bits[] = {
  1154. X   0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80,
  1155. X   0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80,
  1156. X   0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80,
  1157. X   0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80,
  1158. X   0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80,
  1159. X   0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80,
  1160. X   0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80,
  1161. X   0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80,
  1162. X   0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80,
  1163. X   0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80,
  1164. X   0x01, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff};
  1165. X#define five_width 32
  1166. X#define five_height 32
  1167. Xstatic char five_bits[] = {
  1168. X   0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80,
  1169. X   0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80,
  1170. X   0x01, 0x00, 0x00, 0x80, 0x01, 0xf0, 0x3f, 0x80, 0x01, 0xf8, 0x1f, 0x80,
  1171. X   0x01, 0xf8, 0x0f, 0x80, 0x01, 0xf8, 0x07, 0x80, 0x01, 0x08, 0x00, 0x80,
  1172. X   0x01, 0x08, 0x00, 0x80, 0x01, 0x08, 0x00, 0x80, 0x01, 0xf8, 0x0f, 0x80,
  1173. X   0x01, 0x18, 0x0f, 0x80, 0x01, 0x08, 0x1e, 0x80, 0x01, 0x08, 0x1e, 0x80,
  1174. X   0x01, 0x00, 0x3c, 0x80, 0x01, 0x18, 0x3c, 0x80, 0x01, 0x3c, 0x3c, 0x80,
  1175. X   0x01, 0x3e, 0x1e, 0x80, 0x01, 0x1c, 0x1e, 0x80, 0x01, 0x0c, 0x0f, 0x80,
  1176. X   0x01, 0xf0, 0x01, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80,
  1177. X   0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80,
  1178. X   0x01, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff};
  1179. X#define four_width 32
  1180. X#define four_height 32
  1181. Xstatic char four_bits[] = {
  1182. X   0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80,
  1183. X   0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x04, 0x80,
  1184. X   0x01, 0x00, 0x04, 0x80, 0x01, 0x00, 0x07, 0x80, 0x01, 0x80, 0x07, 0x80,
  1185. X   0x01, 0xc0, 0x07, 0x80, 0x01, 0xc0, 0x07, 0x80, 0x01, 0xa0, 0x07, 0x80,
  1186. X   0x01, 0xb0, 0x07, 0x80, 0x01, 0x98, 0x07, 0x80, 0x01, 0x9c, 0x07, 0x80,
  1187. X   0x01, 0x8c, 0x07, 0x80, 0x01, 0x83, 0x07, 0x80, 0x01, 0x83, 0x07, 0x80,
  1188. X   0x01, 0xff, 0x3f, 0x80, 0x01, 0xff, 0x3f, 0x80, 0x01, 0x80, 0x07, 0x80,
  1189. X   0x01, 0x80, 0x07, 0x80, 0x01, 0x80, 0x07, 0x80, 0x01, 0xe0, 0x3f, 0x80,
  1190. X   0x01, 0xe0, 0x3f, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80,
  1191. X   0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80,
  1192. X   0x01, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff};
  1193. X#define marked_width 32
  1194. X#define marked_height 32
  1195. Xstatic char marked_bits[] = {
  1196. X   0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0xe0, 0x05, 0x00, 0x00, 0xd0,
  1197. X   0xf9, 0xff, 0xff, 0xaf, 0xf9, 0xff, 0xff, 0xdf, 0xf9, 0xff, 0xff, 0xaf,
  1198. X   0xf9, 0xff, 0xff, 0xdf, 0xf9, 0xff, 0x3f, 0xae, 0xf9, 0xff, 0x3f, 0xde,
  1199. X   0xf9, 0xff, 0x1f, 0xaf, 0xf9, 0xff, 0x1f, 0xdf, 0xf9, 0xff, 0x8f, 0xaf,
  1200. X   0xf9, 0xff, 0x8f, 0xdf, 0xf9, 0xff, 0xc7, 0xaf, 0xf9, 0xff, 0xc7, 0xdf,
  1201. X   0xf9, 0xf0, 0xe3, 0xaf, 0xf9, 0xe1, 0xe3, 0xdf, 0xf9, 0xc3, 0xf1, 0xaf,
  1202. X   0xf9, 0x87, 0xf1, 0xdf, 0xf9, 0x0f, 0xf8, 0xaf, 0xf9, 0x1f, 0xf8, 0xdf,
  1203. X   0xf9, 0x3f, 0xfc, 0xaf, 0xf9, 0x7f, 0xfc, 0xdf, 0xf9, 0xff, 0xfe, 0xaf,
  1204. X   0xf9, 0xff, 0xff, 0xdf, 0xf9, 0xff, 0xff, 0xaf, 0xf9, 0xff, 0xff, 0xdf,
  1205. X   0xf9, 0xff, 0xff, 0xaf, 0xa9, 0xaa, 0xaa, 0xda, 0x55, 0x55, 0x55, 0xb5,
  1206. X   0xab, 0xaa, 0xaa, 0xea, 0xff, 0xff, 0xff, 0xff};
  1207. X#define mine_width 32
  1208. X#define mine_height 32
  1209. Xstatic char mine_bits[] = {
  1210. X   0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80,
  1211. X   0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80,
  1212. X   0x41, 0xec, 0x00, 0x80, 0x01, 0x12, 0x03, 0x80, 0x01, 0x12, 0x03, 0x80,
  1213. X   0x81, 0x0d, 0x03, 0x80, 0x01, 0x80, 0x07, 0x80, 0x01, 0x80, 0x07, 0x80,
  1214. X   0x41, 0x82, 0x07, 0x80, 0x01, 0xf0, 0x3f, 0x80, 0x01, 0xf0, 0x3f, 0x80,
  1215. X   0x01, 0xf0, 0x3f, 0x80, 0x01, 0xfc, 0xff, 0x80, 0x01, 0xfc, 0xe7, 0x80,
  1216. X   0x01, 0xfc, 0xe7, 0x80, 0x01, 0xfc, 0xe7, 0x80, 0x01, 0xfc, 0xe7, 0x80,
  1217. X   0x01, 0xfc, 0xe7, 0x80, 0x01, 0xf0, 0x3b, 0x80, 0x01, 0xf0, 0x3f, 0x80,
  1218. X   0x01, 0xf0, 0x3f, 0x80, 0x01, 0x80, 0x07, 0x80, 0x01, 0x00, 0x00, 0x80,
  1219. X   0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80,
  1220. X   0x01, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff};
  1221. X#define nine_width 32
  1222. X#define nine_height 32
  1223. Xstatic char nine_bits[] = {
  1224. X   0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80,
  1225. X   0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80,
  1226. X   0x01, 0xc0, 0x01, 0x80, 0x01, 0x78, 0x0f, 0x80, 0x01, 0x3c, 0x1e, 0x80,
  1227. X   0x01, 0x3e, 0x3c, 0x80, 0x01, 0x1e, 0x3c, 0x80, 0x01, 0x1e, 0x78, 0x80,
  1228. X   0x01, 0x1e, 0x78, 0x80, 0x01, 0x3e, 0x7c, 0x80, 0x01, 0x3e, 0x7e, 0x80,
  1229. X   0x01, 0xfc, 0x7b, 0x80, 0x01, 0xf0, 0x78, 0x80, 0x01, 0x00, 0x78, 0x80,
  1230. X   0x01, 0x00, 0x78, 0x80, 0x01, 0x0c, 0x38, 0x80, 0x01, 0x1e, 0x3c, 0x80,
  1231. X   0x01, 0x1e, 0x1c, 0x80, 0x01, 0x1e, 0x1e, 0x80, 0x01, 0x0c, 0x0f, 0x80,
  1232. X   0x01, 0xf8, 0x07, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80,
  1233. X   0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80,
  1234. X   0x01, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff};
  1235. X#define one_width 32
  1236. X#define one_height 32
  1237. Xstatic char one_bits[] = {
  1238. X   0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80,
  1239. X   0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80,
  1240. X   0x01, 0x00, 0x02, 0x80, 0x01, 0x80, 0x03, 0x80, 0x01, 0xf8, 0x03, 0x80,
  1241. X   0x01, 0xf8, 0x03, 0x80, 0x01, 0xc0, 0x03, 0x80, 0x01, 0xc0, 0x03, 0x80,
  1242. X   0x01, 0xc0, 0x03, 0x80, 0x01, 0xc0, 0x03, 0x80, 0x01, 0xc0, 0x03, 0x80,
  1243. X   0x01, 0xc0, 0x03, 0x80, 0x01, 0xc0, 0x03, 0x80, 0x01, 0xc0, 0x03, 0x80,
  1244. X   0x01, 0xc0, 0x03, 0x80, 0x01, 0xc0, 0x03, 0x80, 0x01, 0xc0, 0x03, 0x80,
  1245. X   0x01, 0xc0, 0x03, 0x80, 0x01, 0xc0, 0x03, 0x80, 0x01, 0xc0, 0x03, 0x80,
  1246. X   0x01, 0xf8, 0x3f, 0x80, 0x01, 0xf8, 0x3f, 0x80, 0x01, 0x00, 0x00, 0x80,
  1247. X   0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80,
  1248. X   0x01, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff};
  1249. X#define quest_width 32
  1250. X#define quest_height 32
  1251. Xstatic char quest_bits[] = {
  1252. X   0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0xe0, 0x05, 0x00, 0x00, 0xd0,
  1253. X   0xf9, 0xff, 0xff, 0xaf, 0xf9, 0xff, 0xff, 0xdf, 0xf9, 0xff, 0xff, 0xaf,
  1254. X   0xf9, 0xff, 0xff, 0xdf, 0xf9, 0x3f, 0xfc, 0xaf, 0xf9, 0x0f, 0xf0, 0xdf,
  1255. X   0xf9, 0x07, 0xe0, 0xaf, 0xf9, 0xc7, 0xe0, 0xdf, 0xf9, 0xc7, 0xe1, 0xaf,
  1256. X   0xf9, 0xc7, 0xe1, 0xdf, 0xf9, 0xc7, 0xe1, 0xaf, 0xf9, 0xc7, 0xe1, 0xdf,
  1257. X   0xf9, 0xff, 0xe1, 0xaf, 0xf9, 0xff, 0xf0, 0xdf, 0xf9, 0x7f, 0xf8, 0xaf,
  1258. X   0xf9, 0x7f, 0xfc, 0xdf, 0xf9, 0x3f, 0xfe, 0xaf, 0xf9, 0x3f, 0xff, 0xdf,
  1259. X   0xf9, 0x3f, 0xff, 0xaf, 0xf9, 0xff, 0xff, 0xdf, 0xf9, 0xff, 0xff, 0xaf,
  1260. X   0xf9, 0x1f, 0xfc, 0xdf, 0xf9, 0x1f, 0xfc, 0xaf, 0xf9, 0x1f, 0xfc, 0xdf,
  1261. X   0xf9, 0xff, 0xff, 0xaf, 0xa9, 0xaa, 0xaa, 0xda, 0x55, 0x55, 0x55, 0xb5,
  1262. X   0xab, 0xaa, 0xaa, 0xea, 0xff, 0xff, 0xff, 0xff};
  1263. X#define seven_width 32
  1264. X#define seven_height 32
  1265. Xstatic char seven_bits[] = {
  1266. X   0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80,
  1267. X   0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80,
  1268. X   0x01, 0x00, 0x00, 0x80, 0x01, 0xfc, 0x3f, 0x80, 0x01, 0xfc, 0x3f, 0x80,
  1269. X   0x01, 0xfc, 0x1f, 0x80, 0x01, 0xfc, 0x1f, 0x80, 0x01, 0x04, 0x0c, 0x80,
  1270. X   0x01, 0x04, 0x0c, 0x80, 0x01, 0x00, 0x06, 0x80, 0x01, 0x00, 0x06, 0x80,
  1271. X   0x01, 0x00, 0x07, 0x80, 0x01, 0x80, 0x03, 0x80, 0x01, 0x80, 0x03, 0x80,
  1272. X   0x01, 0xc0, 0x03, 0x80, 0x01, 0xc0, 0x03, 0x80, 0x01, 0xc0, 0x03, 0x80,
  1273. X   0x01, 0xe0, 0x03, 0x80, 0x01, 0xe0, 0x03, 0x80, 0x01, 0xe0, 0x03, 0x80,
  1274. X   0x01, 0xe0, 0x03, 0x80, 0x01, 0xc0, 0x01, 0x80, 0x01, 0x00, 0x00, 0x80,
  1275. X   0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80,
  1276. X   0x01, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff};
  1277. X#define six_width 32
  1278. X#define six_height 32
  1279. Xstatic char six_bits[] = {
  1280. X   0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80,
  1281. X   0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80,
  1282. X   0x01, 0x00, 0x00, 0x80, 0x01, 0xc0, 0x07, 0x80, 0x01, 0xe0, 0x0f, 0x80,
  1283. X   0x01, 0x78, 0x1e, 0x80, 0x01, 0x38, 0x1e, 0x80, 0x01, 0x3c, 0x1e, 0x80,
  1284. X   0x01, 0x1c, 0x00, 0x80, 0x01, 0x1c, 0x00, 0x80, 0x01, 0x1c, 0x00, 0x80,
  1285. X   0x01, 0x9c, 0x07, 0x80, 0x01, 0xfc, 0x3f, 0x80, 0x01, 0x3c, 0x3c, 0x80,
  1286. X   0x01, 0x1c, 0x3c, 0x80, 0x01, 0x1c, 0x38, 0x80, 0x01, 0x1c, 0x38, 0x80,
  1287. X   0x01, 0x1c, 0x38, 0x80, 0x01, 0x3c, 0x3c, 0x80, 0x01, 0x78, 0x1e, 0x80,
  1288. X   0x01, 0xf0, 0x0f, 0x80, 0x01, 0xe0, 0x07, 0x80, 0x01, 0x00, 0x00, 0x80,
  1289. X   0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80,
  1290. X   0x01, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff};
  1291. X#define three_width 32
  1292. X#define three_height 32
  1293. Xstatic char three_bits[] = {
  1294. X   0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80,
  1295. X   0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80,
  1296. X   0x01, 0xf0, 0x03, 0x80, 0x01, 0xfc, 0x0f, 0x80, 0x01, 0x1c, 0x1f, 0x80,
  1297. X   0x01, 0x1e, 0x3e, 0x80, 0x01, 0x3e, 0x3e, 0x80, 0x01, 0x3e, 0x3e, 0x80,
  1298. X   0x01, 0x1c, 0x3e, 0x80, 0x01, 0x00, 0x1f, 0x80, 0x01, 0xe0, 0x03, 0x80,
  1299. X   0x01, 0xe0, 0x01, 0x80, 0x01, 0x00, 0x0f, 0x80, 0x01, 0x00, 0x3f, 0x80,
  1300. X   0x01, 0x00, 0x3e, 0x80, 0x01, 0x1c, 0x3c, 0x80, 0x01, 0x3e, 0x3c, 0x80,
  1301. X   0x01, 0x3e, 0x3c, 0x80, 0x01, 0x1e, 0x3e, 0x80, 0x01, 0x1c, 0x3f, 0x80,
  1302. X   0x01, 0xfc, 0x0f, 0x80, 0x01, 0xe0, 0x03, 0x80, 0x01, 0x00, 0x00, 0x80,
  1303. X   0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80,
  1304. X   0x01, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff};
  1305. X#define two_width 32
  1306. X#define two_height 32
  1307. Xstatic char two_bits[] = {
  1308. X   0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80,
  1309. X   0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80,
  1310. X   0x01, 0xf0, 0x03, 0x80, 0x01, 0xfc, 0x0f, 0x80, 0x01, 0x1c, 0x1f, 0x80,
  1311. X   0x01, 0x1e, 0x3c, 0x80, 0x01, 0x3e, 0x3c, 0x80, 0x01, 0x3e, 0x3c, 0x80,
  1312. X   0x01, 0x3c, 0x3e, 0x80, 0x01, 0x1c, 0x1e, 0x80, 0x01, 0x00, 0x0f, 0x80,
  1313. X   0x01, 0x80, 0x07, 0x80, 0x01, 0xc0, 0x03, 0x80, 0x01, 0xc0, 0x01, 0x80,
  1314. X   0x01, 0xc0, 0x20, 0x80, 0x01, 0x60, 0x20, 0x80, 0x01, 0x38, 0x30, 0x80,
  1315. X   0x01, 0xfc, 0x3f, 0x80, 0x01, 0xfc, 0x3f, 0x80, 0x01, 0xfe, 0x3f, 0x80,
  1316. X   0x01, 0xfe, 0x3f, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80,
  1317. X   0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80,
  1318. X   0x01, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff};
  1319. X#define zero_width 32
  1320. X#define zero_height 32
  1321. Xstatic char zero_bits[] = {
  1322. X   0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80,
  1323. X   0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80,
  1324. X   0x01, 0xc0, 0x03, 0x80, 0x01, 0xe0, 0x07, 0x80, 0x01, 0x70, 0x0e, 0x80,
  1325. X   0x01, 0x38, 0x1c, 0x80, 0x01, 0x3c, 0x3c, 0x80, 0x01, 0x3c, 0x3c, 0x80,
  1326. X   0x01, 0x3c, 0x3c, 0x80, 0x01, 0x3c, 0x3c, 0x80, 0x01, 0x3c, 0x3c, 0x80,
  1327. X   0x01, 0x3c, 0x3c, 0x80, 0x01, 0x3c, 0x3c, 0x80, 0x01, 0x3c, 0x3c, 0x80,
  1328. X   0x01, 0x3c, 0x3c, 0x80, 0x01, 0x3c, 0x3c, 0x80, 0x01, 0x3c, 0x3c, 0x80,
  1329. X   0x01, 0x3c, 0x3c, 0x80, 0x01, 0x38, 0x1c, 0x80, 0x01, 0x70, 0x0e, 0x80,
  1330. X   0x01, 0xe0, 0x07, 0x80, 0x01, 0xc0, 0x03, 0x80, 0x01, 0x00, 0x00, 0x80,
  1331. X   0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80,
  1332. X   0x01, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff};
  1333. END_OF_FILE
  1334. if test 13143 -ne `wc -c <'xmines.icons'`; then
  1335.     echo shar: \"'xmines.icons'\" unpacked with wrong size!
  1336. fi
  1337. # end of 'xmines.icons'
  1338. fi
  1339. echo shar: End of archive 1 \(of 1\).
  1340. cp /dev/null ark1isdone
  1341. MISSING=""
  1342. for I in 1 ; do
  1343.     if test ! -f ark${I}isdone ; then
  1344.     MISSING="${MISSING} ${I}"
  1345.     fi
  1346. done
  1347. if test "${MISSING}" = "" ; then
  1348.     echo You have the archive.
  1349.     rm -f ark[1-9]isdone
  1350. else
  1351.     echo You still need to unpack the following archives:
  1352.     echo "        " ${MISSING}
  1353. fi
  1354. ##  End of shell archive.
  1355. exit 0
  1356.