home *** CD-ROM | disk | FTP | other *** search
/ Giga Games 1 / Giga Games.iso / net / usenet / volume7 / nethack3 / patch8b < prev    next >
Encoding:
Internet Message Format  |  1990-06-08  |  59.7 KB

  1. Path: uunet!ogicse!zephyr.ens.tek.com!tekred!saab!billr
  2. From: billr@saab.CNA.TEK.COM (Bill Randle)
  3. Newsgroups: comp.sources.games
  4. Subject: v10i020:  NetHack3 -  display oriented dungeons & dragons (Ver. 3.0), Patch8b
  5. Message-ID: <5728@tekred.CNA.TEK.COM>
  6. Date: 5 Jun 90 17:47:36 GMT
  7. Sender: news@tekred.CNA.TEK.COM
  8. Lines: 2049
  9. Approved: billr@saab.CNA.TEK.COM
  10. Posted: Tue Jun  5 10:47:36 1990
  11.  
  12. Submitted-by: Izchak Miller <izchak@linc.cis.upenn.edu>
  13. Posting-number: Volume 10, Issue 20
  14. Archive-name: NetHack3/Patch8b
  15. Patch-To: NetHack3: Volume 7, Issue 56-93
  16.  
  17.  
  18.  
  19. #! /bin/sh
  20. # This is a shell archive.  Remove anything before this line, then unpack
  21. # it by saving it into a file and typing "sh file".  To overwrite existing
  22. # files, type "sh file -c".  You can also feed this as standard input via
  23. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  24. # will see the following message at the end:
  25. #        "End of archive 2 (of 24)."
  26. # Contents:  patch8.13 vms/install.com
  27. # Wrapped by billr@saab on Mon Jun  4 15:27:12 1990
  28. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  29. if test -f 'patch8.13' -a "${1}" != "-c" ; then 
  30.   echo shar: Will not clobber existing file \"'patch8.13'\"
  31. else
  32. echo shar: Extracting \"'patch8.13'\" \(54916 characters\)
  33. sed "s/^X//" >'patch8.13' <<'END_OF_FILE'
  34. X*** others/Old/Makefile.msc    Sun Jun  3 15:17:58 1990
  35. X--- others/Makefile.msc    Fri May 18 20:44:19 1990
  36. X***************
  37. X*** 37,43 ****
  38. X  GAMEFILE = $(GAMEDIR)\$(GAME).exe
  39. X  
  40. X  # object files for makedefs
  41. X! MAKEOBJS = o\makedefs.o o\alloc.o o\monst.o o\objects.o o\panic.o
  42. X  
  43. X  # object files for special levels compiler
  44. X  SPLEVOBJS = o\lev_comp.o o\lev_lex.o o\lev_main.o o\alloc.o o\monst.o o\objects.o o\panic.o
  45. X--- 37,43 ----
  46. X  GAMEFILE = $(GAMEDIR)\$(GAME).exe
  47. X  
  48. X  # object files for makedefs
  49. X! MAKEOBJS = o\makedefs.o o\monst.o o\objects.o
  50. X  
  51. X  # object files for special levels compiler
  52. X  SPLEVOBJS = o\lev_comp.o o\lev_lex.o o\lev_main.o o\alloc.o o\monst.o o\objects.o o\panic.o
  53. X***************
  54. X*** 68,81 ****
  55. X  GLOBAL_H   = $(INCL)\global.h $(INCL)\coord.h $(PCCONF_H)
  56. X  CONFIG_H   = $(INCL)\config.h $(INCL)\tradstdc.h $(GLOBAL_H)
  57. X  TRAP_H       = $(INCL)\trap.h
  58. X! PERMONST_H = $(INCL)\permonst.h $(INCL)\monflag.h
  59. X  YOU_H       = $(INCL)\you.h $(INCL)\attrib.h $(PERMONST_H) $(INCL)\mondata.h \
  60. X!          $(INCL)\monst.h $(INCL)\youprop.h
  61. X  DECL_H       = $(INCL)\decl.h $(INCL)\spell.h $(INCL)\obj.h $(YOU_H) \
  62. X!          $(INCL)\onames.h $(INCL)\pm.h
  63. X  HACK_H       = $(CONFIG_H) $(DECL_H) $(INCL)\monsym.h $(INCL)\mkroom.h \
  64. X           $(INCL)\objclass.h $(INCL)\gold.h $(INCL)\trap.h $(INCL)\flag.h \
  65. X!          $(INCL)\rm.h
  66. X  
  67. X  # The main target
  68. X  # NDMAKE automatically generates LINK response files
  69. X--- 68,81 ----
  70. X  GLOBAL_H   = $(INCL)\global.h $(INCL)\coord.h $(PCCONF_H)
  71. X  CONFIG_H   = $(INCL)\config.h $(INCL)\tradstdc.h $(GLOBAL_H)
  72. X  TRAP_H       = $(INCL)\trap.h
  73. X! PERMONST_H = $(INCL)\permonst.h $(INCL)\monattk.h $(INCL)\monflag.h
  74. X  YOU_H       = $(INCL)\you.h $(INCL)\attrib.h $(PERMONST_H) $(INCL)\mondata.h \
  75. X!          $(INCL)\monst.h $(INCL)\youprop.h $(INCL)\prop.h $(INCL)\pm.h
  76. X  DECL_H       = $(INCL)\decl.h $(INCL)\spell.h $(INCL)\obj.h $(YOU_H) \
  77. X!          $(INCL)\onames.h $(INCL)\color.h
  78. X  HACK_H       = $(CONFIG_H) $(DECL_H) $(INCL)\monsym.h $(INCL)\mkroom.h \
  79. X           $(INCL)\objclass.h $(INCL)\gold.h $(INCL)\trap.h $(INCL)\flag.h \
  80. X!          $(INCL)\rm.h $(INCL)\hack.h
  81. X  
  82. X  # The main target
  83. X  # NDMAKE automatically generates LINK response files
  84. X***************
  85. X*** 118,124 ****
  86. X  
  87. X  o\lev_comp.o:  $(HACK_H) $(INCL)\sp_lev.h
  88. X  o\lev_lex.o:  $(INCL)\lev_comp.h $(HACK_H) $(INCL)\sp_lev.h
  89. X! o\lev_main.o:  $(HACK_H) $(INCL)\sp_lev.h
  90. X  
  91. X  # If you have yacc or lex programs, and make any changes,
  92. X  # add some .y.c and .l.c rules to your Make.ini.
  93. X--- 118,124 ----
  94. X  
  95. X  o\lev_comp.o:  $(HACK_H) $(INCL)\sp_lev.h
  96. X  o\lev_lex.o:  $(INCL)\lev_comp.h $(HACK_H) $(INCL)\sp_lev.h
  97. X! o\lev_main.o:  $(HACK_H)
  98. X  
  99. X  # If you have yacc or lex programs, and make any changes,
  100. X  # add some .y.c and .l.c rules to your Make.ini.
  101. X***************
  102. X*** 245,251 ****
  103. X  o\do_wear.o:  $(HACK_H)
  104. X  o\dog.o:  $(HACK_H) $(INCL)\edog.h
  105. X  o\dogmove.o:  $(HACK_H) $(INCL)\mfndpos.h $(INCL)\edog.h
  106. X! o\dokick.o:  $(HACK_H)
  107. X  o\dothrow.o:  $(HACK_H)
  108. X  o\eat.o:  $(HACK_H)
  109. X  o\end.o:  $(HACK_H) $(INCL)\eshk.h
  110. X--- 245,251 ----
  111. X  o\do_wear.o:  $(HACK_H)
  112. X  o\dog.o:  $(HACK_H) $(INCL)\edog.h
  113. X  o\dogmove.o:  $(HACK_H) $(INCL)\mfndpos.h $(INCL)\edog.h
  114. X! o\dokick.o:  $(HACK_H) $(INCL)\eshk.h
  115. X  o\dothrow.o:  $(HACK_H)
  116. X  o\eat.o:  $(HACK_H)
  117. X  o\end.o:  $(HACK_H) $(INCL)\eshk.h
  118. X***************
  119. X*** 257,263 ****
  120. X  o\hack.o:  $(HACK_H)
  121. X  o\invent.o:  $(HACK_H) $(INCL)\lev.h $(INCL)\wseg.h
  122. X  o\ioctl.o:  $(HACK_H)
  123. X- o\lev_comp.o:  $(HACK_H) $(INCL)\sp_lev.h
  124. X  o\lock.o:  $(HACK_H)
  125. X  o\makemon.o:  $(HACK_H)
  126. X  o\mail.o:  $(HACK_H)
  127. X--- 257,262 ----
  128. X***************
  129. X*** 268,282 ****
  130. X  o\mkmaze.o:  $(HACK_H)
  131. X  o\mkobj.o:  $(HACK_H)
  132. X  o\mkroom.o:  $(HACK_H)
  133. X! o\mon.o:  $(HACK_H) $(INCL)\mfndpos.h $(INCL)\artifact.h
  134. X  o\mondata.o:  $(HACK_H) $(INCL)\eshk.h $(INCL)\epri.h
  135. X  o\monmove.o:  $(HACK_H) $(INCL)\mfndpos.h $(INCL)\artifact.h
  136. X! o\monst.o:  $(CONFIG_H) $(PERMONST_H) $(INCL)\eshk.h $(INCL)\vault.h $(INCL)\epri.h
  137. X  o\msdos.o:  $(HACK_H)
  138. X  o\mthrowu.o:  $(HACK_H)
  139. X  o\music.o:  $(HACK_H)
  140. X! o\o_init.o:  $(HACK_H) $(INCL)\onames.h
  141. X! o\objects.o:  $(CONFIG_H) $(INCL)\obj.h $(INCL)\objclass.h $(INCL)\prop.h
  142. X  o\objnam.o:  $(HACK_H)
  143. X  o\options.o:  $(HACK_H)
  144. X  o\pager.o:  $(HACK_H)
  145. X--- 267,281 ----
  146. X  o\mkmaze.o:  $(HACK_H)
  147. X  o\mkobj.o:  $(HACK_H)
  148. X  o\mkroom.o:  $(HACK_H)
  149. X! o\mon.o:  $(HACK_H) $(INCL)\mfndpos.h $(INCL)\wseg.h
  150. X  o\mondata.o:  $(HACK_H) $(INCL)\eshk.h $(INCL)\epri.h
  151. X  o\monmove.o:  $(HACK_H) $(INCL)\mfndpos.h $(INCL)\artifact.h
  152. X! o\monst.o:  $(CONFIG_H) $(PERMONST_H) $(INCL)\monsym.h $(INCL)\eshk.h $(INCL)\vault.h $(INCL)\epri.h $(INCL)\color.h
  153. X  o\msdos.o:  $(HACK_H)
  154. X  o\mthrowu.o:  $(HACK_H)
  155. X  o\music.o:  $(HACK_H)
  156. X! o\o_init.o:  $(HACK_H)
  157. X! o\objects.o:  $(CONFIG_H) $(INCL)\obj.h $(INCL)\objclass.h $(INCL)\prop.h $(INCL)\color.h
  158. X  o\objnam.o:  $(HACK_H)
  159. X  o\options.o:  $(HACK_H)
  160. X  o\pager.o:  $(HACK_H)
  161. X***************
  162. X*** 285,291 ****
  163. X  o\polyself.o:  $(HACK_H)
  164. X  o\potion.o:  $(HACK_H)
  165. X  o\pray.o:  $(HACK_H)
  166. X! o\pri.o:  $(HACK_H) $(INCL)\termcap.h
  167. X  o\priest.o:  $(HACK_H) $(INCL)\mfndpos.h $(INCL)\eshk.h $(INCL)\epri.h
  168. X  o\prisym.o:  $(HACK_H) $(INCL)\lev.h $(INCL)\wseg.h
  169. X  o\random.o:
  170. X--- 284,290 ----
  171. X  o\polyself.o:  $(HACK_H)
  172. X  o\potion.o:  $(HACK_H)
  173. X  o\pray.o:  $(HACK_H)
  174. X! o\pri.o:  $(HACK_H) $(INCL)\epri.h $(INCL)\termcap.h
  175. X  o\priest.o:  $(HACK_H) $(INCL)\mfndpos.h $(INCL)\eshk.h $(INCL)\epri.h
  176. X  o\prisym.o:  $(HACK_H) $(INCL)\lev.h $(INCL)\wseg.h
  177. X  o\random.o:
  178. X***************
  179. X*** 312,318 ****
  180. X  o\u_init.o:  $(HACK_H)
  181. X  o\uhitm.o:  $(HACK_H) $(INCL)\artifact.h
  182. X  o\vault.o:  $(HACK_H) $(INCL)\vault.h
  183. X! o\version.o:  $(HACK_H) $(INCL)\date.h
  184. X  o\weapon.o:  $(HACK_H)
  185. X  o\were.o:  $(HACK_H)
  186. X  o\wield.o:  $(HACK_H)
  187. X--- 311,317 ----
  188. X  o\u_init.o:  $(HACK_H)
  189. X  o\uhitm.o:  $(HACK_H) $(INCL)\artifact.h
  190. X  o\vault.o:  $(HACK_H) $(INCL)\vault.h
  191. X! o\version.o:  $(HACK_H) $(INCL)\date.h $(INCL)\patchlev.h
  192. X  o\weapon.o:  $(HACK_H)
  193. X  o\were.o:  $(HACK_H)
  194. X  o\wield.o:  $(HACK_H)
  195. X*** others/Old/Makefile.pc    Sun Jun  3 15:19:29 1990
  196. X--- others/Makefile.pc    Fri May 18 20:51:39 1990
  197. X***************
  198. X*** 35,41 ****
  199. X  GAMEFILE = $(GAMEDIR)\$(GAME).exe
  200. X  
  201. X  # object files for makedefs
  202. X! MAKEOBJS = o\makedefs.o o\alloc.o o\monst.o o\objects.o o\panic.o
  203. X  
  204. X  # object files for special levels compiler
  205. X  SPLEVOBJS = o\lev_comp.o o\lev_lex.o o\lev_main.o o\alloc.o o\monst.o o\objects.o o\panic.o
  206. X--- 35,41 ----
  207. X  GAMEFILE = $(GAMEDIR)\$(GAME).exe
  208. X  
  209. X  # object files for makedefs
  210. X! MAKEOBJS = o\makedefs.o o\monst.o o\objects.o
  211. X  
  212. X  # object files for special levels compiler
  213. X  SPLEVOBJS = o\lev_comp.o o\lev_lex.o o\lev_main.o o\alloc.o o\monst.o o\objects.o o\panic.o
  214. X***************
  215. X*** 66,79 ****
  216. X  GLOBAL_H   = $(INCL)\global.h $(INCL)\coord.h $(PCCONF_H)
  217. X  CONFIG_H   = $(INCL)\config.h $(INCL)\tradstdc.h $(GLOBAL_H)
  218. X  TRAP_H       = $(INCL)\trap.h
  219. X! PERMONST_H = $(INCL)\permonst.h $(INCL)\monflag.h
  220. X  YOU_H       = $(INCL)\you.h $(INCL)\attrib.h $(PERMONST_H) $(INCL)\mondata.h \
  221. X!          $(INCL)\monst.h $(INCL)\youprop.h
  222. X  DECL_H       = $(INCL)\decl.h $(INCL)\spell.h $(INCL)\obj.h $(YOU_H) \
  223. X!          $(INCL)\onames.h $(INCL)\pm.h
  224. X  HACK_H       = $(CONFIG_H) $(DECL_H) $(INCL)\monsym.h $(INCL)\mkroom.h \
  225. X           $(INCL)\objclass.h $(INCL)\gold.h $(INCL)\trap.h $(INCL)\flag.h \
  226. X!          $(INCL)\rm.h
  227. X  
  228. X  # The main target
  229. X  $(GAMEDIR)\$(GAME).exe: o $(HOBJ)
  230. X--- 66,79 ----
  231. X  GLOBAL_H   = $(INCL)\global.h $(INCL)\coord.h $(PCCONF_H)
  232. X  CONFIG_H   = $(INCL)\config.h $(INCL)\tradstdc.h $(GLOBAL_H)
  233. X  TRAP_H       = $(INCL)\trap.h
  234. X! PERMONST_H = $(INCL)\permonst.h $(INCL)\monattk.h $(INCL)\monflag.h
  235. X  YOU_H       = $(INCL)\you.h $(INCL)\attrib.h $(PERMONST_H) $(INCL)\mondata.h \
  236. X!          $(INCL)\monst.h $(INCL)\youprop.h $(INCL)\prop.h $(INCL)\pm.h
  237. X  DECL_H       = $(INCL)\decl.h $(INCL)\spell.h $(INCL)\obj.h $(YOU_H) \
  238. X!          $(INCL)\onames.h $(INCL)\color.h
  239. X  HACK_H       = $(CONFIG_H) $(DECL_H) $(INCL)\monsym.h $(INCL)\mkroom.h \
  240. X           $(INCL)\objclass.h $(INCL)\gold.h $(INCL)\trap.h $(INCL)\flag.h \
  241. X!          $(INCL)\rm.h $(INCL)\hack.h
  242. X  
  243. X  # The main target
  244. X  $(GAMEDIR)\$(GAME).exe: o $(HOBJ)
  245. X***************
  246. X*** 105,111 ****
  247. X  
  248. X  o\lev_comp.o:  $(HACK_H) $(INCL)\sp_lev.h
  249. X  o\lev_lex.o:  $(INCL)\lev_comp.h $(HACK_H) $(INCL)\sp_lev.h
  250. X! o\lev_main.o:  $(HACK_H) $(INCL)\sp_lev.h
  251. X  
  252. X  # If you have yacc or lex programs, and make any changes,
  253. X  # add some .y.c and .l.c rules to your Make.ini.
  254. X--- 105,111 ----
  255. X  
  256. X  o\lev_comp.o:  $(HACK_H) $(INCL)\sp_lev.h
  257. X  o\lev_lex.o:  $(INCL)\lev_comp.h $(HACK_H) $(INCL)\sp_lev.h
  258. X! o\lev_main.o:  $(HACK_H)
  259. X  
  260. X  # If you have yacc or lex programs, and make any changes,
  261. X  # add some .y.c and .l.c rules to your Make.ini.
  262. X***************
  263. X*** 204,210 ****
  264. X  o\do_wear.o:  $(HACK_H)
  265. X  o\dog.o:  $(HACK_H) $(INCL)\edog.h
  266. X  o\dogmove.o:  $(HACK_H) $(INCL)\mfndpos.h $(INCL)\edog.h
  267. X! o\dokick.o:  $(HACK_H)
  268. X  o\dothrow.o:  $(HACK_H)
  269. X  o\eat.o:  $(HACK_H)
  270. X  o\end.o:  $(HACK_H) $(INCL)\eshk.h
  271. X--- 204,210 ----
  272. X  o\do_wear.o:  $(HACK_H)
  273. X  o\dog.o:  $(HACK_H) $(INCL)\edog.h
  274. X  o\dogmove.o:  $(HACK_H) $(INCL)\mfndpos.h $(INCL)\edog.h
  275. X! o\dokick.o:  $(HACK_H) $(INCL)\eshk.h
  276. X  o\dothrow.o:  $(HACK_H)
  277. X  o\eat.o:  $(HACK_H)
  278. X  o\end.o:  $(HACK_H) $(INCL)\eshk.h
  279. X***************
  280. X*** 216,222 ****
  281. X  o\hack.o:  $(HACK_H)
  282. X  o\invent.o:  $(HACK_H) $(INCL)\lev.h $(INCL)\wseg.h
  283. X  o\ioctl.o:  $(HACK_H)
  284. X- o\lev_comp.o:  $(HACK_H) $(INCL)\sp_lev.h
  285. X  o\lock.o:  $(HACK_H)
  286. X  o\makemon.o:  $(HACK_H)
  287. X  o\mail.o:  $(HACK_H)
  288. X--- 216,221 ----
  289. X***************
  290. X*** 227,241 ****
  291. X  o\mkmaze.o:  $(HACK_H)
  292. X  o\mkobj.o:  $(HACK_H)
  293. X  o\mkroom.o:  $(HACK_H)
  294. X! o\mon.o:  $(HACK_H) $(INCL)\mfndpos.h $(INCL)\artifact.h
  295. X  o\mondata.o:  $(HACK_H) $(INCL)\eshk.h $(INCL)\epri.h
  296. X  o\monmove.o:  $(HACK_H) $(INCL)\mfndpos.h $(INCL)\artifact.h
  297. X! o\monst.o:  $(CONFIG_H) $(PERMONST_H) $(INCL)\eshk.h $(INCL)\vault.h $(INCL)\epri.h
  298. X  o\msdos.o:  $(HACK_H)
  299. X  o\mthrowu.o:  $(HACK_H)
  300. X  o\music.o:  $(HACK_H)
  301. X! o\o_init.o:  $(HACK_H) $(INCL)\onames.h
  302. X! o\objects.o:  $(CONFIG_H) $(INCL)\obj.h $(INCL)\objclass.h $(INCL)\prop.h
  303. X  o\objnam.o:  $(HACK_H)
  304. X  o\options.o:  $(HACK_H)
  305. X  o\pager.o:  $(HACK_H)
  306. X--- 226,240 ----
  307. X  o\mkmaze.o:  $(HACK_H)
  308. X  o\mkobj.o:  $(HACK_H)
  309. X  o\mkroom.o:  $(HACK_H)
  310. X! o\mon.o:  $(HACK_H) $(INCL)\mfndpos.h $(INCL)\wseg.h
  311. X  o\mondata.o:  $(HACK_H) $(INCL)\eshk.h $(INCL)\epri.h
  312. X  o\monmove.o:  $(HACK_H) $(INCL)\mfndpos.h $(INCL)\artifact.h
  313. X! o\monst.o:  $(CONFIG_H) $(PERMONST_H) $(INCL)\monsym.h $(INCL)\eshk.h $(INCL)\vault.h $(INCL)\epri.h $(INCL)\color.h
  314. X  o\msdos.o:  $(HACK_H)
  315. X  o\mthrowu.o:  $(HACK_H)
  316. X  o\music.o:  $(HACK_H)
  317. X! o\o_init.o:  $(HACK_H)
  318. X! o\objects.o:  $(CONFIG_H) $(INCL)\obj.h $(INCL)\objclass.h $(INCL)\prop.h $(INCL)\color.h
  319. X  o\objnam.o:  $(HACK_H)
  320. X  o\options.o:  $(HACK_H)
  321. X  o\pager.o:  $(HACK_H)
  322. X***************
  323. X*** 244,250 ****
  324. X  o\polyself.o:  $(HACK_H)
  325. X  o\potion.o:  $(HACK_H)
  326. X  o\pray.o:  $(HACK_H)
  327. X! o\pri.o:  $(HACK_H) $(INCL)\termcap.h
  328. X  o\priest.o:  $(HACK_H) $(INCL)\mfndpos.h $(INCL)\eshk.h $(INCL)\epri.h
  329. X  o\prisym.o:  $(HACK_H) $(INCL)\lev.h $(INCL)\wseg.h
  330. X  o\random.o:
  331. X--- 243,249 ----
  332. X  o\polyself.o:  $(HACK_H)
  333. X  o\potion.o:  $(HACK_H)
  334. X  o\pray.o:  $(HACK_H)
  335. X! o\pri.o:  $(HACK_H) $(INCL)\epri.h $(INCL)\termcap.h
  336. X  o\priest.o:  $(HACK_H) $(INCL)\mfndpos.h $(INCL)\eshk.h $(INCL)\epri.h
  337. X  o\prisym.o:  $(HACK_H) $(INCL)\lev.h $(INCL)\wseg.h
  338. X  o\random.o:
  339. X***************
  340. X*** 271,277 ****
  341. X  o\u_init.o:  $(HACK_H)
  342. X  o\uhitm.o:  $(HACK_H) $(INCL)\artifact.h
  343. X  o\vault.o:  $(HACK_H) $(INCL)\vault.h
  344. X! o\version.o:  $(HACK_H) $(INCL)\date.h
  345. X  o\weapon.o:  $(HACK_H)
  346. X  o\were.o:  $(HACK_H)
  347. X  o\wield.o:  $(HACK_H)
  348. X--- 270,276 ----
  349. X  o\u_init.o:  $(HACK_H)
  350. X  o\uhitm.o:  $(HACK_H) $(INCL)\artifact.h
  351. X  o\vault.o:  $(HACK_H) $(INCL)\vault.h
  352. X! o\version.o:  $(HACK_H) $(INCL)\date.h $(INCL)\patchlev.h
  353. X  o\weapon.o:  $(HACK_H)
  354. X  o\were.o:  $(HACK_H)
  355. X  o\wield.o:  $(HACK_H)
  356. X*** others/Old/Makefile.st    Sun Jun  3 15:19:46 1990
  357. X--- others/Makefile.st    Thu May 17 07:39:01 1990
  358. X***************
  359. X*** 56,66 ****
  360. X  GAMEFILE = $(GAMEDIR)\$(GAME).ttp
  361. X  
  362. X  # object files for makedefs
  363. X! MAKEOBJS = makedefs.o alloc.o monst.o objects.o panic.o
  364. X  
  365. X  # object files for special levels compiler
  366. X! SPLEVOBJS = lev_comp.o lev_lex.o \
  367. X!     lev_main.o alloc.o monst.o objects.o panic.o
  368. X  
  369. X  # nothing below this line should have to be changed
  370. X  #
  371. X--- 56,65 ----
  372. X  GAMEFILE = $(GAMEDIR)\$(GAME).ttp
  373. X  
  374. X  # object files for makedefs
  375. X! MAKEOBJS = makedefs.o monst.o objects.o
  376. X  
  377. X  # object files for special levels compiler
  378. X! SPLEVOBJS = lev_comp.o lev_lex.o lev_main.o alloc.o monst.o objects.o panic.o
  379. X  
  380. X  # nothing below this line should have to be changed
  381. X  #
  382. X***************
  383. X*** 88,101 ****
  384. X  GLOBAL_H   = $(INCL)\global.h $(INCL)\coord.h $(PCCONF_H)
  385. X  CONFIG_H   = $(INCL)\config.h $(INCL)\tradstdc.h $(GLOBAL_H)
  386. X  TRAP_H       = $(INCL)\trap.h
  387. X! PERMONST_H = $(INCL)\permonst.h $(INCL)\monflag.h
  388. X  YOU_H       = $(INCL)\you.h $(INCL)\attrib.h $(PERMONST_H) $(INCL)\mondata.h \
  389. X!          $(INCL)\monst.h $(INCL)\youprop.h
  390. X  DECL_H       = $(INCL)\decl.h $(INCL)\spell.h $(INCL)\obj.h $(YOU_H) \
  391. X!          $(INCL)\onames.h $(INCL)\pm.h
  392. X  HACK_H       = $(CONFIG_H) $(DECL_H) $(INCL)\monsym.h $(INCL)\mkroom.h \
  393. X           $(INCL)\objclass.h $(INCL)\gold.h $(INCL)\trap.h $(INCL)\flag.h \
  394. X!          $(INCL)\rm.h
  395. X  
  396. X  # The main target
  397. X  $(GAME).ttp: $(HOBJ)
  398. X--- 87,100 ----
  399. X  GLOBAL_H   = $(INCL)\global.h $(INCL)\coord.h $(PCCONF_H)
  400. X  CONFIG_H   = $(INCL)\config.h $(INCL)\tradstdc.h $(GLOBAL_H)
  401. X  TRAP_H       = $(INCL)\trap.h
  402. X! PERMONST_H = $(INCL)\permonst.h $(INCL)\monattk.h $(INCL)\monflag.h
  403. X  YOU_H       = $(INCL)\you.h $(INCL)\attrib.h $(PERMONST_H) $(INCL)\mondata.h \
  404. X!          $(INCL)\monst.h $(INCL)\youprop.h $(INCL)\prop.h $(INCL)\pm.h
  405. X  DECL_H       = $(INCL)\decl.h $(INCL)\spell.h $(INCL)\obj.h $(YOU_H) \
  406. X!          $(INCL)\onames.h $(INCL)\pm.h $(INCL)\color.h
  407. X  HACK_H       = $(CONFIG_H) $(DECL_H) $(INCL)\monsym.h $(INCL)\mkroom.h \
  408. X           $(INCL)\objclass.h $(INCL)\gold.h $(INCL)\trap.h $(INCL)\flag.h \
  409. X!          $(INCL)\rm.h $(INCL)\hack.h
  410. X  
  411. X  # The main target
  412. X  $(GAME).ttp: $(HOBJ)
  413. X***************
  414. X*** 116,122 ****
  415. X  
  416. X  lev_comp.o:  $(HACK_H) $(INCL)\sp_lev.h
  417. X  lev_lex.o:  $(INCL)\lev_comp.h $(HACK_H) $(INCL)\sp_lev.h
  418. X! lev_main.o:  $(HACK_H) $(INCL)\sp_lev.h
  419. X  
  420. X  # If you have yacc or lex programs, and make any changes,
  421. X  # you'll need rules like these. The names of the output
  422. X--- 115,121 ----
  423. X  
  424. X  lev_comp.o:  $(HACK_H) $(INCL)\sp_lev.h
  425. X  lev_lex.o:  $(INCL)\lev_comp.h $(HACK_H) $(INCL)\sp_lev.h
  426. X! lev_main.o:  $(HACK_H)
  427. X  
  428. X  # If you have yacc or lex programs, and make any changes,
  429. X  # you'll need rules like these. The names of the output
  430. X***************
  431. X*** 239,245 ****
  432. X  do_wear.o:  $(HACK_H)
  433. X  dog.o:  $(HACK_H) $(INCL)\edog.h
  434. X  dogmove.o:  $(HACK_H) $(INCL)\mfndpos.h $(INCL)\edog.h
  435. X! dokick.o:  $(HACK_H)
  436. X  dothrow.o:  $(HACK_H)
  437. X  eat.o:  $(HACK_H)
  438. X  end.o:  $(HACK_H) $(INCL)\eshk.h
  439. X--- 238,244 ----
  440. X  do_wear.o:  $(HACK_H)
  441. X  dog.o:  $(HACK_H) $(INCL)\edog.h
  442. X  dogmove.o:  $(HACK_H) $(INCL)\mfndpos.h $(INCL)\edog.h
  443. X! dokick.o:  $(HACK_H) $(INCL)\eshk.h
  444. X  dothrow.o:  $(HACK_H)
  445. X  eat.o:  $(HACK_H)
  446. X  end.o:  $(HACK_H) $(INCL)\eshk.h
  447. X***************
  448. X*** 251,257 ****
  449. X  hack.o:  $(HACK_H)
  450. X  invent.o:  $(HACK_H) $(INCL)\lev.h $(INCL)\wseg.h
  451. X  ioctl.o:  $(HACK_H)
  452. X- lev_comp.o:  $(HACK_H) $(INCL)\sp_lev.h
  453. X  lock.o:  $(HACK_H)
  454. X  makemon.o:  $(HACK_H)
  455. X  mail.o:  $(HACK_H)
  456. X--- 250,255 ----
  457. X***************
  458. X*** 262,268 ****
  459. X  mkmaze.o:  $(HACK_H)
  460. X  mkobj.o:  $(HACK_H)
  461. X  mkroom.o:  $(HACK_H)
  462. X! mon.o:  $(HACK_H) $(INCL)\mfndpos.h $(INCL)\artifact.h
  463. X  mondata.o:  $(HACK_H) $(INCL)\eshk.h $(INCL)\epri.h
  464. X  monmove.o:  $(HACK_H) $(INCL)\mfndpos.h $(INCL)\artifact.h
  465. X  
  466. X--- 260,266 ----
  467. X  mkmaze.o:  $(HACK_H)
  468. X  mkobj.o:  $(HACK_H)
  469. X  mkroom.o:  $(HACK_H)
  470. X! mon.o:  $(HACK_H) $(INCL)\mfndpos.h $(INCL)\wseg.h
  471. X  mondata.o:  $(HACK_H) $(INCL)\eshk.h $(INCL)\epri.h
  472. X  monmove.o:  $(HACK_H) $(INCL)\mfndpos.h $(INCL)\artifact.h
  473. X  
  474. X***************
  475. X*** 273,279 ****
  476. X  # a comp.binaries.atari.st site, or get gnu sed (the port to
  477. X  # the atari GCC is easy).
  478. X  
  479. X! monst.o:  $(CONFIG_H) $(PERMONST_H) $(INCL)\eshk.h $(INCL)\vault.h $(INCL)\epri.h
  480. X      $(CC) $(CFLAGS) -S -o monst1.s -DSPLITMON_1 monst.c
  481. X      $(CC) $(CFLAGS) -S -o monst2.s -DSPLITMON_2 monst.c
  482. X      sed -e s/LC/LD/ -e s/gcc_compiled.:// monst2.s >>monst1.s
  483. X--- 271,277 ----
  484. X  # a comp.binaries.atari.st site, or get gnu sed (the port to
  485. X  # the atari GCC is easy).
  486. X  
  487. X! monst.o:  $(CONFIG_H) $(PERMONST_H) $(INCL)\eshk.h $(INCL)\vault.h $(INCL)\epri.h $(INCL)\color.h
  488. X      $(CC) $(CFLAGS) -S -o monst1.s -DSPLITMON_1 monst.c
  489. X      $(CC) $(CFLAGS) -S -o monst2.s -DSPLITMON_2 monst.c
  490. X      sed -e s/LC/LD/ -e s/gcc_compiled.:// monst2.s >>monst1.s
  491. X***************
  492. X*** 284,290 ****
  493. X  mthrowu.o:  $(HACK_H)
  494. X  music.o:  $(HACK_H)
  495. X  o_init.o:  $(HACK_H) $(INCL)\onames.h
  496. X! objects.o:  $(CONFIG_H) $(INCL)\obj.h $(INCL)\objclass.h $(INCL)\prop.h
  497. X  objnam.o:  $(HACK_H)
  498. X  options.o:  $(HACK_H)
  499. X  pager.o:  $(HACK_H)
  500. X--- 282,288 ----
  501. X  mthrowu.o:  $(HACK_H)
  502. X  music.o:  $(HACK_H)
  503. X  o_init.o:  $(HACK_H) $(INCL)\onames.h
  504. X! objects.o:  $(CONFIG_H) $(INCL)\obj.h $(INCL)\objclass.h $(INCL)\prop.h $(INCL)\color.h
  505. X  objnam.o:  $(HACK_H)
  506. X  options.o:  $(HACK_H)
  507. X  pager.o:  $(HACK_H)
  508. X***************
  509. X*** 293,299 ****
  510. X  polyself.o:  $(HACK_H)
  511. X  potion.o:  $(HACK_H)
  512. X  pray.o:  $(HACK_H)
  513. X! pri.o:  $(HACK_H) $(INCL)\termcap.h
  514. X  priest.o:  $(HACK_H) $(INCL)\mfndpos.h $(INCL)\eshk.h $(INCL)\epri.h
  515. X  prisym.o:  $(HACK_H) $(INCL)\lev.h $(INCL)\wseg.h
  516. X  random.o:
  517. X--- 291,297 ----
  518. X  polyself.o:  $(HACK_H)
  519. X  potion.o:  $(HACK_H)
  520. X  pray.o:  $(HACK_H)
  521. X! pri.o:  $(HACK_H) $(INCL)\epri.h $(INCL)\termcap.h
  522. X  priest.o:  $(HACK_H) $(INCL)\mfndpos.h $(INCL)\eshk.h $(INCL)\epri.h
  523. X  prisym.o:  $(HACK_H) $(INCL)\lev.h $(INCL)\wseg.h
  524. X  random.o:
  525. X***************
  526. X*** 320,326 ****
  527. X  u_init.o:  $(HACK_H)
  528. X  uhitm.o:  $(HACK_H) $(INCL)\artifact.h
  529. X  vault.o:  $(HACK_H) $(INCL)\vault.h
  530. X! version.o:  $(HACK_H) $(INCL)\date.h
  531. X  weapon.o:  $(HACK_H)
  532. X  were.o:  $(HACK_H)
  533. X  wield.o:  $(HACK_H)
  534. X--- 318,324 ----
  535. X  u_init.o:  $(HACK_H)
  536. X  uhitm.o:  $(HACK_H) $(INCL)\artifact.h
  537. X  vault.o:  $(HACK_H) $(INCL)\vault.h
  538. X! version.o:  $(HACK_H) $(INCL)\date.h $(INCL)\patchlevel.h
  539. X  weapon.o:  $(HACK_H)
  540. X  were.o:  $(HACK_H)
  541. X  wield.o:  $(HACK_H)
  542. X*** others/Old/Makefile.tcc    Sun Jun  3 15:20:08 1990
  543. X--- others/Makefile.tcc    Wed May 16 21:36:45 1990
  544. X***************
  545. X*** 262,279 ****
  546. X  # header dependencies
  547. X  
  548. X  PCCONF_H   = $(INCL)\$(TARG)conf.h  $(INCL)\msdos.h    $(INCL)\system.h
  549. X! GLOBAL_H   = $(INCL)\global.h        $(INCL)\coord.h    $(PCCONF_H)
  550. X! CONFIG_H   = $(INCL)\config.h        $(INCL)\tradstdc.h    $(GLOBAL_H)
  551. X  TRAP_H       = $(INCL)\trap.h
  552. X! PERMONST_H = $(INCL)\permonst.h     $(INCL)\monflag.h
  553. X! YOU_H       = $(INCL)\you.h        $(INCL)\attrib.h    $(PERMONST_H) \
  554. X!          $(INCL)\mondata.h        $(INCL)\monst.h    $(INCL)\youprop.h
  555. X! DECL_H       = $(INCL)\spell.h        $(INCL)\obj.h    $(YOU_H) \
  556. X!          $(INCL)\onames.h        $(INCL)\pm.h
  557. X! HACK_H       = $(CONFIG_H)        $(DECL_H)        $(INCL)\monsym.h \
  558. X!          $(INCL)\mkroom.h        $(INCL)\objclass.h    $(INCL)\gold.h \
  559. X!          $(INCL)\trap.h        $(INCL)\flag.h    $(INCL)\rm.h \
  560. X!          $(OVERLAY_H)
  561. X  
  562. X  ## extern.h, and decl.h contain only external declarations.
  563. X  ##
  564. X--- 262,281 ----
  565. X  # header dependencies
  566. X  
  567. X  PCCONF_H   = $(INCL)\$(TARG)conf.h  $(INCL)\msdos.h    $(INCL)\system.h
  568. X! GLOBAL_H   = $(PCCONF_H)        $(INCL)\global.h    $(INCL)\coord.h
  569. X! CONFIG_H   = $(GLOBAL_H)        $(INCL)\config.h    $(INCL)\tradstdc.h
  570. X  TRAP_H       = $(INCL)\trap.h
  571. X! PERMONST_H = $(INCL)\permonst.h     $(INCL)\monattk.h    $(INCL)\monflag.h
  572. X! YOUPROP_H  = $(PERMONST_H)        $(INCL)\prop.h    $(INCL)\mondata.h \
  573. X!          $(INCL)\pm.h        $(INCL)\youprop.h
  574. X! YOU_H       = $(YOUPROP_H)        $(INCL)\attrib.h    $(INCL)\monst.h    \
  575. X!          $(INCL)\you.h
  576. X! DECL_H       = $(YOU_H)            $(INCL)\decl.h    $(INCL)\obj.h \
  577. X!          $(INCL)\onames.h        $(INCL)\spell.h    $(INCL)\color.h
  578. X! HACK_H       = $(CONFIG_H)        $(DECL_H)        $(INCL)\trap.h \
  579. X!          $(INCL)\flag.h        $(INCL)\gold.h    $(INCL)\mkroom.h \
  580. X!          $(INCL)\monsym.h        $(INCL)\objclass.h    $(INCL)\rm.h \
  581. X!          $(INCL)\hack.h        $(OVERLAY_H)
  582. X  
  583. X  ## extern.h, and decl.h contain only external declarations.
  584. X  ##
  585. X***************
  586. X*** 447,453 ****
  587. X  $(OBJ)\do_wear.obj:    $(HACK_H)
  588. X  $(OBJ)\dog.obj:     $(HACK_H)   $(INCL)\edog.h
  589. X  $(OBJ)\dogmove.obj:    $(HACK_H)   $(INCL)\mfndpos.h     $(INCL)\edog.h
  590. X! $(OBJ)\dokick.obj:    $(HACK_H)
  591. X  $(OBJ)\dothrow.obj:    $(HACK_H)
  592. X  $(OBJ)\eat.obj:     $(HACK_H)
  593. X  $(OBJ)\end.obj:     $(HACK_H)   $(INCL)\eshk.h
  594. X--- 449,455 ----
  595. X  $(OBJ)\do_wear.obj:    $(HACK_H)
  596. X  $(OBJ)\dog.obj:     $(HACK_H)   $(INCL)\edog.h
  597. X  $(OBJ)\dogmove.obj:    $(HACK_H)   $(INCL)\mfndpos.h     $(INCL)\edog.h
  598. X! $(OBJ)\dokick.obj:    $(HACK_H)   $(INCL)\eshk.h
  599. X  $(OBJ)\dothrow.obj:    $(HACK_H)
  600. X  $(OBJ)\eat.obj:     $(HACK_H)
  601. X  $(OBJ)\end.obj:     $(HACK_H)   $(INCL)\eshk.h
  602. X***************
  603. X*** 461,467 ****
  604. X  $(OBJ)\ioctl.obj:    $(HACK_H)
  605. X  $(OBJ)\lev_comp.obj:    $(HACK_H)   $(INCL)\sp_lev.h
  606. X  $(OBJ)\lev_lex.obj:    $(HACK_H)   $(INCL)\sp_lev.h     $(INCL)\lev_comp.h
  607. X! $(OBJ)\lev_main.obj:    $(HACK_H)   $(INCL)\sp_lev.h
  608. X  $(OBJ)\lock.obj:    $(HACK_H)
  609. X  $(OBJ)\makemon.obj:    $(HACK_H)
  610. X  $(OBJ)\mail.obj:    $(HACK_H)
  611. X--- 463,469 ----
  612. X  $(OBJ)\ioctl.obj:    $(HACK_H)
  613. X  $(OBJ)\lev_comp.obj:    $(HACK_H)   $(INCL)\sp_lev.h
  614. X  $(OBJ)\lev_lex.obj:    $(HACK_H)   $(INCL)\sp_lev.h     $(INCL)\lev_comp.h
  615. X! $(OBJ)\lev_main.obj:    $(HACK_H)
  616. X  $(OBJ)\lock.obj:    $(HACK_H)
  617. X  $(OBJ)\makemon.obj:    $(HACK_H)
  618. X  $(OBJ)\mail.obj:    $(HACK_H)
  619. X***************
  620. X*** 475,490 ****
  621. X  $(OBJ)\mon.obj:     $(HACK_H)   $(INCL)\mfndpos.h     $(INCL)\wseg.h
  622. X  $(OBJ)\mondata.obj:    $(HACK_H)   $(INCL)\eshk.h     $(INCL)\epri.h
  623. X  $(OBJ)\monmove.obj:    $(HACK_H)   $(INCL)\mfndpos.h     $(INCL)\artifact.h
  624. X! $(OBJ)\monst.obj:    $(CONFIG_H) $(PERMONST_H)     $(INCL)\eshk.h \
  625. X!                     $(INCL)\vault.h     $(INCL)\epri.h
  626. X  $(OBJ)\msdos.obj:    $(HACK_H) msdos.c
  627. X      $(CC) $(CFLAGS) -A- $*.c
  628. X  # set ANSI only off -- many MS-DOS specific things.
  629. X  $(OBJ)\mthrowu.obj:    $(HACK_H)
  630. X  $(OBJ)\music.obj:    $(HACK_H)
  631. X! $(OBJ)\o_init.obj:    $(HACK_H)   $(INCL)\onames.h
  632. X  $(OBJ)\objects.obj:    $(CONFIG_H) $(INCL)\obj.h     $(INCL)\objclass.h \
  633. X!                     $(INCL)\prop.h
  634. X  $(OBJ)\objnam.obj:    $(HACK_H)
  635. X  $(OBJ)\options.obj:    $(HACK_H)
  636. X  $(OBJ)\pager.obj:    $(HACK_H)
  637. X--- 477,493 ----
  638. X  $(OBJ)\mon.obj:     $(HACK_H)   $(INCL)\mfndpos.h     $(INCL)\wseg.h
  639. X  $(OBJ)\mondata.obj:    $(HACK_H)   $(INCL)\eshk.h     $(INCL)\epri.h
  640. X  $(OBJ)\monmove.obj:    $(HACK_H)   $(INCL)\mfndpos.h     $(INCL)\artifact.h
  641. X! $(OBJ)\monst.obj:    $(CONFIG_H) $(PERMONST_H)     $(INCL)\monsym.h \
  642. X!                     $(INCL)\eshk.h     $(INCL)\vault.h \
  643. X!                     $(INCL)\epri.h     $(INCL)\color.h
  644. X  $(OBJ)\msdos.obj:    $(HACK_H) msdos.c
  645. X      $(CC) $(CFLAGS) -A- $*.c
  646. X  # set ANSI only off -- many MS-DOS specific things.
  647. X  $(OBJ)\mthrowu.obj:    $(HACK_H)
  648. X  $(OBJ)\music.obj:    $(HACK_H)
  649. X! $(OBJ)\o_init.obj:    $(HACK_H)
  650. X  $(OBJ)\objects.obj:    $(CONFIG_H) $(INCL)\obj.h     $(INCL)\objclass.h \
  651. X!                     $(INCL)\prop.h     $(INCL)\color.h
  652. X  $(OBJ)\objnam.obj:    $(HACK_H)
  653. X  $(OBJ)\options.obj:    $(HACK_H)
  654. X  $(OBJ)\pager.obj:    $(HACK_H)
  655. X*** others/Old/NetHack.cnf    Sun Jun  3 15:20:33 1990
  656. X--- others/NetHack.cnf    Wed May 23 17:55:11 1990
  657. X***************
  658. X*** 12,20 ****
  659. X  # These two options should be used for most setups.  If you're machine isn't
  660. X  # very IBM-compatible, and NetHack doesn't work, try commenting out this line.
  661. X  #
  662. X! OPTIONS=rawio,IBM_BIOS
  663. X  # DEC Rainbows will hang if rawio is set, so they should instead use:
  664. X! #OPTIONS=IBM_BIOS,DEC_Rainbow
  665. X  #
  666. X  #
  667. X  # Some options to set personal preferences.  Uncomment and change these to
  668. X--- 12,20 ----
  669. X  # These two options should be used for most setups.  If you're machine isn't
  670. X  # very IBM-compatible, and NetHack doesn't work, try commenting out this line.
  671. X  #
  672. X! OPTIONS=rawio,IBM_BIOS,IBMgraphics
  673. X  # DEC Rainbows will hang if rawio is set, so they should instead use:
  674. X! #OPTIONS=IBM_BIOS,DECgraphics
  675. X  #
  676. X  #
  677. X  # Some options to set personal preferences.  Uncomment and change these to
  678. X***************
  679. X*** 68,77 ****
  680. X  # If you specify less that 35 ASCII values, the remaining characters will be
  681. X  # set to their respective defaults.
  682. X  #
  683. X  #
  684. X  # An example using the IBM graphics character set:
  685. X  #       ' '  |   -   .   .   `   '   -   -   -   -   -   |   -   \   /   .   -   |   +   .   #   <   >   ^   "   }   {   #   \   _   <   >   #   #
  686. X! GRAPHICS = 032 179 196 218 191 192 217 197 193 194 180 195 179 196 092 047 249 239 239 254 249 177 060 062 094 157 247 244 035 190 220 060 062 186 205
  687. X  # An alternative:
  688. X  #GRAPHICS= 032 186 205 201 187 200 188 206 202 203 185 204 179 196 092 047 249 239 239 254 249 177 060 062 094 034 247 244 035 092 095 060 062 179 196
  689. X  #
  690. X--- 68,80 ----
  691. X  # If you specify less that 35 ASCII values, the remaining characters will be
  692. X  # set to their respective defaults.
  693. X  #
  694. X+ # If you merely set the IBMgraphics option as above, NetHack will use IBM
  695. X+ # extended ASCII for dungeon characters.  If you don't like the selections,
  696. X+ # you can make up your own via the graphics option (and not set IBMgraphics).
  697. X  #
  698. X  # An example using the IBM graphics character set:
  699. X  #       ' '  |   -   .   .   `   '   -   -   -   -   -   |   -   \   /   .   -   |   +   .   #   <   >   ^   "   }   {   #   \   _   <   >   #   #
  700. X! #GRAPHICS = 032 179 196 218 191 192 217 197 193 194 180 195 179 196 092 047 249 239 239 254 249 177 060 062 094 157 247 244 035 190 220 060 062 186 205
  701. X  # An alternative:
  702. X  #GRAPHICS= 032 186 205 201 187 200 188 206 202 203 185 204 179 196 092 047 249 239 239 254 249 177 060 062 094 034 247 244 035 092 095 060 062 179 196
  703. X  #
  704. X***************
  705. X*** 78,87 ****
  706. X  #
  707. X  # Using the DEC Rainbow/ANSI line-drawing character set:
  708. X  #
  709. X! # You must also set the DECRainbow option, above.  NetHack will then switch
  710. X! # into the line drawing character set for any values over 128 below.  Just
  711. X! # add 128 to the value of any line-drawing character you want to use.  You
  712. X! # can use characters from both sets this way.  These are also the characters
  713. X! # to use for the ANSI ruling character set '0'.
  714. X  #
  715. X  #GRAPHICS= 032 248 241 236 235 237 234 238 246 247 245 244 248 241 092 047 254 241 248 043 254 225
  716. X--- 81,91 ----
  717. X  #
  718. X  # Using the DEC Rainbow/ANSI line-drawing character set:
  719. X  #
  720. X! # If you have compiled with TERMLIB, merely set the DECgraphics option as
  721. X! # above.  NetHack will then switch into the VTxxx line-drawing character set
  722. X! # (aka ANSI ruling character set '0') for dungeon characters.  If you don't
  723. X! # like the selections, you can make up your own via the graphics option,
  724. X! # adding 128 to the value of any line-drawing character you want to use.
  725. X! # (In such a case, do not set DECgraphics.)
  726. X  #
  727. X  #GRAPHICS= 032 248 241 236 235 237 234 238 246 247 245 244 248 241 092 047 254 241 248 043 254 225
  728. X*** others/Old/lev_lex.c    Sun Jun  3 15:21:46 1990
  729. X--- others/lev_lex.c    Sun Jun  3 15:16:49 1990
  730. X***************
  731. X*** 167,172 ****
  732. X--- 167,173 ----
  733. X  
  734. X  #ifdef MSDOS
  735. X  #undef exit
  736. X+ extern void FDECL(exit, (int));
  737. X  #endif
  738. X  
  739. X  /* this doesn't always get put in lev_comp.h
  740. X***************
  741. X*** 196,202 ****
  742. X  #define YYLMAX    2048
  743. X  
  744. X  #define MAPC 1
  745. X! # line 61 "lev_comp.l"
  746. X  #define YY_END_OF_BUFFER 57
  747. X  typedef int yy_state_type;
  748. X  static const short int yy_accept[274] =
  749. X--- 197,203 ----
  750. X  #define YYLMAX    2048
  751. X  
  752. X  #define MAPC 1
  753. X! # line 62 "lev_comp.l"
  754. X  #define YY_END_OF_BUFFER 57
  755. X  typedef int yy_state_type;
  756. X  static const short int yy_accept[274] =
  757. X***************
  758. X*** 584,594 ****
  759. X          continue; /* go to "YY_DO_BEFORE_ACTION" */
  760. X  
  761. X  case 1:
  762. X! # line 62 "lev_comp.l"
  763. X  { line_number++; yymore(); }    
  764. X      YY_BREAK
  765. X  case 2:
  766. X! # line 63 "lev_comp.l"
  767. X  { BEGIN 0;
  768. X            line_number++;
  769. X            yytext[yyleng-7] = 0; /* Discard \nENDMAP */
  770. X--- 585,595 ----
  771. X          continue; /* go to "YY_DO_BEFORE_ACTION" */
  772. X  
  773. X  case 1:
  774. X! # line 63 "lev_comp.l"
  775. X  { line_number++; yymore(); }    
  776. X      YY_BREAK
  777. X  case 2:
  778. X! # line 64 "lev_comp.l"
  779. X  { BEGIN 0;
  780. X            line_number++;
  781. X            yytext[yyleng-7] = 0; /* Discard \nENDMAP */
  782. X***************
  783. X*** 598,796 ****
  784. X          }
  785. X      YY_BREAK
  786. X  case 3:
  787. X! # line 70 "lev_comp.l"
  788. X  { line_number++; }
  789. X      YY_BREAK
  790. X  case 4:
  791. X! # line 71 "lev_comp.l"
  792. X  return MAZE_ID;
  793. X      YY_BREAK
  794. X  case 5:
  795. X! # line 72 "lev_comp.l"
  796. X  return LEVEL_ID;
  797. X      YY_BREAK
  798. X  case 6:
  799. X! # line 73 "lev_comp.l"
  800. X  return GEOMETRY_ID;
  801. X      YY_BREAK
  802. X  case 7:
  803. X! # line 74 "lev_comp.l"
  804. X  { BEGIN MAPC; line_number++; }
  805. X      YY_BREAK
  806. X  case 8:
  807. X! # line 75 "lev_comp.l"
  808. X  return OBJECT_ID;
  809. X      YY_BREAK
  810. X  case 9:
  811. X! # line 76 "lev_comp.l"
  812. X  return MONSTER_ID;
  813. X      YY_BREAK
  814. X  case 10:
  815. X! # line 77 "lev_comp.l"
  816. X  return TRAP_ID;
  817. X      YY_BREAK
  818. X  case 11:
  819. X! # line 78 "lev_comp.l"
  820. X  return DOOR_ID;
  821. X      YY_BREAK
  822. X  case 12:
  823. X! # line 79 "lev_comp.l"
  824. X  return DRAWBRIDGE_ID;
  825. X      YY_BREAK
  826. X  case 13:
  827. X! # line 80 "lev_comp.l"
  828. X  return MAZEWALK_ID;
  829. X      YY_BREAK
  830. X  case 14:
  831. X! # line 81 "lev_comp.l"
  832. X  return REGION_ID;
  833. X      YY_BREAK
  834. X  case 15:
  835. X! # line 82 "lev_comp.l"
  836. X  return RANDOM_OBJECTS_ID;
  837. X      YY_BREAK
  838. X  case 16:
  839. X! # line 83 "lev_comp.l"
  840. X  return RANDOM_MONSTERS_ID;
  841. X      YY_BREAK
  842. X  case 17:
  843. X! # line 84 "lev_comp.l"
  844. X  return RANDOM_PLACES_ID;
  845. X      YY_BREAK
  846. X  case 18:
  847. X! # line 85 "lev_comp.l"
  848. X  return ALTAR_ID;
  849. X      YY_BREAK
  850. X  case 19:
  851. X! # line 86 "lev_comp.l"
  852. X  return LADDER_ID;
  853. X      YY_BREAK
  854. X  case 20:
  855. X! # line 87 "lev_comp.l"
  856. X  return NON_DIGGABLE_ID;
  857. X      YY_BREAK
  858. X  case 21:
  859. X! # line 88 "lev_comp.l"
  860. X  return ROOM_ID;
  861. X      YY_BREAK
  862. X  case 22:
  863. X! # line 89 "lev_comp.l"
  864. X  { yylval.i=D_ISOPEN; return DOOR_STATE; }
  865. X      YY_BREAK
  866. X  case 23:
  867. X! # line 90 "lev_comp.l"
  868. X  { yylval.i=D_CLOSED; return DOOR_STATE; }
  869. X      YY_BREAK
  870. X  case 24:
  871. X! # line 91 "lev_comp.l"
  872. X  { yylval.i=D_LOCKED; return DOOR_STATE; }
  873. X      YY_BREAK
  874. X  case 25:
  875. X! # line 92 "lev_comp.l"
  876. X  { yylval.i=D_NODOOR; return DOOR_STATE; }
  877. X      YY_BREAK
  878. X  case 26:
  879. X! # line 93 "lev_comp.l"
  880. X  { yylval.i=D_BROKEN; return DOOR_STATE; }
  881. X      YY_BREAK
  882. X  case 27:
  883. X! # line 94 "lev_comp.l"
  884. X  { yylval.i=W_NORTH; return DIRECTION; }
  885. X      YY_BREAK
  886. X  case 28:
  887. X! # line 95 "lev_comp.l"
  888. X  { yylval.i=W_EAST; return DIRECTION; }
  889. X      YY_BREAK
  890. X  case 29:
  891. X! # line 96 "lev_comp.l"
  892. X  { yylval.i=W_SOUTH; return DIRECTION; }
  893. X      YY_BREAK
  894. X  case 30:
  895. X! # line 97 "lev_comp.l"
  896. X  { yylval.i=W_WEST; return DIRECTION; }
  897. X      YY_BREAK
  898. X  case 31:
  899. X! # line 98 "lev_comp.l"
  900. X  { yylval.i = -1; return RANDOM_TYPE; }
  901. X      YY_BREAK
  902. X  case 32:
  903. X! # line 99 "lev_comp.l"
  904. X  return O_REGISTER;
  905. X      YY_BREAK
  906. X  case 33:
  907. X! # line 100 "lev_comp.l"
  908. X  return M_REGISTER;
  909. X      YY_BREAK
  910. X  case 34:
  911. X! # line 101 "lev_comp.l"
  912. X  return P_REGISTER;
  913. X      YY_BREAK
  914. X  case 35:
  915. X! # line 102 "lev_comp.l"
  916. X  return A_REGISTER;
  917. X      YY_BREAK
  918. X  case 36:
  919. X! # line 103 "lev_comp.l"
  920. X  { yylval.i=1; return LEFT_OR_RIGHT; }
  921. X      YY_BREAK
  922. X  case 37:
  923. X! # line 104 "lev_comp.l"
  924. X  { yylval.i=3; return LEFT_OR_RIGHT; }
  925. X      YY_BREAK
  926. X  case 38:
  927. X! # line 105 "lev_comp.l"
  928. X  { yylval.i=2; return CENTER; }
  929. X      YY_BREAK
  930. X  case 39:
  931. X! # line 106 "lev_comp.l"
  932. X  { yylval.i=1; return TOP_OR_BOT; }
  933. X      YY_BREAK
  934. X  case 40:
  935. X! # line 107 "lev_comp.l"
  936. X  { yylval.i=3; return TOP_OR_BOT; }
  937. X      YY_BREAK
  938. X  case 41:
  939. X! # line 108 "lev_comp.l"
  940. X  { yylval.i=1; return LIGHT_STATE; }
  941. X      YY_BREAK
  942. X  case 42:
  943. X! # line 109 "lev_comp.l"
  944. X  { yylval.i=0; return LIGHT_STATE; }
  945. X      YY_BREAK
  946. X  case 43:
  947. X! # line 110 "lev_comp.l"
  948. X  { yylval.i=A_LAW; return ALIGNMENT; }
  949. X      YY_BREAK
  950. X  case 44:
  951. X! # line 111 "lev_comp.l"
  952. X  { yylval.i=A_NEUTRAL; return ALIGNMENT; }
  953. X      YY_BREAK
  954. X  case 45:
  955. X! # line 112 "lev_comp.l"
  956. X  { yylval.i=A_CHAOS; return ALIGNMENT; }
  957. X      YY_BREAK
  958. X  case 46:
  959. X! # line 113 "lev_comp.l"
  960. X  { yylval.i=1; return ALTAR_TYPE; }
  961. X      YY_BREAK
  962. X  case 47:
  963. X! # line 114 "lev_comp.l"
  964. X  { yylval.i=0; return ALTAR_TYPE; }
  965. X      YY_BREAK
  966. X  case 48:
  967. X! # line 115 "lev_comp.l"
  968. X  { yylval.i=1; return UP_OR_DOWN; }
  969. X      YY_BREAK
  970. X  case 49:
  971. X! # line 116 "lev_comp.l"
  972. X  { yylval.i=0; return UP_OR_DOWN; }
  973. X      YY_BREAK
  974. X  case 50:
  975. X! # line 117 "lev_comp.l"
  976. X  { yylval.i=atoi(yytext); return INTEGER; }
  977. X      YY_BREAK
  978. X  case 51:
  979. X! # line 118 "lev_comp.l"
  980. X  { yytext[yyleng-1] = 0; /* Discard the trailing \" */
  981. X            yylval.map = (char *) alloc(strlen(yytext+1)+1);
  982. X            strcpy(yylval.map, yytext+1); /* Discard the first \" */
  983. X--- 599,797 ----
  984. X          }
  985. X      YY_BREAK
  986. X  case 3:
  987. X! # line 71 "lev_comp.l"
  988. X  { line_number++; }
  989. X      YY_BREAK
  990. X  case 4:
  991. X! # line 72 "lev_comp.l"
  992. X  return MAZE_ID;
  993. X      YY_BREAK
  994. X  case 5:
  995. X! # line 73 "lev_comp.l"
  996. X  return LEVEL_ID;
  997. X      YY_BREAK
  998. X  case 6:
  999. X! # line 74 "lev_comp.l"
  1000. X  return GEOMETRY_ID;
  1001. X      YY_BREAK
  1002. X  case 7:
  1003. X! # line 75 "lev_comp.l"
  1004. X  { BEGIN MAPC; line_number++; }
  1005. X      YY_BREAK
  1006. X  case 8:
  1007. X! # line 76 "lev_comp.l"
  1008. X  return OBJECT_ID;
  1009. X      YY_BREAK
  1010. X  case 9:
  1011. X! # line 77 "lev_comp.l"
  1012. X  return MONSTER_ID;
  1013. X      YY_BREAK
  1014. X  case 10:
  1015. X! # line 78 "lev_comp.l"
  1016. X  return TRAP_ID;
  1017. X      YY_BREAK
  1018. X  case 11:
  1019. X! # line 79 "lev_comp.l"
  1020. X  return DOOR_ID;
  1021. X      YY_BREAK
  1022. X  case 12:
  1023. X! # line 80 "lev_comp.l"
  1024. X  return DRAWBRIDGE_ID;
  1025. X      YY_BREAK
  1026. X  case 13:
  1027. X! # line 81 "lev_comp.l"
  1028. X  return MAZEWALK_ID;
  1029. X      YY_BREAK
  1030. X  case 14:
  1031. X! # line 82 "lev_comp.l"
  1032. X  return REGION_ID;
  1033. X      YY_BREAK
  1034. X  case 15:
  1035. X! # line 83 "lev_comp.l"
  1036. X  return RANDOM_OBJECTS_ID;
  1037. X      YY_BREAK
  1038. X  case 16:
  1039. X! # line 84 "lev_comp.l"
  1040. X  return RANDOM_MONSTERS_ID;
  1041. X      YY_BREAK
  1042. X  case 17:
  1043. X! # line 85 "lev_comp.l"
  1044. X  return RANDOM_PLACES_ID;
  1045. X      YY_BREAK
  1046. X  case 18:
  1047. X! # line 86 "lev_comp.l"
  1048. X  return ALTAR_ID;
  1049. X      YY_BREAK
  1050. X  case 19:
  1051. X! # line 87 "lev_comp.l"
  1052. X  return LADDER_ID;
  1053. X      YY_BREAK
  1054. X  case 20:
  1055. X! # line 88 "lev_comp.l"
  1056. X  return NON_DIGGABLE_ID;
  1057. X      YY_BREAK
  1058. X  case 21:
  1059. X! # line 89 "lev_comp.l"
  1060. X  return ROOM_ID;
  1061. X      YY_BREAK
  1062. X  case 22:
  1063. X! # line 90 "lev_comp.l"
  1064. X  { yylval.i=D_ISOPEN; return DOOR_STATE; }
  1065. X      YY_BREAK
  1066. X  case 23:
  1067. X! # line 91 "lev_comp.l"
  1068. X  { yylval.i=D_CLOSED; return DOOR_STATE; }
  1069. X      YY_BREAK
  1070. X  case 24:
  1071. X! # line 92 "lev_comp.l"
  1072. X  { yylval.i=D_LOCKED; return DOOR_STATE; }
  1073. X      YY_BREAK
  1074. X  case 25:
  1075. X! # line 93 "lev_comp.l"
  1076. X  { yylval.i=D_NODOOR; return DOOR_STATE; }
  1077. X      YY_BREAK
  1078. X  case 26:
  1079. X! # line 94 "lev_comp.l"
  1080. X  { yylval.i=D_BROKEN; return DOOR_STATE; }
  1081. X      YY_BREAK
  1082. X  case 27:
  1083. X! # line 95 "lev_comp.l"
  1084. X  { yylval.i=W_NORTH; return DIRECTION; }
  1085. X      YY_BREAK
  1086. X  case 28:
  1087. X! # line 96 "lev_comp.l"
  1088. X  { yylval.i=W_EAST; return DIRECTION; }
  1089. X      YY_BREAK
  1090. X  case 29:
  1091. X! # line 97 "lev_comp.l"
  1092. X  { yylval.i=W_SOUTH; return DIRECTION; }
  1093. X      YY_BREAK
  1094. X  case 30:
  1095. X! # line 98 "lev_comp.l"
  1096. X  { yylval.i=W_WEST; return DIRECTION; }
  1097. X      YY_BREAK
  1098. X  case 31:
  1099. X! # line 99 "lev_comp.l"
  1100. X  { yylval.i = -1; return RANDOM_TYPE; }
  1101. X      YY_BREAK
  1102. X  case 32:
  1103. X! # line 100 "lev_comp.l"
  1104. X  return O_REGISTER;
  1105. X      YY_BREAK
  1106. X  case 33:
  1107. X! # line 101 "lev_comp.l"
  1108. X  return M_REGISTER;
  1109. X      YY_BREAK
  1110. X  case 34:
  1111. X! # line 102 "lev_comp.l"
  1112. X  return P_REGISTER;
  1113. X      YY_BREAK
  1114. X  case 35:
  1115. X! # line 103 "lev_comp.l"
  1116. X  return A_REGISTER;
  1117. X      YY_BREAK
  1118. X  case 36:
  1119. X! # line 104 "lev_comp.l"
  1120. X  { yylval.i=1; return LEFT_OR_RIGHT; }
  1121. X      YY_BREAK
  1122. X  case 37:
  1123. X! # line 105 "lev_comp.l"
  1124. X  { yylval.i=3; return LEFT_OR_RIGHT; }
  1125. X      YY_BREAK
  1126. X  case 38:
  1127. X! # line 106 "lev_comp.l"
  1128. X  { yylval.i=2; return CENTER; }
  1129. X      YY_BREAK
  1130. X  case 39:
  1131. X! # line 107 "lev_comp.l"
  1132. X  { yylval.i=1; return TOP_OR_BOT; }
  1133. X      YY_BREAK
  1134. X  case 40:
  1135. X! # line 108 "lev_comp.l"
  1136. X  { yylval.i=3; return TOP_OR_BOT; }
  1137. X      YY_BREAK
  1138. X  case 41:
  1139. X! # line 109 "lev_comp.l"
  1140. X  { yylval.i=1; return LIGHT_STATE; }
  1141. X      YY_BREAK
  1142. X  case 42:
  1143. X! # line 110 "lev_comp.l"
  1144. X  { yylval.i=0; return LIGHT_STATE; }
  1145. X      YY_BREAK
  1146. X  case 43:
  1147. X! # line 111 "lev_comp.l"
  1148. X  { yylval.i=A_LAW; return ALIGNMENT; }
  1149. X      YY_BREAK
  1150. X  case 44:
  1151. X! # line 112 "lev_comp.l"
  1152. X  { yylval.i=A_NEUTRAL; return ALIGNMENT; }
  1153. X      YY_BREAK
  1154. X  case 45:
  1155. X! # line 113 "lev_comp.l"
  1156. X  { yylval.i=A_CHAOS; return ALIGNMENT; }
  1157. X      YY_BREAK
  1158. X  case 46:
  1159. X! # line 114 "lev_comp.l"
  1160. X  { yylval.i=1; return ALTAR_TYPE; }
  1161. X      YY_BREAK
  1162. X  case 47:
  1163. X! # line 115 "lev_comp.l"
  1164. X  { yylval.i=0; return ALTAR_TYPE; }
  1165. X      YY_BREAK
  1166. X  case 48:
  1167. X! # line 116 "lev_comp.l"
  1168. X  { yylval.i=1; return UP_OR_DOWN; }
  1169. X      YY_BREAK
  1170. X  case 49:
  1171. X! # line 117 "lev_comp.l"
  1172. X  { yylval.i=0; return UP_OR_DOWN; }
  1173. X      YY_BREAK
  1174. X  case 50:
  1175. X! # line 118 "lev_comp.l"
  1176. X  { yylval.i=atoi(yytext); return INTEGER; }
  1177. X      YY_BREAK
  1178. X  case 51:
  1179. X! # line 119 "lev_comp.l"
  1180. X  { yytext[yyleng-1] = 0; /* Discard the trailing \" */
  1181. X            yylval.map = (char *) alloc(strlen(yytext+1)+1);
  1182. X            strcpy(yylval.map, yytext+1); /* Discard the first \" */
  1183. X***************
  1184. X*** 797,819 ****
  1185. X            return STRING; }
  1186. X      YY_BREAK
  1187. X  case 52:
  1188. X! # line 122 "lev_comp.l"
  1189. X  { line_number++; }
  1190. X      YY_BREAK
  1191. X  case 53:
  1192. X! # line 123 "lev_comp.l"
  1193. X  ;
  1194. X      YY_BREAK
  1195. X  case 54:
  1196. X! # line 124 "lev_comp.l"
  1197. X  { yylval.i = yytext[1]; return CHAR; }
  1198. X      YY_BREAK
  1199. X  case 55:
  1200. X! # line 125 "lev_comp.l"
  1201. X  { return yytext[0]; }
  1202. X      YY_BREAK
  1203. X  case 56:
  1204. X! # line 126 "lev_comp.l"
  1205. X  ECHO;
  1206. X      YY_BREAK
  1207. X  case YY_STATE_EOF(INITIAL):
  1208. X--- 798,820 ----
  1209. X            return STRING; }
  1210. X      YY_BREAK
  1211. X  case 52:
  1212. X! # line 123 "lev_comp.l"
  1213. X  { line_number++; }
  1214. X      YY_BREAK
  1215. X  case 53:
  1216. X! # line 124 "lev_comp.l"
  1217. X  ;
  1218. X      YY_BREAK
  1219. X  case 54:
  1220. X! # line 125 "lev_comp.l"
  1221. X  { yylval.i = yytext[1]; return CHAR; }
  1222. X      YY_BREAK
  1223. X  case 55:
  1224. X! # line 126 "lev_comp.l"
  1225. X  { return yytext[0]; }
  1226. X      YY_BREAK
  1227. X  case 56:
  1228. X! # line 127 "lev_comp.l"
  1229. X  ECHO;
  1230. X      YY_BREAK
  1231. X  case YY_STATE_EOF(INITIAL):
  1232. X***************
  1233. X*** 1104,1110 ****
  1234. X      yyin = input_file;
  1235. X      yy_init = 1;
  1236. X      }
  1237. X! # line 126 "lev_comp.l"
  1238. X  
  1239. X  #ifdef    AMIGA
  1240. X  long *alloc(n)
  1241. X--- 1105,1111 ----
  1242. X      yyin = input_file;
  1243. X      yy_init = 1;
  1244. X      }
  1245. X! # line 127 "lev_comp.l"
  1246. X  
  1247. X  #ifdef    AMIGA
  1248. X  long *alloc(n)
  1249. X*** others/Old/msdos.c    Sun Jun  3 15:22:46 1990
  1250. X--- others/msdos.c    Sun Jun  3 14:59:15 1990
  1251. X***************
  1252. X*** 27,43 ****
  1253. X  #include <fcntl.h>
  1254. X  #include <process.h>
  1255. X  
  1256. X! static char DOSgetch();
  1257. X  # ifdef DGK
  1258. X! static char BIOSgetch();
  1259. X  # endif
  1260. X  # ifdef TOS
  1261. X! static void init_aline();
  1262. X  char *_a_line;            /* for Line A variables */
  1263. X  # else
  1264. X! static unsigned int ioctl();
  1265. X  # endif
  1266. X  
  1267. X  void
  1268. X  flushout()
  1269. X  {
  1270. X--- 27,54 ----
  1271. X  #include <fcntl.h>
  1272. X  #include <process.h>
  1273. X  
  1274. X! static char NDECL(DOSgetch);
  1275. X  # ifdef DGK
  1276. X! static char NDECL(BIOSgetch);
  1277. X  # endif
  1278. X  # ifdef TOS
  1279. X! static void NDECL(init_aline);
  1280. X  char *_a_line;            /* for Line A variables */
  1281. X  # else
  1282. X! static unsigned int FDECL(ioctl, (int,int,unsigned));
  1283. X! static boolean NDECL(comspec_exists);
  1284. X  # endif
  1285. X  
  1286. X+ static int FDECL(findfirst, (char *));
  1287. X+ static int NDECL(findnext);
  1288. X+ static boolean NDECL(record_exists);
  1289. X+ # if !defined(TOS) && !defined(__TURBOC__) && !defined(OS2)
  1290. X+ static char NDECL(switchar);
  1291. X+ # endif
  1292. X+ # ifndef OS2
  1293. X+ static char * NDECL(getdta);
  1294. X+ # endif
  1295. X+ 
  1296. X  void
  1297. X  flushout()
  1298. X  {
  1299. X***************
  1300. X*** 111,177 ****
  1301. X   *    shift values below.
  1302. X   */
  1303. X  static const struct pad {
  1304. X!     char normal, shift;
  1305. X  } keypad[PADKEYS] = {
  1306. X  #  ifdef TOS
  1307. X!             {C('['), 'Q'},        /* UNDO */
  1308. X!             {'?', '/'},        /* HELP */
  1309. X!             {'(', 'a'},        /* ( */
  1310. X!             {')', 'w'},        /* ) */
  1311. X!             {'/', '/'},        /* / */
  1312. X!             {C('p'), '$'},        /* * */
  1313. X! #  endif
  1314. X!             {'y', 'Y'},        /* 7 */
  1315. X!             {'k', 'K'},        /* 8 */
  1316. X!             {'u', 'U'},        /* 9 */
  1317. X! #  ifndef TOS
  1318. X!             {'m', C('p')},        /* - */
  1319. X! #  endif
  1320. X!             {'h', 'H'},        /* 4 */
  1321. X! #  ifdef TOS
  1322. X!             {'.', '.'},
  1323. X! #  else
  1324. X!             {'g', 'g'},        /* 5 */
  1325. X! #  endif
  1326. X!             {'l', 'L'},        /* 6 */
  1327. X! #  ifndef TOS
  1328. X!             {'p', 'P'},        /* + */
  1329. X! #  endif
  1330. X!             {'b', 'B'},        /* 1 */
  1331. X!             {'j', 'J'},        /* 2 */
  1332. X!             {'n', 'N'},        /* 3 */
  1333. X!             {'i', 'I'},        /* Ins */
  1334. X!             {'.', ':'}        /* Del */
  1335. X  }, numpad[PADKEYS] = {
  1336. X  #  ifdef TOS
  1337. X!             {C('['), 'Q'}    ,    /* UNDO */
  1338. X!             {'?', '/'},        /* HELP */
  1339. X!             {'(', 'a'},        /* ( */
  1340. X!             {')', 'w'},        /* ) */
  1341. X!             {'/', '/'},        /* / */
  1342. X!             {C('p'), '$'},        /* * */
  1343. X! #  endif
  1344. X!             {'7', M('7')},        /* 7 */
  1345. X!             {'8', M('8')},        /* 8 */
  1346. X!             {'9', M('9')},        /* 9 */
  1347. X! #  ifndef TOS
  1348. X!             {'m', C('p')},        /* - */
  1349. X! #  endif
  1350. X!             {'4', M('4')},        /* 4 */
  1351. X! #  ifdef TOS
  1352. X!             {'.', '.'},        /* 5 */
  1353. X! #  else
  1354. X!             {'g', 'G'},        /* 5 */
  1355. X! #  endif
  1356. X!             {'6', M('6')},        /* 6 */
  1357. X! #  ifndef TOS
  1358. X!             {'p', 'P'},        /* + */
  1359. X! #  endif
  1360. X!             {'1', M('1')},        /* 1 */
  1361. X!             {'2', M('2')},        /* 2 */
  1362. X!             {'3', M('3')},        /* 3 */
  1363. X!             {'i', 'I'},        /* Ins */
  1364. X!             {'.', ':'}        /* Del */
  1365. X  };
  1366. X  
  1367. X  /*
  1368. X--- 122,188 ----
  1369. X   *    shift values below.
  1370. X   */
  1371. X  static const struct pad {
  1372. X!     char normal, shift, cntrl;
  1373. X  } keypad[PADKEYS] = {
  1374. X  #  ifdef TOS
  1375. X!             {C('['), 'Q', C('[')},        /* UNDO */
  1376. X!             {'?', '/', '?'},        /* HELP */
  1377. X!             {'(', 'a', '('},        /* ( */
  1378. X!             {')', 'w', ')'},        /* ) */
  1379. X!             {'/', '/', '/'},        /* / */
  1380. X!             {C('p'), '$', C('p')},        /* * */
  1381. X! #  endif
  1382. X!             {'y', 'Y', C('y')},        /* 7 */
  1383. X!             {'k', 'K', C('k')},        /* 8 */
  1384. X!             {'u', 'U', C('u')},        /* 9 */
  1385. X! #  ifndef TOS
  1386. X!             {'m', C('p'), C('p')},        /* - */
  1387. X! #  endif
  1388. X!             {'h', 'H', C('h')},        /* 4 */
  1389. X! #  ifdef TOS
  1390. X!             {'.', '.', '.'},
  1391. X! #  else
  1392. X!             {'g', 'g', 'g'},        /* 5 */
  1393. X! #  endif
  1394. X!             {'l', 'L', C('l')},        /* 6 */
  1395. X! #  ifndef TOS
  1396. X!             {'p', 'P', C('p')},        /* + */
  1397. X! #  endif
  1398. X!             {'b', 'B', C('b')},        /* 1 */
  1399. X!             {'j', 'J', C('j')},        /* 2 */
  1400. X!             {'n', 'N', C('n')},        /* 3 */
  1401. X!             {'i', 'I', C('i')},        /* Ins */
  1402. X!             {'.', ':', ':'}            /* Del */
  1403. X  }, numpad[PADKEYS] = {
  1404. X  #  ifdef TOS
  1405. X!             {C('['), 'Q', C('[')}    ,    /* UNDO */
  1406. X!             {'?', '/', '?'},        /* HELP */
  1407. X!             {'(', 'a', '('},        /* ( */
  1408. X!             {')', 'w', ')'},        /* ) */
  1409. X!             {'/', '/', '/'},        /* / */
  1410. X!             {C('p'), '$', C('p')},        /* * */
  1411. X! #  endif
  1412. X!             {'7', M('7'), '7'},        /* 7 */
  1413. X!             {'8', M('8'), '8'},        /* 8 */
  1414. X!             {'9', M('9'), '9'},        /* 9 */
  1415. X! #  ifndef TOS
  1416. X!             {'m', C('p'), C('p')},        /* - */
  1417. X! #  endif
  1418. X!             {'4', M('4'), '4'},        /* 4 */
  1419. X! #  ifdef TOS
  1420. X!             {'.', '.', '.'},        /* 5 */
  1421. X! #  else
  1422. X!             {'g', 'G', 'g'},        /* 5 */
  1423. X! #  endif
  1424. X!             {'6', M('6'), '6'},        /* 6 */
  1425. X! #  ifndef TOS
  1426. X!             {'p', 'P', C('p')},        /* + */
  1427. X! #  endif
  1428. X!             {'1', M('1'), '1'},        /* 1 */
  1429. X!             {'2', M('2'), '2'},        /* 2 */
  1430. X!             {'3', M('3'), '3'},        /* 3 */
  1431. X!             {'i', 'I', C('i')},        /* Ins */
  1432. X!             {'.', ':', ':'}            /* Del */
  1433. X  };
  1434. X  
  1435. X  /*
  1436. X***************
  1437. X*** 250,255 ****
  1438. X--- 261,268 ----
  1439. X          kpad = flags.num_pad ? numpad : keypad;
  1440. X          if (shift & SHIFT)
  1441. X              ch = kpad[scan - KEYPADLO].shift;
  1442. X+         else if (shift & CTRL)
  1443. X+             ch = kpad[scan - KEYPADLO].cntrl;
  1444. X          else
  1445. X              ch = kpad[scan - KEYPADLO].normal;
  1446. X      }
  1447. X***************
  1448. X*** 359,368 ****
  1449. X          }
  1450. X  #ifdef TOS
  1451. X  /* Some shells (e.g. Gulam) turn the cursor off when they exit */
  1452. X!         if (flags.IBMBIOS)
  1453. X              (void)Cursconf(1, -1);
  1454. X! #endif
  1455. X          gettty(); /* ctrl-P might get turned back on (TH) */
  1456. X          chdirx(hackdir, 0);
  1457. X          start_screen();
  1458. X          docrt();
  1459. X--- 372,385 ----
  1460. X          }
  1461. X  #ifdef TOS
  1462. X  /* Some shells (e.g. Gulam) turn the cursor off when they exit */
  1463. X!         if (flags.IBMBIOS) {
  1464. X              (void)Cursconf(1, -1);
  1465. X!             get_scr_size(); /* maybe they changed the screen */
  1466. X!         }
  1467. X! #else
  1468. X          gettty(); /* ctrl-P might get turned back on (TH) */
  1469. X+         get_scr_size(); /* maybe the screen mode changed (TH) */
  1470. X+ #endif
  1471. X          chdirx(hackdir, 0);
  1472. X          start_screen();
  1473. X          docrt();
  1474. X***************
  1475. X*** 655,661 ****
  1476. X--- 672,680 ----
  1477. X          return;
  1478. X      }
  1479. X  
  1480. X+ #  ifdef TOS
  1481. X  error_copying:
  1482. X+ #  endif
  1483. X      /* Last file didn't get there.
  1484. X       */
  1485. X      Sprintf(to, "%s%s", topath, allbones);
  1486. X*** others/Old/pcmain.c    Sun Jun  3 15:25:44 1990
  1487. X--- others/pcmain.c    Thu May 31 22:10:27 1990
  1488. X***************
  1489. X*** 13,21 ****
  1490. X  #include <sys\stat.h>
  1491. X  #endif
  1492. X  #endif
  1493. X  #ifdef MACOS
  1494. X  extern WindowPtr    HackWindow;
  1495. X- extern short *switches;
  1496. X  extern short macflags;
  1497. X  pascal boolean FDECL(startDlogFProc, (DialogPtr, EventRecord *, short *));
  1498. X  #define msmsg mprintf
  1499. X--- 13,24 ----
  1500. X  #include <sys\stat.h>
  1501. X  #endif
  1502. X  #endif
  1503. X+ 
  1504. X+ #if defined(LATTICE) || defined(MACOS)
  1505. X+ extern short *switches;
  1506. X+ #endif
  1507. X  #ifdef MACOS
  1508. X  extern WindowPtr    HackWindow;
  1509. X  extern short macflags;
  1510. X  pascal boolean FDECL(startDlogFProc, (DialogPtr, EventRecord *, short *));
  1511. X  #define msmsg mprintf
  1512. X***************
  1513. X*** 71,76 ****
  1514. X--- 74,81 ----
  1515. X  extern int FromWBench;
  1516. X  #endif
  1517. X  
  1518. X+ int FDECL(main, (int,char **));
  1519. X+ 
  1520. X  const char *classes = "ABCEHKPRSTVW";
  1521. X  
  1522. X  int
  1523. X***************
  1524. X*** 127,138 ****
  1525. X                          (int)theFile.fName[0]);
  1526. X              (void)strncpy(plname, (char *)&theFile.fName[1],
  1527. X                          (int)theFile.fName[0]);
  1528. X!             SetVol(0,theFile.vRefNum);
  1529. X              SAVEF[(int)theFile.fName[0]] = '\0';
  1530. X              numFiles = 1;
  1531. X          } else
  1532. X              numFiles = 0;
  1533. X      }
  1534. X      switches = (short *)malloc((NROFOBJECTS+2) * sizeof(long));
  1535. X      for (fd = 0; fd < (NROFOBJECTS + 2); fd++)
  1536. X          switches[fd] = fd;
  1537. X--- 132,145 ----
  1538. X                          (int)theFile.fName[0]);
  1539. X              (void)strncpy(plname, (char *)&theFile.fName[1],
  1540. X                          (int)theFile.fName[0]);
  1541. X!             SetVol(0L,theFile.vRefNum);
  1542. X              SAVEF[(int)theFile.fName[0]] = '\0';
  1543. X              numFiles = 1;
  1544. X          } else
  1545. X              numFiles = 0;
  1546. X      }
  1547. X+ #endif
  1548. X+ #if defined(LATTICE) || defined(MACOS)
  1549. X      switches = (short *)malloc((NROFOBJECTS+2) * sizeof(long));
  1550. X      for (fd = 0; fd < (NROFOBJECTS + 2); fd++)
  1551. X          switches[fd] = fd;
  1552. X***************
  1553. X*** 202,208 ****
  1554. X          Strcpy(hackdir, HACKDIR);
  1555. X  #endif
  1556. X      if(argc > 1) {
  1557. X!         if (!strncmp(argv[1], "-d", 2)) {
  1558. X          argc--;
  1559. X          argv++;
  1560. X          dir = argv[0]+2;
  1561. X--- 209,218 ----
  1562. X          Strcpy(hackdir, HACKDIR);
  1563. X  #endif
  1564. X      if(argc > 1) {
  1565. X!         if (!strncmp(argv[1], "-d", 2) && argv[1][2] != 'e') {
  1566. X!         /* avoid matching "-dec" for DECgraphics; since the man page
  1567. X!          * says -d directory, hope nobody's using -desomething_else
  1568. X!          */
  1569. X          argc--;
  1570. X          argv++;
  1571. X          dir = argv[0]+2;
  1572. X***************
  1573. X*** 306,311 ****
  1574. X--- 316,327 ----
  1575. X              } else
  1576. X                  Printf("Player name expected after -u\n");
  1577. X              break;
  1578. X+         case 'i':
  1579. X+             if(!strcmp(argv[0]+1, "ibm")) assign_ibm_graphics();
  1580. X+             break;
  1581. X+         case 'd':
  1582. X+             if(!strcmp(argv[0]+1, "dec")) assign_dec_graphics();
  1583. X+             break;
  1584. X  #ifdef DGK
  1585. X          /* Player doesn't want to use a RAM disk
  1586. X           */
  1587. X***************
  1588. X*** 401,406 ****
  1589. X--- 417,427 ----
  1590. X  # endif
  1591. X      Strcat(SAVEF, ".sav");
  1592. X  #else
  1593. X+     } else {    /* save file start, didn't askname() */
  1594. X+         char *stripCharSuffix;
  1595. X+ 
  1596. X+         if (stripCharSuffix = strrchr((char *)plname, '-'))
  1597. X+             *stripCharSuffix = '\0';
  1598. X      }
  1599. X      Strcpy(lock,plname);
  1600. X      Strcat(lock,".99");
  1601. X***************
  1602. X*** 578,584 ****
  1603. X  #define WIZ 18
  1604. X  #define EXP 19
  1605. X  #define FEM 20
  1606. X! #define NEWS_BOX 21
  1607. X  #define SCORES 22
  1608. X  #define setCheckBox(a,b,c) {GetDItem(a,b,&kind,&knob,&box);SetCtlValue(knob,c?1:0);}
  1609. X  #define changeRadio(a,b,c) {setCheckBox(a,b,FALSE); setCheckBox(a,c,TRUE);}
  1610. X--- 599,605 ----
  1611. X  #define WIZ 18
  1612. X  #define EXP 19
  1613. X  #define FEM 20
  1614. X! #define NO_NEWS_BOX 21
  1615. X  #define SCORES 22
  1616. X  #define setCheckBox(a,b,c) {GetDItem(a,b,&kind,&knob,&box);SetCtlValue(knob,c?1:0);}
  1617. X  #define changeRadio(a,b,c) {setCheckBox(a,b,FALSE); setCheckBox(a,c,TRUE);}
  1618. X***************
  1619. X*** 621,629 ****
  1620. X          changeDgenders(asknameDlog,TRUE);
  1621. X      }
  1622. X  #ifdef NEWS
  1623. X!     setCheckBox(asknameDlog,NEWS_BOX,!flags.nonews);
  1624. X  #else
  1625. X!     Hide(NEWS_BOX);
  1626. X  #endif
  1627. X  #ifdef WIZARD
  1628. X      wizard = FALSE;
  1629. X--- 642,650 ----
  1630. X          changeDgenders(asknameDlog,TRUE);
  1631. X      }
  1632. X  #ifdef NEWS
  1633. X!     setCheckBox(asknameDlog,NO_NEWS_BOX,flags.nonews);
  1634. X  #else
  1635. X!     Hide(NO_NEWS_BOX);
  1636. X  #endif
  1637. X  #ifdef WIZARD
  1638. X      wizard = FALSE;
  1639. X***************
  1640. X*** 680,688 ****
  1641. X                  changeRadio(asknameDlog,VALKYRIE,ANY);
  1642. X              }
  1643. X              changeDgenders(asknameDlog,flags.female);
  1644. X!         } else if(Hit == NEWS_BOX) {
  1645. X              flags.nonews = !flags.nonews;
  1646. X!             setCheckBox(asknameDlog,NEWS_BOX,!flags.nonews);
  1647. X          } else if(Hit == SCORES) {
  1648. X              justscores = !justscores;
  1649. X              setCheckBox(asknameDlog,SCORES,justscores);
  1650. X--- 701,709 ----
  1651. X                  changeRadio(asknameDlog,VALKYRIE,ANY);
  1652. X              }
  1653. X              changeDgenders(asknameDlog,flags.female);
  1654. X!         } else if(Hit == NO_NEWS_BOX) {
  1655. X              flags.nonews = !flags.nonews;
  1656. X!             setCheckBox(asknameDlog,NO_NEWS_BOX,flags.nonews);
  1657. X          } else if(Hit == SCORES) {
  1658. X              justscores = !justscores;
  1659. X              setCheckBox(asknameDlog,SCORES,justscores);
  1660. X***************
  1661. X*** 735,741 ****
  1662. X                  *itemHit = EXP;
  1663. X                  return TRUE;
  1664. X              case 'N' :
  1665. X!                 *itemHit = NEWS_BOX;
  1666. X                  return TRUE;
  1667. X              case 'J' :
  1668. X                  *itemHit = SCORES;
  1669. X--- 756,762 ----
  1670. X                  *itemHit = EXP;
  1671. X                  return TRUE;
  1672. X              case 'N' :
  1673. X!                 *itemHit = NO_NEWS_BOX;
  1674. X                  return TRUE;
  1675. X              case 'J' :
  1676. X                  *itemHit = SCORES;
  1677. X*** others/Old/pcunix.c    Sun Jun  3 15:26:26 1990
  1678. X--- others/pcunix.c    Wed Apr 25 17:07:25 1990
  1679. X***************
  1680. X*** 20,25 ****
  1681. X--- 20,27 ----
  1682. X  #include    <sys/stat.h>
  1683. X  #endif
  1684. X  
  1685. X+ static struct tm * NDECL(getlt);
  1686. X+ 
  1687. X  #ifdef OVLB
  1688. X  
  1689. X  #ifndef MACOS
  1690. X*** others/Old/random.c    Sun Jun  3 15:26:40 1990
  1691. X--- others/random.c    Wed Apr 25 17:07:31 1990
  1692. X***************
  1693. X*** 23,28 ****
  1694. X--- 23,31 ----
  1695. X   *    - giving srandom() type void instead of allowing it to default to int
  1696. X   *    - making the first return in initstate() return a value consistent
  1697. X   *    with its type (instead of no value)
  1698. X+  *    - ANSI function prototyping in extern.h - therefore include hack.h
  1699. X+  *    instead of stdio.h and remove separate declaration of random() from
  1700. X+  *    the beginning of function srandom
  1701. X   */
  1702. X  
  1703. X  #ifdef LIBC_SCCS
  1704. X***************
  1705. X*** 31,37 ****
  1706. X  # endif
  1707. X  #endif /* LIBC_SCCS and not lint */
  1708. X  
  1709. X! #include <stdio.h>
  1710. X  
  1711. X  /*
  1712. X   * random.c:
  1713. X--- 34,40 ----
  1714. X  # endif
  1715. X  #endif /* LIBC_SCCS and not lint */
  1716. X  
  1717. X! #include "hack.h"
  1718. X  
  1719. X  /*
  1720. X   * random.c:
  1721. X***************
  1722. X*** 200,206 ****
  1723. X      unsigned        x;
  1724. X  {
  1725. X          register  int        i, j;
  1726. X-     long random();
  1727. X  
  1728. X      if(  rand_type  ==  TYPE_0  )  {
  1729. X          state[ 0 ] = x;
  1730. X--- 203,208 ----
  1731. X*** others/Old/termcap    Sun Jun  3 15:27:50 1990
  1732. X--- others/termcap    Sun May 20 18:37:04 1990
  1733. X***************
  1734. X*** 71,77 ****
  1735. X      :al=\E[L:dl=\E[M:ic=\E[@:dc=\E[P:
  1736. X  #
  1737. X  # For ST NetHack:
  1738. X! #
  1739. X  vt52|atari|DEC VT52:\
  1740. X      :co#80:li#24:bs:pt:bl=^G:le=^H:do=^J:\
  1741. X      :cl=\EH\EJ:ce=\EK:cd=\EJ:\
  1742. X--- 71,77 ----
  1743. X      :al=\E[L:dl=\E[M:ic=\E[@:dc=\E[P:
  1744. X  #
  1745. X  # For ST NetHack:
  1746. X! #       for VT100/200/&c in VT52 mode, add :ti=\E[?2l:
  1747. X  vt52|atari|DEC VT52:\
  1748. X      :co#80:li#24:bs:pt:bl=^G:le=^H:do=^J:\
  1749. X      :cl=\EH\EJ:ce=\EK:cd=\EJ:\
  1750. X***************
  1751. X*** 80,102 ****
  1752. X      :ku=\EA:kd=\EB:kl=\EC:kr=\ED:kb=^H:\
  1753. X      :sr=\EI:as=\EF:ae=\EG:
  1754. X  #
  1755. X! # For Amiga NetHack:
  1756. X! #
  1757. X! vt100|amiga|DEC VT100:\
  1758. X      :co#80:li#24:bs:pt:am:mi:bl=^G:le=^H:do=^J:xo:vt#3:\
  1759. X!     :cl=50\EH\E[J:ce=3\E[K:cd=50\E[J:\
  1760. X      :ho=\E[H:cm=5\E[%i%d;%dH:cs=\E[%i%d;%dr:\
  1761. X      :up=\E[A:do=\E[B:le=\E[C:ri=\E[D:nd=\E[C:\
  1762. X      :UP=\E[%dA:DO=\E[%dB:LE=\E[%dC:RI=\E[%dD:\
  1763. X      :so=2\E[7m:se=2\E[m:us=2\E[4m:ue=2\E[m:\
  1764. X      :mb=2\E[5m:md=2\E[1m:mr=2\E[7m:me=2\E[m:\
  1765. X!     :ti=4\E(B\E)0:as=^N:ae=^O:\
  1766. X      :ks=\E[?1h\E=:ke=\E[?11\E>:ku=\E[A:kd=\E[B:kl=\E[C:kr=\E[D:kb=^H:\
  1767. X      :kn#4:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\
  1768. X      :sc=\E7:ec=\E8:sr=5\EM:
  1769. X  #
  1770. X! # VT102 (or higher) emulators can add:
  1771. X! #    :im=\E[4h:ei=\E[4l:al=\E[L:dl=\E[M:dc=\E[P:
  1772. X  #
  1773. X  #
  1774. X  # For really complete ANSI emulations (FANSI-CONSOLE?):
  1775. X--- 80,119 ----
  1776. X      :ku=\EA:kd=\EB:kl=\EC:kr=\ED:kb=^H:\
  1777. X      :sr=\EI:as=\EF:ae=\EG:
  1778. X  #
  1779. X! # For Amiga or VMS NetHack:
  1780. X! #       VT100 or clone without the advanced video option installed
  1781. X! vt100|amiga|vt100-80|vt100-noavo|DEC VT100:\
  1782. X      :co#80:li#24:bs:pt:am:mi:bl=^G:le=^H:do=^J:xo:vt#3:\
  1783. X!     :cl=50\E[H\E[J:ce=3\E[K:cd=50\E[J:\
  1784. X      :ho=\E[H:cm=5\E[%i%d;%dH:cs=\E[%i%d;%dr:\
  1785. X      :up=\E[A:do=\E[B:le=\E[C:ri=\E[D:nd=\E[C:\
  1786. X      :UP=\E[%dA:DO=\E[%dB:LE=\E[%dC:RI=\E[%dD:\
  1787. X      :so=2\E[7m:se=2\E[m:us=2\E[4m:ue=2\E[m:\
  1788. X      :mb=2\E[5m:md=2\E[1m:mr=2\E[7m:me=2\E[m:\
  1789. X!     :ti=4\E<\E(B\E)0:as=^N:ae=^O:\
  1790. X      :ks=\E[?1h\E=:ke=\E[?11\E>:ku=\E[A:kd=\E[B:kl=\E[C:kr=\E[D:kb=^H:\
  1791. X      :kn#4:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\
  1792. X      :sc=\E7:ec=\E8:sr=5\EM:
  1793. X  #
  1794. X! # VT102 and up:
  1795. X! #       includes VT100 with advanced video option
  1796. X! vt102|vt102-80|vt100-avo|DEC VT102:\
  1797. X!     :im=\E[4h:ei=\E[4l:al=5\E[L:dl=5\E[M:dc=5\E[P:\
  1798. X!     :AL=9\E[%dL:DL=9\E[%dM:tc=vt100:
  1799. X! vt200|vt200-80|vt220|vt240|vt241|VT200_Series:\
  1800. X!     :ic=5\E[@:tc=vt102:
  1801. X! vt300|vt300-80|vt320|vt330|vt340|VT300_Series:\
  1802. X!     :tc=vt200:
  1803. X! # VAXstations (should have full entries with no delays and 8-bit CSI's)
  1804. X! VWS|UIS:tc=vt200:
  1805. X! DECterm:tc=vt300:
  1806. X! #
  1807. X! # Wide screen (magnifying glass not included;-)
  1808. X! #       note: vt100 w/o AVO only supports 14 lines when in 132-column mode
  1809. X! vt132|vt100-132:vt102-132:\
  1810. X!     :co#132:ti=9\E<\E(B\E)0\E[?3h:tc=vt102:
  1811. X! vt200-132|vt300-132:\
  1812. X!     :co#132:ti=9\E<\E(B\E)0\E[?3h:tc=vt200:
  1813. X  #
  1814. X  #
  1815. X  # For really complete ANSI emulations (FANSI-CONSOLE?):
  1816. X*** others/Old/trampoli.c    Sun Jun  3 15:28:34 1990
  1817. X--- others/trampoli.c    Thu May 31 22:12:43 1990
  1818. X***************
  1819. X*** 1,4 ****
  1820. X! /*    SCCS Id: @(#)trampoli.c     3.0    89/11/15      */
  1821. X  /* Copyright (c) 1989, by Norm Meluch and Stephen Spackman      */
  1822. X  /* NetHack may be freely redistributed.  See license for details. */
  1823. X  
  1824. X--- 1,4 ----
  1825. X! /*    SCCS Id: @(#)trampoli.c     3.0    90/05/31      */
  1826. X  /* Copyright (c) 1989, by Norm Meluch and Stephen Spackman      */
  1827. X  /* NetHack may be freely redistributed.  See license for details. */
  1828. X  
  1829. X***************
  1830. X*** 181,189 ****
  1831. X  /* ### end.c ### */
  1832. X  #undef done1
  1833. X  #undef done2
  1834. X  
  1835. X! int done1() { return done1_(); }
  1836. X! int done2() { return done2_(); }
  1837. X  
  1838. X  
  1839. X  /* ### engrave.c ### */
  1840. X--- 181,201 ----
  1841. X  /* ### end.c ### */
  1842. X  #undef done1
  1843. X  #undef done2
  1844. X+ #undef hangup
  1845. X+ #undef done_intr
  1846. X  
  1847. X! #if defined(UNIX) || defined(VMS)
  1848. X! #undef done_hangup
  1849. X! #endif /* UNIX || VMS */
  1850. X! 
  1851. X! int done1()     { return done1_();     }
  1852. X! int done2()     { return done2_();     }
  1853. X! int hangup()    { return hangup_();    }
  1854. X! int done_intr() { return done_intr_(); }
  1855. X! 
  1856. X! #if defined(UNIX) || defined(VMS)
  1857. X! int done_hangup() { return done_hangup_(); }
  1858. X! #endif /* UNIX || VMS */
  1859. X  
  1860. X  
  1861. X  /* ### engrave.c ### */
  1862. X***************
  1863. X*** 225,239 ****
  1864. X  
  1865. X  
  1866. X  /* ### ioctl.c ### */
  1867. X- /*
  1868. X  #ifdef UNIX
  1869. X! #ifdef SUSPEND
  1870. X  #undef dosuspend
  1871. X  
  1872. X  int dosuspend() { return dosuspend_(); }
  1873. X! #endif
  1874. X! #endif
  1875. X! */
  1876. X  
  1877. X  
  1878. X  /* ### lock.c ### */
  1879. X--- 237,249 ----
  1880. X  
  1881. X  
  1882. X  /* ### ioctl.c ### */
  1883. X  #ifdef UNIX
  1884. X! # ifdef SUSPEND
  1885. X  #undef dosuspend
  1886. X  
  1887. X  int dosuspend() { return dosuspend_(); }
  1888. X! # endif /* SUSPEND */
  1889. X! #endif /* UNIX */
  1890. X  
  1891. X  
  1892. X  /* ### lock.c ### */
  1893. X***************
  1894. X*** 249,258 ****
  1895. X  int forcelock() { return forcelock_(); }
  1896. X  int picklock()  { return picklock_();  }
  1897. X  
  1898. X  /* ### mondata.c ### */
  1899. X! #undef canseemon
  1900. X  
  1901. X! boolean canseemon(x) struct monst *x; { return canseemon_(x); }
  1902. X  
  1903. X  
  1904. X  /* ### o_init.c ### */
  1905. X--- 259,278 ----
  1906. X  int forcelock() { return forcelock_(); }
  1907. X  int picklock()  { return picklock_();  }
  1908. X  
  1909. X+ 
  1910. X+ /* ### mklev.c ### */
  1911. X+ #undef comp
  1912. X+ 
  1913. X+ int comp(vx, vy) genericptr_t vx, vy;  { return comp_(vx, vy); }
  1914. X+ 
  1915. X+ 
  1916. X  /* ### mondata.c ### */
  1917. X! /* canseemon() is only called by a macro e_boolean.  If e_boolean ever does
  1918. X!    become a function for purposes of STUPID_CPP this may need to return. */
  1919. X! 
  1920. X! /* #undef canseemon */
  1921. X  
  1922. X! /* boolean canseemon(x) struct monst *x; { return canseemon_(x); } */
  1923. X  
  1924. X  
  1925. X  /* ### o_init.c ### */
  1926. X***************
  1927. X*** 282,294 ****
  1928. X  #undef dohistory
  1929. X  #undef dowhatdoes
  1930. X  #undef dowhatis
  1931. X  #ifdef UNIX
  1932. X! #ifdef SHELL
  1933. X  #undef dosh
  1934. X  
  1935. X  int dosh()       { return dosh_();       }
  1936. X! #endif
  1937. X! #endif
  1938. X  
  1939. X  int dohelp()     { return dohelp_();     }
  1940. X  int dohistory()  { return dohistory_();  }
  1941. X--- 302,317 ----
  1942. X  #undef dohistory
  1943. X  #undef dowhatdoes
  1944. X  #undef dowhatis
  1945. X+ 
  1946. X  #ifdef UNIX
  1947. X! #undef intruph
  1948. X! # ifdef SHELL
  1949. X  #undef dosh
  1950. X  
  1951. X  int dosh()       { return dosh_();       }
  1952. X! # endif /* SHELL */
  1953. X! int intruph()     { return intruph_();    }
  1954. X! #endif /* UNIX */
  1955. X  
  1956. X  int dohelp()     { return dohelp_();     }
  1957. X  int dohistory()  { return dohistory_();  }
  1958. X***************
  1959. X*** 413,419 ****
  1960. X  #undef doversion
  1961. X  #undef doextversion
  1962. X  
  1963. X! int doversion() { return doversion_(); }
  1964. X  int doextversion() { return doextversion_(); }
  1965. X  
  1966. X  
  1967. X--- 436,442 ----
  1968. X  #undef doversion
  1969. X  #undef doextversion
  1970. X  
  1971. X! int doversion()    { return doversion_();    }
  1972. X  int doextversion() { return doextversion_(); }
  1973. X  
  1974. X  
  1975. X
  1976. END_OF_FILE
  1977. if test 54916 -ne `wc -c <'patch8.13'`; then
  1978.     echo shar: \"'patch8.13'\" unpacked with wrong size!
  1979. fi
  1980. # end of 'patch8.13'
  1981. fi
  1982. if test -f 'vms/install.com' -a "${1}" != "-c" ; then 
  1983.   echo shar: Will not clobber existing file \"'vms/install.com'\"
  1984. else
  1985. echo shar: Extracting \"'vms/install.com'\" \(1956 characters\)
  1986. sed "s/^X//" >'vms/install.com' <<'END_OF_FILE'
  1987. X$ ! vms/install.com -- set up nethack 'playground'
  1988. X$ !
  1989. X$ ! Use vmsbuild.com to create nethack.exe, makedefs, and lev_comp *first*.
  1990. X$ !
  1991. X$ ! Edit this file to define gamedir & gameuic, or else invoke it with two
  1992. X$ ! command line parameters, as in:
  1993. X$ !    @[.vms]install "disk$users:[games.nethack]" "[40,1]"
  1994. X$ !
  1995. X$    gamedir = "USR$ROOT0:[GENTZEL.NHDIR]"    !location of playground
  1996. X$    gameuic = "GENTZEL"            !owner of playground
  1997. X$    if p1.nes."" then  gamedir := 'p1'
  1998. X$    if p2.nes."" then  gameuic := 'p2'
  1999. X$
  2000. X$    play_files = "PERM.,RECORD.,LOGFILE."
  2001. X$    help_files = "HELP.,HH.,CMDHELP.,HISTORY.,OPTHELP.,ORACLES.,LICENSE."
  2002. X$    data_files = "DATA.,RUMORS."
  2003. X$    spec_files = "ENDGAME.,CASTLE.,TOWER%."
  2004. X$    spec_input = "endgame.des castle.des tower.des"
  2005. X$ makedefs := $sys$disk:[-.src]makedefs
  2006. X$ lev_comp := $sys$disk:[-.src]lev_comp
  2007. X$
  2008. X$    ! start from a known location -- [.vms]
  2009. X$    set default 'f$parse(f$environment("PROCEDURE"),,,"DIRECTORY")'
  2010. X$! generate miscellaneous data files
  2011. X$    set default [-.auxil]    !move to auxiliary directory
  2012. X$ makedefs -d    !data
  2013. X$ makedefs -r    !rumors
  2014. X$! lev_comp 'spec_input' !special levels
  2015. X$! (flex'd version doesn't handle multiple inputs, so do them one at a time)
  2016. X$ lev_comp endgame.des
  2017. X$ lev_comp castle.des
  2018. X$ lev_comp tower.des
  2019. X$    set default [-]        !move up
  2020. X$
  2021. X$! set up the directories
  2022. X$ create/directory/owner='gameuic'/prot=(s:rwe,o:rwe,g:rwe,w:rwe)/log -
  2023. X    'f$string(gamedir - "]" + ".SAVE]")'
  2024. X$! create empty writeable files
  2025. X$ create/owner='gameuic'/prot=(s:rwed,o:rwed,g:rwed,w:rwed) -
  2026. X    'gamedir''play_files'
  2027. X$! copy over the remaining game files, then make them readonly
  2028. X$ copy/prot=(s:rwed,o:rwed,g:re,w:re) -
  2029. X    [.auxil]'help_files','data_files','spec_files',[.src]nethack.exe -
  2030. X    'gamedir'*.*
  2031. X$ set file/owner='gameuic'/prot=(s:re,o:re) -
  2032. X    'gamedir''help_files','data_files','spec_files',nethack.exe
  2033. X$! done
  2034. X$ define/nolog hackdir 'gamedir'
  2035. X$ write sys$output -
  2036. X    f$fao("!/ Nethack installation complete. !/ Playground is !AS !/",gamedir)
  2037. X$ exit
  2038. END_OF_FILE
  2039. if test 1956 -ne `wc -c <'vms/install.com'`; then
  2040.     echo shar: \"'vms/install.com'\" unpacked with wrong size!
  2041. fi
  2042. # end of 'vms/install.com'
  2043. fi
  2044. echo shar: End of archive 2 \(of 24\).
  2045. cp /dev/null ark2isdone
  2046. MISSING=""
  2047. 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 ; do
  2048.     if test ! -f ark${I}isdone ; then
  2049.     MISSING="${MISSING} ${I}"
  2050.     fi
  2051. done
  2052. if test "${MISSING}" = "" ; then
  2053.     echo You have unpacked all 24 archives.
  2054.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  2055. else
  2056.     echo You still need to unpack the following archives:
  2057.     echo "        " ${MISSING}
  2058. fi
  2059. ##  End of shell archive.
  2060. exit 0
  2061.