home *** CD-ROM | disk | FTP | other *** search
/ Giga Games 1 / Giga Games.iso / net / usenet / volume7 / nethack3 / patch7l < prev    next >
Encoding:
Internet Message Format  |  1990-02-26  |  57.8 KB

  1. Path: uunet!zephyr.ens.tek.com!tekred!saab!billr
  2. From: billr@saab.CNA.TEK.COM (Bill Randle)
  3. Newsgroups: comp.sources.games
  4. Subject: v09i012:  NetHack3 -  display oriented dungeons & dragons (Ver. 3.0), Patch7l
  5. Message-ID: <5226@tekred.CNA.TEK.COM>
  6. Date: 24 Feb 90 00:37:17 GMT
  7. Sender: news@tekred.CNA.TEK.COM
  8. Lines: 1921
  9. Approved: billr@saab.CNA.TEK.COM
  10.  
  11. Submitted-by: Izchak Miller <izchak@linc.cis.upenn.edu>
  12. Posting-number: Volume 9, Issue 12
  13. Archive-name: NetHack3/Patch7l
  14. Patch-To: NetHack3: Volume 7, Issue 56-93
  15.  
  16.  
  17.  
  18. #! /bin/sh
  19. # This is a shell archive.  Remove anything before this line, then unpack
  20. # it by saving it into a file and typing "sh file".  To overwrite existing
  21. # files, type "sh file -c".  You can also feed this as standard input via
  22. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  23. # will see the following message at the end:
  24. #        "End of archive 12 (of 30)."
  25. # Contents:  patch7.20
  26. # Wrapped by billr@saab on Wed Feb 21 10:04:33 1990
  27. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  28. if test -f 'patch7.20' -a "${1}" != "-c" ; then 
  29.   echo shar: Renaming existing file \"'patch7.20'\" to \"'patch7.20.orig'\"
  30.   mv -f 'patch7.20' 'patch7.20.orig'
  31. fi
  32. echo shar: Extracting \"'patch7.20'\" \(55350 characters\)
  33. sed "s/^X//" >'patch7.20' <<'END_OF_FILE'
  34. X*** /dev/null    Mon Feb 19 23:26:54 1990
  35. X--- others/Makefile.lib    Sat Feb 17 20:36:02 1990
  36. X***************
  37. X*** 0 ****
  38. X--- 1,22 ----
  39. X+ #    SCCS Id: @(#)Makefile.lib    3.0    90/02/17
  40. X+ #    Nethack makefile for Fred fish termlib -- Norman Meluch
  41. X+ #
  42. X+ CC    = cl /c
  43. X+ MODEL    = L
  44. X+ CFLAGS    = /A$(MODEL) /Os /Oa /Gs /Zp1 /W0
  45. X+ #
  46. X+ # Termcap routines.
  47. X+ TERMLIB = termlib.lib
  48. X+ #
  49. X+ TL_LOBJECTS =    tgetent.o    tgetflag.o     tgetnum.o    \
  50. X+         tgetstr.o    tgoto.o        tputs.o        \
  51. X+         isdigit.o    fgetlr.o
  52. X+ #
  53. X+ .SUFFIXES: .exe .o .c .obj .asm
  54. X+ #
  55. X+ .c.o:
  56. X+     $(CC) $(CFLAGS) /Fo$*.o $*.c
  57. X+ #
  58. X+ $(TERMLIB):    $(TL_LOBJECTS)
  59. X+     lib $(TERMLIB) -+ $(TL_LOBJECTS);
  60. X+ 
  61. X*** others/Old/Makefile.msc    Mon Feb 19 23:27:09 1990
  62. X--- others/Makefile.msc    Sun Feb  4 15:22:47 1990
  63. X***************
  64. X*** 308,314 ****
  65. X  o\topl.o:  $(HACK_H)
  66. X  o\topten.o:  $(HACK_H)
  67. X  o\track.o:  $(HACK_H)
  68. X! o\trap.o:  $(HACK_H) $(INCL)\edog.h $(INCL)\trapname.h
  69. X  o\u_init.o:  $(HACK_H)
  70. X  o\uhitm.o:  $(HACK_H) $(INCL)\artifact.h
  71. X  o\vault.o:  $(HACK_H) $(INCL)\vault.h
  72. X--- 308,314 ----
  73. X  o\topl.o:  $(HACK_H)
  74. X  o\topten.o:  $(HACK_H)
  75. X  o\track.o:  $(HACK_H)
  76. X! o\trap.o:  $(HACK_H) $(INCL)\edog.h
  77. X  o\u_init.o:  $(HACK_H)
  78. X  o\uhitm.o:  $(HACK_H) $(INCL)\artifact.h
  79. X  o\vault.o:  $(HACK_H) $(INCL)\vault.h
  80. X*** others/Old/Makefile.pc    Mon Feb 19 23:28:26 1990
  81. X--- others/Makefile.pc    Sun Feb  4 15:23:19 1990
  82. X***************
  83. X*** 267,273 ****
  84. X  o\topl.o:  $(HACK_H)
  85. X  o\topten.o:  $(HACK_H)
  86. X  o\track.o:  $(HACK_H)
  87. X! o\trap.o:  $(HACK_H) $(INCL)\edog.h $(INCL)\trapname.h
  88. X  o\u_init.o:  $(HACK_H)
  89. X  o\uhitm.o:  $(HACK_H) $(INCL)\artifact.h
  90. X  o\vault.o:  $(HACK_H) $(INCL)\vault.h
  91. X--- 267,273 ----
  92. X  o\topl.o:  $(HACK_H)
  93. X  o\topten.o:  $(HACK_H)
  94. X  o\track.o:  $(HACK_H)
  95. X! o\trap.o:  $(HACK_H) $(INCL)\edog.h
  96. X  o\u_init.o:  $(HACK_H)
  97. X  o\uhitm.o:  $(HACK_H) $(INCL)\artifact.h
  98. X  o\vault.o:  $(HACK_H) $(INCL)\vault.h
  99. X*** others/Old/Makefile.st    Mon Feb 19 23:28:41 1990
  100. X--- others/Makefile.st    Fri Feb  9 19:55:41 1990
  101. X***************
  102. X*** 1,7 ****
  103. X! #    SCCS Id: @(#)Makefile.st    3.0    89/07/07
  104. X  #    ST NetHack 3.0 Makefile for GCC 1.34 or higher
  105. X  #
  106. X! #    NOTE: There's one really awful kludge here: I had to break
  107. X  #    monst.o up into two pieces to get it to compile on my machine
  108. X  #    (a Mega 2). You'll need "sed" to get this to work.
  109. X  #    If you have 2.5 megs or more, you can probably delete the
  110. X--- 1,11 ----
  111. X! #    SCCS Id: @(#)Makefile.st    3.0    90/01/14
  112. X  #    ST NetHack 3.0 Makefile for GCC 1.34 or higher
  113. X  #
  114. X! #    NOTE: There's a bug in the GCC 1.35 (and maybe 1.34) that
  115. X! #    requires the omission of the -O flag on a couple of files;
  116. X! #    see the comments further down.
  117. X! #
  118. X! #    Also: There's one really awful kludge here: I had to break
  119. X  #    monst.o up into two pieces to get it to compile on my machine
  120. X  #    (a Mega 2). You'll need "sed" to get this to work.
  121. X  #    If you have 2.5 megs or more, you can probably delete the
  122. X***************
  123. X*** 26,37 ****
  124. X  AUX    = ..\auxil
  125. X  SRC    = ..\src
  126. X  
  127. X! CFLAGS    = $(MODEL) -O -fomit-frame-pointer -I..\include
  128. X  LFLAGS    = $(MODEL) -s
  129. X  TARG    = tos
  130. X  PC    = pc
  131. X  
  132. X! # Optional high-quality BSD random number generation routines (see pcconf.h).
  133. X  # Set to nothing if not used.
  134. X  RANDOM = random.o
  135. X  
  136. X--- 30,48 ----
  137. X  AUX    = ..\auxil
  138. X  SRC    = ..\src
  139. X  
  140. X! #
  141. X! # Use the following line for maximum warnings
  142. X! WARN=-D__GNULINT__ -W -Wimplicit -Wreturn-type -Wunused -Wpointer-arith \
  143. X!  -Wcast-qual -Wwrite-strings
  144. X! #
  145. X! # WARN =
  146. X! #
  147. X! CFLAGS = $(MODEL) -O -fomit-frame-pointer $(WARN) -I..\include
  148. X  LFLAGS    = $(MODEL) -s
  149. X  TARG    = tos
  150. X  PC    = pc
  151. X  
  152. X! # Optional high-quality BSD random number generation routines (see tosconf.h).
  153. X  # Set to nothing if not used.
  154. X  RANDOM = random.o
  155. X  
  156. X***************
  157. X*** 90,99 ****
  158. X  $(GAME).ttp: $(HOBJ)
  159. X      $(CC) -o $(GAME).ttp $(LFLAGS) $(HOBJ) $(TERMCAP)
  160. X  
  161. X! $(GAMEDIR)\$(GAME).ttp: $(GAME).ttp
  162. X!     cp $(GAME).ttp $(GAMEDIR)
  163. X! 
  164. X! $(GAME): $(GAMEDIR)\$(GAME).ttp
  165. X  
  166. X  all:    $(GAME) lev_comp.ttp auxil
  167. X      @echo Done.
  168. X--- 101,107 ----
  169. X  $(GAME).ttp: $(HOBJ)
  170. X      $(CC) -o $(GAME).ttp $(LFLAGS) $(HOBJ) $(TERMCAP)
  171. X  
  172. X! $(GAME): $(GAME).ttp
  173. X  
  174. X  all:    $(GAME) lev_comp.ttp auxil
  175. X      @echo Done.
  176. X***************
  177. X*** 117,123 ****
  178. X  #
  179. X  # Also: for some reason the supplied lev_lex.c causes the GCC to abort
  180. X  # on my machine (maybe not enough memory?) when compiled with -mshort.
  181. X! # With MODEL=-mshort, I had to delete lev_lex.c and use these rules.
  182. X  #
  183. X  lev_comp.c:  lev_comp.y
  184. X      $(YACC) -d lev_comp.y
  185. X--- 125,131 ----
  186. X  #
  187. X  # Also: for some reason the supplied lev_lex.c causes the GCC to abort
  188. X  # on my machine (maybe not enough memory?) when compiled with -mshort.
  189. X! # With MODEL=-mshort, I had to use the lev_lex.c from others.
  190. X  #
  191. X  lev_comp.c:  lev_comp.y
  192. X      $(YACC) -d lev_comp.y
  193. X***************
  194. X*** 166,180 ****
  195. X      $(CC) -c $(CFLAGS) $(PC)unix.c -o unix.o
  196. X  
  197. X  #
  198. X! # GNU C doesn't like the array in rip.c!!!
  199. X! rip.o:   $(HACK_H) 
  200. X!     $(CC) -c $(CFLAGS) -fwritable-strings rip.c
  201. X! #
  202. X! # GCC 1.35 + bones.c + -mshort + -O == incorrect code. Don't ask me why.
  203. X! # So we just omit the -O on bones.c
  204. X  #
  205. X! bones.o: $(HACK_H)
  206. X!     $(CC) -c $(MODEL) -I$(INCL) bones.c
  207. X  #
  208. X  # Secondary targets
  209. X  #
  210. X--- 174,188 ----
  211. X      $(CC) -c $(CFLAGS) $(PC)unix.c -o unix.o
  212. X  
  213. X  #
  214. X! # GCC 1.35 has trouble with the construct
  215. X! #    for (x = ...) for(y = ...) levl[x][y].foo = stuff;
  216. X! # this happens in (at least) bones.c and shknam.c. So if you're using
  217. X! # 1.35, uncomment the following lines. The problem is fixed in 1.36.
  218. X  #
  219. X! #bones.o: $(HACK_H)
  220. X! #    $(CC) $(MODEL) $(WARN) -I$(INCL) -c bones.c
  221. X! #shknam.o: $(HACK_H) $(INCL)\eshk.h
  222. X! #    $(CC) $(MODEL) $(WARN) -I$(INCL) -c shknam.c
  223. X  #
  224. X  # Secondary targets
  225. X  #
  226. X***************
  227. X*** 221,227 ****
  228. X  apply.o:  $(HACK_H) $(INCL)\edog.h
  229. X  artifact.o:  $(HACK_H) $(INCL)\artifact.h
  230. X  attrib.o:  $(HACK_H)
  231. X! #bones.o:  $(HACK_H)
  232. X  cmd.o:  $(HACK_H) $(INCL)\func_tab.h
  233. X  dbridge.o: $(HACK_H)
  234. X  decl.o:  $(HACK_H)
  235. X--- 229,235 ----
  236. X  apply.o:  $(HACK_H) $(INCL)\edog.h
  237. X  artifact.o:  $(HACK_H) $(INCL)\artifact.h
  238. X  attrib.o:  $(HACK_H)
  239. X! bones.o:  $(HACK_H)
  240. X  cmd.o:  $(HACK_H) $(INCL)\func_tab.h
  241. X  dbridge.o: $(HACK_H)
  242. X  decl.o:  $(HACK_H)
  243. X***************
  244. X*** 261,267 ****
  245. X  # kludge for "monst.c: Virtual memory exhausted" errors
  246. X  # we build monst.s in two pieces, then glue them together with
  247. X  # "sed". if you don't have memory problems, uncomment out
  248. X! # all but the next line. if you don't have sed, get it from
  249. X  # a comp.binaries.atari.st site, or get gnu sed (the port to
  250. X  # the atari GCC is easy).
  251. X  
  252. X--- 269,275 ----
  253. X  # kludge for "monst.c: Virtual memory exhausted" errors
  254. X  # we build monst.s in two pieces, then glue them together with
  255. X  # "sed". if you don't have memory problems, uncomment out
  256. X! # all but the line starting "monst.o:". if you don't have sed, get it from
  257. X  # a comp.binaries.atari.st site, or get gnu sed (the port to
  258. X  # the atari GCC is easy).
  259. X  
  260. X***************
  261. X*** 291,297 ****
  262. X  random.o:
  263. X  read.o:  $(HACK_H)
  264. X  restore.o:  $(HACK_H) $(INCL)\lev.h $(INCL)\wseg.h
  265. X! #rip.o:  $(HACK_H)
  266. X  rnd.o:  $(HACK_H)
  267. X  rumors.o:  $(HACK_H)
  268. X  save.o:  $(HACK_H) $(INCL)\lev.h $(INCL)\wseg.h
  269. X--- 299,305 ----
  270. X  random.o:
  271. X  read.o:  $(HACK_H)
  272. X  restore.o:  $(HACK_H) $(INCL)\lev.h $(INCL)\wseg.h
  273. X! rip.o:  $(HACK_H)
  274. X  rnd.o:  $(HACK_H)
  275. X  rumors.o:  $(HACK_H)
  276. X  save.o:  $(HACK_H) $(INCL)\lev.h $(INCL)\wseg.h
  277. X***************
  278. X*** 308,314 ****
  279. X  topl.o:  $(HACK_H)
  280. X  topten.o:  $(HACK_H)
  281. X  track.o:  $(HACK_H)
  282. X! trap.o:  $(HACK_H) $(INCL)\edog.h $(INCL)\trapname.h
  283. X  u_init.o:  $(HACK_H)
  284. X  uhitm.o:  $(HACK_H) $(INCL)\artifact.h
  285. X  vault.o:  $(HACK_H) $(INCL)\vault.h
  286. X--- 316,322 ----
  287. X  topl.o:  $(HACK_H)
  288. X  topten.o:  $(HACK_H)
  289. X  track.o:  $(HACK_H)
  290. X! trap.o:  $(HACK_H) $(INCL)\edog.h
  291. X  u_init.o:  $(HACK_H)
  292. X  uhitm.o:  $(HACK_H) $(INCL)\artifact.h
  293. X  vault.o:  $(HACK_H) $(INCL)\vault.h
  294. X*** others/Old/Makefile.tcc    Mon Feb 19 23:29:10 1990
  295. X--- others/Makefile.tcc    Sun Feb  4 15:23:42 1990
  296. X***************
  297. X*** 1,22 ****
  298. X! #    SCCS Id: @(#)Makefile.tcc    3.0    89/11/18
  299. X  #    PC NetHack 3.0 Makefile for Turbo C 2.0
  300. X  #    Perpetrator: Mike Threepoint, 890707
  301. X  
  302. X  ###
  303. X- ### Directories
  304. X- ###
  305. X- # makedefs.c hardcodes the include and auxil directories, don't change them.
  306. X- OBJ    = o
  307. X- INCL    = ..\include
  308. X- AUX    = ..\auxil
  309. X- SRC    = ..\src
  310. X- OTHERS    = ..\others
  311. X- 
  312. X- 
  313. X- ###
  314. X  ### Locals
  315. X  ###
  316. X- 
  317. X  # the name of the game
  318. X  GAME    = nethack
  319. X  
  320. X--- 1,10 ----
  321. X! #    SCCS Id: @(#)Makefile.tcc    3.0    89/11/20
  322. X  #    PC NetHack 3.0 Makefile for Turbo C 2.0
  323. X  #    Perpetrator: Mike Threepoint, 890707
  324. X  
  325. X  ###
  326. X  ### Locals
  327. X  ###
  328. X  # the name of the game
  329. X  GAME    = nethack
  330. X  
  331. X***************
  332. X*** 28,39 ****
  333. X  
  334. X  
  335. X  ###
  336. X  ### Compiler
  337. X  ###
  338. X  CC    = tcc
  339. X  
  340. X  # must use Huge model; Large is limited to 64K total global data.
  341. X! MODEL    = h
  342. X  
  343. X  # signed chars, jump optimize, strict ANSI, register optimize, no stack frame
  344. X  CFLAGS    = -c -no -m$(MODEL) -I$(INCL) -K- -O -A -Z -k- -w-pia -w-pro $(WIZARD)
  345. X--- 16,44 ----
  346. X  
  347. X  
  348. X  ###
  349. X+ ### Directories
  350. X+ ###
  351. X+ # makedefs.c hardcodes the include and auxil directories, don't change them.
  352. X+ OBJ    = o
  353. X+ INCL    = ..\include
  354. X+ AUX    = ..\auxil
  355. X+ SRC    = ..\src
  356. X+ OTHERS    = ..\others
  357. X+ 
  358. X+ # where the Turbo C libraries are kept
  359. X+ LIB     = \turbo\c\lib
  360. X+ 
  361. X+ # directory NDMAKE uses for temporary files
  362. X+ MAKE_TMP = $(TMP)
  363. X+ 
  364. X+ 
  365. X+ ###
  366. X  ### Compiler
  367. X  ###
  368. X  CC    = tcc
  369. X  
  370. X  # must use Huge model; Large is limited to 64K total global data.
  371. X! MODEL   = h
  372. X  
  373. X  # signed chars, jump optimize, strict ANSI, register optimize, no stack frame
  374. X  CFLAGS    = -c -no -m$(MODEL) -I$(INCL) -K- -O -A -Z -k- -w-pia -w-pro $(WIZARD)
  375. X***************
  376. X*** 40,46 ****
  377. X  ## Note: Turbo C 2.0's -Z is bugged.  If you have weird problems, try -Z-.
  378. X  
  379. X  # wizardly defines
  380. X! WIZARD    = -DDEBUG
  381. X  
  382. X  # linkers
  383. X  TLINK    = tlink
  384. X--- 45,51 ----
  385. X  ## Note: Turbo C 2.0's -Z is bugged.  If you have weird problems, try -Z-.
  386. X  
  387. X  # wizardly defines
  388. X! WIZARD  =
  389. X  
  390. X  # linkers
  391. X  TLINK    = tlink
  392. X***************
  393. X*** 70,98 ****
  394. X  ASM    = tasm
  395. X  AFLAGS    = /MX
  396. X  
  397. X  
  398. X  ###
  399. X  ### Rules
  400. X  ###
  401. X  # search order
  402. X  .SUFFIXES: .exe .obj .c .asm .y .l
  403. X  # .c -> .obj
  404. X  .c.obj:
  405. X      $(CC) $(CFLAGS) -c $<
  406. X  # .asm -> .obj
  407. X  .asm.obj:
  408. X!     $(ASM) $< $(AFLAGS);
  409. X  # .obj -> .exe (for tlink)
  410. X  .obj.exe:
  411. X      $(TLINK) $(TLFLAGS) $(C0) $<, $@,, $(LIBS);
  412. X! ## Note: .y -> .c or .l -> .c rules are missing, because none of the developers
  413. X! ##     had a yacc or lex for the PC to write rules for.
  414. X  
  415. X  
  416. X  ###
  417. X  ### Optional features (see pcconf.h)
  418. X  ###
  419. X! # uncomment the blank definitions if not used
  420. X  
  421. X  # overlays
  422. X  #OVERLAY = $(OBJ)\trampoli.obj ovlmgr.obj
  423. X--- 75,122 ----
  424. X  ASM    = tasm
  425. X  AFLAGS    = /MX
  426. X  
  427. X+ # yacc/lex
  428. X+ YACC    = bison
  429. X+ LEX    = flex
  430. X  
  431. X+ 
  432. X  ###
  433. X  ### Rules
  434. X  ###
  435. X  # search order
  436. X  .SUFFIXES: .exe .obj .c .asm .y .l
  437. X+ 
  438. X+ # .l -> .c (for flex)
  439. X+ .l.c:
  440. X+     $(LEX) $<
  441. X+     del $@
  442. X+     ren lex.yyc $@
  443. X+ # .y -> .c (for bison)
  444. X+ .y.c:
  445. X+     $(YACC) $<
  446. X+     del $@
  447. X+     ren y.tbc $@
  448. X+     del $*.h
  449. X+     ren y.tbh $*.h
  450. X  # .c -> .obj
  451. X  .c.obj:
  452. X      $(CC) $(CFLAGS) -c $<
  453. X  # .asm -> .obj
  454. X  .asm.obj:
  455. X!     $(ASM) $(AFLAGS) $<;
  456. X  # .obj -> .exe (for tlink)
  457. X  .obj.exe:
  458. X      $(TLINK) $(TLFLAGS) $(C0) $<, $@,, $(LIBS);
  459. X! 
  460. X! # NDMAKE automatic response file generation
  461. X! .RESPONSE_LINK: tlink
  462. X! .RESPONSE_LIB:  tlib
  463. X  
  464. X  
  465. X  ###
  466. X  ### Optional features (see pcconf.h)
  467. X  ###
  468. X! # uncomment the definitions used
  469. X  
  470. X  # overlays
  471. X  #OVERLAY = $(OBJ)\trampoli.obj ovlmgr.obj
  472. X***************
  473. X*** 139,146 ****
  474. X  # panic.c is unnecessary for makedefs.exe and lev_comp.exe.
  475. X  # ioctl.c is unnecessary for nethack.exe.
  476. X  
  477. X! ROOT =    $(OBJ)\main.obj     $(OBJ)\allmain.obj    $(OBJ)\termcap.obj \
  478. X!     $(OBJ)\cmd.obj        $(OBJ)\hack.obj     $(OBJ)\msdos.obj \
  479. X      $(OVERLAY)
  480. X  
  481. X  # the overlays -- the Microsoft Overlay Linker is limited to 63
  482. X--- 163,170 ----
  483. X  # panic.c is unnecessary for makedefs.exe and lev_comp.exe.
  484. X  # ioctl.c is unnecessary for nethack.exe.
  485. X  
  486. X! ROOT =    $(OBJ)\main.obj    $(OBJ)\allmain.obj $(OBJ)\msdos.obj \
  487. X!     $(OBJ)\termcap.obj $(OBJ)\cmd.obj     $(OBJ)\hack.obj \
  488. X      $(OVERLAY)
  489. X  
  490. X  # the overlays -- the Microsoft Overlay Linker is limited to 63
  491. X***************
  492. X*** 150,200 ****
  493. X  OVL03 = $(OBJ)\pri.obj $(OBJ)\prisym.obj
  494. X  OVL04 = $(OBJ)\rnd.obj $(RANDOM)
  495. X  OVL05 = $(OBJ)\timeout.obj
  496. X! OVL06 = $(OBJ)\mon.obj $(OBJ)\exper.obj $(OBJ)\attrib.obj
  497. X! OVL07 = $(OBJ)\monst.obj $(OBJ)\mondata.obj
  498. X! OVL08 = $(OBJ)\monmove.obj $(OBJ)\track.obj
  499. X! OVL09 = $(OBJ)\dog.obj $(OBJ)\dogmove.obj
  500. X! OVL10 = $(OBJ)\makemon.obj
  501. X! OVL11 = $(OBJ)\do_name.obj $(OBJ)\getline.obj
  502. X! OVL12 = $(OBJ)\weapon.obj
  503. X! OVL13 = $(OBJ)\wield.obj
  504. X! OVL14 = $(OBJ)\invent.obj
  505. X! OVL15 = $(OBJ)\objects.obj
  506. X! OVL16 = $(OBJ)\mkobj.obj $(OBJ)\o_init.obj
  507. X! OVL17 = $(OBJ)\objnam.obj
  508. X! OVL18 = $(OBJ)\worn.obj
  509. X! OVL19 = $(OBJ)\do_wear.obj
  510. X! OVL20 = $(OBJ)\trap.obj
  511. X! OVL21 = $(OBJ)\dothrow.obj
  512. X! OVL22 = $(OBJ)\dokick.obj
  513. X! OVL23 = $(OBJ)\uhitm.obj
  514. X! OVL24 = $(OBJ)\mhitu.obj
  515. X! OVL25 = $(OBJ)\mcastu.obj
  516. X! OVL26 = $(OBJ)\mhitm.obj
  517. X! OVL27 = $(OBJ)\mthrowu.obj
  518. X! OVL28 = $(OBJ)\steal.obj
  519. X! OVL29 = $(OBJ)\priest.obj
  520. X! OVL30 = $(OBJ)\vault.obj
  521. X! OVL31 = $(OBJ)\shk.obj $(OBJ)\shknam.obj
  522. X! OVL32 = $(OBJ)\wizard.obj
  523. X! OVL33 = $(OBJ)\worm.obj
  524. X! OVL34 = $(OBJ)\were.obj
  525. X! OVL35 = $(OBJ)\demon.obj
  526. X! OVL36 = $(OBJ)\artifact.obj
  527. X! OVL37 = $(OBJ)\music.obj $(OBJ)\dbridge.obj
  528. X! OVL38 = $(OBJ)\sit.obj $(OBJ)\fountain.obj
  529. X! OVL39 = $(OBJ)\sounds.obj
  530. X! OVL40 = $(OBJ)\spell.obj
  531. X! OVL41 = $(OBJ)\read.obj
  532. X! OVL42 = $(OBJ)\potion.obj
  533. X! OVL43 = $(OBJ)\zap.obj
  534. X! OVL44 = $(OBJ)\eat.obj $(OBJ)\rumors.obj
  535. X! OVL45 = $(OBJ)\do.obj
  536. X! OVL46 = $(OBJ)\search.obj
  537. X! OVL47 = $(OBJ)\lock.obj
  538. X! OVL48 = $(OBJ)\apply.obj
  539. X! OVL49 = $(OBJ)\engrave.obj
  540. X! OVL50 = $(OBJ)\write.obj
  541. X  OVL51 = $(OBJ)\pray.obj
  542. X  OVL52 = $(OBJ)\options.obj
  543. X  OVL53 = $(OBJ)\pickup.obj
  544. X--- 174,224 ----
  545. X  OVL03 = $(OBJ)\pri.obj $(OBJ)\prisym.obj
  546. X  OVL04 = $(OBJ)\rnd.obj $(RANDOM)
  547. X  OVL05 = $(OBJ)\timeout.obj
  548. X! OVL06 = $(OBJ)\mon.obj $(OBJ)\exper.obj
  549. X! OVL07 = $(OBJ)\attrib.obj
  550. X! OVL08 = $(OBJ)\monst.obj $(OBJ)\mondata.obj
  551. X! OVL09 = $(OBJ)\monmove.obj $(OBJ)\track.obj
  552. X! OVL10 = $(OBJ)\dog.obj $(OBJ)\dogmove.obj
  553. X! OVL11 = $(OBJ)\makemon.obj
  554. X! OVL12 = $(OBJ)\do_name.obj $(OBJ)\getline.obj
  555. X! OVL13 = $(OBJ)\weapon.obj
  556. X! OVL14 = $(OBJ)\wield.obj
  557. X! OVL15 = $(OBJ)\invent.obj
  558. X! OVL16 = $(OBJ)\objects.obj
  559. X! OVL17 = $(OBJ)\mkobj.obj $(OBJ)\o_init.obj
  560. X! OVL18 = $(OBJ)\objnam.obj
  561. X! OVL19 = $(OBJ)\worn.obj
  562. X! OVL20 = $(OBJ)\do_wear.obj
  563. X! OVL21 = $(OBJ)\trap.obj
  564. X! OVL22 = $(OBJ)\dothrow.obj
  565. X! OVL23 = $(OBJ)\dokick.obj
  566. X! OVL24 = $(OBJ)\uhitm.obj
  567. X! OVL25 = $(OBJ)\mhitu.obj
  568. X! OVL26 = $(OBJ)\mcastu.obj
  569. X! OVL27 = $(OBJ)\mhitm.obj
  570. X! OVL28 = $(OBJ)\mthrowu.obj
  571. X! OVL29 = $(OBJ)\steal.obj
  572. X! OVL30 = $(OBJ)\priest.obj
  573. X! OVL31 = $(OBJ)\vault.obj
  574. X! OVL32 = $(OBJ)\shk.obj $(OBJ)\shknam.obj
  575. X! OVL33 = $(OBJ)\wizard.obj
  576. X! OVL34 = $(OBJ)\worm.obj
  577. X! OVL35 = $(OBJ)\were.obj
  578. X! OVL36 = $(OBJ)\demon.obj
  579. X! OVL37 = $(OBJ)\artifact.obj
  580. X! OVL38 = $(OBJ)\music.obj $(OBJ)\dbridge.obj
  581. X! OVL39 = $(OBJ)\sit.obj $(OBJ)\fountain.obj
  582. X! OVL40 = $(OBJ)\sounds.obj
  583. X! OVL41 = $(OBJ)\spell.obj
  584. X! OVL42 = $(OBJ)\read.obj
  585. X! OVL43 = $(OBJ)\potion.obj
  586. X! OVL44 = $(OBJ)\zap.obj
  587. X! OVL45 = $(OBJ)\eat.obj $(OBJ)\rumors.obj
  588. X! OVL46 = $(OBJ)\do.obj
  589. X! OVL47 = $(OBJ)\search.obj
  590. X! OVL48 = $(OBJ)\lock.obj
  591. X! OVL49 = $(OBJ)\apply.obj
  592. X! OVL50 = $(OBJ)\engrave.obj $(OBJ)\write.obj
  593. X  OVL51 = $(OBJ)\pray.obj
  594. X  OVL52 = $(OBJ)\options.obj
  595. X  OVL53 = $(OBJ)\pickup.obj
  596. X***************
  597. X*** 496,506 ****
  598. X  $(OBJ)\topten.obj:    $(HACK_H)
  599. X  $(OBJ)\track.obj:    $(HACK_H)
  600. X  $(OBJ)\trampoli.obj:    $(HACK_H)
  601. X! $(OBJ)\trap.obj:    $(HACK_H)   $(INCL)\edog.h     $(INCL)\trapname.h
  602. X  $(OBJ)\u_init.obj:    $(HACK_H)
  603. X  $(OBJ)\uhitm.obj:    $(HACK_H)   $(INCL)\artifact.h
  604. X  $(OBJ)\vault.obj:    $(HACK_H)   $(INCL)\vault.h
  605. X! $(OBJ)\version.obj:    $(HACK_H)   $(INCL)\date.h
  606. X  $(OBJ)\weapon.obj:    $(HACK_H)
  607. X  $(OBJ)\were.obj:    $(HACK_H)
  608. X  $(OBJ)\wield.obj:    $(HACK_H)
  609. X--- 520,530 ----
  610. X  $(OBJ)\topten.obj:    $(HACK_H)
  611. X  $(OBJ)\track.obj:    $(HACK_H)
  612. X  $(OBJ)\trampoli.obj:    $(HACK_H)
  613. X! $(OBJ)\trap.obj:    $(HACK_H)   $(INCL)\edog.h
  614. X  $(OBJ)\u_init.obj:    $(HACK_H)
  615. X  $(OBJ)\uhitm.obj:    $(HACK_H)   $(INCL)\artifact.h
  616. X  $(OBJ)\vault.obj:    $(HACK_H)   $(INCL)\vault.h
  617. X! $(OBJ)\version.obj:    $(HACK_H)   $(INCL)\date.h     $(INCL)\patchlev.h
  618. X  $(OBJ)\weapon.obj:    $(HACK_H)
  619. X  $(OBJ)\were.obj:    $(HACK_H)
  620. X  $(OBJ)\wield.obj:    $(HACK_H)
  621. X*** /dev/null    Mon Feb 19 23:30:27 1990
  622. X--- others/lev_lex.c    Fri Feb  9 20:03:52 1990
  623. X***************
  624. X*** 0 ****
  625. X--- 1,1115 ----
  626. X+ #define FLEX_COMPRESSED
  627. X+ /* A lexical scanner generated by flex */
  628. X+ 
  629. X+ /* scanner skeleton version:
  630. X+  * $Header: flex.skel,v 2.0 89/06/20 15:49:46 vern Locked $
  631. X+  */
  632. X+ 
  633. X+ #include <stdio.h>
  634. X+ 
  635. X+ #define FLEX_SCANNER
  636. X+ 
  637. X+ /* amount of stuff to slurp up with each read */
  638. X+ #ifndef YY_READ_BUF_SIZE
  639. X+ #define YY_READ_BUF_SIZE 8192
  640. X+ #endif
  641. X+ 
  642. X+ #ifndef YY_BUF_SIZE
  643. X+ #define YY_BUF_SIZE (YY_READ_BUF_SIZE * 2) /* size of input buffer */
  644. X+ #endif
  645. X+ 
  646. X+ /* returned upon end-of-file */
  647. X+ #define YY_END_TOK 0
  648. X+ 
  649. X+ /* copy whatever the last rule matched to the standard output */
  650. X+ 
  651. X+ #define ECHO fputs( yytext, yyout )
  652. X+ 
  653. X+ /* gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
  654. X+  * is returned in "result".
  655. X+  */
  656. X+ #ifdef atarist
  657. X+ static __st_read(fd, buf, size)
  658. X+ int fd; char *buf; int size;
  659. X+ {
  660. X+     int r, num = 0;
  661. X+     char *from;
  662. X+ 
  663. X+     if ((r = read(fd, buf, size)) < 0)
  664. X+         return r;
  665. X+     from = buf;
  666. X+     while (r-- > 0) {
  667. X+         if (*from == '\r')
  668. X+             from++;
  669. X+         else {
  670. X+             *buf++ = *from++;
  671. X+             num++;
  672. X+         }
  673. X+     }
  674. X+     return num;
  675. X+ }
  676. X+ 
  677. X+ #define YY_INPUT(buf,result,max_size) \
  678. X+     if ( (result = __st_read( fileno(yyin), buf, max_size )) < 0 ) \
  679. X+         YY_FATAL_ERROR( "read() in flex scanner failed" );
  680. X+ 
  681. X+ #else
  682. X+ 
  683. X+ #define YY_INPUT(buf,result,max_size) \
  684. X+     if ( (result = read( fileno(yyin), buf, max_size )) < 0 ) \
  685. X+         YY_FATAL_ERROR( "read() in flex scanner failed" );
  686. X+ #endif
  687. X+ 
  688. X+ #define YY_NULL 0
  689. X+ #define yyterminate() return ( YY_NULL )
  690. X+ 
  691. X+ /* report a fatal error */
  692. X+ #define YY_FATAL_ERROR(msg) \
  693. X+     { \
  694. X+     fputs( msg, stderr ); \
  695. X+     putc( '\n', stderr ); \
  696. X+     exit( 1 ); \
  697. X+     }
  698. X+ 
  699. X+ /* default yywrap function - always treat EOF as an EOF */
  700. X+ #define yywrap() 1
  701. X+ 
  702. X+ /* enter a start condition.  This macro really ought to take a parameter,
  703. X+  * but we do it the disgusting crufty way forced on us by the ()-less
  704. X+  * definition of BEGIN
  705. X+  */
  706. X+ #define BEGIN yy_start = 1 + 2 *
  707. X+ 
  708. X+ /* action number for EOF rule of a given start state */
  709. X+ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
  710. X+ 
  711. X+ /* special action meaning "start processing a new file" */
  712. X+ #define YY_NEW_FILE goto new_file
  713. X+ 
  714. X+ /* default declaration of generated scanner - a define so the user can
  715. X+  * easily add parameters
  716. X+  */
  717. X+ #ifdef __STDC__
  718. X+ #define YY_DECL int yylex( void )
  719. X+ #else
  720. X+ #define YY_DECL int yylex()
  721. X+ #endif
  722. X+ 
  723. X+ /* code executed at the end of each rule */
  724. X+ #define YY_BREAK break;
  725. X+ 
  726. X+ #define YY_END_OF_BUFFER_CHAR 0
  727. X+ 
  728. X+ /* done after the current pattern has been matched and before the
  729. X+  * corresponding action - sets up yytext
  730. X+  */
  731. X+ #define YY_DO_BEFORE_ACTION \
  732. X+     yytext = yy_bp; \
  733. X+     yy_hold_char = *yy_cp; \
  734. X+     *yy_cp = '\0'; \
  735. X+     yy_c_buf_p = yy_cp;
  736. X+ 
  737. X+ /* returns the length of the matched text */
  738. X+ #define yyleng (int)(yy_cp - yy_bp)
  739. X+ 
  740. X+ #define EOB_ACT_RESTART_SCAN 0
  741. X+ #define EOB_ACT_END_OF_FILE 1
  742. X+ #define EOB_ACT_LAST_MATCH 2
  743. X+ 
  744. X+ /* return all but the first 'n' matched characters back to the input stream */
  745. X+ #define yyless(n) \
  746. X+     { \
  747. X+     *yy_cp = yy_hold_char; /* undo effects of setting up yytext */ \
  748. X+     yy_c_buf_p = yy_cp = yy_bp + n; \
  749. X+     YY_DO_BEFORE_ACTION; /* set up yytext again */ \
  750. X+     }
  751. X+ 
  752. X+ #define unput(c) yyunput( c, yy_bp )
  753. X+ 
  754. X+ #define YY_USER_ACTION
  755. X+ 
  756. X+ FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
  757. X+ char *yytext;
  758. X+ 
  759. X+ #ifndef __STDC__
  760. X+ #define const
  761. X+ #endif
  762. X+ 
  763. X+ # line 1 "lev_comp.l"
  764. X+ #define INITIAL 0
  765. X+ # line 2 "lev_comp.l"
  766. X+ /*    SCCS Id: @(#)lev_lex.c    3.0    90/01/04
  767. X+ /*    Copyright (c) 1989 by Jean-Christophe Collet */
  768. X+ /* NetHack may be freely redistributed.  See license for details. */
  769. X+ 
  770. X+ #define LEV_LEX_C
  771. X+ 
  772. X+ /* block some unused #defines to avoid overloading some cpp's */
  773. X+ #define MONDATA_H    /* comment this line for pre-compiled headers */
  774. X+ #define MONFLAG_H    /* comment this line for pre-compiled headers */
  775. X+ 
  776. X+ #include "hack.h"
  777. X+ #include "lev_comp.h"
  778. X+ #include "sp_lev.h"
  779. X+ 
  780. X+ /* Most of these don't exist in flex, yywrap is macro and
  781. X+  * yyunput is properly declared in flex.skel.
  782. X+  */
  783. X+ #ifndef FLEX_SCANNER
  784. X+ int FDECL (yyback, (int *, int));
  785. X+ int NDECL (yylook);
  786. X+ int NDECL (yyinput);
  787. X+ int NDECL (yywrap);
  788. X+ int NDECL (yylex);
  789. X+ int FDECL (yyunput, (int));
  790. X+ int FDECL (yyoutput, (int));
  791. X+ #endif
  792. X+ 
  793. X+ #ifdef MSDOS
  794. X+ #undef exit
  795. X+ #endif
  796. X+ 
  797. X+ /* this doesn't always get put in lev_comp.h
  798. X+  * (esp. when using older versions of bison)
  799. X+  */
  800. X+ 
  801. X+ extern YYSTYPE yylval;
  802. X+ 
  803. X+ #ifdef MACOS
  804. X+ #undef putchar
  805. X+ #undef putc
  806. X+ #undef printf
  807. X+ #undef Printf
  808. X+ #define Printf printf
  809. X+ # ifdef LSC
  810. X+ #define    putc(c,stream)    (fputc(c,stream))
  811. X+ #define    putchar(c)    (fputc(c,stdout))
  812. X+ # endif
  813. X+ #endif
  814. X+ int line_number = 1;
  815. X+ 
  816. X+ /* This is *** UGLY *** but I can't think a better way to do it
  817. X+  * I really need a huge buffer to scan maps...
  818. X+  */
  819. X+ 
  820. X+ #undef YYLMAX
  821. X+ #define YYLMAX    2048
  822. X+ 
  823. X+ #define MAPC 1
  824. X+ # line 61 "lev_comp.l"
  825. X+ #define YY_END_OF_BUFFER 57
  826. X+ typedef int yy_state_type;
  827. X+ static const short int yy_accept[274] =
  828. X+     {   0,
  829. X+         0,    0,    0,    0,   57,   55,   53,   52,   55,   55,
  830. X+        50,   55,   55,   55,   55,   55,   55,   55,   55,   55,
  831. X+        55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
  832. X+        55,   55,   55,   55,   55,   55,   55,    1,   53,   55,
  833. X+        55,   55,   53,    0,   51,    0,   50,    0,    0,    0,
  834. X+         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  835. X+         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  836. X+         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  837. X+         0,    0,    0,    0,    0,   48,    0,    0,    3,    0,
  838. X+         1,   53,    0,    0,    1,    0,   54,    0,    0,    0,
  839. X+ 
  840. X+         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  841. X+         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  842. X+        43,    0,   41,    0,    0,    0,    0,    0,    0,    0,
  843. X+         0,    0,    0,    0,    0,   39,    0,    0,    0,    0,
  844. X+         0,   11,    0,    0,    0,    0,    4,    0,    0,    0,
  845. X+         0,    0,   21,   10,    0,    0,    0,    0,    0,    0,
  846. X+         0,   49,   28,   36,    0,    0,    0,    0,    0,    0,
  847. X+        22,    0,    0,    0,    0,    0,    0,   30,    7,    0,
  848. X+        18,    0,    0,    0,    5,    0,    0,    0,    0,    0,
  849. X+         0,   35,   47,    0,    0,    0,   45,    0,    0,    0,
  850. X+ 
  851. X+         0,    0,   27,    0,   34,    0,   37,    0,   29,   42,
  852. X+         0,    0,    0,   19,    0,    0,    0,    8,    0,   14,
  853. X+        40,   26,   38,   23,   24,    0,    0,   25,   32,   31,
  854. X+        46,    0,    0,    0,    0,    9,    0,    0,   33,   44,
  855. X+         2,    0,    6,   13,    0,    0,    0,    0,    0,    0,
  856. X+         0,    0,    0,   12,    0,    0,    0,    0,    0,    0,
  857. X+         0,    0,   20,    0,    0,    0,    0,    0,   17,    0,
  858. X+        15,   16,    0
  859. X+     } ;
  860. X+ 
  861. X+ static const char yy_ec[128] =
  862. X+     {   0,
  863. X+         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
  864. X+         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  865. X+         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  866. X+         1,    4,    1,    5,    6,    1,    1,    1,    7,    1,
  867. X+         1,    1,    8,    1,    8,    8,    1,    9,    9,    9,
  868. X+         9,    9,    9,    9,    9,    9,    9,    1,    1,    1,
  869. X+         1,    1,    1,    1,   10,   11,   12,   13,   14,    1,
  870. X+        15,    1,   16,   17,   18,   19,   20,   21,   22,   23,
  871. X+         1,   24,   25,   26,    1,   27,   28,    1,   29,   30,
  872. X+         1,    8,    1,    1,   31,    1,   32,   33,   34,   35,
  873. X+ 
  874. X+        36,   37,   38,   39,   40,   41,   42,   43,   44,   45,
  875. X+        46,   47,    1,   48,   49,   50,   51,    1,   52,    1,
  876. X+         1,    1,    8,    8,    8,    1,    1
  877. X+     } ;
  878. X+ 
  879. X+ static const char yy_meta[53] =
  880. X+     {   0,
  881. X+         1,    1,    2,    1,    1,    1,    1,    1,    1,    1,
  882. X+         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  883. X+         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  884. X+         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  885. X+         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  886. X+         1,    1
  887. X+     } ;
  888. X+ 
  889. X+ static const short int yy_base[277] =
  890. X+     {   0,
  891. X+         0,   47,   51,   74,  343,  344,   54,  344,  337,    0,
  892. X+       332,  321,   38,  325,   54,   51,  316,  326,   61,  312,
  893. X+       292,   24,   48,  288,  301,   49,  286,   50,   46,  288,
  894. X+        34,   51,  284,   53,  293,  325,   91,  344,  100,  106,
  895. X+       306,  124,  103,  321,  344,  318,  315,  297,  300,  311,
  896. X+       298,  306,  291,  287,  295,  294,  297,  292,  297,  289,
  897. X+       300,   71,  259,  262,  262,  274,  259,  252,  254,  250,
  898. X+       264,  250,  265,  253,  246,   81,  255,  259,  262,  248,
  899. X+       254,  243,  239,  242,  245,  344,  238,  283,  344,   92,
  900. X+       344,  132,  140,  272,  344,  148,  344,  274,  259,  254,
  901. X+ 
  902. X+       261,  267,  265,  264,  252,  245,  261,  261,  257,  252,
  903. X+       248,  232,  237,  218,  225,  216,  219,  215,  218,  212,
  904. X+       344,  211,  344,  218,  210,  208,  211,  206,  219,  209,
  905. X+       219,  217,  212,  210,  199,  344,  208,  197,  243,  225,
  906. X+       220,  344,  232,  228,  227,  221,  211,  212,  224,  224,
  907. X+       213,  212,  344,  344,  188,  184,  185,  194,  193,  179,
  908. X+       191,  344,  344,  344,  190,  175,  176,  177,  183,  187,
  909. X+       344,  184,  173,  168,  172,  177,  165,  344,  344,  204,
  910. X+       344,  189,  186,  187,  344,  200,  195,  192,  181,  186,
  911. X+       184,  344,  344,  160,  158,  154,  344,  166,  165,  163,
  912. X+ 
  913. X+       166,  149,  344,  146,  344,  151,  344,  158,  344,  344,
  914. X+       170,  176,  167,  344,  171,  165,  173,  344,  156,  344,
  915. X+       344,  344,  344,  344,  344,  138,  142,  344,  344,  344,
  916. X+       344,  181,  170,  153,  163,  344,  165,   97,  344,  344,
  917. X+       344,  164,  344,  344,  168,  150,  160,  151,  155,  157,
  918. X+       146,  147,  153,  344,  143,  136,  146,  147,  141,  127,
  919. X+       135,  131,  344,  127,  113,  112,  109,  101,  344,   98,
  920. X+       344,  344,  344,  173,   62,  175
  921. X+     } ;
  922. X+ 
  923. X+ static const short int yy_def[277] =
  924. X+     {   0,
  925. X+       273,    1,    1,    1,  273,  273,  273,  273,  274,  275,
  926. X+       273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
  927. X+       273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
  928. X+       273,  273,  273,  273,  273,  276,  273,  273,  273,  273,
  929. X+       273,  276,  273,  274,  273,  273,  273,  273,  273,  273,
  930. X+       273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
  931. X+       273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
  932. X+       273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
  933. X+       273,  273,  273,  273,  273,  273,  273,  276,  273,  273,
  934. X+       273,  273,  273,  273,  273,  276,  273,  273,  273,  273,
  935. X+ 
  936. X+       273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
  937. X+       273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
  938. X+       273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
  939. X+       273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
  940. X+       273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
  941. X+       273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
  942. X+       273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
  943. X+       273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
  944. X+       273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
  945. X+       273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
  946. X+ 
  947. X+       273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
  948. X+       273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
  949. X+       273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
  950. X+       273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
  951. X+       273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
  952. X+       273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
  953. X+       273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
  954. X+       273,  273,    0,  273,  273,  273
  955. X+     } ;
  956. X+ 
  957. X+ static const short int yy_nxt[397] =
  958. X+     {   0,
  959. X+         6,    7,    8,    7,    9,    6,   10,    6,   11,   12,
  960. X+         6,    6,   13,    6,   14,    6,    6,    6,   15,   16,
  961. X+        17,   18,    6,   19,    6,   20,    6,    6,    6,    6,
  962. X+         6,   21,   22,   23,   24,   25,    6,    6,    6,    6,
  963. X+         6,    6,   26,   27,   28,   29,   30,   31,   32,   33,
  964. X+        34,   35,   36,   38,   39,   43,   40,   43,   40,   49,
  965. X+        54,   50,   46,   52,   41,   80,   37,   53,   40,   63,
  966. X+        58,   64,   55,   81,   59,   40,   38,   39,   77,   42,
  967. X+        70,   40,   60,   65,   71,   75,   66,   41,   72,   82,
  968. X+        67,   40,   78,   37,   73,   76,   83,   85,   40,   86,
  969. X+ 
  970. X+        90,   43,   91,   92,   43,   93,   43,   93,   91,   93,
  971. X+       112,   93,   55,   93,  139,  127,  246,   93,  247,  248,
  972. X+       113,  104,  272,   93,   93,  271,   95,   96,  128,   96,
  973. X+        93,   96,  270,   43,   91,   92,  269,   93,  268,   93,
  974. X+       267,   96,   91,   93,  266,   93,  265,   93,   96,   93,
  975. X+        95,   96,  264,   96,  263,   96,   93,   93,  262,  261,
  976. X+       260,  259,  258,  257,   93,   96,  256,  255,  254,  253,
  977. X+       252,  251,   96,   44,   44,   88,   88,  250,  249,  245,
  978. X+       244,  243,  242,  241,  240,  239,  238,  237,  236,  235,
  979. X+       234,  233,  232,  231,  230,  229,  228,  227,  226,  225,
  980. X+ 
  981. X+       224,  223,  222,  221,  220,  219,  218,  217,  216,  215,
  982. X+       214,  213,  212,  211,  210,  209,  208,  207,  206,  205,
  983. X+       204,  203,  202,  201,  200,  199,  198,  197,  196,  195,
  984. X+       194,  193,  192,  191,  190,  189,  188,  187,  186,  185,
  985. X+       184,  183,  182,  181,  180,  179,  178,  177,  176,  175,
  986. X+       174,  173,  172,  171,  170,  169,  168,  167,  166,  165,
  987. X+       164,  163,  162,  161,  160,  159,  158,  157,  156,  155,
  988. X+       154,  153,  152,  151,  150,  149,  148,  147,  146,  145,
  989. X+       144,  143,  142,  141,  140,   89,  138,  137,  136,  135,
  990. X+       134,  133,  132,  131,  130,  129,  126,  125,  124,  123,
  991. X+ 
  992. X+       122,  121,  120,  119,  118,  117,  116,  115,  114,  111,
  993. X+       110,  109,  108,  107,  106,  105,  104,  103,  102,  101,
  994. X+       100,   99,   98,   47,   97,   45,   94,   89,   87,   84,
  995. X+        79,   74,   69,   68,   62,   61,   57,   56,   51,   48,
  996. X+        47,   45,  273,    5,  273,  273,  273,  273,  273,  273,
  997. X+       273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
  998. X+       273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
  999. X+       273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
  1000. X+       273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
  1001. X+       273,  273,  273,  273,  273,  273
  1002. X+ 
  1003. X+     } ;
  1004. X+ 
  1005. X+ static const short int yy_chk[397] =
  1006. X+     {   0,
  1007. X+         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  1008. X+         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  1009. X+         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  1010. X+         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  1011. X+         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  1012. X+         1,    1,    2,    3,    3,    7,    3,    7,    3,   13,
  1013. X+        16,   13,  275,   15,    3,   31,    2,   15,    3,   22,
  1014. X+        19,   22,   16,   31,   19,    3,    4,    4,   29,    4,
  1015. X+        26,    4,   19,   23,   26,   28,   23,    4,   26,   32,
  1016. X+        23,    4,   29,    4,   26,   28,   32,   34,    4,   34,
  1017. X+ 
  1018. X+        37,   39,   39,   39,   43,   39,   43,   39,   40,   40,
  1019. X+        62,   40,   37,   40,   90,   76,  238,   39,  238,  238,
  1020. X+        62,   90,  270,   40,   39,  268,   42,   42,   76,   42,
  1021. X+        40,   42,  267,   92,   92,   92,  266,   92,  265,   92,
  1022. X+       264,   42,   93,   93,  262,   93,  261,   93,   42,   92,
  1023. X+        96,   96,  260,   96,  259,   96,   92,   93,  258,  257,
  1024. X+       256,  255,  253,  252,   93,   96,  251,  250,  249,  248,
  1025. X+       247,  246,   96,  274,  274,  276,  276,  245,  242,  237,
  1026. X+       235,  234,  233,  232,  227,  226,  219,  217,  216,  215,
  1027. X+       213,  212,  211,  208,  206,  204,  202,  201,  200,  199,
  1028. X+ 
  1029. X+       198,  196,  195,  194,  191,  190,  189,  188,  187,  186,
  1030. X+       184,  183,  182,  180,  177,  176,  175,  174,  173,  172,
  1031. X+       170,  169,  168,  167,  166,  165,  161,  160,  159,  158,
  1032. X+       157,  156,  155,  152,  151,  150,  149,  148,  147,  146,
  1033. X+       145,  144,  143,  141,  140,  139,  138,  137,  135,  134,
  1034. X+       133,  132,  131,  130,  129,  128,  127,  126,  125,  124,
  1035. X+       122,  120,  119,  118,  117,  116,  115,  114,  113,  112,
  1036. X+       111,  110,  109,  108,  107,  106,  105,  104,  103,  102,
  1037. X+       101,  100,   99,   98,   94,   88,   87,   85,   84,   83,
  1038. X+        82,   81,   80,   79,   78,   77,   75,   74,   73,   72,
  1039. X+ 
  1040. X+        71,   70,   69,   68,   67,   66,   65,   64,   63,   61,
  1041. X+        60,   59,   58,   57,   56,   55,   54,   53,   52,   51,
  1042. X+        50,   49,   48,   47,   46,   44,   41,   36,   35,   33,
  1043. X+        30,   27,   25,   24,   21,   20,   18,   17,   14,   12,
  1044. X+        11,    9,    5,  273,  273,  273,  273,  273,  273,  273,
  1045. X+       273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
  1046. X+       273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
  1047. X+       273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
  1048. X+       273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
  1049. X+       273,  273,  273,  273,  273,  273
  1050. X+ 
  1051. X+     } ;
  1052. X+ 
  1053. X+ /* the intent behind this definition is that it'll catch
  1054. X+  * any uses of REJECT which flex missed
  1055. X+  */
  1056. X+ #define REJECT reject_used_but_not_detected
  1057. X+ static char *yy_more_pos = (char *) 0;
  1058. X+ #define yymore() (yy_more_pos = yy_bp)
  1059. X+ 
  1060. X+ /* these variables are all declared out here so that section 3 code can
  1061. X+  * manipulate them
  1062. X+  */
  1063. X+ static char *yy_c_buf_p;    /* points to current character in buffer */
  1064. X+ static int yy_init = 1;        /* whether we need to initialize */
  1065. X+ static int yy_start = 0;    /* start state number */
  1066. X+ 
  1067. X+ /* true when we've seen an EOF for the current input file */
  1068. X+ static int yy_eof_has_been_seen;
  1069. X+ 
  1070. X+ static int yy_n_chars;        /* number of characters read into yy_ch_buf */
  1071. X+ 
  1072. X+ /* yy_ch_buf has to be 2 characters longer than YY_BUF_SIZE because we need
  1073. X+  * to put in 2 end-of-buffer characters (this is explained where it is
  1074. X+  * done) at the end of yy_ch_buf
  1075. X+  */
  1076. X+ static char yy_ch_buf[YY_BUF_SIZE + 2];
  1077. X+ 
  1078. X+ /* yy_hold_char holds the character lost when yytext is formed */
  1079. X+ static char yy_hold_char;
  1080. X+ 
  1081. X+ static yy_state_type yy_last_accepting_state;
  1082. X+ static char *yy_last_accepting_cpos;
  1083. X+ 
  1084. X+ #ifdef __STDC__
  1085. X+ static yy_state_type yy_get_previous_state( void );
  1086. X+ static int yy_get_next_buffer( void );
  1087. X+ static void yyunput( int c, char *buf_ptr );
  1088. X+ static int input( void );
  1089. X+ static void yyrestart( FILE *input_file );
  1090. X+ #else
  1091. X+ static yy_state_type yy_get_previous_state();
  1092. X+ static int yy_get_next_buffer();
  1093. X+ static void yyunput();
  1094. X+ static int input();
  1095. X+ static void yyrestart();
  1096. X+ #endif
  1097. X+ 
  1098. X+ YY_DECL
  1099. X+     {
  1100. X+     register yy_state_type yy_current_state;
  1101. X+     register char *yy_cp, *yy_bp;
  1102. X+     register int yy_act;
  1103. X+ 
  1104. X+ 
  1105. X+ 
  1106. X+     if ( yy_init )
  1107. X+     {
  1108. X+     if ( ! yy_start )
  1109. X+         yy_start = 1;    /* first start state */
  1110. X+ 
  1111. X+     if ( ! yyin )
  1112. X+         yyin = stdin;
  1113. X+ 
  1114. X+     if ( ! yyout )
  1115. X+         yyout = stdout;
  1116. X+ 
  1117. X+ new_file:
  1118. X+     /* this is where we enter upon encountering an end-of-file and
  1119. X+      * yywrap() indicating that we should continue processing
  1120. X+      */
  1121. X+ 
  1122. X+     /* we put in the '\n' and start reading from [1] so that an
  1123. X+      * initial match-at-newline will be true.
  1124. X+      */
  1125. X+ 
  1126. X+     yy_ch_buf[0] = '\n';
  1127. X+     yy_n_chars = 1;
  1128. X+ 
  1129. X+     /* we always need two end-of-buffer characters.  The first causes
  1130. X+      * a transition to the end-of-buffer state.  The second causes
  1131. X+      * a jam in that state.
  1132. X+      */
  1133. X+     yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
  1134. X+     yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
  1135. X+ 
  1136. X+     yy_eof_has_been_seen = 0;
  1137. X+ 
  1138. X+     yytext = yy_c_buf_p = &yy_ch_buf[1];
  1139. X+     yy_hold_char = *yy_c_buf_p;
  1140. X+     yy_init = 0;
  1141. X+     }
  1142. X+ 
  1143. X+     while ( 1 )        /* loops until end-of-file is reached */
  1144. X+     {
  1145. X+     yy_cp = yy_c_buf_p;
  1146. X+ 
  1147. X+     /* support of yytext */
  1148. X+     *yy_cp = yy_hold_char;
  1149. X+ 
  1150. X+     /* yy_bp points to the position in yy_ch_buf of the start of the
  1151. X+      * current run.
  1152. X+      */
  1153. X+     if ( yy_more_pos )
  1154. X+         {
  1155. X+         yy_bp = yy_more_pos;
  1156. X+         yy_more_pos = (char *) 0;
  1157. X+         }
  1158. X+     else
  1159. X+         yy_bp = yy_cp;
  1160. X+ 
  1161. X+     yy_current_state = yy_start;
  1162. X+     if ( yy_bp[-1] == '\n' )
  1163. X+         ++yy_current_state;
  1164. X+     do
  1165. X+         {
  1166. X+         register char yy_c = yy_ec[*yy_cp];
  1167. X+         if ( yy_accept[yy_current_state] )
  1168. X+         {
  1169. X+         yy_last_accepting_state = yy_current_state;
  1170. X+         yy_last_accepting_cpos = yy_cp;
  1171. X+         }
  1172. X+         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  1173. X+         {
  1174. X+         yy_current_state = yy_def[yy_current_state];
  1175. X+         if ( yy_current_state >= 274 )
  1176. X+             yy_c = yy_meta[yy_c];
  1177. X+         }
  1178. X+         yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
  1179. X+         ++yy_cp;
  1180. X+         }
  1181. X+     while ( yy_current_state != 273 );
  1182. X+     yy_cp = yy_last_accepting_cpos;
  1183. X+     yy_current_state = yy_last_accepting_state;
  1184. X+ 
  1185. X+     /* bogus while loop to let YY_BACK_TRACK, EOB_ACT_LAST_MATCH,
  1186. X+      * and EOF actions branch here without introducing an optimizer-
  1187. X+      * daunting goto
  1188. X+      */
  1189. X+     while ( 1 )
  1190. X+         {
  1191. X+         yy_act = yy_accept[yy_current_state];
  1192. X+ 
  1193. X+         YY_DO_BEFORE_ACTION;
  1194. X+         YY_USER_ACTION;
  1195. X+ 
  1196. X+ #ifdef FLEX_DEBUG
  1197. X+         fprintf( stderr, "--accepting rule #%d (\"%s\")\n",
  1198. X+              yy_act, yytext );
  1199. X+ #endif
  1200. X+ 
  1201. X+ do_action:    /* this label is used only to access EOF actions */
  1202. X+         switch ( yy_act )
  1203. X+         {
  1204. X+         case 0: /* must backtrack */
  1205. X+         /* undo the effects of YY_DO_BEFORE_ACTION */
  1206. X+         *yy_cp = yy_hold_char;
  1207. X+         yy_cp = yy_last_accepting_cpos;
  1208. X+         yy_current_state = yy_last_accepting_state;
  1209. X+         continue; /* go to "YY_DO_BEFORE_ACTION" */
  1210. X+ 
  1211. X+ case 1:
  1212. X+ # line 62 "lev_comp.l"
  1213. X+ { line_number++; yymore(); }    
  1214. X+     YY_BREAK
  1215. X+ case 2:
  1216. X+ # line 63 "lev_comp.l"
  1217. X+ { BEGIN 0;
  1218. X+           line_number++;
  1219. X+           yytext[yyleng-7] = 0; /* Discard \nENDMAP */
  1220. X+           yylval.map = (char *) alloc(strlen(yytext)+1);
  1221. X+           strcpy(yylval.map, yytext);
  1222. X+           return MAP_ID;
  1223. X+         }
  1224. X+     YY_BREAK
  1225. X+ case 3:
  1226. X+ # line 70 "lev_comp.l"
  1227. X+ { line_number++; }
  1228. X+     YY_BREAK
  1229. X+ case 4:
  1230. X+ # line 71 "lev_comp.l"
  1231. X+ return MAZE_ID;
  1232. X+     YY_BREAK
  1233. X+ case 5:
  1234. X+ # line 72 "lev_comp.l"
  1235. X+ return LEVEL_ID;
  1236. X+     YY_BREAK
  1237. X+ case 6:
  1238. X+ # line 73 "lev_comp.l"
  1239. X+ return GEOMETRY_ID;
  1240. X+     YY_BREAK
  1241. X+ case 7:
  1242. X+ # line 74 "lev_comp.l"
  1243. X+ { BEGIN MAPC; line_number++; }
  1244. X+     YY_BREAK
  1245. X+ case 8:
  1246. X+ # line 75 "lev_comp.l"
  1247. X+ return OBJECT_ID;
  1248. X+     YY_BREAK
  1249. X+ case 9:
  1250. X+ # line 76 "lev_comp.l"
  1251. X+ return MONSTER_ID;
  1252. X+     YY_BREAK
  1253. X+ case 10:
  1254. X+ # line 77 "lev_comp.l"
  1255. X+ return TRAP_ID;
  1256. X+     YY_BREAK
  1257. X+ case 11:
  1258. X+ # line 78 "lev_comp.l"
  1259. X+ return DOOR_ID;
  1260. X+     YY_BREAK
  1261. X+ case 12:
  1262. X+ # line 79 "lev_comp.l"
  1263. X+ return DRAWBRIDGE_ID;
  1264. X+     YY_BREAK
  1265. X+ case 13:
  1266. X+ # line 80 "lev_comp.l"
  1267. X+ return MAZEWALK_ID;
  1268. X+     YY_BREAK
  1269. X+ case 14:
  1270. X+ # line 81 "lev_comp.l"
  1271. X+ return REGION_ID;
  1272. X+     YY_BREAK
  1273. X+ case 15:
  1274. X+ # line 82 "lev_comp.l"
  1275. X+ return RANDOM_OBJECTS_ID;
  1276. X+     YY_BREAK
  1277. X+ case 16:
  1278. X+ # line 83 "lev_comp.l"
  1279. X+ return RANDOM_MONSTERS_ID;
  1280. X+     YY_BREAK
  1281. X+ case 17:
  1282. X+ # line 84 "lev_comp.l"
  1283. X+ return RANDOM_PLACES_ID;
  1284. X+     YY_BREAK
  1285. X+ case 18:
  1286. X+ # line 85 "lev_comp.l"
  1287. X+ return ALTAR_ID;
  1288. X+     YY_BREAK
  1289. X+ case 19:
  1290. X+ # line 86 "lev_comp.l"
  1291. X+ return LADDER_ID;
  1292. X+     YY_BREAK
  1293. X+ case 20:
  1294. X+ # line 87 "lev_comp.l"
  1295. X+ return NON_DIGGABLE_ID;
  1296. X+     YY_BREAK
  1297. X+ case 21:
  1298. X+ # line 88 "lev_comp.l"
  1299. X+ return ROOM_ID;
  1300. X+     YY_BREAK
  1301. X+ case 22:
  1302. X+ # line 89 "lev_comp.l"
  1303. X+ { yylval.i=D_ISOPEN; return DOOR_STATE; }
  1304. X+     YY_BREAK
  1305. X+ case 23:
  1306. X+ # line 90 "lev_comp.l"
  1307. X+ { yylval.i=D_CLOSED; return DOOR_STATE; }
  1308. X+     YY_BREAK
  1309. X+ case 24:
  1310. X+ # line 91 "lev_comp.l"
  1311. X+ { yylval.i=D_LOCKED; return DOOR_STATE; }
  1312. X+     YY_BREAK
  1313. X+ case 25:
  1314. X+ # line 92 "lev_comp.l"
  1315. X+ { yylval.i=D_NODOOR; return DOOR_STATE; }
  1316. X+     YY_BREAK
  1317. X+ case 26:
  1318. X+ # line 93 "lev_comp.l"
  1319. X+ { yylval.i=D_BROKEN; return DOOR_STATE; }
  1320. X+     YY_BREAK
  1321. X+ case 27:
  1322. X+ # line 94 "lev_comp.l"
  1323. X+ { yylval.i=W_NORTH; return DIRECTION; }
  1324. X+     YY_BREAK
  1325. X+ case 28:
  1326. X+ # line 95 "lev_comp.l"
  1327. X+ { yylval.i=W_EAST; return DIRECTION; }
  1328. X+     YY_BREAK
  1329. X+ case 29:
  1330. X+ # line 96 "lev_comp.l"
  1331. X+ { yylval.i=W_SOUTH; return DIRECTION; }
  1332. X+     YY_BREAK
  1333. X+ case 30:
  1334. X+ # line 97 "lev_comp.l"
  1335. X+ { yylval.i=W_WEST; return DIRECTION; }
  1336. X+     YY_BREAK
  1337. X+ case 31:
  1338. X+ # line 98 "lev_comp.l"
  1339. X+ { yylval.i = -1; return RANDOM_TYPE; }
  1340. X+     YY_BREAK
  1341. X+ case 32:
  1342. X+ # line 99 "lev_comp.l"
  1343. X+ return O_REGISTER;
  1344. X+     YY_BREAK
  1345. X+ case 33:
  1346. X+ # line 100 "lev_comp.l"
  1347. X+ return M_REGISTER;
  1348. X+     YY_BREAK
  1349. X+ case 34:
  1350. X+ # line 101 "lev_comp.l"
  1351. X+ return P_REGISTER;
  1352. X+     YY_BREAK
  1353. X+ case 35:
  1354. X+ # line 102 "lev_comp.l"
  1355. X+ return A_REGISTER;
  1356. X+     YY_BREAK
  1357. X+ case 36:
  1358. X+ # line 103 "lev_comp.l"
  1359. X+ { yylval.i=1; return LEFT_OR_RIGHT; }
  1360. X+     YY_BREAK
  1361. X+ case 37:
  1362. X+ # line 104 "lev_comp.l"
  1363. X+ { yylval.i=3; return LEFT_OR_RIGHT; }
  1364. X+     YY_BREAK
  1365. X+ case 38:
  1366. X+ # line 105 "lev_comp.l"
  1367. X+ { yylval.i=2; return CENTER; }
  1368. X+     YY_BREAK
  1369. X+ case 39:
  1370. X+ # line 106 "lev_comp.l"
  1371. X+ { yylval.i=1; return TOP_OR_BOT; }
  1372. X+     YY_BREAK
  1373. X+ case 40:
  1374. X+ # line 107 "lev_comp.l"
  1375. X+ { yylval.i=3; return TOP_OR_BOT; }
  1376. X+     YY_BREAK
  1377. X+ case 41:
  1378. X+ # line 108 "lev_comp.l"
  1379. X+ { yylval.i=1; return LIGHT_STATE; }
  1380. X+     YY_BREAK
  1381. X+ case 42:
  1382. X+ # line 109 "lev_comp.l"
  1383. X+ { yylval.i=0; return LIGHT_STATE; }
  1384. X+     YY_BREAK
  1385. X+ case 43:
  1386. X+ # line 110 "lev_comp.l"
  1387. X+ { yylval.i=A_LAW; return ALIGNMENT; }
  1388. X+     YY_BREAK
  1389. X+ case 44:
  1390. X+ # line 111 "lev_comp.l"
  1391. X+ { yylval.i=A_NEUTRAL; return ALIGNMENT; }
  1392. X+     YY_BREAK
  1393. X+ case 45:
  1394. X+ # line 112 "lev_comp.l"
  1395. X+ { yylval.i=A_CHAOS; return ALIGNMENT; }
  1396. X+     YY_BREAK
  1397. X+ case 46:
  1398. X+ # line 113 "lev_comp.l"
  1399. X+ { yylval.i=1; return ALTAR_TYPE; }
  1400. X+     YY_BREAK
  1401. X+ case 47:
  1402. X+ # line 114 "lev_comp.l"
  1403. X+ { yylval.i=0; return ALTAR_TYPE; }
  1404. X+     YY_BREAK
  1405. X+ case 48:
  1406. X+ # line 115 "lev_comp.l"
  1407. X+ { yylval.i=1; return UP_OR_DOWN; }
  1408. X+     YY_BREAK
  1409. X+ case 49:
  1410. X+ # line 116 "lev_comp.l"
  1411. X+ { yylval.i=0; return UP_OR_DOWN; }
  1412. X+     YY_BREAK
  1413. X+ case 50:
  1414. X+ # line 117 "lev_comp.l"
  1415. X+ { yylval.i=atoi(yytext); return INTEGER; }
  1416. X+     YY_BREAK
  1417. X+ case 51:
  1418. X+ # line 118 "lev_comp.l"
  1419. X+ { yytext[yyleng-1] = 0; /* Discard the trailing \" */
  1420. X+           yylval.map = (char *) alloc(strlen(yytext+1)+1);
  1421. X+           strcpy(yylval.map, yytext+1); /* Discard the first \" */
  1422. X+           return STRING; }
  1423. X+     YY_BREAK
  1424. X+ case 52:
  1425. X+ # line 122 "lev_comp.l"
  1426. X+ { line_number++; }
  1427. X+     YY_BREAK
  1428. X+ case 53:
  1429. X+ # line 123 "lev_comp.l"
  1430. X+ ;
  1431. X+     YY_BREAK
  1432. X+ case 54:
  1433. X+ # line 124 "lev_comp.l"
  1434. X+ { yylval.i = yytext[1]; return CHAR; }
  1435. X+     YY_BREAK
  1436. X+ case 55:
  1437. X+ # line 125 "lev_comp.l"
  1438. X+ { return yytext[0]; }
  1439. X+     YY_BREAK
  1440. X+ case 56:
  1441. X+ # line 126 "lev_comp.l"
  1442. X+ ECHO;
  1443. X+     YY_BREAK
  1444. X+ case YY_STATE_EOF(INITIAL):
  1445. X+ case YY_STATE_EOF(MAPC):
  1446. X+     yyterminate();
  1447. X+ 
  1448. X+         case YY_END_OF_BUFFER:
  1449. X+             /* undo the effects of YY_DO_BEFORE_ACTION */
  1450. X+             *yy_cp = yy_hold_char;
  1451. X+ 
  1452. X+             yytext = yy_bp;
  1453. X+ 
  1454. X+             switch ( yy_get_next_buffer() )
  1455. X+             {
  1456. X+             case EOB_ACT_END_OF_FILE:
  1457. X+                 {
  1458. X+                 if ( yywrap() )
  1459. X+                 {
  1460. X+                 /* note: because we've taken care in
  1461. X+                  * yy_get_next_buffer() to have set up yytext,
  1462. X+                  * we can now set up yy_c_buf_p so that if some
  1463. X+                  * total hoser (like flex itself) wants
  1464. X+                  * to call the scanner after we return the
  1465. X+                  * YY_NULL, it'll still work - another YY_NULL
  1466. X+                  * will get returned.
  1467. X+                  */
  1468. X+                 yy_c_buf_p = yytext;
  1469. X+ 
  1470. X+                 yy_act = YY_STATE_EOF((yy_start - 1) / 2);
  1471. X+                 goto do_action;
  1472. X+                 }
  1473. X+ 
  1474. X+                 else
  1475. X+                 YY_NEW_FILE;
  1476. X+                 }
  1477. X+                 break;
  1478. X+ 
  1479. X+             case EOB_ACT_RESTART_SCAN:
  1480. X+                 yy_c_buf_p = yytext;
  1481. X+                 yy_hold_char = *yy_c_buf_p;
  1482. X+                 break;
  1483. X+ 
  1484. X+             case EOB_ACT_LAST_MATCH:
  1485. X+                 yy_c_buf_p = &yy_ch_buf[yy_n_chars];
  1486. X+ 
  1487. X+                 yy_current_state = yy_get_previous_state();
  1488. X+ 
  1489. X+                 yy_cp = yy_c_buf_p;
  1490. X+                 yy_bp = yytext;
  1491. X+                 continue; /* go to "YY_DO_BEFORE_ACTION" */
  1492. X+             }
  1493. X+             break;
  1494. X+ 
  1495. X+         default:
  1496. X+             printf( "action # %d\n", yy_act );
  1497. X+             YY_FATAL_ERROR( "fatal flex scanner internal error" );
  1498. X+         }
  1499. X+ 
  1500. X+         break; /* exit bogus while loop */
  1501. X+         }
  1502. X+     }
  1503. X+     }
  1504. X+ 
  1505. X+ 
  1506. X+ /* yy_get_next_buffer - try to read in new buffer
  1507. X+  *
  1508. X+  * synopsis
  1509. X+  *     int yy_get_next_buffer();
  1510. X+  *     
  1511. X+  * returns a code representing an action
  1512. X+  *     EOB_ACT_LAST_MATCH - 
  1513. X+  *     EOB_ACT_RESTART_SCAN - restart the scanner
  1514. X+  *     EOB_ACT_END_OF_FILE - end of file
  1515. X+  */
  1516. X+ 
  1517. X+ static int yy_get_next_buffer()
  1518. X+ 
  1519. X+     {
  1520. X+     register char *dest = yy_ch_buf;
  1521. X+     register char *source = yytext - 1; /* copy prev. char, too */
  1522. X+     register int number_to_move, i;
  1523. X+     int ret_val;
  1524. X+     
  1525. X+     if ( yy_c_buf_p != &yy_ch_buf[yy_n_chars + 1] )
  1526. X+     {
  1527. X+     YY_FATAL_ERROR( "NULL in input" );
  1528. X+     /*NOTREACHED*/
  1529. X+     }
  1530. X+ 
  1531. X+     /* try to read more data */
  1532. X+ 
  1533. X+     /* first move last chars to start of buffer */
  1534. X+     number_to_move = yy_c_buf_p - yytext;
  1535. X+ 
  1536. X+     for ( i = 0; i < number_to_move; ++i )
  1537. X+     *(dest++) = *(source++);
  1538. X+ 
  1539. X+     if ( yy_eof_has_been_seen )
  1540. X+     /* don't do the read, it's not guaranteed to return an EOF,
  1541. X+      * just force an EOF
  1542. X+      */
  1543. X+     yy_n_chars = 0;
  1544. X+ 
  1545. X+     else
  1546. X+     {
  1547. X+     int num_to_read = YY_BUF_SIZE - number_to_move - 1;
  1548. X+ 
  1549. X+     if ( num_to_read > YY_READ_BUF_SIZE )
  1550. X+         num_to_read = YY_READ_BUF_SIZE;
  1551. X+ 
  1552. X+     /* read in more data */
  1553. X+     YY_INPUT( (&yy_ch_buf[number_to_move]), yy_n_chars, num_to_read );
  1554. X+     }
  1555. X+ 
  1556. X+     if ( yy_n_chars == 0 )
  1557. X+     {
  1558. X+     if ( number_to_move == 1 )
  1559. X+         ret_val = EOB_ACT_END_OF_FILE;
  1560. X+     else
  1561. X+         ret_val = EOB_ACT_LAST_MATCH;
  1562. X+ 
  1563. X+     yy_eof_has_been_seen = 1;
  1564. X+     }
  1565. X+ 
  1566. X+     else
  1567. X+     ret_val = EOB_ACT_RESTART_SCAN;
  1568. X+ 
  1569. X+     yy_n_chars += number_to_move;
  1570. X+     yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
  1571. X+     yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
  1572. X+ 
  1573. X+     /* yytext begins at the second character in
  1574. X+      * yy_ch_buf; the first character is the one which
  1575. X+      * preceded it before reading in the latest buffer;
  1576. X+      * it needs to be kept around in case it's a
  1577. X+      * newline, so yy_get_previous_state() will have
  1578. X+      * with '^' rules active
  1579. X+      */
  1580. X+ 
  1581. X+     yytext = &yy_ch_buf[1];
  1582. X+ 
  1583. X+     return ( ret_val );
  1584. X+     }
  1585. X+ 
  1586. X+ 
  1587. X+ /* yy_get_previous_state - get the state just before the EOB char was reached
  1588. X+  *
  1589. X+  * synopsis
  1590. X+  *     yy_state_type yy_get_previous_state();
  1591. X+  */
  1592. X+ 
  1593. X+ static yy_state_type yy_get_previous_state()
  1594. X+ 
  1595. X+     {
  1596. X+     register yy_state_type yy_current_state;
  1597. X+     register char *yy_cp;
  1598. X+ 
  1599. X+     register char *yy_bp = yytext;
  1600. X+ 
  1601. X+     yy_current_state = yy_start;
  1602. X+     if ( yy_bp[-1] == '\n' )
  1603. X+     ++yy_current_state;
  1604. X+ 
  1605. X+     for ( yy_cp = yytext; yy_cp < yy_c_buf_p; ++yy_cp )
  1606. X+     {
  1607. X+     register char yy_c = yy_ec[*yy_cp];
  1608. X+     if ( yy_accept[yy_current_state] )
  1609. X+         {
  1610. X+         yy_last_accepting_state = yy_current_state;
  1611. X+         yy_last_accepting_cpos = yy_cp;
  1612. X+         }
  1613. X+     while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  1614. X+         {
  1615. X+         yy_current_state = yy_def[yy_current_state];
  1616. X+         if ( yy_current_state >= 274 )
  1617. X+         yy_c = yy_meta[yy_c];
  1618. X+         }
  1619. X+     yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
  1620. X+     }
  1621. X+ 
  1622. X+     return ( yy_current_state );
  1623. X+     }
  1624. X+ 
  1625. X+ 
  1626. X+ #ifdef __STDC__
  1627. X+ static void yyunput( int c, register char *yy_bp )
  1628. X+ #else
  1629. X+ static void yyunput( c, yy_bp )
  1630. X+ int c;
  1631. X+ register char *yy_bp;
  1632. X+ #endif
  1633. X+ 
  1634. X+     {
  1635. X+     register char *yy_cp = yy_c_buf_p;
  1636. X+ 
  1637. X+     *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1638. X+ 
  1639. X+     if ( yy_cp < yy_ch_buf + 2 )
  1640. X+     { /* need to shift things up to make room */
  1641. X+     register int number_to_move = yy_n_chars + 2; /* +2 for EOB chars */
  1642. X+     register char *dest = &yy_ch_buf[YY_BUF_SIZE + 2];
  1643. X+     register char *source = &yy_ch_buf[number_to_move];
  1644. X+ 
  1645. X+     while ( source > yy_ch_buf )
  1646. X+         *--dest = *--source;
  1647. X+ 
  1648. X+     yy_cp += dest - source;
  1649. X+     yy_bp += dest - source;
  1650. X+ 
  1651. X+     if ( yy_cp < yy_ch_buf + 2 )
  1652. X+         YY_FATAL_ERROR( "flex scanner push-back overflow" );
  1653. X+     }
  1654. X+ 
  1655. X+     if ( yy_cp > yy_bp && yy_cp[-1] == '\n' )
  1656. X+     yy_cp[-2] = '\n';
  1657. X+ 
  1658. X+     *--yy_cp = c;
  1659. X+ 
  1660. X+     YY_DO_BEFORE_ACTION; /* set up yytext again */
  1661. X+     }
  1662. X+ 
  1663. X+ 
  1664. X+ static int input()
  1665. X+ 
  1666. X+     {
  1667. X+     int c;
  1668. X+     char *yy_cp = yy_c_buf_p;
  1669. X+ 
  1670. X+     *yy_cp = yy_hold_char;
  1671. X+ 
  1672. X+     if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
  1673. X+     { /* need more input */
  1674. X+     yytext = yy_c_buf_p;
  1675. X+     ++yy_c_buf_p;
  1676. X+ 
  1677. X+     switch ( yy_get_next_buffer() )
  1678. X+         {
  1679. X+         /* this code, unfortunately, is somewhat redundant with
  1680. X+          * that above
  1681. X+          */
  1682. X+         case EOB_ACT_END_OF_FILE:
  1683. X+         {
  1684. X+         if ( yywrap() )
  1685. X+             {
  1686. X+             yy_c_buf_p = yytext;
  1687. X+             return ( EOF );
  1688. X+             }
  1689. X+ 
  1690. X+         yy_ch_buf[0] = '\n';
  1691. X+         yy_n_chars = 1;
  1692. X+         yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
  1693. X+         yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
  1694. X+         yy_eof_has_been_seen = 0;
  1695. X+         yytext = yy_c_buf_p = &yy_ch_buf[1];
  1696. X+         yy_hold_char = *yy_c_buf_p;
  1697. X+ 
  1698. X+         return ( input() );
  1699. X+         }
  1700. X+         break;
  1701. X+ 
  1702. X+         case EOB_ACT_RESTART_SCAN:
  1703. X+         yy_c_buf_p = yytext;
  1704. X+         break;
  1705. X+ 
  1706. X+         case EOB_ACT_LAST_MATCH:
  1707. X+         YY_FATAL_ERROR( "unexpected last match in input()" );
  1708. X+         }
  1709. X+     }
  1710. X+ 
  1711. X+     c = *yy_c_buf_p;
  1712. X+     yy_hold_char = *++yy_c_buf_p;
  1713. X+ 
  1714. X+     return ( c );
  1715. X+     }
  1716. X+ 
  1717. X+ 
  1718. X+ #ifdef __STDC__
  1719. X+ static void yyrestart( FILE *input_file )
  1720. X+ #else
  1721. X+ static void yyrestart( input_file )
  1722. X+ FILE *input_file;
  1723. X+ #endif
  1724. X+ 
  1725. X+     {
  1726. X+     if ( yyin != stdin )
  1727. X+     fclose( yyin );
  1728. X+ 
  1729. X+     yyin = input_file;
  1730. X+     yy_init = 1;
  1731. X+     }
  1732. X+ # line 126 "lev_comp.l"
  1733. X+ 
  1734. X+ #ifdef    AMIGA
  1735. X+ long *alloc(n)
  1736. X+     unsigned n;
  1737. X+ {
  1738. X+     return ((long *)malloc (n));
  1739. X+ }
  1740. X+ #endif
  1741. X*** others/Old/ovlmgr.doc    Mon Feb 19 23:34:04 1990
  1742. X--- others/ovlmgr.doc    Mon Feb 19 23:23:01 1990
  1743. X***************
  1744. X*** 1,6 ****
  1745. X               Brief notes about ovlmgr.asm
  1746. X               ----------------------------
  1747. X!              (revised 1989nov12)
  1748. X  
  1749. X  OVLMGR.ASM is a preliminary version of a multiple-residency overlay
  1750. X  manager for use with the Microsoft Overlay Linker. It is functionally
  1751. X--- 1,6 ----
  1752. X               Brief notes about ovlmgr.asm
  1753. X               ----------------------------
  1754. X!              (version 3.0.624: 1990Feb19)
  1755. X  
  1756. X  OVLMGR.ASM is a preliminary version of a multiple-residency overlay
  1757. X  manager for use with the Microsoft Overlay Linker. It is functionally
  1758. X***************
  1759. X*** 104,116 ****
  1760. X  NOTA BENE: This is a preliminary version of the overlay manager, but
  1761. X  by now it should be fairly well debugged. If you are considering
  1762. X  upgrading it please be aware that the following improvements are
  1763. X! planned for the next version (though who knows when delivery will
  1764. X! occur):
  1765. X      Twice the speed
  1766. X      EMS support
  1767. X!     compatible versions of setjmp() and longjmp()
  1768. X!     Integration with malloc() so the heap can grow
  1769. X      Major code revamping
  1770. X  
  1771. X  Enjoy!
  1772. X  ------------------------------------------------------------------------
  1773. X--- 104,120 ----
  1774. X  NOTA BENE: This is a preliminary version of the overlay manager, but
  1775. X  by now it should be fairly well debugged. If you are considering
  1776. X  upgrading it please be aware that the following improvements are
  1777. X! planned for the next version (many of them are already written and are
  1778. X! now being debugged or tested):
  1779. X! 
  1780. X      Twice the speed
  1781. X+     Better memory utilisation
  1782. X      EMS support
  1783. X!     i386 support
  1784. X!     Compatible versions of setjmp() and longjmp()
  1785. X!     A method of changing the C heap size without relinking
  1786. X      Major code revamping
  1787. X+     Monitoring, tuning and debugging tools
  1788. X  
  1789. X  Enjoy!
  1790. X  ------------------------------------------------------------------------
  1791. X***************
  1792. X*** 160,165 ****
  1793. X--- 164,177 ----
  1794. X  
  1795. X  Locking overlays into memory is not really implemeted even though
  1796. X  reading the source code might make you think it was.
  1797. X+ 
  1798. X+ Although we have not found a way of supporting versions of DOS prior
  1799. X+ to 3.0, the overlay manager still does not check that it is running
  1800. X+ under 3.0 or better (a stupid oversight at the time of writing).
  1801. X+ 
  1802. X+ This is not actually the most recent version of the overlay manager,
  1803. X+ but it IS the most recent one that seems to run cleanly with NetHack.
  1804. X+ A phenomenon that we are still investigating....
  1805. X  ------------------------------------------------------------------------
  1806. X  BUG ALERT
  1807. X  
  1808. X***************
  1809. X*** 169,174 ****
  1810. X--- 181,203 ----
  1811. X  pointer, you *will* die with ours. Nothing in an overlay ever ends up
  1812. X  in the same segment as the linker anticipated.    You have been warned!
  1813. X  ------------------------------------------------------------------------
  1814. X+ BUGS FIXED
  1815. X+ 
  1816. X+ A couple of rather stupid and/or unpleasant bugs have been fixed in
  1817. X+ this version (unfortunately called 3.0.624):
  1818. X+ 
  1819. X+ The interrupt vectors are now restored correctly when the programme
  1820. X+ exits, making a number of strange and worrisome interactions with DOS
  1821. X+ go away.
  1822. X+ 
  1823. X+ The lru computation is now done correctly, reducing the amount of disk
  1824. X+ I/O dramatically, and bringing behaviour in line with the theoretical
  1825. X+ model.
  1826. X+ 
  1827. X+ The implementation of the exec() call is now significantly cleaner and
  1828. X+ the chance of unfortunate interactions with software run in a subshell
  1829. X+ is greatly reduced.
  1830. X+ ------------------------------------------------------------------------
  1831. X  FOOTNOTES
  1832. X  
  1833. X  (1) If you hunt through the code you will find a magic constant you
  1834. X***************
  1835. X*** 195,200 ****
  1836. X  part of NetHack and may be freely distributed as described in the
  1837. X  NetHack license.
  1838. X  ----------------------------------------------------------------------
  1839. X! Stephen P Spackman               stephen@concour.cs.concordia.ca
  1840. X  ----------------------------------------------------------------------
  1841. X!      Copyright (C) 1989 Pierre G Martineau and Stephen P Spackman
  1842. X--- 224,230 ----
  1843. X  part of NetHack and may be freely distributed as described in the
  1844. X  NetHack license.
  1845. X  ----------------------------------------------------------------------
  1846. X! Stephen P Spackman                     stephen@tira.uchicago.edu
  1847. X! Pierre G Martineau             elevia!ozrout!pierre@clyde.concordia.ca
  1848. X  ----------------------------------------------------------------------
  1849. X!   Copyright (C) 1989, 1990 Pierre G Martineau and Stephen P Spackman
  1850. X*** others/Old/pctty.c    Mon Feb 19 23:35:31 1990
  1851. X--- others/pctty.c    Thu Jan 25 22:19:45 1990
  1852. X***************
  1853. X*** 3,9 ****
  1854. X  /* NetHack may be freely redistributed.  See license for details. */
  1855. X  /* tty.c - (PC) version */
  1856. X  
  1857. X! #define NEED_VARARGS
  1858. X  #include "hack.h"
  1859. X  
  1860. X  char erase_char, kill_char;
  1861. X--- 3,9 ----
  1862. X  /* NetHack may be freely redistributed.  See license for details. */
  1863. X  /* tty.c - (PC) version */
  1864. X  
  1865. X! #define NEED_VARARGS /* Uses ... */    /* comment line for pre-compiled headers */
  1866. X  #include "hack.h"
  1867. X  
  1868. X  char erase_char, kill_char;
  1869. X***************
  1870. X*** 25,31 ****
  1871. X  
  1872. X  /* reset terminal to original state */
  1873. X  void
  1874. X! settty(s) char *s; {
  1875. X      end_screen();
  1876. X      if(s) Printf(s);
  1877. X      (void) fflush(stdout);
  1878. X--- 25,33 ----
  1879. X  
  1880. X  /* reset terminal to original state */
  1881. X  void
  1882. X! settty(s)
  1883. X! const char *s;
  1884. X! {
  1885. X      end_screen();
  1886. X      if(s) Printf(s);
  1887. X      (void) fflush(stdout);
  1888. X***************
  1889. X*** 38,46 ****
  1890. X  /*VARARGS1*/
  1891. X  
  1892. X  void
  1893. X! error VA_DECL(char *,s)
  1894. X      VA_START(s);
  1895. X!     VA_INIT(s, char *);
  1896. X      end_screen();
  1897. X      putchar('\n');
  1898. X      Vprintf(s,VA_ARGS);
  1899. X--- 40,48 ----
  1900. X  /*VARARGS1*/
  1901. X  
  1902. X  void
  1903. X! error VA_DECL(const char *,s)
  1904. X      VA_START(s);
  1905. X!     VA_INIT(s, const char *);
  1906. X      end_screen();
  1907. X      putchar('\n');
  1908. X      Vprintf(s,VA_ARGS);
  1909. X
  1910. END_OF_FILE
  1911. if test 55350 -ne `wc -c <'patch7.20'`; then
  1912.     echo shar: \"'patch7.20'\" unpacked with wrong size!
  1913. fi
  1914. # end of 'patch7.20'
  1915. echo shar: End of archive 12 \(of 30\).
  1916. cp /dev/null ark12isdone
  1917. MISSING=""
  1918. for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 ; do
  1919.     if test ! -f ark${I}isdone ; then
  1920.     MISSING="${MISSING} ${I}"
  1921.     fi
  1922. done
  1923. if test "${MISSING}" = "" ; then
  1924.     echo You have unpacked all 30 archives.
  1925.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  1926. else
  1927.     echo You still need to unpack the following archives:
  1928.     echo "        " ${MISSING}
  1929. fi
  1930. ##  End of shell archive.
  1931. exit 0
  1932.