home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / games / volume16 / nethck31 / patch3g < prev    next >
Encoding:
Internet Message Format  |  1993-07-23  |  60.0 KB

  1. Path: uunet!news.tek.com!saab!billr
  2. From: billr@saab.CNA.TEK.COM (Bill Randle)
  3. Newsgroups: comp.sources.games
  4. Subject: v18i040:  nethack31 - display oriented dungeons & dragons (Ver. 3.1), Patch3g/18
  5. Date: 20 Jul 1993 22:32:46 GMT
  6. Organization: Tektronix, Inc, Redmond, OR, USA
  7. Lines: 1618
  8. Approved: billr@saab.CNA.TEK.COM
  9. Message-ID: <22hrqe$9pu@ying.cna.tek.com>
  10. NNTP-Posting-Host: saab.cna.tek.com
  11. Xref: uunet comp.sources.games:1840
  12.  
  13. Submitted-by: izchak@linc.cis.upenn.edu (Izchak Miller)
  14. Posting-number: Volume 18, Issue 40
  15. Archive-name: nethack31/patch3g
  16. Patch-To: nethack31: Volume 16, Issue 1-116
  17. Environment: Amiga, Atari, Mac, MS-DOS, Windows-NT, OS2, Unix, VMS, X11
  18.  
  19.  
  20.  
  21. #! /bin/sh
  22. # This is a shell archive.  Remove anything before this line, then unpack
  23. # it by saving it into a file and typing "sh file".  To overwrite existing
  24. # files, type "sh file -c".  You can also feed this as standard input via
  25. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  26. # will see the following message at the end:
  27. #        "End of archive 7 (of 18)."
  28. # Contents:  patchit3.sh sys/msdos/MakeGCC.src sys/share/dgn_comp.h
  29. #   sys/share/lev_yacc.c1
  30. # Wrapped by billr@saab on Tue Jul 20 14:57:20 1993
  31. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  32. if test -f 'patchit3.sh' -a "${1}" != "-c" ; then 
  33.   echo shar: Renaming existing file \"'patchit3.sh'\" to \"'patchit3.sh.orig'\"
  34.   mv -f 'patchit3.sh' 'patchit3.sh.orig'
  35. fi
  36. echo shar: Extracting \"'patchit3.sh'\" \(632 characters\)
  37. sed "s/^X//" >'patchit3.sh' <<'END_OF_FILE'
  38. X#!/bin/sh
  39. Xecho building file 'patches03f'
  40. Xcat patches03f.uu1 patches03f.uu2 | uudecode
  41. Xrm patches03f.uu1 patches03f.uu2
  42. Xecho applying patches
  43. Xfor pfile in patches03[a-h]
  44. Xdo patch -p < $pfile
  45. Xdone
  46. Xecho building file 'dat/quest.txt'
  47. X(cd dat; cat quest.txt1 quest.txt2 > quest.txt; rm quest.txt1 quest.txt2)
  48. Xecho building file 'sys/mac/NHproj.hqx'
  49. X(cd sys/mac; cat NHproj.hqx1 NHproj.hqx2 > NHproj.hqx; rm NHproj.hqx1 NHproj.hqx2)
  50. Xecho building file 'sys/share/lev_yacc.c'
  51. X(cd sys/share; cat lev_yacc.c1 lev_yacc.c2 > lev_yacc.c; rm lev_yacc.c1 lev_yacc.c2)
  52. Xecho deleting unused file 'sys/mac/NHrez.hqx'
  53. Xrm -f sys/mac/NHrez.hqx
  54. Xexit 0
  55. END_OF_FILE
  56. if test 632 -ne `wc -c <'patchit3.sh'`; then
  57.     echo shar: \"'patchit3.sh'\" unpacked with wrong size!
  58. fi
  59. chmod +x 'patchit3.sh'
  60. # end of 'patchit3.sh'
  61. if test -f 'sys/msdos/MakeGCC.src' -a "${1}" != "-c" ; then 
  62.   echo shar: Renaming existing file \"'sys/msdos/MakeGCC.src'\" to \"'sys/msdos/MakeGCC.src.orig'\"
  63.   mv -f 'sys/msdos/MakeGCC.src' 'sys/msdos/MakeGCC.src.orig'
  64. fi
  65. echo shar: Extracting \"'sys/msdos/MakeGCC.src'\" \(11479 characters\)
  66. sed "s/^X//" >'sys/msdos/MakeGCC.src' <<'END_OF_FILE'
  67. X#    SCCS Id: @(#)MakeGCC.src       3.1     93/04/07
  68. X#    Copyright (c) NetHack PC Development Team 1992, 1993.
  69. X#    PC NetHack 3.1 src Makefile for djgpp 1.10 and ndmake 4.5
  70. X#
  71. X#    For questions read the Install.dos file included with
  72. X#    the distribution.
  73. X#
  74. X#    Kevin D Smolkowski, Kevins@ori.org
  75. X
  76. XCC       = gcc
  77. XSTUB     = go32.exe         # Can be either stub.exe or go32.exe
  78. XSTUBPATH = p:\djgpp\bin\    # Must be complete path with trailing '\'
  79. XLINK     = gcc
  80. X
  81. X#    Set the gamedir according to your preference.  It must be present prior
  82. X#    to compilation.
  83. X
  84. XGAME    = nethack                 # Game Name
  85. XGAMEDIR = c:\games\nethack        # Game directory
  86. X
  87. X#    Compilation Flags.
  88. X
  89. X#    Debugging
  90. X#CFLAGS = -pg -c -I../include
  91. X#LFLAGS = -pg
  92. X
  93. X#    Normal 
  94. XCFLAGS = -c -O -I../include
  95. XLFLAGS =
  96. X
  97. X#    Special libraries
  98. XLIBS = -lpc
  99. X
  100. X#    Source directories.    Makedefs hardcodes these, don't change them.
  101. XINCL = ..\include   # NetHack include files
  102. XDAT  = ..\dat       # NetHack data files
  103. XDOC  = ..\doc       # NetHack documentation files
  104. XUTIL = ..\util      # Utility source
  105. XSRC  = ..\src       # Main source
  106. XSYS  = ..\sys\share # Shared system files
  107. XMSYS = ..\sys\msdos # Msdos specific files
  108. XWIN  = ..\win\tty   # Character terminal files
  109. XGAMEFILE = $(GAMEDIR)\$(GAME).exe # whole thing
  110. X
  111. X#    The default make target (so just typing 'make' is useful).
  112. Xdefault : $(GAMEFILE)
  113. X
  114. X#    If TERMLIB is defined in pcconf.h, comment out the upper line and
  115. X#    uncomment the lower.  Note that you must build the termc library
  116. X#    and place it in djgpp's lib directory.  See termcap.zip for details
  117. X
  118. XTERMLIB =
  119. X#TERMLIB = -ltermc
  120. X
  121. XLIBRARIES = $(LIBS) $(TERMLIB)
  122. X
  123. X#  Nothing below this line should have to be changed.
  124. X#
  125. X#  Other things that have to be reconfigured are in
  126. X#       config.h, pcconf.h and possibly system.h.
  127. X#
  128. X
  129. X#       This line should not be deleted.
  130. X
  131. X#  Make Rules.
  132. X
  133. X.SUFFIXES:  .exe .o .c .y .l
  134. X
  135. X.c.o:
  136. X        $(CC) $(CFLAGS) -o$*.o $*.c
  137. X
  138. X#  Object files for the game itself.
  139. X
  140. XVOBJ01 = allmain.o  alloc.o    apply.o    artifact.o attrib.o
  141. XVOBJ02 = ball.o     bones.o    botl.o     cmd.o      dbridge.o
  142. XVOBJ03 = decl.o     detect.o   display.o  do.o       do_name.o
  143. XVOBJ04 = do_wear.o  dog.o      dogmove.o  dokick.o   dothrow.o
  144. XVOBJ05 = drawing.o  dungeon.o  eat.o      end.o      engrave.o
  145. XVOBJ06 = exper.o    explode.o  extralev.o files.o    fountain.o
  146. XVOBJ07 = getline.o  hack.o     hacklib.o  invent.o   lock.o
  147. XVOBJ08 = mail.o     main.o     makemon.o  mcastu.o   mhitm.o
  148. XVOBJ09 = mhitu.o    minion.o   mkmap.o    mklev.o    mkmaze.o
  149. XVOBJ10 = mkobj.o    mkroom.o   mon.o      mondata.o  monmove.o
  150. XVOBJ11 = monst.o    monstr.o   mplayer.o  mthrowu.o  muse.o
  151. XVOBJ12 = music.o    o_init.o   objects.o  objnam.o   options.o
  152. XVOBJ13 = pickup.o   pline.o    polyself.o potion.o   quest.o
  153. XVOBJ14 = questpgr.o pager.o    pray.o     priest.o   read.o
  154. XVOBJ15 = rect.o     restore.o  rip.o      rnd.o      rumors.o
  155. XVOBJ16 = save.o     shk.o      shknam.o   sit.o      sounds.o
  156. XVOBJ17 = sp_lev.o   spell.o    steal.o    termcap.o  timeout.o
  157. XVOBJ18 = topl.o     topten.o   track.o    trap.o     u_init.o
  158. XVOBJ19 = uhitm.o    vault.o    vision.o   vis_tab.o  weapon.o
  159. XVOBJ20 = were.o     wield.o    windows.o  wintty.o   wizard.o
  160. XVOBJ21 = worm.o     worn.o     write.o    zap.o
  161. X
  162. XSOBJ    = msdos.o    sys.o      tty.o      unix.o    video.o
  163. X
  164. XVVOBJ  = version.o
  165. X
  166. XVOBJ   = $(VOBJ01) $(VOBJ02) $(VOBJ03) $(VOBJ04) $(VOBJ05) \
  167. X         $(VOBJ06) $(VOBJ07) $(VOBJ08) $(VOBJ09) $(VOBJ10) \
  168. X         $(VOBJ11) $(VOBJ12) $(VOBJ13) $(VOBJ14) $(VOBJ15) \
  169. X         $(VOBJ16) $(VOBJ17) $(VOBJ18) $(VOBJ19) $(VOBJ20) \
  170. X         $(VOBJ21)
  171. X
  172. XALLOBJ = $(VOBJ) $(VVOBJ) $(SOBJ)
  173. X
  174. XRM_H      = $(INCL)\rm.h  $(INCL)\align.h
  175. XDISPLAY_H = $(INCL)\display.h  $(INCL)\vision.h $(INCL)\mondata.h
  176. XDECL_H    = $(INCL)\decl.h $(INCL)\quest.h $(INCL)\spell.h \
  177. X            $(INCL)\color.h $(INCL)\obj.h $(INCL)\you.h \
  178. X            $(INCL)\onames.h $(INCL)\pm.h
  179. XESHK_H    = $(INCL)\eshk.h  $(INCL)\dungeon.h
  180. XPCCONF_H  = $(INCL)\pcconf.h  $(INCL)\micro.h $(INCL)\system.h
  181. XDUNGEON_H = $(INCL)\dungeon.h  $(INCL)\align.h
  182. XEPRI_H    = $(DUNGEON_H)  $(INCL)\epri.h
  183. XEMIN_H    = $(DUNGEON_H)  $(INCL)\emin.h
  184. XPERM_H    = $(INCL)\permonst.h $(INCL)\monattk.h $(INCL)\monflag.h \
  185. X            $(INCL)\align.h
  186. XCONFIG_H  = $(INCL)\config.h $(INCL)\tradstdc.h $(INCL)\global.h \
  187. X            $(PCCONF_H)
  188. XHACK_H    = $(INCL)\hack.h $(CONFIG_H) $(DUNGEON_H) $(DECL_H)    \
  189. X            $(DISPLAY_H) $(RM_H) $(INCL)\monsym.h                \
  190. X            $(INCL)\mkroom.h $(INCL)\objclass.h $(INCL)\trap.h   \
  191. X            $(INCL)\flag.h  $(INCL)\vision.h $(INCL)\display.h   \
  192. X            $(INCL)\wintype.h $(INCL)\engrave.h $(INCL)\rect.h   \
  193. X            $(INCL)\winprocs.h $(INCL)\wintty.h
  194. X
  195. X
  196. X#  The default target.
  197. X
  198. Xall :  $(GAMEFILE) install.tag
  199. X       @echo Done.
  200. X
  201. Xinstall: install.tag
  202. X
  203. Xinstall.tag:    $(GAMEFILE) $(DAT)\sp_lev.tag
  204. X    copy $(SYS)\termcap       $(GAMEDIR)
  205. X    copy $(DAT)\*.?           $(GAMEDIR)
  206. X    copy $(DAT)\*.dat         $(GAMEDIR)
  207. X    copy $(DAT)\*.lev         $(GAMEDIR)
  208. X    copy $(SYS)\NetHack.cnf   $(GAMEDIR)
  209. X    copy $(UTIL)\recover.exe  $(GAMEDIR)
  210. X    copy $(MSYS)\msdos.hlp    $(GAMEDIR)
  211. X    del   $(GAMEDIR)\makefile
  212. X    echo install done > install.tag
  213. X
  214. X#
  215. X#  The main target.
  216. X#
  217. X$(GAMEFILE) : $(GAME).res  $(UTIL)\utility.tag
  218. X    $(CC) $(LFLAGS) @$(GAME).res $(LIBRARIES)
  219. X    copy /b $(STUBPATH)$(STUB) + a.out $(GAMEFILE)
  220. X    del a.out
  221. X
  222. X$(GAME).res : $(ALLOBJ)
  223. X    @echo $(VOBJ01) > $@
  224. X    @echo $(VOBJ02) >> $@
  225. X    @echo $(VOBJ03) >> $@
  226. X    @echo $(VOBJ04) >> $@
  227. X    @echo $(VOBJ05) >> $@
  228. X    @echo $(VOBJ06) >> $@
  229. X    @echo $(VOBJ07) >> $@
  230. X    @echo $(VOBJ08) >> $@
  231. X    @echo $(VOBJ09) >> $@
  232. X    @echo $(VOBJ10) >> $@
  233. X    @echo $(VOBJ11) >> $@
  234. X    @echo $(VOBJ12) >> $@
  235. X    @echo $(VOBJ13) >> $@
  236. X    @echo $(VOBJ14) >> $@
  237. X    @echo $(VOBJ15) >> $@
  238. X    @echo $(VOBJ16) >> $@
  239. X    @echo $(VOBJ17) >> $@
  240. X    @echo $(VOBJ18) >> $@
  241. X    @echo $(VOBJ19) >> $@
  242. X    @echo $(VOBJ20) >> $@
  243. X    @echo $(VOBJ21) >> $@
  244. X    @echo $(SOBJ)   >> $@
  245. X    @echo $(VVOBJ)  >> $@
  246. X
  247. X#  The following include files depend on makedefs to be created.
  248. X#
  249. X#  date.h should be remade every time any of the source or include
  250. X#  files is modified.
  251. X
  252. X
  253. X$(INCL)\date.h : $(VOBJ)
  254. X    $(UTIL)\makedefs -v
  255. X
  256. X$(INCL)\onames.h :
  257. X    $(UTIL)\makedefs -o
  258. X
  259. X$(INCL)\pm.h :
  260. X    $(UTIL)\makedefs -p
  261. X
  262. X$(INCL)\trap.h :
  263. X    $(UTIL)\makedefs -t
  264. X
  265. X
  266. X
  267. X#
  268. X#  Housekeeping.
  269. X#
  270. X
  271. Xclean :
  272. X    -del *.o
  273. X
  274. Xspotless : clean
  275. X    -del $(INCL)\date.h
  276. X    -del $(INCL)\onames.h
  277. X    -del $(INCL)\pm.h
  278. X    -del $(INCL)\vis_tab.h
  279. X    -del vis_tab.c
  280. X    -del $(UTIL)\makedefs.exe
  281. X    -del $(UTIL)\lev_comp.exe
  282. X    -del $(UTIL)\dgn_comp.exe
  283. X    -del $(UTIL)\*.res
  284. X    -del $(UTIL)\*.def
  285. X    -del $(UTIL)\*.map
  286. X    -del $(DAT)\data
  287. X    -del $(DAT)\rumors
  288. X
  289. X# dependencies
  290. X# some files require movement as Ndmake doesn't like unix style '/'
  291. X# directory specs and djgcc doesn't like dos style directory specs.
  292. X# So we get to copy stuff where we might need it.   Fun eh?
  293. X
  294. X# sys\share
  295. Xmain.o:  $(HACK_H) $(SYS)\pcmain.c
  296. X    copy $(SYS)\pcmain.c .
  297. X    $(CC) $(CFLAGS) -omain.o pcmain.c
  298. X
  299. Xtty.o:   $(HACK_H) $(INCL)\wintty.h $(SYS)\pctty.c
  300. X    copy $(SYS)\pctty.c .
  301. X    $(CC) $(CFLAGS) -otty.o  pctty.c
  302. X
  303. Xunix.o:  $(HACK_H) $(SYS)\pcunix.c
  304. X    copy $(SYS)\pcunix.c .
  305. X    $(CC) $(CFLAGS) -ounix.o pcunix.c
  306. X
  307. Xsys.o : $(HACK_H) $(SYS)\pcsys.c
  308. X    copy $(SYS)\pcsys.c .
  309. X    $(CC) $(CFLAGS) -o$*.o pcsys.c
  310. X
  311. X# sys\msdos
  312. Xmsdos.o : $(HACK_H)  $(MSYS)\msdos.c
  313. X    copy $(MSYS)\msdos.c .
  314. X    $(CC) $(CFLAGS) -o$*.o $*.c
  315. X
  316. Xvideo.o : $(HACK_H)  $(MSYS)\video.c
  317. X    copy $(MSYS)\video.c .
  318. X    $(CC) $(CFLAGS) -o$*.o $*.c
  319. X
  320. X# win/tty
  321. Xgetline.o : $(HACK_H) $(INCL)\wintty.h $(WIN)\getline.c
  322. X    copy $(WIN)\getline.c .
  323. X    $(CC) $(CFLAGS) -o$*.o $*.c
  324. X
  325. Xtermcap.o : $(CONFIG_H) $(WIN)\termcap.c
  326. X    copy $(WIN)\termcap.c .
  327. X    $(CC) $(CFLAGS) -o$*.o $*.c
  328. X
  329. Xtopl.o : $(CONFIG_H) $(WIN)\topl.c
  330. X    copy $(WIN)\topl.c .
  331. X    $(CC) $(CFLAGS) -o$*.o $*.c
  332. X
  333. Xwintty.o : $(CONFIG_H) $(WIN)\wintty.c
  334. X    copy $(WIN)\wintty.c .
  335. X    $(CC) $(CFLAGS) -o$*.o $*.c
  336. X
  337. X# src dependencies
  338. Xallmain.o:  $(HACK_H)
  339. Xalloc.o:    $(CONFIG_H)
  340. Xapply.o:    $(HACK_H) $(INCL)\edog.h
  341. Xartifact.o: $(HACK_H) $(INCL)\artifact.h $(INCL)\artilist.h
  342. Xattrib.o:   $(HACK_H) $(INCL)\artifact.h
  343. Xball.o:     $(HACK_H)
  344. Xbones.o:    $(HACK_H) $(INCL)\lev.h
  345. Xbotl.o:     $(HACK_H)
  346. Xcmd.o:      $(HACK_H) $(INCL)\func_tab.h
  347. Xdbridge.o:  $(HACK_H)
  348. Xdecl.o:     $(HACK_H) $(INCL)\quest.h
  349. Xdetect.o:   $(HACK_H) $(INCL)\artifact.h
  350. Xdisplay.o:  $(HACK_H)
  351. Xdo.o:       $(HACK_H) $(INCL)\lev.h
  352. Xdo_name.o:  $(HACK_H)
  353. Xdo_wear.o:  $(HACK_H)
  354. Xdog.o:      $(HACK_H) $(INCL)\edog.h
  355. Xdogmove.o:  $(HACK_H) $(INCL)\mfndpos.h $(INCL)\edog.h
  356. Xdokick.o:   $(HACK_H) $(ESHK_H)
  357. Xdothrow.o:  $(HACK_H)
  358. Xdrawing.o:  $(HACK_H) $(INCL)\termcap.h
  359. Xdungeon.o:  $(HACK_H) $(INCL)\dgn_file.h
  360. Xeat.o:      $(HACK_H)
  361. Xend.o:      $(HACK_H) $(ESHK_H)
  362. Xengrave.o:  $(HACK_H) $(INCL)\lev.h
  363. Xexper.o:    $(HACK_H)
  364. Xexplode.o:  $(HACK_H)
  365. Xextralev.o:  $(HACK_H)
  366. Xfiles.o:     $(HACK_H)
  367. Xfountain.o:  $(HACK_H)
  368. Xhack.o:      $(HACK_H)
  369. Xhacklib.o:   $(HACK_H)
  370. Xinvent.o:    $(HACK_H) $(INCL)\artifact.h
  371. Xlock.o:      $(HACK_H)
  372. Xmail.o:      $(HACK_H) $(INCL)\mail.h
  373. Xmakemon.o:   $(HACK_H) $(EPRI_H) $(EMIN_H)
  374. Xmcastu.o:    $(HACK_H)
  375. Xmhitm.o:     $(HACK_H) $(INCL)\artifact.h $(INCL)\edog.h
  376. Xmhitu.o:     $(HACK_H) $(INCL)\artifact.h $(INCL)\edog.h
  377. Xminion.o:    $(HACK_H) $(EMIN_H) $(EPRI_H)
  378. Xmklev.o:     $(HACK_H)
  379. Xmkmap.o:     $(HACK_H) $(INCL)\sp_lev.h
  380. Xmkmaze.o:    $(HACK_H) $(INCL)\sp_lev.h
  381. Xmkobj.o:     $(HACK_H) $(INCL)\artifact.h $(INCL)\prop.h
  382. Xmkroom.o:    $(HACK_H)
  383. Xmon.o:       $(HACK_H) $(INCL)\mfndpos.h $(INCL)\edog.h
  384. Xmondata.o:   $(HACK_H) $(ESHK_H) $(EPRI_H)
  385. Xmonmove.o:   $(HACK_H) $(INCL)\mfndpos.h $(INCL)\artifact.h
  386. Xmonst.o:     $(CONFIG_H) $(PERM_H) $(ESHK_H) $(EPRI_H) \
  387. X             $(INCL)\color.h $(INCL)\monsym.h $(INCL)\vault.h
  388. Xmplayer.o:   $(HACK_H)
  389. Xmthrowu.o:   $(HACK_H)
  390. Xmuse.o:      $(HACK_H)
  391. Xmusic.o:     $(HACK_H)
  392. Xo_init.o:    $(HACK_H)
  393. Xobjects.o:   $(CONFIG_H) $(INCL)\obj.h $(INCL)\objclass.h \
  394. X             $(INCL)\prop.h $(INCL)\color.h
  395. Xobjnam.o:    $(HACK_H)
  396. Xoptions.o:   $(CONFIG_H) $(HACK_H) $(INCL)\objclass.h $(INCL)\flag.h \
  397. X             $(INCL)\termcap.h
  398. Xpager.o:     $(HACK_H)
  399. Xpickup.o:    $(HACK_H)
  400. Xpline.o:     $(HACK_H) $(EPRI_H)
  401. Xpolyself.o:  $(HACK_H)
  402. Xpotion.o:    $(HACK_H)
  403. Xpray.o:      $(HACK_H) $(EPRI_H)
  404. Xpriest.o:    $(HACK_H) $(INCL)\mfndpos.h $(ESHK_H) $(EPRI_H) $(EMIN_H)
  405. Xquest.o:     $(HACK_H) $(INCL)\quest.h $(INCL)\qtext.h
  406. Xquestpgr.o:  $(HACK_H) $(INCL)\qtext.h
  407. Xread.o:      $(HACK_H)
  408. Xrect.o:      $(HACK_H)
  409. Xrestore.o:   $(HACK_H) $(INCL)\lev.h $(INCL)\termcap.h $(INCL)\quest.h
  410. Xrip.o:       $(HACK_H)
  411. Xrnd.o:       $(HACK_H)
  412. Xrumors.o:    $(HACK_H)
  413. Xsave.o:      $(HACK_H) $(INCL)\lev.h $(INCL)\quest.h
  414. Xshk.o:       $(HACK_H) $(ESHK_H)
  415. Xshknam.o:    $(HACK_H) $(ESHK_H)
  416. Xsit.o:       $(HACK_H) $(INCL)\artifact.h
  417. Xsounds.o:    $(HACK_H) $(INCL)\edog.h
  418. Xsp_lev.o:    $(HACK_H) $(INCL)\sp_lev.h $(INCL)\align.h $(INCL)\rect.h
  419. Xspell.o:     $(HACK_H)
  420. Xsteal.o:     $(HACK_H)
  421. Xtimeout.o:   $(HACK_H)
  422. Xtopten.o:    $(HACK_H)
  423. Xtrack.o:     $(HACK_H)
  424. Xtrap.o:      $(HACK_H)
  425. Xu_init.o:    $(HACK_H)
  426. Xuhitm.o:     $(HACK_H)
  427. Xvault.o:     $(HACK_H) $(INCL)\vault.h
  428. Xversion.o:   $(HACK_H) $(INCL)\date.h  $(INCL)\patchlev.h
  429. Xvision.o:    $(HACK_H) $(INCL)\vis_tab.h
  430. Xweapon.o:    $(HACK_H)
  431. Xwere.o:      $(HACK_H)
  432. Xwield.o:     $(HACK_H)
  433. Xwindows.o:   $(HACK_H) $(INCL)\wintty.h
  434. Xwizard.o:    $(HACK_H) $(INCL)\qtext.h
  435. Xworm.o:      $(HACK_H) $(INCL)\lev.h
  436. Xworn.o:      $(HACK_H)
  437. Xwrite.o:     $(HACK_H)
  438. Xzap.o:       $(HACK_H)
  439. X
  440. X# end of file
  441. END_OF_FILE
  442. if test 11479 -ne `wc -c <'sys/msdos/MakeGCC.src'`; then
  443.     echo shar: \"'sys/msdos/MakeGCC.src'\" unpacked with wrong size!
  444. fi
  445. # end of 'sys/msdos/MakeGCC.src'
  446. if test -f 'sys/share/dgn_comp.h' -a "${1}" != "-c" ; then 
  447.   echo shar: Renaming existing file \"'sys/share/dgn_comp.h'\" to \"'sys/share/dgn_comp.h.orig'\"
  448.   mv -f 'sys/share/dgn_comp.h' 'sys/share/dgn_comp.h.orig'
  449. fi
  450. echo shar: Extracting \"'sys/share/dgn_comp.h'\" \(503 characters\)
  451. sed "s/^X//" >'sys/share/dgn_comp.h' <<'END_OF_FILE'
  452. X#define INTEGER 257
  453. X#define A_DUNGEON 258
  454. X#define BRANCH 259
  455. X#define CHBRANCH 260
  456. X#define LEVEL 261
  457. X#define RNDLEVEL 262
  458. X#define CHLEVEL 263
  459. X#define RNDCHLEVEL 264
  460. X#define UP_OR_DOWN 265
  461. X#define PROTOFILE 266
  462. X#define DESCRIPTION 267
  463. X#define DESCRIPTOR 268
  464. X#define LEVELDESC 269
  465. X#define ALIGNMENT 270
  466. X#define LEVALIGN 271
  467. X#define ENTRY 272
  468. X#define STAIR 273
  469. X#define NO_UP 274
  470. X#define NO_DOWN 275
  471. X#define PORTAL 276
  472. X#define STRING 277
  473. Xtypedef union
  474. X{
  475. X    int    i;
  476. X    char*    str;
  477. X} YYSTYPE;
  478. Xextern YYSTYPE yylval;
  479. END_OF_FILE
  480. if test 503 -ne `wc -c <'sys/share/dgn_comp.h'`; then
  481.     echo shar: \"'sys/share/dgn_comp.h'\" unpacked with wrong size!
  482. fi
  483. # end of 'sys/share/dgn_comp.h'
  484. if test -f 'sys/share/lev_yacc.c1' -a "${1}" != "-c" ; then 
  485.   echo shar: Renaming existing file \"'sys/share/lev_yacc.c1'\" to \"'sys/share/lev_yacc.c1.orig'\"
  486.   mv -f 'sys/share/lev_yacc.c1' 'sys/share/lev_yacc.c1.orig'
  487. fi
  488. echo shar: Extracting \"'sys/share/lev_yacc.c1'\" \(43569 characters\)
  489. sed "s/^X//" >'sys/share/lev_yacc.c1' <<'END_OF_FILE'
  490. X#ifndef lint
  491. Xstatic char yysccsid[] = "@(#)yaccpar    1.9 (Berkeley) 02/21/93";
  492. X#endif
  493. X#define YYBYACC 1
  494. X#define YYMAJOR 1
  495. X#define YYMINOR 9
  496. X#define yyclearin (yychar=(-1))
  497. X#define yyerrok (yyerrflag=0)
  498. X#define YYRECOVERING (yyerrflag!=0)
  499. X#define YYPREFIX "yy"
  500. X/*    SCCS Id: @(#)lev_comp.c    3.1    93/05/15    */
  501. X/*    Copyright (c) 1989 by Jean-Christophe Collet */
  502. X/* NetHack may be freely redistributed.  See license for details. */
  503. X
  504. X/*
  505. X * This file contains the Level Compiler code
  506. X * It may handle special mazes & special room-levels
  507. X */
  508. X
  509. X/* In case we're using bison in AIX.  This definition must be
  510. X * placed before any other C-language construct in the file
  511. X * excluding comments and preprocessor directives (thanks IBM
  512. X * for this wonderful feature...).
  513. X *
  514. X * Note: some cpps barf on this 'undefined control' (#pragma).
  515. X * Addition of the leading space seems to prevent barfage for now,
  516. X * and AIX will still see the directive in its non-standard locale.
  517. X */
  518. X
  519. X#ifdef _AIX
  520. X #pragma alloca        /* keep leading space! */
  521. X#endif
  522. X
  523. X#include "hack.h"
  524. X#include "sp_lev.h"
  525. X#ifndef O_WRONLY
  526. X# include <fcntl.h>
  527. X#endif
  528. X#ifndef O_CREAT    /* some older BSD systems do not define O_CREAT in <fcntl.h> */
  529. X# include <sys/file.h>
  530. X#endif
  531. X#ifndef O_BINARY    /* used for micros, no-op for others */
  532. X# define O_BINARY 0
  533. X#endif
  534. X
  535. X#ifdef MICRO
  536. X# define OMASK FCMASK
  537. X#else
  538. X# define OMASK 0644
  539. X#endif
  540. X
  541. X#define MAX_REGISTERS    10
  542. X#define ERR        (-1)
  543. X
  544. X#define New(type)        (type *) alloc(sizeof(type))
  545. X#define NewTab(type, size)    (type **) alloc(sizeof(type *) * size)
  546. X
  547. X#ifdef MICRO
  548. X# undef exit
  549. Xextern void FDECL(exit, (int));
  550. X#endif
  551. X
  552. Xextern void FDECL(yyerror, (const char *));
  553. Xextern void FDECL(yywarning, (const char *));
  554. Xextern int NDECL(yylex);
  555. Xint NDECL(yyparse);
  556. X
  557. Xextern char *FDECL(dup_string,(char *));
  558. Xextern int FDECL(get_floor_type, (CHAR_P));
  559. Xextern int FDECL(get_room_type, (char *));
  560. Xextern int FDECL(get_trap_type, (char *));
  561. Xextern int FDECL(get_monster_id, (char *, CHAR_P));
  562. Xextern int FDECL(get_object_id, (char *));
  563. Xextern boolean FDECL(check_monster_char, (CHAR_P));
  564. Xextern boolean FDECL(check_object_char, (CHAR_P));
  565. Xextern char FDECL(what_map_char, (CHAR_P));
  566. Xextern void FDECL(scan_map, (char *));
  567. Xextern void NDECL(wallify_map);
  568. Xextern boolean NDECL(check_subrooms);
  569. Xextern void FDECL(check_coord, (int, int, const char *));
  570. Xextern void NDECL(store_part);
  571. Xextern void NDECL(store_room);
  572. Xextern void FDECL(write_maze, (int, specialmaze *));
  573. Xextern void FDECL(write_lev, (int, splev *));
  574. Xextern void FDECL(free_rooms, (room **, int));
  575. X
  576. Xstatic struct reg {
  577. X    int x1, y1;
  578. X    int x2, y2;
  579. X}        current_region;
  580. X
  581. Xstatic struct coord {
  582. X    int x;
  583. X    int y;
  584. X}        current_coord, current_align;
  585. X
  586. Xstatic struct size {
  587. X    int height;
  588. X    int width;
  589. X}        current_size;
  590. X
  591. Xchar tmpmessage[256];
  592. Xaltar *tmpaltar[256];
  593. Xlad *tmplad[256];
  594. Xstair *tmpstair[256];
  595. Xdigpos *tmpdig[256];
  596. Xdigpos *tmppass[32];
  597. Xchar *tmpmap[ROWNO];
  598. Xregion *tmpreg[256];
  599. Xlev_region *tmplreg[32];
  600. Xdoor *tmpdoor[256];
  601. Xroom_door *tmprdoor[256];
  602. Xtrap *tmptrap[256];
  603. Xmonster *tmpmonst[256];
  604. Xobject *tmpobj[256];
  605. Xdrawbridge *tmpdb[256];
  606. Xwalk *tmpwalk[256];
  607. Xgold *tmpgold[256];
  608. Xfountain *tmpfountain[256];
  609. Xsink *tmpsink[256];
  610. Xpool *tmppool[256];
  611. Xengraving *tmpengraving[256];
  612. Xmazepart *tmppart[10];
  613. Xroom *tmproom[MAXNROFROOMS*2];
  614. Xcorridor *tmpcor[256];
  615. X
  616. Xstatic specialmaze maze;
  617. Xstatic splev special_lev;
  618. Xstatic lev_init init_lev;
  619. X
  620. Xstatic char olist[MAX_REGISTERS], mlist[MAX_REGISTERS];
  621. Xstatic struct coord plist[MAX_REGISTERS];
  622. X
  623. Xint n_olist = 0, n_mlist = 0, n_plist = 0;
  624. X
  625. Xunsigned int nlreg = 0, nreg = 0, ndoor = 0, ntrap = 0, nmons = 0, nobj = 0;
  626. Xunsigned int ndb = 0, nwalk = 0, npart = 0, ndig = 0, nlad = 0, nstair = 0;
  627. Xunsigned int naltar = 0, ncorridor = 0, nrooms = 0, ngold = 0, nengraving = 0;
  628. Xunsigned int nfountain = 0, npool = 0, nsink = 0, npass = 0;
  629. X
  630. Xstatic unsigned long lev_flags = 0;
  631. X
  632. Xunsigned int max_x_map, max_y_map;
  633. X
  634. Xstatic xchar in_room;
  635. X
  636. Xextern int fatal_error;
  637. Xextern int want_warnings;
  638. Xextern const char *fname;
  639. X
  640. Xtypedef union
  641. X{
  642. X    int    i;
  643. X    char*    map;
  644. X    struct {
  645. X        xchar room;
  646. X        xchar wall;
  647. X        xchar door;
  648. X    } corpos;
  649. X} YYSTYPE;
  650. X#define CHAR 257
  651. X#define INTEGER 258
  652. X#define BOOLEAN 259
  653. X#define MESSAGE_ID 260
  654. X#define MAZE_ID 261
  655. X#define LEVEL_ID 262
  656. X#define LEV_INIT_ID 263
  657. X#define GEOMETRY_ID 264
  658. X#define NOMAP_ID 265
  659. X#define OBJECT_ID 266
  660. X#define MONSTER_ID 267
  661. X#define TRAP_ID 268
  662. X#define DOOR_ID 269
  663. X#define DRAWBRIDGE_ID 270
  664. X#define MAZEWALK_ID 271
  665. X#define WALLIFY_ID 272
  666. X#define REGION_ID 273
  667. X#define FILLING 274
  668. X#define RANDOM_OBJECTS_ID 275
  669. X#define RANDOM_MONSTERS_ID 276
  670. X#define RANDOM_PLACES_ID 277
  671. X#define ALTAR_ID 278
  672. X#define LADDER_ID 279
  673. X#define STAIR_ID 280
  674. X#define NON_DIGGABLE_ID 281
  675. X#define NON_PASSWALL_ID 282
  676. X#define ROOM_ID 283
  677. X#define PORTAL_ID 284
  678. X#define TELEPRT_ID 285
  679. X#define BRANCH_ID 286
  680. X#define LEV 287
  681. X#define CHANCE_ID 288
  682. X#define CORRIDOR_ID 289
  683. X#define GOLD_ID 290
  684. X#define ENGRAVING_ID 291
  685. X#define FOUNTAIN_ID 292
  686. X#define POOL_ID 293
  687. X#define SINK_ID 294
  688. X#define NONE 295
  689. X#define RAND_CORRIDOR_ID 296
  690. X#define DOOR_STATE 297
  691. X#define LIGHT_STATE 298
  692. X#define CURSE_TYPE 299
  693. X#define ENGRAVING_TYPE 300
  694. X#define DIRECTION 301
  695. X#define RANDOM_TYPE 302
  696. X#define O_REGISTER 303
  697. X#define M_REGISTER 304
  698. X#define P_REGISTER 305
  699. X#define A_REGISTER 306
  700. X#define ALIGNMENT 307
  701. X#define LEFT_OR_RIGHT 308
  702. X#define CENTER 309
  703. X#define TOP_OR_BOT 310
  704. X#define ALTAR_TYPE 311
  705. X#define UP_OR_DOWN 312
  706. X#define SUBROOM_ID 313
  707. X#define NAME_ID 314
  708. X#define FLAGS_ID 315
  709. X#define FLAG_TYPE 316
  710. X#define MON_ATTITUDE 317
  711. X#define MON_ALERTNESS 318
  712. X#define MON_APPEARANCE 319
  713. X#define STRING 320
  714. X#define MAP_ID 321
  715. X#define YYERRCODE 256
  716. Xshort yylhs[] = {                                        -1,
  717. X    0,    0,   38,   38,   39,   39,   40,   41,   33,   24,
  718. X   24,   14,   14,   20,   20,   21,   21,   42,   42,   47,
  719. X   44,   44,   48,   48,   45,   45,   51,   51,   46,   46,
  720. X   53,   54,   54,   55,   55,   37,   52,   52,   58,   56,
  721. X   10,   10,   61,   61,   59,   59,   62,   62,   60,   60,
  722. X   57,   57,   63,   63,   63,   63,   63,   63,   63,   63,
  723. X   63,   63,   63,   63,   63,   64,   65,   66,   15,   15,
  724. X   13,   13,   12,   12,   32,   11,   11,   43,   43,   77,
  725. X   78,   78,   81,    1,    1,    2,    2,   79,   79,   82,
  726. X   82,   82,   49,   49,   50,   50,   83,   85,   83,   80,
  727. X   80,   86,   86,   86,   86,   86,   86,   86,   86,   86,
  728. X   86,   86,   86,   86,   86,   86,   86,   86,   86,   86,
  729. X   86,  101,   67,  100,  100,  102,  102,  102,  102,  102,
  730. X  104,   68,  103,  103,  103,   16,   16,   17,   17,   87,
  731. X   69,   88,   94,   95,   96,   76,  105,   90,  106,   91,
  732. X  107,  109,   92,  110,   93,  108,  108,   23,   23,   71,
  733. X   72,   73,   97,   98,   89,   70,   74,   75,   26,   26,
  734. X   26,   29,   29,   29,   34,   34,   35,   35,    3,    3,
  735. X    4,    4,   22,   22,   22,   99,   99,   99,    5,    5,
  736. X    6,    6,    7,    7,    7,    8,    8,  113,   30,   27,
  737. X    9,   84,   25,   28,   31,   36,   36,   18,   18,   19,
  738. X   19,  112,  111,
  739. X};
  740. Xshort yylen[] = {                                         2,
  741. X    0,    1,    1,    2,    1,    1,    5,    7,    3,    0,
  742. X   13,    1,    1,    0,    3,    3,    1,    0,    2,    3,
  743. X    0,    2,    3,    3,    0,    1,    1,    2,    1,    1,
  744. X    1,    0,    2,    5,    5,    7,    2,    2,   12,   12,
  745. X    0,    2,    5,    1,    5,    1,    5,    1,    5,    1,
  746. X    0,    2,    1,    1,    1,    1,    1,    1,    1,    1,
  747. X    1,    1,    1,    1,    1,    3,    3,    9,    1,    1,
  748. X    1,    1,    1,    1,    5,    1,    1,    1,    2,    3,
  749. X    1,    2,    5,    1,    1,    1,    1,    0,    2,    3,
  750. X    3,    3,    1,    3,    1,    3,    1,    0,    4,    0,
  751. X    2,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  752. X    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  753. X    1,    0,    9,    0,    2,    2,    2,    2,    2,    3,
  754. X    0,    9,    0,    4,    6,    1,    1,    1,    1,    5,
  755. X    5,    7,    5,    1,    5,    5,    0,    8,    0,    8,
  756. X    0,    0,    8,    0,    6,    0,    2,    1,   10,    3,
  757. X    3,    3,    3,    3,    8,    7,    5,    7,    1,    1,
  758. X    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  759. X    1,    1,    0,    2,    4,    1,    1,    1,    1,    1,
  760. X    1,    1,    1,    1,    1,    1,    1,    4,    4,    4,
  761. X    4,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  762. X    1,    5,    9,
  763. X};
  764. Xshort yydefred[] = {                                      0,
  765. X    0,    0,    0,    0,    0,    2,    0,    5,    6,    0,
  766. X    0,    0,    0,    0,    4,  205,    0,    9,    0,    0,
  767. X    0,    0,    0,    0,   15,    0,    0,    0,    0,   21,
  768. X   76,   77,   75,    0,    0,    0,    0,   81,    7,    0,
  769. X   88,    0,   19,    0,   16,    0,   20,    0,   79,    0,
  770. X   82,    0,    0,    0,    0,    0,   22,   26,    0,   51,
  771. X   51,    0,   84,   85,    0,    0,    0,    0,    0,   89,
  772. X    0,    0,    0,    0,   31,    8,   29,    0,   28,    0,
  773. X    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  774. X    0,    0,  144,    0,    0,    0,    0,    0,    0,    0,
  775. X    0,    0,    0,    0,    0,  102,  103,  105,  112,  113,
  776. X  118,  119,  117,  101,  104,  106,  107,  108,  109,  110,
  777. X  111,  114,  115,  116,  120,  121,  204,    0,   23,  203,
  778. X    0,   24,  182,    0,  181,    0,    0,   33,    0,    0,
  779. X    0,    0,    0,    0,   52,   53,   54,   55,   56,   57,
  780. X   58,   59,   60,   61,   62,   63,   64,   65,    0,   87,
  781. X   86,   83,   90,   92,    0,   91,    0,  202,    0,    0,
  782. X    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  783. X    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  784. X    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  785. X  173,    0,  172,    0,  174,  170,    0,  169,    0,  171,
  786. X  180,    0,  179,  189,  190,    0,  188,    0,    0,  186,
  787. X  187,    0,    0,    0,    0,    0,    0,    0,  147,    0,
  788. X  158,  163,  164,  149,  151,  154,  208,  209,    0,    0,
  789. X  160,   94,   96,  191,  192,    0,    0,    0,    0,   69,
  790. X   70,    0,   67,  162,  161,   66,    0,    0,    0,    0,
  791. X    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  792. X    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  793. X    0,    0,    0,    0,    0,    0,    0,    0,   99,    0,
  794. X  178,  177,    0,    0,  176,  175,    0,  141,  140,    0,
  795. X    0,  143,    0,    0,  195,    0,  193,    0,  194,  145,
  796. X    0,    0,    0,  146,    0,    0,    0,  167,  210,  211,
  797. X    0,   44,    0,    0,   46,    0,    0,    0,   35,   34,
  798. X    0,    0,  212,  199,    0,  200,    0,  198,    0,    0,
  799. X    0,    0,    0,    0,    0,    0,    0,  152,  155,    0,
  800. X    0,    0,    0,    0,    0,    0,    0,  131,  122,  142,
  801. X    0,    0,    0,  197,  196,  166,    0,    0,    0,    0,
  802. X  168,    0,   48,    0,    0,    0,   50,    0,    0,    0,
  803. X   71,   72,    0,   12,   13,   11,    0,  124,    0,    0,
  804. X  165,  201,    0,  148,  150,    0,  153,    0,    0,    0,
  805. X    0,    0,    0,   73,   74,    0,    0,    0,  132,    0,
  806. X    0,    0,    0,  157,   43,    0,    0,   45,    0,    0,
  807. X   36,   68,  137,  136,    0,    0,    0,  125,    0,    0,
  808. X    0,    0,    0,   40,    0,   39,    0,    0,  127,  128,
  809. X    0,  129,  126,  213,  185,    0,   47,   42,   49,  138,
  810. X  139,  134,    0,  130,  159,    0,  207,  206,  135,
  811. X};
  812. Xshort yydgoto[] = {                                       3,
  813. X   65,  162,  212,  134,  216,  246,  308,  366,  309,  434,
  814. X   33,  406,  383,  386,  252,  426,  452,  239,  321,   13,
  815. X   25,  391,  229,   21,  131,  209,  210,  128,  204,  205,
  816. X  135,    4,    5,  297,  293,  459,  249,    6,    7,    8,
  817. X    9,   28,   39,   44,   56,   76,   29,   57,  129,  132,
  818. X   58,   59,   77,   78,  138,   60,   80,   61,  327,  379,
  819. X  324,  375,  145,  146,  147,  148,  149,  150,  151,  152,
  820. X  153,  154,  155,  156,  157,  158,   40,   41,   50,   69,
  821. X   42,   70,  166,  167,  200,  114,  115,  116,  117,  118,
  822. X  119,  120,  121,  122,  123,  124,  125,  126,  230,  410,
  823. X  388,  428,  409,  387,  275,  277,  278,  397,  370,  279,
  824. X  231,  220,  221,
  825. X};
  826. Xshort yysindex[] = {                                   -122,
  827. X  -26,    4,    0, -231, -231,    0, -122,    0,    0, -267,
  828. X -267,   37, -156, -156,    0,    0,   70,    0, -199,   72,
  829. X -103, -103, -226,  107,    0,  -99,  101, -123, -103,    0,
  830. X    0,    0,    0, -199,  116, -158,  105,    0,    0, -123,
  831. X    0, -157,    0, -234,    0,  -92,    0, -164,    0, -139,
  832. X    0,  108,  109,  110,  111, -126,    0,    0, -262,    0,
  833. X    0,  127,    0,    0,  128,  118,  119,  120,  -78,    0,
  834. X  -83,  -74, -272, -272,    0,    0,    0, -108,    0, -223,
  835. X -223,  -79, -161,  -83,  -74,  144,  138,  139,  140,  141,
  836. X  147,  151,    0,  152,  153,  157,  158,  159,  160,  161,
  837. X  162,  165,  166,  167,  168,    0,    0,    0,    0,    0,
  838. X    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  839. X    0,    0,    0,    0,    0,    0,    0,  142,    0,    0,
  840. X  183,    0,    0,  184,    0,  185,  173,    0,  174,  175,
  841. X  176,  177,  178,  179,    0,    0,    0,    0,    0,    0,
  842. X    0,    0,    0,    0,    0,    0,    0,    0,  194,    0,
  843. X    0,    0,    0,    0,  -73,    0,    0,    0, -229, -241,
  844. X -242, -201,   79,   79,  199,   79,   79,   95,  199,  199,
  845. X  -35,  -35,  -35, -222,   79,   79,  -83,  -74, -276, -276,
  846. X  201, -230,   79,  -16,   79,   79, -267,  -15,  202,  203,
  847. X    0,  154,    0,  204,    0,    0,  163,    0,  205,    0,
  848. X    0,  211,    0,    0,    0,  212,    0,  169,  213,    0,
  849. X    0,  214,    1,  217,  218,  258,  294,   84,    0,  303,
  850. X    0,    0,    0,    0,    0,    0,    0,    0,  305,  312,
  851. X    0,    0,    0,    0,    0,  314,  319,  125,  343,    0,
  852. X    0,  344,    0,    0,    0,    0,  348,  136,  144,  137,
  853. X -216,  145, -209,   79,   79,  148,  -58,   98,  357, -276,
  854. X -248,  124,  180,  393,  396,  129,  398,  401,  426,   79,
  855. X -177,  -37,  -13,  431,  -36, -201, -276,  435,    0,  384,
  856. X    0,    0,  436,  394,    0,    0,  444,    0,    0,  405,
  857. X  445,    0,  236,  455,    0,  388,    0,  463,    0,    0,
  858. X  464,  251,  -35,    0,  -35,  -35,  -35,    0,    0,    0,
  859. X  470,    0,  260,  476,    0,  263,  478,  223,    0,    0,
  860. X  481,  483,    0,    0,   79,    0,   79,    0, -201,  484,
  861. X -272,  272, -255,  273,   65,  488,  491,    0,    0, -267,
  862. X  498,   -5,  500,   24,  501, -155, -219,    0,    0,    0,
  863. X  289,  504,  456,    0,    0,    0,  506,  242, -267,  511,
  864. X    0,  298,    0, -164,  513,  300,    0,  304,  520, -221,
  865. X    0,    0,  522,    0,    0,    0,  523,    0,  524,  295,
  866. X    0,    0,  313,    0,    0,  261,    0,  529,  532,   24,
  867. X  536,  534, -267,    0,    0,  538, -221, -212,    0,  537,
  868. X  322,  539,  540,    0,    0, -161,  541,    0,  328,  541,
  869. X    0,    0,    0,    0,  543,  546, -186,    0,  550,  333,
  870. X  335,  553,  337,    0,  556,    0, -220, -220,    0,    0,
  871. X -267,    0,    0,    0,    0,  557,    0,    0,    0,    0,
  872. X    0,    0,  555,    0,    0, -270,    0,    0,    0,
  873. X};
  874. Xshort yyrindex[] = {                                    600,
  875. X    0,    0,    0, -166,  230,    0,  601,    0,    0,    0,
  876. X    0,    0, -138,  240,    0,    0,    0,    0,    0,    0,
  877. X -109,  299,    0,  221,    0,    0,    0,    0,  276,    0,
  878. X    0,    0,    0,    0,    0,    0,    0,    0,    0,   17,
  879. X    0,    0,    0,   52,    0,    0,    0,    0,    0,  386,
  880. X    0,    0,    0,    0,    0,   75,    0,    0,  100,    0,
  881. X    0,    0,    0,    0,    0,    0,    0,    0,  115,    0,
  882. X    0,    0,    0,    0,    0,    0,    0,  113,    0,   89,
  883. X  250,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  884. X    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  885. X    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  886. X    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  887. X    0,    0,    0,    0,    0,    0,    0,  143,    0,    0,
  888. X  182,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  889. X    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  890. X    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  891. X    0,    0,    0,    0,    0,    0,  354,    0,    0,    0,
  892. X    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  893. X    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  894. X    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  895. X    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  896. X    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  897. X    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  898. X    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  899. X    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  900. X    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  901. X    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  902. X    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  903. X    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  904. X    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  905. X    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  906. X    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  907. X    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  908. X    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  909. X    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  910. X    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  911. X    0,  430,    0,    0,    0,    0,    0,    0,    0,  469,
  912. X    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  913. X    0,    0,    0,    0,    0,    0,    2,    0,    0,    0,
  914. X    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  915. X    0,    0,    0,    0,    0,    0,    0,    0,    0,   39,
  916. X    0,  503,    0,    0,    0,    0,   77,    0,    0,   77,
  917. X    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  918. X    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  919. X    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  920. X    0,    0,    0,    0,    0,    0,    0,    0,    0,
  921. X};
  922. Xshort yygindex[] = {                                      0,
  923. X  228,  187,    0,  -64, -273, -182,  181,    0,    0,  186,
  924. X    0,  197,    0,    0,    0,    0,  171,    0,    0,  602,
  925. X  571,    0, -163,  596,  441,    0,    0,  448,    0,    0,
  926. X  -10,    0,    0,    0,    0,    0,  329,  606,    0,    0,
  927. X    0,   63,  588,    0,    0,    0,    0,    0,  -77,  -76,
  928. X  578,    0,    0,    0,    0,    0,  580,    0,    0,  243,
  929. X    0,    0,    0,    0,    0,    0,  573,  591,  592,  593,
  930. X  594,    0,    0,  604,  605,  610,    0,    0,    0,    0,
  931. X    0,    0,  390,    0,    0,    0,    0,    0,    0,    0,
  932. X    0,    0,    0,    0,    0,    0,    0,    0, -162,    0,
  933. X    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  934. X  -51,  -80,    0,
  935. X};
  936. X#define YYTABLESIZE 795
  937. Xshort yytable[] = {                                      17,
  938. X   18,  133,  323,  248,  223,  168,  163,  247,  164,  136,
  939. X  219,  222,  331,  225,  226,  130,   78,  234,  235,  236,
  940. X   54,  244,  240,  241,  457,  245,  326,  127,  250,  133,
  941. X   31,   10,  254,  255,  374,  237,  404,  450,  123,  384,
  942. X   52,   53,   87,   88,   89,  139,  364,   16,   54,  458,
  943. X   55,   25,   16,  305,   95,  365,  140,  306,  307,  211,
  944. X  206,   11,  207,  378,  141,  360,  103,  104,  105,  142,
  945. X  143,  251,  201,  202,   32,   32,   41,   16,   55,  238,
  946. X  405,  451,  385,   12,   30,  291,  423,  304,   37,  424,
  947. X  144,   43,  295,   14,   19,  214,   14,   14,   14,   27,
  948. X  215,  298,  299,   16,  332,  333,   20,  425,  361,  242,
  949. X   16,  243,   30,   23,   80,  305,   24,  318,  165,  306,
  950. X  307,   10,  319,  224,  320,   10,   10,  232,  233,   26,
  951. X  439,  440,  441,   16,  228,   66,   67,   68,    1,    2,
  952. X   37,   38,   93,   63,   64,  381,  382,  160,  161,  346,
  953. X   34,  347,  348,  349,   18,   18,   27,   35,   36,   46,
  954. X  213,   47,   48,   51,   62,   71,   72,   73,   74,   75,
  955. X   82,   83,  358,  127,  359,   84,   85,   86,  168,  159,
  956. X  137,   95,  130,  165,  199,  187,  256,   87,   88,   89,
  957. X   90,   91,   92,   93,   94,  169,  170,  171,  172,   95,
  958. X   96,   97,   98,   99,  173,  100,  101,  102,  174,  175,
  959. X  176,  103,  104,  105,  177,  178,  179,  180,  181,  182,
  960. X   17,  329,  183,  184,  185,  186,  188,  189,  190,   14,
  961. X  191,  192,  193,  194,  195,  196,  197,  198,  223,   10,
  962. X  248,  253,  301,  257,  260,  258,  259,  261,  263,   38,
  963. X  292,  227,  296,  262,  264,  265,  267,  268,  269,  266,
  964. X  270,  271,  133,  133,  322,  133,  133,  133,  133,  133,
  965. X  133,  133,  133,  133,  133,   18,  362,   78,   78,  133,
  966. X  133,  133,  133,  133,  133,  133,  133,  133,  325,  133,
  967. X  133,  133,  133,  133,  133,  133,  373,  133,   18,  123,
  968. X  123,  272,  123,  123,  123,  123,  123,  123,  123,  123,
  969. X  123,  123,   25,   25,  133,  133,  123,  123,  123,  123,
  970. X  123,  123,  123,  123,  123,  377,  123,  123,  123,  123,
  971. X  123,  123,  123,  273,  123,   32,   32,   41,   41,  371,
  972. X   25,  274,   41,   41,   41,   41,  276,   25,  280,   37,
  973. X   37,  123,  123,   97,   41,  281,   41,  282,  395,   41,
  974. X   27,   27,  283,   32,   41,   41,   41,   41,   41,   41,
  975. X   41,   37,   41,   30,   30,   80,   80,   37,   80,   80,
  976. X  217,  227,  284,  218,   37,  100,  285,  286,   27,   41,
  977. X   41,  287,  420,  288,  290,   27,  217,   98,  302,  218,
  978. X  303,   37,  294,   93,   93,  300,   93,   93,   93,   93,
  979. X   93,   93,   93,   93,   93,   93,  443,   93,   93,   93,
  980. X   93,   93,   93,   93,   93,   93,   93,   93,   93,  183,
  981. X  454,   93,   93,   93,   93,  310,  312,  311,   93,  313,
  982. X  314,  315,   95,   95,  316,   95,   95,   95,   95,   95,
  983. X   95,   95,   95,   95,   95,   93,   95,   95,   95,   95,
  984. X   95,   95,   95,   95,   95,   95,   95,   95,  156,  317,
  985. X   95,   95,   95,   95,  328,  333,  334,   95,  342,  335,
  986. X   17,   17,   17,   17,   17,   17,  336,  337,  339,   14,
  987. X   14,   14,   14,  340,   95,   17,   17,  338,  341,   10,
  988. X   10,   10,  184,   17,   14,   14,  343,  344,  345,   17,
  989. X   38,   38,   14,  350,   10,   10,   17,  351,   14,  352,
  990. X  353,  354,   10,  355,  356,   14,  357,  361,   10,  363,
  991. X  367,  368,   38,   17,  369,   10,   18,   18,   38,   18,
  992. X   18,  372,   14,  376,  380,   38,  389,  390,  392,  393,
  993. X   18,   18,   10,  394,  396,  398,  400,  401,   18,   18,
  994. X   18,  402,   38,  403,   18,  407,  408,  411,  412,  415,
  995. X  413,   18,  414,   18,   18,  416,  418,  419,  421,  429,
  996. X  427,   18,  430,  431,  433,  435,  437,   18,   18,  438,
  997. X  444,  445,  446,  447,   18,  448,  449,  455,  456,    1,
  998. X    3,  399,  432,  422,   45,  436,   14,  442,  453,   22,
  999. X  208,   18,   15,  330,   97,   97,  203,   97,   97,   97,
  1000. X   97,   97,   97,   97,   97,   97,   97,   49,   97,   97,
  1001. X   97,   97,   97,   97,   97,   97,   79,   97,   97,   97,
  1002. X   81,  106,  417,   97,   97,   97,  100,  100,  289,  100,
  1003. X  100,  100,  100,  100,  100,  100,  100,  100,  100,  107,
  1004. X  108,  109,  110,  100,  100,  100,  100,  100,    0,  100,
  1005. X  100,  100,  111,  112,    0,  100,  100,  100,  113,    0,
  1006. X    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1007. X  183,  183,    0,  183,  183,  183,  183,  183,  183,  183,
  1008. X  183,  183,  183,    0,    0,    0,    0,  183,  183,  183,
  1009. X  183,  183,    0,  183,  183,  183,    0,    0,    0,  183,
  1010. X  183,  183,    0,    0,    0,    0,    0,    0,    0,  156,
  1011. X  156,    0,  156,  156,  156,  156,  156,  156,  156,  156,
  1012. X  156,  156,    0,    0,    0,    0,  156,  156,  156,  156,
  1013. X  156,    0,  156,  156,  156,    0,    0,    0,  156,  156,
  1014. X  156,    0,    0,  184,  184,    0,  184,  184,  184,  184,
  1015. X  184,  184,  184,  184,  184,  184,    0,    0,    0,    0,
  1016. X  184,  184,  184,  184,  184,    0,  184,  184,  184,    0,
  1017. X    0,    0,  184,  184,  184,
  1018. X};
  1019. Xshort yycheck[] = {                                      10,
  1020. X   11,    0,   40,   40,   40,   86,   84,  190,   85,   74,
  1021. X  173,  174,  286,  176,  177,  257,    0,  181,  182,  183,
  1022. X  283,  298,  185,  186,  295,  302,   40,  257,  259,  302,
  1023. X  257,   58,  195,  196,   40,  258,  258,  258,    0,  259,
  1024. X  275,  276,  266,  267,  268,  269,  302,  320,  283,  320,
  1025. X  313,    0,  320,  302,  278,  311,  280,  306,  307,  302,
  1026. X  302,   58,  304,   40,  288,  339,  290,  291,  292,  293,
  1027. X  294,  302,  302,  303,    0,  302,    0,  320,  313,  302,
  1028. X  302,  302,  302,  315,   22,  302,  299,  270,    0,  302,
  1029. X  314,   29,  302,  260,   58,  297,  263,  264,  265,    0,
  1030. X  302,  264,  265,  320,  287,   41,  263,  320,   44,  187,
  1031. X  320,  188,    0,   44,    0,  302,  316,  280,   40,  306,
  1032. X  307,  260,  300,  175,  302,  264,  265,  179,  180,   58,
  1033. X  317,  318,  319,  320,   40,  275,  276,  277,  261,  262,
  1034. X  264,  265,    0,  308,  309,  301,  302,  309,  310,  313,
  1035. X   44,  315,  316,  317,  264,  265,  260,  257,   58,   44,
  1036. X  171,  320,   58,  321,  257,   58,   58,   58,   58,  296,
  1037. X   44,   44,  335,  257,  337,   58,   58,   58,  259,  259,
  1038. X  289,    0,  257,   40,  258,   44,  197,  266,  267,  268,
  1039. X  269,  270,  271,  272,  273,   58,   58,   58,   58,  278,
  1040. X  279,  280,  281,  282,   58,  284,  285,  286,   58,   58,
  1041. X   58,  290,  291,  292,   58,   58,   58,   58,   58,   58,
  1042. X    0,  258,   58,   58,   58,   58,   44,   44,   44,    0,
  1043. X   58,   58,   58,   58,   58,   58,   58,   44,   40,    0,
  1044. X   40,  258,  301,  259,   91,   44,   44,   44,   44,    0,
  1045. X  261,  287,  263,   91,   44,   44,   44,   44,  258,   91,
  1046. X   44,   44,  261,  262,  302,  264,  265,  266,  267,  268,
  1047. X  269,  270,  271,  272,  273,    0,  341,  261,  262,  278,
  1048. X  279,  280,  281,  282,  283,  284,  285,  286,  302,  288,
  1049. X  289,  290,  291,  292,  293,  294,  302,  296,    0,  261,
  1050. X  262,   44,  264,  265,  266,  267,  268,  269,  270,  271,
  1051. X  272,  273,  261,  262,  313,  314,  278,  279,  280,  281,
  1052. X  282,  283,  284,  285,  286,  302,  288,  289,  290,  291,
  1053. X  292,  293,  294,   40,  296,  261,  262,  261,  262,  350,
  1054. X  289,  258,  266,  267,  268,  269,   44,  296,   44,  261,
  1055. X  262,  313,  314,    0,  278,   44,  280,   44,  369,  283,
  1056. X  261,  262,   44,  289,  288,  289,  290,  291,  292,  293,
  1057. X  294,  283,  296,  261,  262,  261,  262,  289,  264,  265,
  1058. X  302,  287,  258,  305,  296,    0,   44,   44,  289,  313,
  1059. X  314,   44,  403,  258,  258,  296,  302,   44,  301,  305,
  1060. X   44,  313,  258,  261,  262,  258,  264,  265,  266,  267,
  1061. X  268,  269,  270,  271,  272,  273,  427,  275,  276,  277,
  1062. X  278,  279,  280,  281,  282,  283,  284,  285,  286,    0,
  1063. X  441,  289,  290,  291,  292,  312,   44,  258,  296,   44,
  1064. X  312,   44,  261,  262,   44,  264,  265,  266,  267,  268,
  1065. X  269,  270,  271,  272,  273,  313,  275,  276,  277,  278,
  1066. X  279,  280,  281,  282,  283,  284,  285,  286,    0,   44,
  1067. X  289,  290,  291,  292,   44,   41,   93,  296,   91,   44,
  1068. X  260,  261,  262,  263,  264,  265,   93,   44,   44,  260,
  1069. X  261,  262,  263,  258,  313,  275,  276,   93,   44,  260,
  1070. X  261,  262,    0,  283,  275,  276,   44,   44,  258,  289,
  1071. X  261,  262,  283,   44,  275,  276,  296,  258,  289,   44,
  1072. X  258,   44,  283,  301,   44,  296,   44,   44,  289,  258,
  1073. X  258,   44,  283,  313,   44,  296,  261,  262,  289,  264,
  1074. X  265,   44,  313,   44,   44,  296,  258,   44,   93,   44,
  1075. X  275,  276,  313,  312,   44,  258,   44,  258,  283,  261,
  1076. X  262,  258,  313,   44,  289,   44,   44,   44,  274,   41,
  1077. X  258,  296,  312,  275,  276,   44,   41,   44,   41,  258,
  1078. X   44,  283,   44,   44,   44,  258,   44,  289,  313,   44,
  1079. X   41,  259,  258,   41,  296,  259,   41,   41,   44,    0,
  1080. X    0,  374,  416,  407,   34,  420,    5,  427,  438,   14,
  1081. X  170,  313,    7,  285,  261,  262,  169,  264,  265,  266,
  1082. X  267,  268,  269,  270,  271,  272,  273,   40,  275,  276,
  1083. X  277,  278,  279,  280,  281,  282,   59,  284,  285,  286,
  1084. X   61,   69,  400,  290,  291,  292,  261,  262,  259,  264,
  1085. X  265,  266,  267,  268,  269,  270,  271,  272,  273,   69,
  1086. X   69,   69,   69,  278,  279,  280,  281,  282,   -1,  284,
  1087. X  285,  286,   69,   69,   -1,  290,  291,  292,   69,   -1,
  1088. X   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1089. X  261,  262,   -1,  264,  265,  266,  267,  268,  269,  270,
  1090. X  271,  272,  273,   -1,   -1,   -1,   -1,  278,  279,  280,
  1091. X  281,  282,   -1,  284,  285,  286,   -1,   -1,   -1,  290,
  1092. X  291,  292,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  261,
  1093. X  262,   -1,  264,  265,  266,  267,  268,  269,  270,  271,
  1094. X  272,  273,   -1,   -1,   -1,   -1,  278,  279,  280,  281,
  1095. X  282,   -1,  284,  285,  286,   -1,   -1,   -1,  290,  291,
  1096. X  292,   -1,   -1,  261,  262,   -1,  264,  265,  266,  267,
  1097. X  268,  269,  270,  271,  272,  273,   -1,   -1,   -1,   -1,
  1098. X  278,  279,  280,  281,  282,   -1,  284,  285,  286,   -1,
  1099. X   -1,   -1,  290,  291,  292,
  1100. X};
  1101. X#define YYFINAL 3
  1102. X#ifndef YYDEBUG
  1103. X#define YYDEBUG 0
  1104. X#endif
  1105. X#define YYMAXTOKEN 321
  1106. X#if YYDEBUG
  1107. Xchar *yyname[] = {
  1108. X"end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1109. X0,0,0,0,0,0,"'('","')'",0,0,"','",0,0,0,0,0,0,0,0,0,0,0,0,0,"':'",0,0,0,0,0,0,0,
  1110. X0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"'['",0,"']'",0,0,0,0,0,0,0,0,
  1111. X0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1112. X0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1113. X0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1114. X0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"CHAR",
  1115. X"INTEGER","BOOLEAN","MESSAGE_ID","MAZE_ID","LEVEL_ID","LEV_INIT_ID",
  1116. X"GEOMETRY_ID","NOMAP_ID","OBJECT_ID","MONSTER_ID","TRAP_ID","DOOR_ID",
  1117. X"DRAWBRIDGE_ID","MAZEWALK_ID","WALLIFY_ID","REGION_ID","FILLING",
  1118. X"RANDOM_OBJECTS_ID","RANDOM_MONSTERS_ID","RANDOM_PLACES_ID","ALTAR_ID",
  1119. X"LADDER_ID","STAIR_ID","NON_DIGGABLE_ID","NON_PASSWALL_ID","ROOM_ID",
  1120. X"PORTAL_ID","TELEPRT_ID","BRANCH_ID","LEV","CHANCE_ID","CORRIDOR_ID","GOLD_ID",
  1121. X"ENGRAVING_ID","FOUNTAIN_ID","POOL_ID","SINK_ID","NONE","RAND_CORRIDOR_ID",
  1122. X"DOOR_STATE","LIGHT_STATE","CURSE_TYPE","ENGRAVING_TYPE","DIRECTION",
  1123. X"RANDOM_TYPE","O_REGISTER","M_REGISTER","P_REGISTER","A_REGISTER","ALIGNMENT",
  1124. X"LEFT_OR_RIGHT","CENTER","TOP_OR_BOT","ALTAR_TYPE","UP_OR_DOWN","SUBROOM_ID",
  1125. X"NAME_ID","FLAGS_ID","FLAG_TYPE","MON_ATTITUDE","MON_ALERTNESS",
  1126. X"MON_APPEARANCE","STRING","MAP_ID",
  1127. X};
  1128. Xchar *yyrule[] = {
  1129. X"$accept : file",
  1130. X"file :",
  1131. X"file : levels",
  1132. X"levels : level",
  1133. X"levels : level levels",
  1134. X"level : maze_level",
  1135. X"level : room_level",
  1136. X"maze_level : maze_def flags lev_init messages regions",
  1137. X"room_level : level_def flags lev_init messages rreg_init rooms corridors_def",
  1138. X"level_def : LEVEL_ID ':' string",
  1139. X"lev_init :",
  1140. X"lev_init : LEV_INIT_ID ':' CHAR ',' CHAR ',' BOOLEAN ',' BOOLEAN ',' light_state ',' walled",
  1141. X"walled : BOOLEAN",
  1142. X"walled : RANDOM_TYPE",
  1143. X"flags :",
  1144. X"flags : FLAGS_ID ':' flag_list",
  1145. X"flag_list : FLAG_TYPE ',' flag_list",
  1146. X"flag_list : FLAG_TYPE",
  1147. X"messages :",
  1148. X"messages : message messages",
  1149. X"message : MESSAGE_ID ':' STRING",
  1150. X"rreg_init :",
  1151. X"rreg_init : rreg_init init_rreg",
  1152. X"init_rreg : RANDOM_OBJECTS_ID ':' object_list",
  1153. X"init_rreg : RANDOM_MONSTERS_ID ':' monster_list",
  1154. X"rooms :",
  1155. X"rooms : roomlist",
  1156. X"roomlist : aroom",
  1157. X"roomlist : aroom roomlist",
  1158. X"corridors_def : random_corridors",
  1159. X"corridors_def : corridors",
  1160. X"random_corridors : RAND_CORRIDOR_ID",
  1161. X"corridors :",
  1162. X"corridors : corridors corridor",
  1163. X"corridor : CORRIDOR_ID ':' corr_spec ',' corr_spec",
  1164. X"corridor : CORRIDOR_ID ':' corr_spec ',' INTEGER",
  1165. X"corr_spec : '(' INTEGER ',' DIRECTION ',' door_pos ')'",
  1166. X"aroom : room_def room_details",
  1167. X"aroom : subroom_def room_details",
  1168. X"subroom_def : SUBROOM_ID ':' room_type ',' light_state ',' subroom_pos ',' room_size ',' string roomfill",
  1169. X"room_def : ROOM_ID ':' room_type ',' light_state ',' room_pos ',' room_align ',' room_size roomfill",
  1170. X"roomfill :",
  1171. X"roomfill : ',' BOOLEAN",
  1172. X"room_pos : '(' INTEGER ',' INTEGER ')'",
  1173. X"room_pos : RANDOM_TYPE",
  1174. X"subroom_pos : '(' INTEGER ',' INTEGER ')'",
  1175. X"subroom_pos : RANDOM_TYPE",
  1176. X"room_align : '(' h_justif ',' v_justif ')'",
  1177. X"room_align : RANDOM_TYPE",
  1178. X"room_size : '(' INTEGER ',' INTEGER ')'",
  1179. X"room_size : RANDOM_TYPE",
  1180. X"room_details :",
  1181. X"room_details : room_details room_detail",
  1182. X"room_detail : room_name",
  1183. X"room_detail : room_chance",
  1184. X"room_detail : room_door",
  1185. X"room_detail : monster_detail",
  1186. X"room_detail : object_detail",
  1187. X"room_detail : trap_detail",
  1188. X"room_detail : altar_detail",
  1189. X"room_detail : fountain_detail",
  1190. X"room_detail : sink_detail",
  1191. X"room_detail : pool_detail",
  1192. X"room_detail : gold_detail",
  1193. X"room_detail : engraving_detail",
  1194. X"room_detail : stair_detail",
  1195. X"room_name : NAME_ID ':' string",
  1196. X"room_chance : CHANCE_ID ':' INTEGER",
  1197. X"room_door : DOOR_ID ':' secret ',' door_state ',' door_wall ',' door_pos",
  1198. X"secret : BOOLEAN",
  1199. X"secret : RANDOM_TYPE",
  1200. X"door_wall : DIRECTION",
  1201. X"door_wall : RANDOM_TYPE",
  1202. X"door_pos : INTEGER",
  1203. X"door_pos : RANDOM_TYPE",
  1204. X"maze_def : MAZE_ID ':' string ',' filling",
  1205. X"filling : CHAR",
  1206. X"filling : RANDOM_TYPE",
  1207. X"regions : aregion",
  1208. X"regions : aregion regions",
  1209. X"aregion : map_definition reg_init map_details",
  1210. X"map_definition : NOMAP_ID",
  1211. X"map_definition : map_geometry MAP_ID",
  1212. X"map_geometry : GEOMETRY_ID ':' h_justif ',' v_justif",
  1213. X"h_justif : LEFT_OR_RIGHT",
  1214. X"h_justif : CENTER",
  1215. X"v_justif : TOP_OR_BOT",
  1216. X"v_justif : CENTER",
  1217. X"reg_init :",
  1218. X"reg_init : reg_init init_reg",
  1219. X"init_reg : RANDOM_OBJECTS_ID ':' object_list",
  1220. X"init_reg : RANDOM_PLACES_ID ':' place_list",
  1221. X"init_reg : RANDOM_MONSTERS_ID ':' monster_list",
  1222. X"object_list : object",
  1223. X"object_list : object ',' object_list",
  1224. X"monster_list : monster",
  1225. X"monster_list : monster ',' monster_list",
  1226. X"place_list : place",
  1227. X"$$1 :",
  1228. X"place_list : place $$1 ',' place_list",
  1229. X"map_details :",
  1230. X"map_details : map_details map_detail",
  1231. X"map_detail : monster_detail",
  1232. X"map_detail : object_detail",
  1233. X"map_detail : door_detail",
  1234. X"map_detail : trap_detail",
  1235. X"map_detail : drawbridge_detail",
  1236. X"map_detail : region_detail",
  1237. X"map_detail : stair_region",
  1238. X"map_detail : portal_region",
  1239. X"map_detail : teleprt_region",
  1240. X"map_detail : branch_region",
  1241. X"map_detail : altar_detail",
  1242. X"map_detail : fountain_detail",
  1243. X"map_detail : mazewalk_detail",
  1244. X"map_detail : wallify_detail",
  1245. X"map_detail : ladder_detail",
  1246. X"map_detail : stair_detail",
  1247. X"map_detail : gold_detail",
  1248. X"map_detail : engraving_detail",
  1249. X"map_detail : diggable_detail",
  1250. X"map_detail : passwall_detail",
  1251. X"$$2 :",
  1252. X"monster_detail : MONSTER_ID ':' monster_c ',' m_name ',' coordinate $$2 monster_infos",
  1253. X"monster_infos :",
  1254. X"monster_infos : monster_infos monster_info",
  1255. X"monster_info : ',' string",
  1256. X"monster_info : ',' MON_ATTITUDE",
  1257. X"monster_info : ',' MON_ALERTNESS",
  1258. X"monster_info : ',' alignment",
  1259. X"monster_info : ',' MON_APPEARANCE string",
  1260. X"$$3 :",
  1261. X"object_detail : OBJECT_ID ':' object_c ',' o_name ',' coordinate $$3 object_infos",
  1262. X"object_infos :",
  1263. X"object_infos : ',' STRING ',' enchantment",
  1264. X"object_infos : ',' curse_state ',' enchantment ',' art_name",
  1265. X"curse_state : RANDOM_TYPE",
  1266. X"curse_state : CURSE_TYPE",
  1267. X"enchantment : INTEGER",
  1268. X"enchantment : RANDOM_TYPE",
  1269. X"door_detail : DOOR_ID ':' door_state ',' coordinate",
  1270. X"trap_detail : TRAP_ID ':' trap_name ',' coordinate",
  1271. X"drawbridge_detail : DRAWBRIDGE_ID ':' coordinate ',' DIRECTION ',' door_state",
  1272. X"mazewalk_detail : MAZEWALK_ID ':' coordinate ',' DIRECTION",
  1273. X"wallify_detail : WALLIFY_ID",
  1274. X"ladder_detail : LADDER_ID ':' coordinate ',' UP_OR_DOWN",
  1275. X"stair_detail : STAIR_ID ':' coordinate ',' UP_OR_DOWN",
  1276. X"$$4 :",
  1277. X"stair_region : STAIR_ID ':' lev_region $$4 ',' lev_region ',' UP_OR_DOWN",
  1278. X"$$5 :",
  1279. X"portal_region : PORTAL_ID ':' lev_region $$5 ',' lev_region ',' string",
  1280. X"$$6 :",
  1281. X"$$7 :",
  1282. X"teleprt_region : TELEPRT_ID ':' lev_region $$6 ',' lev_region $$7 teleprt_detail",
  1283. X"$$8 :",
  1284. X"branch_region : BRANCH_ID ':' lev_region $$8 ',' lev_region",
  1285. X"teleprt_detail :",
  1286. X"teleprt_detail : ',' UP_OR_DOWN",
  1287. X"lev_region : region",
  1288. X"lev_region : LEV '(' INTEGER ',' INTEGER ',' INTEGER ',' INTEGER ')'",
  1289. X"fountain_detail : FOUNTAIN_ID ':' coordinate",
  1290. X"sink_detail : SINK_ID ':' coordinate",
  1291. X"pool_detail : POOL_ID ':' coordinate",
  1292. X"diggable_detail : NON_DIGGABLE_ID ':' region",
  1293. X"passwall_detail : NON_PASSWALL_ID ':' region",
  1294. X"region_detail : REGION_ID ':' region ',' light_state ',' room_type prefilled",
  1295. X"altar_detail : ALTAR_ID ':' coordinate ',' alignment ',' altar_type",
  1296. X"gold_detail : GOLD_ID ':' amount ',' coordinate",
  1297. X"engraving_detail : ENGRAVING_ID ':' coordinate ',' engraving_type ',' string",
  1298. X"monster_c : monster",
  1299. X"monster_c : RANDOM_TYPE",
  1300. X"monster_c : m_register",
  1301. X"object_c : object",
  1302. X"object_c : RANDOM_TYPE",
  1303. X"object_c : o_register",
  1304. X"m_name : string",
  1305. X"m_name : RANDOM_TYPE",
  1306. X"o_name : string",
  1307. X"o_name : RANDOM_TYPE",
  1308. X"trap_name : string",
  1309. X"trap_name : RANDOM_TYPE",
  1310. X"room_type : string",
  1311. X"room_type : RANDOM_TYPE",
  1312. X"prefilled :",
  1313. X"prefilled : ',' FILLING",
  1314. X"prefilled : ',' FILLING ',' BOOLEAN",
  1315. X"coordinate : coord",
  1316. X"coordinate : p_register",
  1317. X"coordinate : RANDOM_TYPE",
  1318. X"door_state : DOOR_STATE",
  1319. X"door_state : RANDOM_TYPE",
  1320. X"light_state : LIGHT_STATE",
  1321. X"light_state : RANDOM_TYPE",
  1322. X"alignment : ALIGNMENT",
  1323. X"alignment : a_register",
  1324. X"alignment : RANDOM_TYPE",
  1325. X"altar_type : ALTAR_TYPE",
  1326. X"altar_type : RANDOM_TYPE",
  1327. X"p_register : P_REGISTER '[' INTEGER ']'",
  1328. X"o_register : O_REGISTER '[' INTEGER ']'",
  1329. X"m_register : M_REGISTER '[' INTEGER ']'",
  1330. X"a_register : A_REGISTER '[' INTEGER ']'",
  1331. X"place : coord",
  1332. X"monster : CHAR",
  1333. X"object : CHAR",
  1334. X"string : STRING",
  1335. X"art_name : STRING",
  1336. X"art_name : NONE",
  1337. X"amount : INTEGER",
  1338. X"amount : RANDOM_TYPE",
  1339. X"engraving_type : ENGRAVING_TYPE",
  1340. X"engraving_type : RANDOM_TYPE",
  1341. X"coord : '(' INTEGER ',' INTEGER ')'",
  1342. X"region : '(' INTEGER ',' INTEGER ',' INTEGER ',' INTEGER ')'",
  1343. X};
  1344. X#endif
  1345. X#ifdef YYSTACKSIZE
  1346. X#undef YYMAXDEPTH
  1347. X#define YYMAXDEPTH YYSTACKSIZE
  1348. X#else
  1349. X#ifdef YYMAXDEPTH
  1350. X#define YYSTACKSIZE YYMAXDEPTH
  1351. X#else
  1352. X#define YYSTACKSIZE 500
  1353. X#define YYMAXDEPTH 500
  1354. X#endif
  1355. X#endif
  1356. Xint yydebug;
  1357. Xint yynerrs;
  1358. Xint yyerrflag;
  1359. Xint yychar;
  1360. Xshort *yyssp;
  1361. XYYSTYPE *yyvsp;
  1362. XYYSTYPE yyval;
  1363. XYYSTYPE yylval;
  1364. Xshort yyss[YYSTACKSIZE];
  1365. XYYSTYPE yyvs[YYSTACKSIZE];
  1366. X#define yystacksize YYSTACKSIZE
  1367. X#define YYABORT goto yyabort
  1368. X#define YYREJECT goto yyabort
  1369. X#define YYACCEPT goto yyaccept
  1370. X#define YYERROR goto yyerrlab
  1371. Xint
  1372. Xyyparse()
  1373. X{
  1374. X    register int yym, yyn, yystate;
  1375. X#if YYDEBUG
  1376. X    register char *yys;
  1377. X    extern char *getenv();
  1378. X
  1379. X    if ((yys = getenv("YYDEBUG")) != 0)
  1380. X    {
  1381. X        yyn = *yys;
  1382. X        if (yyn >= '0' && yyn <= '9')
  1383. X            yydebug = yyn - '0';
  1384. X    }
  1385. X#endif
  1386. X
  1387. X    yynerrs = 0;
  1388. X    yyerrflag = 0;
  1389. X    yychar = (-1);
  1390. X
  1391. X    yyssp = yyss;
  1392. X    yyvsp = yyvs;
  1393. X    *yyssp = yystate = 0;
  1394. X
  1395. Xyyloop:
  1396. X    if ((yyn = yydefred[yystate]) != 0) goto yyreduce;
  1397. X    if (yychar < 0)
  1398. X    {
  1399. X        if ((yychar = yylex()) < 0) yychar = 0;
  1400. X#if YYDEBUG
  1401. X        if (yydebug)
  1402. X        {
  1403. X            yys = 0;
  1404. X            if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
  1405. X            if (!yys) yys = "illegal-symbol";
  1406. X            printf("%sdebug: state %d, reading %d (%s)\n",
  1407. X                    YYPREFIX, yystate, yychar, yys);
  1408. X        }
  1409. X#endif
  1410. X    }
  1411. X    if ((yyn = yysindex[yystate]) != 0 && (yyn += yychar) >= 0 &&
  1412. X            yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
  1413. X    {
  1414. X#if YYDEBUG
  1415. X        if (yydebug)
  1416. X            printf("%sdebug: state %d, shifting to state %d\n",
  1417. X                    YYPREFIX, yystate, yytable[yyn]);
  1418. X#endif
  1419. X        if (yyssp >= yyss + yystacksize - 1)
  1420. X        {
  1421. X            goto yyoverflow;
  1422. X        }
  1423. X        *++yyssp = yystate = yytable[yyn];
  1424. X        *++yyvsp = yylval;
  1425. X        yychar = (-1);
  1426. X        if (yyerrflag > 0)  --yyerrflag;
  1427. X        goto yyloop;
  1428. X    }
  1429. X    if ((yyn = yyrindex[yystate]) != 0 && (yyn += yychar) >= 0 &&
  1430. X            yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
  1431. X    {
  1432. X        yyn = yytable[yyn];
  1433. X        goto yyreduce;
  1434. X    }
  1435. X    if (yyerrflag) goto yyinrecovery;
  1436. X#ifdef lint
  1437. X    goto yynewerror;
  1438. X#endif
  1439. Xyynewerror:
  1440. X    yyerror("syntax error");
  1441. X#ifdef lint
  1442. X    goto yyerrlab;
  1443. X#endif
  1444. Xyyerrlab:
  1445. X    ++yynerrs;
  1446. Xyyinrecovery:
  1447. X    if (yyerrflag < 3)
  1448. X    {
  1449. X        yyerrflag = 3;
  1450. X        for (;;)
  1451. X        {
  1452. X            if ((yyn = yysindex[*yyssp]) != 0 && (yyn += YYERRCODE) >= 0 &&
  1453. X                    yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
  1454. X            {
  1455. X#if YYDEBUG
  1456. X                if (yydebug)
  1457. X                    printf("%sdebug: state %d, error recovery shifting\
  1458. X to state %d\n", YYPREFIX, *yyssp, yytable[yyn]);
  1459. X#endif
  1460. X                if (yyssp >= yyss + yystacksize - 1)
  1461. X                {
  1462. X                    goto yyoverflow;
  1463. X                }
  1464. X                *++yyssp = yystate = yytable[yyn];
  1465. X                *++yyvsp = yylval;
  1466. X                goto yyloop;
  1467. X            }
  1468. X            else
  1469. X            {
  1470. X#if YYDEBUG
  1471. X                if (yydebug)
  1472. X                    printf("%sdebug: error recovery discarding state %d\n",
  1473. X                            YYPREFIX, *yyssp);
  1474. X#endif
  1475. X                if (yyssp <= yyss) goto yyabort;
  1476. X                --yyssp;
  1477. X                --yyvsp;
  1478. X            }
  1479. X        }
  1480. X    }
  1481. X    else
  1482. X    {
  1483. X        if (yychar == 0) goto yyabort;
  1484. X#if YYDEBUG
  1485. X        if (yydebug)
  1486. X        {
  1487. X            yys = 0;
  1488. X            if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
  1489. X            if (!yys) yys = "illegal-symbol";
  1490. X            printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
  1491. X                    YYPREFIX, yystate, yychar, yys);
  1492. X        }
  1493. X#endif
  1494. X        yychar = (-1);
  1495. X        goto yyloop;
  1496. X    }
  1497. Xyyreduce:
  1498. X#if YYDEBUG
  1499. X    if (yydebug)
  1500. X        printf("%sdebug: state %d, reducing by rule %d (%s)\n",
  1501. X                YYPREFIX, yystate, yyn, yyrule[yyn]);
  1502. X#endif
  1503. X    yym = yylen[yyn];
  1504. X    yyval = yyvsp[1-yym];
  1505. X    switch (yyn)
  1506. X    {
  1507. Xcase 7:
  1508. X{
  1509. X              int fout, i;
  1510. X
  1511. X            if (fatal_error > 0) {
  1512. X                fprintf(stderr,
  1513. X                  "%s : %d errors detected. No output created!\n",
  1514. X                    fname, fatal_error);
  1515. X            } else {
  1516. X                char lbuf[20];
  1517. X                Strcpy(lbuf, yyvsp[-4].map);
  1518. X                Strcat(lbuf, LEV_EXT);
  1519. X#ifdef THINK_C
  1520. X                fout = open(lbuf, O_WRONLY|O_CREAT|O_BINARY);
  1521. X#else
  1522. X                fout = open(lbuf, O_WRONLY|O_CREAT|O_BINARY, OMASK);
  1523. X#endif
  1524. X                if (fout < 0) {
  1525. X                    yyerror("Can't open output file!!");
  1526. X                    exit(1);
  1527. X                }
  1528. X                maze.flags = yyvsp[-3].i;
  1529. X                memcpy(&(maze.init_lev), &(init_lev),
  1530. X                       sizeof(lev_init));
  1531. X                maze.numpart = npart;
  1532. X                maze.parts = NewTab(mazepart, npart);
  1533. X                for(i=0;i<npart;i++)
  1534. X                    maze.parts[i] = tmppart[i];
  1535. X                write_maze(fout, &maze);
  1536. X                (void) close(fout);
  1537. X                npart = 0;
  1538. X            }
  1539. X          }
  1540. Xbreak;
  1541. Xcase 8:
  1542. X{
  1543. X            int fout, i;
  1544. X
  1545. X            if (fatal_error > 0) {
  1546. X                fprintf(stderr,
  1547. X                  "%s : %d errors detected. No output created!\n",
  1548. X                    fname, fatal_error);
  1549. X            } else {
  1550. X                char lbuf[20];
  1551. X                Strcpy(lbuf, yyvsp[-6].map);
  1552. X                Strcat(lbuf, LEV_EXT);
  1553. X#ifdef THINK_C
  1554. X                fout = open(lbuf, O_WRONLY|O_CREAT|O_BINARY);
  1555. X#else
  1556. X                fout = open(lbuf, O_WRONLY|O_CREAT|O_BINARY, OMASK);
  1557. X#endif
  1558. X                if (fout < 0) {
  1559. X                    yyerror("Can't open output file!!");
  1560. X                    exit(1);
  1561. X                }
  1562. X                special_lev.flags = yyvsp[-5].i;
  1563. X                memcpy(&(special_lev.init_lev), &(init_lev),
  1564. X                       sizeof(lev_init));
  1565. X                special_lev.nroom = nrooms;
  1566. X                special_lev.rooms = NewTab(room, nrooms);
  1567. X                for(i=0; i<nrooms; i++)
  1568. X                    special_lev.rooms[i] = tmproom[i];
  1569. X                special_lev.ncorr = ncorridor;
  1570. X                special_lev.corrs = NewTab(corridor, ncorridor);
  1571. X                for(i=0; i<ncorridor; i++)
  1572. X                    special_lev.corrs[i] = tmpcor[i];
  1573. X                if (check_subrooms())
  1574. X                    write_lev(fout, &special_lev);
  1575. X                free_rooms(special_lev.rooms,special_lev.nroom);
  1576. X                nrooms = 0;
  1577. X                ncorridor = 0;
  1578. X                (void) close(fout);
  1579. X            }
  1580. X          }
  1581. Xbreak;
  1582. Xcase 9:
  1583. X{
  1584. X            if (index(yyvsp[0].map, '.'))
  1585. X                yyerror("Invalid dot ('.') in level name.");
  1586. X            if (strlen(yyvsp[0].map) > 8)
  1587. X                yyerror("Level names limited to 8 characters.");
  1588. X            yyval.map = yyvsp[0].map;
  1589. X            special_lev.nrobjects = 0;
  1590. X            special_lev.nrmonst = 0;
  1591. X          }
  1592. Xbreak;
  1593. Xcase 10:
  1594. X{
  1595. X            init_lev.init_present = FALSE;
  1596. X            yyval.i = 0;
  1597. X          }
  1598. Xbreak;
  1599. Xcase 11:
  1600. X{
  1601. X            init_lev.init_present = TRUE;
  1602. X            if((init_lev.fg = what_map_char(yyvsp[-10].i)) == INVALID_TYPE)
  1603. X                yyerror("Invalid foreground type.");
  1604. X            if((init_lev.bg = what_map_char(yyvsp[-8].i)) == INVALID_TYPE)
  1605. X                yyerror("Invalid background type.");
  1606. X            init_lev.smoothed = yyvsp[-6].i;
  1607. X            init_lev.joined = yyvsp[-4].i;
  1608. END_OF_FILE
  1609. if test 43569 -ne `wc -c <'sys/share/lev_yacc.c1'`; then
  1610.     echo shar: \"'sys/share/lev_yacc.c1'\" unpacked with wrong size!
  1611. fi
  1612. # end of 'sys/share/lev_yacc.c1'
  1613. echo shar: End of archive 7 \(of 18\).
  1614. cp /dev/null ark7isdone
  1615. MISSING=""
  1616. for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ; do
  1617.     if test ! -f ark${I}isdone ; then
  1618.     MISSING="${MISSING} ${I}"
  1619.     fi
  1620. done
  1621. if test "${MISSING}" = "" ; then
  1622.     echo You have unpacked all 18 archives.
  1623.     echo "Now execute ./patchit3.sh"
  1624.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  1625. else
  1626.     echo You still need to unpack the following archives:
  1627.     echo "        " ${MISSING}
  1628. fi
  1629. ##  End of shell archive.
  1630. exit 0
  1631.