home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / games / volume7 / nethack3 / patch6a < prev    next >
Internet Message Format  |  1989-11-27  |  61KB

  1. Path: uunet!zephyr.ens.tek.com!tekgen!tekred!saab!billr
  2. From: billr@saab.CNA.TEK.COM (Bill Randle)
  3. Newsgroups: comp.sources.games
  4. Subject: v08i054:  NetHack3 -  display oriented dungeons & dragons (Ver. 3.0), Patch6a
  5. Message-ID: <4843@tekred.CNA.TEK.COM>
  6. Date: 22 Nov 89 19:45:05 GMT
  7. Sender: nobody@tekred.CNA.TEK.COM
  8. Lines: 1905
  9. Approved: billr@saab.CNA.TEK.COM
  10.  
  11. Submitted-by: Izchak Miller <izchak@linc.cis.upenn.edu>
  12. Posting-number: Volume 8, Issue 54
  13. Archive-name: NetHack3/Patch6a
  14. Patch-To: NetHack3: Volume 7, Issue 56-93
  15.  
  16.     [As before, unpack this in your top level NetHack3 directory.
  17.      This set of patches will overwrite several existing files
  18.      whose diffs were larger than the source itself and create
  19.      several patches06? files to be feed to patch. Use the
  20.      do_patch6.sh script to do this automatically. Note that
  21.      monst.c is split into two parts. The do_patch6.sh script
  22.      cats them together. When I get a chance I will put a copy
  23.      of NetHack3 will all 6 patches applied in the archives on
  24.      saab and uunet. There are 15 parts (a-o) in this patch (#6).
  25.         -br]
  26.  
  27. [[And now a word from the development team...
  28. This patch contains two major improvements:
  29.  
  30. First, thanks to Ari Huttunen, different door states show up as different
  31. (configurable) characters on the screen.
  32.  
  33. Second, doors can now be entered/exited diagonally both for player and
  34. monster.
  35.  
  36. Third, a gaggle of people credited in the appropriate files developed an
  37. overlay manager for MS-DOS and MSC such that all the options of NetHack can
  38. be supported.  See Install.dos and ovlmgr.* for further details.
  39.  
  40. In more minor news:
  41.  
  42. You no longer have to pick up food to eat it, and you no longer necessarily
  43. resume eating your interrupted meal.
  44.  
  45. You can no longer get properties from wielding a non-weapon.
  46.  
  47. There is a new option, CLIPPING, which allows playing on small screens or
  48. windows.
  49.  
  50. The multiple demon types portion of HARD has been split off into the new
  51. INFERNO option.
  52.  
  53. The Macintosh port has been further refined.
  54.  
  55. The / command now takes configurable characters into account when identifying
  56. items.
  57.  
  58. Leprechauns and lichs and nymphs and nagas had their letters switched so that
  59. the more formidable monsters get capital letters.  Several new low-level
  60. monsters were added.
  61.  
  62. Drawbridge interactions are much smarter, thanks to Kevin Darcy.
  63.  
  64. And a large number of minor bug fixes and efficiency enhancements.]]
  65.  
  66. #! /bin/sh
  67. # This is a shell archive.  Remove anything before this line, then unpack
  68. # it by saving it into a file and typing "sh file".  To overwrite existing
  69. # files, type "sh file -c".  You can also feed this as standard input via
  70. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  71. # will see the following message at the end:
  72. #        "End of archive 1 (of 15)."
  73. # Contents:  MANIFEST.P6 do_patch6.sh patches06b
  74. # Wrapped by billr@saab on Wed Nov 22 11:10:02 1989
  75. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  76. if test -f 'MANIFEST.P6' -a "${1}" != "-c" ; then 
  77.   echo shar: Will not clobber existing file \"'MANIFEST.P6'\"
  78. else
  79. echo shar: Extracting \"'MANIFEST.P6'\" \(796 characters\)
  80. sed "s/^X//" >'MANIFEST.P6' <<'END_OF_FILE'
  81. X   File Name        Archive #    Description
  82. X-----------------------------------------------------------
  83. X Install.dos               13    
  84. X MANIFEST.P6                1    This shipping list
  85. X UPDATE6                    3    
  86. X do_patch6.sh               1    
  87. X include/extern.h          15    
  88. X include/system.h          10    
  89. X others/Makefile.tcc       14    
  90. X patches06a                10    
  91. X patches06b                 1    
  92. X patches06c                 5    
  93. X patches06d                 2    
  94. X patches06e                 8    
  95. X patches06f                 3    
  96. X patches06g                 6    
  97. X patches06h                 7    
  98. X patches06i                 9    
  99. X patches06j                 4    
  100. X patches06k                11    
  101. X patches06l                12    
  102. X src/dbridge.c             15    
  103. X src/monst.c1              14    
  104. X src/monst.c2              13    
  105. END_OF_FILE
  106. if test 796 -ne `wc -c <'MANIFEST.P6'`; then
  107.     echo shar: \"'MANIFEST.P6'\" unpacked with wrong size!
  108. fi
  109. # end of 'MANIFEST.P6'
  110. fi
  111. if test -f 'do_patch6.sh' -a "${1}" != "-c" ; then 
  112.   echo shar: Will not clobber existing file \"'do_patch6.sh'\"
  113. else
  114. echo shar: Extracting \"'do_patch6.sh'\" \(830 characters\)
  115. sed "s/^X//" >'do_patch6.sh' <<'END_OF_FILE'
  116. X#! /bin/sh
  117. X# script to call patch to apply diff files
  118. X# make sure all of the patch files (and this file) are in your top level
  119. X# NetHack directory
  120. X#
  121. Xecho "creating monst.c from monst.c1 and monst.c2"
  122. Xcat src/monst.c1 src/monst.c2 > src/monst.c
  123. Xecho "applying patch6a"
  124. Xpatch -p <patches06a
  125. Xecho "applying patch6b"
  126. Xpatch -p <patches06b
  127. Xecho "applying patch6c"
  128. Xpatch -p <patches06c
  129. Xecho "applying patch6d"
  130. Xpatch -p <patches06d
  131. Xecho "applying patch6e"
  132. Xpatch -p <patches06e
  133. Xecho "applying patch6f"
  134. Xpatch -p <patches06f
  135. Xecho "applying patch6g"
  136. Xpatch -p <patches06g
  137. Xecho "applying patch6h"
  138. Xpatch -p <patches06h
  139. Xecho "applying patch6i"
  140. Xpatch -p <patches06i
  141. Xecho "applying patch6j"
  142. Xpatch -p <patches06j
  143. Xecho "applying patch6k"
  144. Xpatch -p <patches06k
  145. Xecho "applying patch6l"
  146. Xpatch -p <patches06l
  147. Xecho "all patches applied, check for rejects"
  148. END_OF_FILE
  149. if test 830 -ne `wc -c <'do_patch6.sh'`; then
  150.     echo shar: \"'do_patch6.sh'\" unpacked with wrong size!
  151. fi
  152. chmod +x 'do_patch6.sh'
  153. # end of 'do_patch6.sh'
  154. fi
  155. if test -f 'patches06b' -a "${1}" != "-c" ; then 
  156.   echo shar: Will not clobber existing file \"'patches06b'\"
  157. else
  158. echo shar: Extracting \"'patches06b'\" \(53394 characters\)
  159. sed "s/^X//" >'patches06b' <<'END_OF_FILE'
  160. X*** amiga/Old/NetHack.cnf    Sun Nov 19 12:14:58 1989
  161. X--- amiga/NetHack.cnf    Fri Oct 20 13:29:58 1989
  162. X***************
  163. X*** 42,48 ****
  164. X  # stone, vertical wall, horizontal wall, top left corner, top right corner, 
  165. X  # bottom left corner, bottom right corner, crosswall, up T wall, down T wall, 
  166. X  # left T wall, right T wall, vertical beam, horizontal beam, left slant, right
  167. X! # slant, door, floor, corridor, up stairs, down stairs, trap, web, pool,
  168. X  # fountain, sink, throne, altar, up ladder, down ladder, vertical drawbridge
  169. X  # wall, horizontal drawbridge wall 
  170. X  #
  171. X--- 42,49 ----
  172. X  # stone, vertical wall, horizontal wall, top left corner, top right corner, 
  173. X  # bottom left corner, bottom right corner, crosswall, up T wall, down T wall, 
  174. X  # left T wall, right T wall, vertical beam, horizontal beam, left slant, right
  175. X! # slant, no door, vertical open door, horizontal open door, closed door,
  176. X! # floor, corridor, up stairs, down stairs, trap, web, pool,
  177. X  # fountain, sink, throne, altar, up ladder, down ladder, vertical drawbridge
  178. X  # wall, horizontal drawbridge wall 
  179. X  #
  180. X***************
  181. X*** 52,56 ****
  182. X  # Note that the hack.font has special graphics characters from 192 on.
  183. X  
  184. X  # An example using the hack.font graphics character set:
  185. X! #       ' '  |   -   .   .   `   '   -   -   -   -   -   |   -   \   /   +   .   #   <   >   ^   "   }   {   #   \   _   <   >   #   #
  186. X! GRAPHICS = 032 192 193 194 195 196 197 198 216 214 215 213 192 193 092 047 198 046 035 060 062 094 034 125 123 035 092 095 060 062 035 035
  187. X--- 53,57 ----
  188. X  # Note that the hack.font has special graphics characters from 192 on.
  189. X  
  190. X  # An example using the hack.font graphics character set:
  191. X! #       ' '  |   -   .   .   `   '   -   -   -   -   -   |   -   \   /   .   -   |   +   .   #   <   >   ^   "   }   {   #   \   _   <   >   #   #
  192. X! GRAPHICS = 032 192 193 194 195 196 197 198 216 214 215 213 192 193 092 047 046 193 192 198 046 035 060 062 094 034 125 123 035 092 095 060 062 035 035
  193. X*** amiga/Old/amidos.c    Sun Nov 19 12:15:36 1989
  194. X--- amiga/amidos.c    Fri Oct 20 13:29:41 1989
  195. X***************
  196. X*** 478,484 ****
  197. X          int  lth;
  198. X  
  199. X          if ((lth = sscanf(bufp,
  200. X!          "%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d",
  201. X                  &translate[0], &translate[1], &translate[2],
  202. X                  &translate[3], &translate[4], &translate[5],
  203. X                  &translate[6], &translate[7], &translate[8],
  204. X--- 478,484 ----
  205. X          int  lth;
  206. X  
  207. X          if ((lth = sscanf(bufp,
  208. X!     "%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d",
  209. X                  &translate[0], &translate[1], &translate[2],
  210. X                  &translate[3], &translate[4], &translate[5],
  211. X                  &translate[6], &translate[7], &translate[8],
  212. X***************
  213. X*** 489,495 ****
  214. X                  &translate[21], &translate[22], &translate[23],
  215. X                  &translate[24], &translate[25], &translate[26],
  216. X                  &translate[27], &translate[28], &translate[29],
  217. X!                 &translate[30], &translate[31])) < 0) {
  218. X              msmsg ("Syntax error in GRAPHICS\n");
  219. X              getreturn("to continue");
  220. X          } /* Yuck! Worked only with low-byte first!!! */
  221. X--- 489,496 ----
  222. X                  &translate[21], &translate[22], &translate[23],
  223. X                  &translate[24], &translate[25], &translate[26],
  224. X                  &translate[27], &translate[28], &translate[29],
  225. X!                 &translate[30], &translate[31], &translate[32],
  226. X!                 &translate[33], &translate[34])) < 0) {
  227. X              msmsg ("Syntax error in GRAPHICS\n");
  228. X              getreturn("to continue");
  229. X          } /* Yuck! Worked only with low-byte first!!! */
  230. X*** include/Old/amiconf.h    Sun Nov 19 15:12:11 1989
  231. X--- include/amiconf.h    Fri Nov 17 20:51:36 1989
  232. X***************
  233. X*** 20,29 ****
  234. X  #include "pcconf.h"     /* remainder of stuff is almost same as the PC */
  235. X  #endif
  236. X  
  237. X- #undef  index
  238. X- #undef  rindex
  239. X- extern char  *index P((const char *,int));
  240. X- extern char  *rindex P((const char *,int));
  241. X  #define memcpy(dest, source, size)  movmem(source, dest, size)
  242. X  
  243. X  /*
  244. X--- 20,25 ----
  245. X*** include/Old/config.h    Sun Nov 19 15:12:56 1989
  246. X--- include/config.h    Fri Nov 17 20:51:38 1989
  247. X***************
  248. X*** 42,54 ****
  249. X  #define LSC 1        /* for the Lighspeed 3.01p4 C compiler on the Mac */
  250. X  /* #define AZTEC 1    /* for the Manx Aztec C 3.6c compiler */
  251. X  /* #define THINKC4    /* for the Think C 4 compiler */
  252. X! 
  253. X  #define SMALLDATA 1    /* for Mac compilers with 32K global data limit */
  254. X   
  255. X  # ifdef KR1ED
  256. X  #define defined(x) (x<<1) /* Lightspeed & Aztec can't handle defined() yet */
  257. X  # endif
  258. X- 
  259. X  #endif
  260. X  
  261. X  
  262. X--- 42,53 ----
  263. X  #define LSC 1        /* for the Lighspeed 3.01p4 C compiler on the Mac */
  264. X  /* #define AZTEC 1    /* for the Manx Aztec C 3.6c compiler */
  265. X  /* #define THINKC4    /* for the Think C 4 compiler */
  266. X! #define NEED_VARARGS    /* if you're using precompiled headers */
  267. X  #define SMALLDATA 1    /* for Mac compilers with 32K global data limit */
  268. X   
  269. X  # ifdef KR1ED
  270. X  #define defined(x) (x<<1) /* Lightspeed & Aztec can't handle defined() yet */
  271. X  # endif
  272. X  #endif
  273. X  
  274. X  
  275. X***************
  276. X*** 79,86 ****
  277. X   *    smaller bones/level/save files, but require additional code and time.
  278. X   */
  279. X  
  280. X! #define COMPRESS "/usr/local/compress"
  281. X! /* #define ZEROCOMP    /* Use only if COMPRESS is not used -- Olaf Seibert */
  282. X  
  283. X  
  284. X  #define CHDIR        /* delete if no chdir() available */
  285. X--- 78,87 ----
  286. X   *    smaller bones/level/save files, but require additional code and time.
  287. X   */
  288. X  
  289. X! #define COMPRESS "/usr/local/compress"  /* path name for 'compress' */
  290. X! #ifndef COMPRESS
  291. X! #define ZEROCOMP    /* Use only if COMPRESS is not used -- Olaf Seibert */
  292. X! #endif
  293. X  
  294. X  
  295. X  #define CHDIR        /* delete if no chdir() available */
  296. X***************
  297. X*** 90,96 ****
  298. X   * If you define HACKDIR, then this will be the default playground;
  299. X   * otherwise it will be the current directory.
  300. X   */
  301. X! #define HACKDIR "/usr/games/lib/nethackdir"
  302. X  
  303. X  /*
  304. X   * Some system administrators are stupid enough to make Hack suid root
  305. X--- 91,97 ----
  306. X   * If you define HACKDIR, then this will be the default playground;
  307. X   * otherwise it will be the current directory.
  308. X   */
  309. X! #define HACKDIR "/usr/games/lib/nethackdir"     /* nethack directory */
  310. X  
  311. X  /*
  312. X   * Some system administrators are stupid enough to make Hack suid root
  313. X***************
  314. X*** 99,105 ****
  315. X   * since the user might create files in a directory of his choice.
  316. X   * Of course SECURE is meaningful only if HACKDIR is defined.
  317. X   */
  318. X! /* #define SECURE            /* do setuid(getuid()) after chdir() */
  319. X  
  320. X  /*
  321. X   * If it is desirable to limit the number of people that can play Hack
  322. X--- 100,106 ----
  323. X   * since the user might create files in a directory of his choice.
  324. X   * Of course SECURE is meaningful only if HACKDIR is defined.
  325. X   */
  326. X! /* #define SECURE    /* do setuid(getuid()) after chdir() */
  327. X  
  328. X  /*
  329. X   * If it is desirable to limit the number of people that can play Hack
  330. X***************
  331. X*** 171,209 ****
  332. X   * complexity of the game but also to the size of the load module.
  333. X   */ 
  334. X  
  335. X! #define SPELLS        1 /* Spell casting by M. Stephenson */
  336. X  #define POLYSELF      1 /* Polymorph self code by Ken Arromdee */
  337. X  #define THRONES       1 /* Thrones and Courts by M. Stephenson */
  338. X- #define PROBING       1 /* Wand of probing code by Gil Neiger */
  339. X- #define REDO          1 /* support for redoing last command - DGK */
  340. X- #define HARD          1 /* Enhanced wizard code by M. Stephenson */
  341. X- #define WALKIES       1 /* Leash code by M. Stephenson */
  342. X  #define FOUNTAINS     1 /* Fountain code by SRT (+ GAN + EB) */
  343. X- #define KOPS          1 /* Keystone Kops by Scott R. Turner */
  344. X- #define COM_COMPL     1 /* Command line completion by John S. Bien */
  345. X- #define MEDUSA        1 /* Mirrors and the Medusa by Richard P. Hughey */
  346. X- #define NAMED_ITEMS   1 /* Special named items handling */
  347. X- #define ARMY          1 /* Soldiers, barracks by Steve Creps */
  348. X- #define SHIRT         1 /* Hawaiian shirt code by Steve Linhart */
  349. X- #define THEOLOGY      1 /* Smarter gods - The Unknown Hacker */
  350. X  #define SINKS         1 /* Kitchen sinks - Janet Walz */
  351. X- #define SOUNDS        1 /* Add more life to the dungeon */
  352. X- #define REINCARNATION 1 /* Rogue-like levels */
  353. X- #define ELBERETH      1 /* Allow for disabling the E word - Mike 3point */
  354. X- #define WORM          1 /* Long worms */
  355. X- #define ORACLE        1 /* Include another source of information */
  356. X- #define EXPLORE_MODE  1 /* Allow non-scoring play with additional powers */
  357. X  #define ALTARS        1 /* Sacrifice sites - Jean-Christophe Collet */
  358. X  #define WALLIFIED_MAZE 1 /* Fancy mazes - Jean-Christophe Collet */
  359. X! #ifdef HARD
  360. X! #define SEDUCE        1 /* Succubi/incubi additions, by KAA, suggested by IM */
  361. X! #endif
  362. X  #define STRONGHOLD    1 /* Challenging special levels - Jean-Christophe Collet*/
  363. X! #define MUSIC         1 /* Musical instruments - Jean-Christophe Collet */
  364. X  #define GOLEMS        1 /* Golems, by KAA */
  365. X  #define TOLKIEN       1 /* More varieties of objects and monsters */
  366. X! #define KICK          1 /* Allow kicking things besides doors -Izchak Miller */
  367. X  #define TUTTI_FRUTTI  1 /* Fruits as in Rogue, but which work... -KAA */
  368. X  
  369. X  #ifdef REDO
  370. X  #define DOAGAIN '\001'        /* The "redo" key used in tty.c and cmd.c */
  371. X--- 172,218 ----
  372. X   * complexity of the game but also to the size of the load module.
  373. X   */ 
  374. X  
  375. X! /* game features */
  376. X  #define POLYSELF      1 /* Polymorph self code by Ken Arromdee */
  377. X+ #define THEOLOGY      1 /* Smarter gods - The Unknown Hacker */
  378. X+ #define SOUNDS        1 /* Add more life to the dungeon */
  379. X+ #define KICK          1 /* Allow kicking things besides doors -Izchak Miller */
  380. X+ /* dungeon features */
  381. X  #define THRONES       1 /* Thrones and Courts by M. Stephenson */
  382. X  #define FOUNTAINS     1 /* Fountain code by SRT (+ GAN + EB) */
  383. X  #define SINKS         1 /* Kitchen sinks - Janet Walz */
  384. X  #define ALTARS        1 /* Sacrifice sites - Jean-Christophe Collet */
  385. X+ /* dungeon levels */
  386. X  #define WALLIFIED_MAZE 1 /* Fancy mazes - Jean-Christophe Collet */
  387. X! #define REINCARNATION 1 /* Rogue-like levels */
  388. X  #define STRONGHOLD    1 /* Challenging special levels - Jean-Christophe Collet*/
  389. X! /* monsters & objects */
  390. X! #define ORACLE        1 /* Include another source of information */
  391. X! #define MEDUSA        1 /* Mirrors and the Medusa by Richard P. Hughey */
  392. X! #define KOPS          1 /* Keystone Kops by Scott R. Turner */
  393. X! #define ARMY          1 /* Soldiers, barracks by Steve Creps */
  394. X! #define WORM          1 /* Long worms */
  395. X  #define GOLEMS        1 /* Golems, by KAA */
  396. X+ #define INFERNO       1 /* Demons & Demonlords */
  397. X+ #ifdef INFERNO
  398. X+ #define SEDUCE        1 /* Succubi/incubi additions, by KAA, suggested by IM */
  399. X+ #endif
  400. X  #define TOLKIEN       1 /* More varieties of objects and monsters */
  401. X! #define PROBING       1 /* Wand of probing code by Gil Neiger */
  402. X! #define WALKIES       1 /* Leash code by M. Stephenson */
  403. X! #define SHIRT         1 /* Hawaiian shirt code by Steve Linhart */
  404. X! #define MUSIC         1 /* Musical instruments - Jean-Christophe Collet */
  405. X  #define TUTTI_FRUTTI  1 /* Fruits as in Rogue, but which work... -KAA */
  406. X+ #define SPELLS        1 /* Spell casting by M. Stephenson */
  407. X+ #define NAMED_ITEMS   1 /* Special named items handling */
  408. X+ /* difficulty */
  409. X+ #define ELBERETH      1 /* Allow for disabling the E word - Mike 3point */
  410. X+ #define EXPLORE_MODE  1 /* Allow non-scoring play with additional powers */
  411. X+ #define HARD          1 /* Enhanced wizard code by M. Stephenson */
  412. X+ /* I/O */
  413. X+ #define REDO          1 /* support for redoing last command - DGK */
  414. X+ #define COM_COMPL     1 /* Command line completion by John S. Bien */
  415. X+ #define CLIPPING      1 /* allow smaller screens -- ERS */
  416. X  
  417. X  #ifdef REDO
  418. X  #define DOAGAIN '\001'        /* The "redo" key used in tty.c and cmd.c */
  419. X*** include/Old/decl.h    Sun Nov 19 15:13:23 1989
  420. X--- include/decl.h    Sun Nov 19 09:24:33 1989
  421. X***************
  422. X*** 51,56 ****
  423. X--- 51,57 ----
  424. X  E xchar fountsound, sinksound;    /* numbers of noisy things */
  425. X  
  426. X  E char pl_character[PL_CSIZ];
  427. X+ E const char *pl_classes;
  428. X  #ifdef TUTTI_FRUTTI
  429. X  E char pl_fruit[PL_FSIZ];
  430. X  E int current_fruit;
  431. X***************
  432. X*** 118,123 ****
  433. X--- 119,129 ----
  434. X  
  435. X  #ifdef REDO
  436. X  E int in_doagain;
  437. X+ #endif
  438. X+ 
  439. X+ #ifdef CLIPPING
  440. X+ E boolean clipping;
  441. X+ E int clipx, clipy, clipxmax, clipymax;
  442. X  #endif
  443. X  
  444. X  #ifdef TEXTCOLOR
  445. X*** include/Old/flag.h    Sun Nov 19 15:15:17 1989
  446. X--- include/flag.h    Sat Nov 18 09:25:28 1989
  447. X***************
  448. X*** 52,58 ****
  449. X      boolean  pickup;    /* whether you pickup or move and look */
  450. X      boolean  num_pad;    /* use numbers for movement commands */
  451. X  #ifdef TEXTCOLOR
  452. X!     boolean  use_color;    /* use color grapics */
  453. X  #endif
  454. X  #ifdef DGK
  455. X      boolean  IBMBIOS;    /* whether we can use a BIOS call for
  456. X--- 52,58 ----
  457. X      boolean  pickup;    /* whether you pickup or move and look */
  458. X      boolean  num_pad;    /* use numbers for movement commands */
  459. X  #ifdef TEXTCOLOR
  460. X!     boolean  use_color;    /* use color graphics */
  461. X  #endif
  462. X  #ifdef DGK
  463. X      boolean  IBMBIOS;    /* whether we can use a BIOS call for
  464. X*** include/Old/global.h    Sun Nov 19 15:15:38 1989
  465. X--- include/global.h    Fri Nov 17 20:51:37 1989
  466. X***************
  467. X*** 1,4 ****
  468. X! /*    SCCS Id: @(#)global.h    3.0    89/07/12
  469. X  /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
  470. X  /* NetHack may be freely redistributed.  See license for details. */
  471. X  
  472. X--- 1,4 ----
  473. X! /*    SCCS Id: @(#)global.h    3.0    89/11/08
  474. X  /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
  475. X  /* NetHack may be freely redistributed.  See license for details. */
  476. X  
  477. X***************
  478. X*** 9,15 ****
  479. X  
  480. X  
  481. X  /* #define BETA        /* if a beta-test copy  [MRS] */
  482. X! #define VERSION    "3.0g"    /* version number. */
  483. X  
  484. X  /*
  485. X   * Files expected to exist in the playground directory.
  486. X--- 9,15 ----
  487. X  
  488. X  
  489. X  /* #define BETA        /* if a beta-test copy  [MRS] */
  490. X! #define VERSION "3.0h"  /* version number. */
  491. X  
  492. X  /*
  493. X   * Files expected to exist in the playground directory.
  494. X*** include/Old/hack.h    Sun Nov 19 15:15:59 1989
  495. X--- include/hack.h    Sun Nov 19 09:24:34 1989
  496. X***************
  497. X*** 79,84 ****
  498. X--- 79,94 ----
  499. X  #include    "extern.h"
  500. X  #endif
  501. X  
  502. X+ #ifdef OVERLAY
  503. X+ #ifndef TRAMPOLI_H
  504. X+ #include    "trampoli.h"
  505. X+ #endif
  506. X+ 
  507. X+ #undef EXTERN_H
  508. X+ #include    "extern.h"
  509. X+ #endif /* OVERLAY */
  510. X+ 
  511. X+ 
  512. X  #ifdef STRONGHOLD
  513. X  # define Inhell        (dlevel > stronghold_level && dlevel <= MAXLEVEL)
  514. X  #else
  515. X***************
  516. X*** 103,109 ****
  517. X  #define    makeknown(x)    objects[x].oc_name_known = 1
  518. X  # endif /* STUPID_CPP */
  519. X  
  520. X! #ifdef MSDOS
  521. X  #define getuid() 1
  522. X  #define getlogin() ((char *) NULL)
  523. X  #endif /* MSDOS */
  524. X--- 113,119 ----
  525. X  #define    makeknown(x)    objects[x].oc_name_known = 1
  526. X  # endif /* STUPID_CPP */
  527. X  
  528. X! #if defined(MSDOS) || defined(MACOS)
  529. X  #define getuid() 1
  530. X  #define getlogin() ((char *) NULL)
  531. X  #endif /* MSDOS */
  532. X*** include/Old/macconf.h    Sun Nov 19 15:16:31 1989
  533. X--- include/macconf.h    Fri Nov 17 20:51:36 1989
  534. X***************
  535. X*** 62,68 ****
  536. X  #include    <Stdlib.h>
  537. X  #include    <String.h>
  538. X  #undef getuid
  539. X! #ifndef MAKEDEFS_C
  540. X  #ifdef stdout
  541. X  #undef stdout
  542. X  #define stdout (FILE *)NULL
  543. X--- 62,68 ----
  544. X  #include    <Stdlib.h>
  545. X  #include    <String.h>
  546. X  #undef getuid
  547. X! #if !defined(MAKEDEFS_C) && !defined(LEV_LEX_C)
  548. X  #ifdef stdout
  549. X  #undef stdout
  550. X  #define stdout (FILE *)NULL
  551. X***************
  552. X*** 190,195 ****
  553. X--- 190,196 ----
  554. X  #define    LEVEL_TYPE    'LEVL'
  555. X  #define    HACK_DATA    'HDTA'
  556. X  #define MONST_DATA    101
  557. X+ #define OBJECT_DATA    104
  558. X  #define    DEFAULT_DATA    100
  559. X  
  560. X  #include "extern.h"
  561. X*** include/Old/mondata.h    Sun Nov 19 15:17:13 1989
  562. X--- include/mondata.h    Fri Nov 10 17:01:04 1989
  563. X***************
  564. X*** 1,4 ****
  565. X! /*    SCCS Id: @(#)mondata.h    3.0    89/03/06
  566. X  /* NetHack may be freely redistributed.  See license for details. */
  567. X  /* Copyright (c) 1989 Mike Threepoint */
  568. X  
  569. X--- 1,4 ----
  570. X! /*    SCCS Id: @(#)mondata.h    3.0    89/11/08
  571. X  /* NetHack may be freely redistributed.  See license for details. */
  572. X  /* Copyright (c) 1989 Mike Threepoint */
  573. X  
  574. X***************
  575. X*** 7,14 ****
  576. X  
  577. X  # ifndef STUPID_CPP    /* otherwise these macros are functions in mondata.c */
  578. X  
  579. X! #define bigmonst(ptr)        (((ptr)->mflags1 & M1_BIG) != 0L)
  580. X! #define verysmall(ptr)        (((ptr)->mflags1 & M1_VSMALL) != 0L)
  581. X  #define is_flyer(ptr)        (((ptr)->mflags1 & M1_FLY) != 0L)
  582. X  #define is_floater(ptr)     ((ptr)->mlet == S_EYE)
  583. X  #define is_swimmer(ptr)     (((ptr)->mflags1 & M1_SWIM) != 0L)
  584. X--- 7,15 ----
  585. X  
  586. X  # ifndef STUPID_CPP    /* otherwise these macros are functions in mondata.c */
  587. X  
  588. X! #define verysmall(ptr)        ((ptr)->msize < MZ_SMALL)
  589. X! #define bigmonst(ptr)        ((ptr)->msize >= MZ_LARGE)
  590. X! 
  591. X  #define is_flyer(ptr)        (((ptr)->mflags1 & M1_FLY) != 0L)
  592. X  #define is_floater(ptr)     ((ptr)->mlet == S_EYE)
  593. X  #define is_swimmer(ptr)     (((ptr)->mflags1 & M1_SWIM) != 0L)
  594. X***************
  595. X*** 60,71 ****
  596. X  #define is_wanderer(ptr)    (((ptr)->mflags2 & M2_WANDER) != 0L)
  597. X  #define is_lord(ptr)        (((ptr)->mflags1 & M1_LORD) != 0L)
  598. X  #define is_prince(ptr)        (((ptr)->mflags1 & M1_PRINCE) != 0L)
  599. X! #ifdef HARD
  600. X  #define is_ndemon(ptr)        (is_demon(ptr) && \
  601. X               (((ptr)->mflags1 & (M1_LORD | M1_PRINCE)) == 0L))
  602. X! #else /* HARD */
  603. X  #define is_ndemon(ptr)        (ptr == &mons[PM_DEMON])
  604. X! #endif /* HARD */
  605. X  #define is_dlord(ptr)        (is_demon(ptr) && is_lord(ptr))
  606. X  #define is_dprince(ptr)        (is_demon(ptr) && is_prince(ptr))
  607. X  #define type_is_pname(ptr)    (((ptr)->mflags2 & M2_PNAME) != 0L)
  608. X--- 61,72 ----
  609. X  #define is_wanderer(ptr)    (((ptr)->mflags2 & M2_WANDER) != 0L)
  610. X  #define is_lord(ptr)        (((ptr)->mflags1 & M1_LORD) != 0L)
  611. X  #define is_prince(ptr)        (((ptr)->mflags1 & M1_PRINCE) != 0L)
  612. X! #ifdef INFERNO
  613. X  #define is_ndemon(ptr)        (is_demon(ptr) && \
  614. X               (((ptr)->mflags1 & (M1_LORD | M1_PRINCE)) == 0L))
  615. X! #else
  616. X  #define is_ndemon(ptr)        (ptr == &mons[PM_DEMON])
  617. X! #endif
  618. X  #define is_dlord(ptr)        (is_demon(ptr) && is_lord(ptr))
  619. X  #define is_dprince(ptr)        (is_demon(ptr) && is_prince(ptr))
  620. X  #define type_is_pname(ptr)    (((ptr)->mflags2 & M2_PNAME) != 0L)
  621. X*** include/Old/monflag.h    Sun Nov 19 15:17:26 1989
  622. X--- include/monflag.h    Fri Nov 10 17:01:08 1989
  623. X***************
  624. X*** 1,4 ****
  625. X! /*    SCCS Id: @(#)monflag.h    3.0    89/06/23
  626. X  /* NetHack may be freely redistributed.  See license for details. */
  627. X  /* Copyright (c) 1989 Mike Threepoint */
  628. X  
  629. X--- 1,4 ----
  630. X! /*    SCCS Id: @(#)monflag.h    3.0    89/11/09
  631. X  /* NetHack may be freely redistributed.  See license for details. */
  632. X  /* Copyright (c) 1989 Mike Threepoint */
  633. X  
  634. X***************
  635. X*** 18,55 ****
  636. X  #define MS_NEIGH    10    /* neighs, as an equine */
  637. X  #define MS_WAIL     11    /* wails, as a tortured soul */
  638. X  #define MS_GURGLE    12    /* gurgles, as liquid or through saliva */
  639. X  #define MS_SHRIEK    15    /* wakes up others */
  640. X! #define MS_IMITATE    18    /* imitates others (leocrotta) */
  641. X! #define MS_MUMBLE    19    /* says something or other */
  642. X  #define MS_SEDUCE    20    /* "Hello, sailor." (Nymphs) */
  643. X! #ifdef KOPS
  644. X! #define MS_ARREST    21    /* "Stop in the name of the law!" (Kops) */
  645. X! #endif
  646. X! #define MS_LAUGH    22    /* grins, smiles, giggles, and laughs */
  647. X! #define MS_JEER     23    /* berates you */
  648. X! #ifdef HARD
  649. X! #define MS_BRIBE    24    /* asks for money, or berates you */
  650. X  #endif
  651. X! #define MS_CUSS     25    /* really berates you (the Wiz) */
  652. X  #ifdef ORACLE
  653. X! #define MS_ORACLE    26    /* do a consultation */
  654. X  #endif
  655. X  #ifdef ALTARS
  656. X! #define MS_PRIEST    27    /* ask for contribution; do cleansing */
  657. X  #endif
  658. X- #define MS_GUARD    28    /* "Please drop that gold and follow me." */
  659. X- #define MS_NURSE    29    /* "Take off your shirt, please." */
  660. X- #define MS_SELL     30    /* demand payment, complain about shoplifters */
  661. X- #define MS_DJINNI    31    /* "Thank you for freeing me!" */
  662. X  #ifdef ARMY
  663. X! #define MS_SOLDIER    32    /* army expressions */
  664. X  #endif
  665. X- #define MS_VAMPIRE    33    /* vampiric seduction, Vlad's exclamations */
  666. X- #define MS_HUMANOID    34    /* generic traveling companion */
  667. X- #define MS_ORC        MS_GRUNT    /* other intelligent brutes */
  668. X  
  669. X- #define M1_BIG        0x00000001L
  670. X- #define M1_VSMALL    0x00000002L
  671. X  #define M1_FLY        0x00000004L
  672. X  #define M1_SWIM        0x00000008L
  673. X  #define M1_WALLWALK    0x00000010L
  674. X--- 18,54 ----
  675. X  #define MS_NEIGH    10    /* neighs, as an equine */
  676. X  #define MS_WAIL     11    /* wails, as a tortured soul */
  677. X  #define MS_GURGLE    12    /* gurgles, as liquid or through saliva */
  678. X+ #define MS_BURBLE    13    /* burbles (jabberwock) */
  679. X  #define MS_SHRIEK    15    /* wakes up others */
  680. X! #define MS_LAUGH    17    /* grins, smiles, giggles, and laughs */
  681. X! #define MS_MUMBLE    18    /* says something or other */
  682. X! #define MS_IMITATE    19    /* imitates others (leocrotta) */
  683. X  #define MS_SEDUCE    20    /* "Hello, sailor." (Nymphs) */
  684. X! #define MS_VAMPIRE    21    /* vampiric seduction, Vlad's exclamations */
  685. X! #define MS_ORC        MS_GRUNT    /* intelligent brutes */
  686. X! #define MS_JEER     24    /* berates you */
  687. X! #ifdef INFERNO
  688. X! #define MS_BRIBE    25    /* asks for money, or berates you */
  689. X  #endif
  690. X! #define MS_CUSS     26    /* really berates you (the Wiz) */
  691. X! #define MS_NURSE    27    /* "Take off your shirt, please." */
  692. X! #define MS_DJINNI    28    /* "Thank you for freeing me!" */
  693. X! #define MS_HUMANOID    29    /* generic traveling companion */
  694. X! #define MS_GUARD    30    /* "Please drop that gold and follow me." */
  695. X! #define MS_SELL     31    /* demand payment, complain about shoplifters */
  696. X  #ifdef ORACLE
  697. X! #define MS_ORACLE    32    /* do a consultation */
  698. X  #endif
  699. X  #ifdef ALTARS
  700. X! #define MS_PRIEST    33    /* ask for contribution; do cleansing */
  701. X! #endif
  702. X! #ifdef KOPS
  703. X! #define MS_ARREST    34    /* "Stop in the name of the law!" (Kops) */
  704. X  #endif
  705. X  #ifdef ARMY
  706. X! #define MS_SOLDIER    35    /* army expressions */
  707. X  #endif
  708. X  
  709. X  #define M1_FLY        0x00000004L
  710. X  #define M1_SWIM        0x00000008L
  711. X  #define M1_WALLWALK    0x00000010L
  712. X***************
  713. X*** 105,109 ****
  714. X--- 104,116 ----
  715. X  #define M2_OMNIVORE    0x00300000L    /* eats both */
  716. X  #define M2_THICK_HIDE    0x01000000L    /* has thick hide or scales */
  717. X  #define M2_AMORPHOUS    0x02000000L    /* fluid; can slide under doors */
  718. X+ 
  719. X+ #define MZ_TINY        0        /* < 2' */
  720. X+ #define MZ_SMALL     1        /* 2-4' */
  721. X+ #define MZ_MEDIUM    2        /* 4-7' */
  722. X+ #define MZ_HUMAN    MZ_MEDIUM    /* human-sized */
  723. X+ #define MZ_LARGE     3        /* 7-12' */
  724. X+ #define MZ_HUGE        4        /* 12-25' */
  725. X+ #define MZ_GIGANTIC    7        /* off the scale */
  726. X  
  727. X  #endif /* MONFLAG_H */
  728. X*** include/Old/monsym.h    Sun Nov 19 15:17:50 1989
  729. X--- include/monsym.h    Fri Nov 17 19:33:10 1989
  730. X***************
  731. X*** 1,4 ****
  732. X! /*    SCCS Id: @(#)makemon.c    3.0    88/04/11
  733. X  /*    Monster symbols and creation information rev 1.0 */
  734. X  /* NetHack may be freely redistributed.  See license for details. */
  735. X  
  736. X--- 1,4 ----
  737. X! /*    SCCS Id: @(#)monsym.h    3.0    89/11/08
  738. X  /*    Monster symbols and creation information rev 1.0 */
  739. X  /* NetHack may be freely redistributed.  See license for details. */
  740. X  
  741. X***************
  742. X*** 10,24 ****
  743. X  #define    S_COCKATRICE    'c'
  744. X  #define    S_DOG        'd'
  745. X  #define    S_EYE        'e'
  746. X! #define S_FELINE    'f'
  747. X  #define    S_GREMLIN    'g'
  748. X  #define    S_HUMANOID    'h'
  749. X  #define    S_IMP        'i'
  750. X  #define    S_JELLY        'j'
  751. X  #define    S_KOBOLD    'k'
  752. X! #define    S_LICH        'l'
  753. X  #define    S_MIMIC        'm'
  754. X! #define    S_NAGA        'n'
  755. X  #define    S_ORC        'o'
  756. X  #define    S_PIERCER    'p'
  757. X  #define    S_QUADRUPED    'q'
  758. X--- 10,24 ----
  759. X  #define    S_COCKATRICE    'c'
  760. X  #define    S_DOG        'd'
  761. X  #define    S_EYE        'e'
  762. X! #define    S_FELINE    'f'
  763. X  #define    S_GREMLIN    'g'
  764. X  #define    S_HUMANOID    'h'
  765. X  #define    S_IMP        'i'
  766. X  #define    S_JELLY        'j'
  767. X  #define    S_KOBOLD    'k'
  768. X! #define    S_LEPRECHAUN    'l'
  769. X  #define    S_MIMIC        'm'
  770. X! #define    S_NYMPH     'n'
  771. X  #define    S_ORC        'o'
  772. X  #define    S_PIERCER    'p'
  773. X  #define    S_QUADRUPED    'q'
  774. X***************
  775. X*** 29,35 ****
  776. X  #define    S_VORTEX    'v'
  777. X  #define    S_WORM        'w'
  778. X  #define    S_XAN        'x'
  779. X! #define S_YLIGHT    'y'
  780. X  #define    S_ZRUTY        'z'
  781. X  #define    S_APE        'A'
  782. X  #define    S_BAT        'B'
  783. X--- 29,35 ----
  784. X  #define    S_VORTEX    'v'
  785. X  #define    S_WORM        'w'
  786. X  #define    S_XAN        'x'
  787. X! #define    S_YLIGHT    'y'
  788. X  #define    S_ZRUTY        'z'
  789. X  #define    S_APE        'A'
  790. X  #define    S_BAT        'B'
  791. X***************
  792. X*** 42,50 ****
  793. X  #define    S_STALKER    'I'
  794. X  #define    S_JABBERWOCK    'J'
  795. X  #define    S_KOP        'K'
  796. X! #define    S_LEPRECHAUN    'L'
  797. X  #define    S_MUMMY        'M'
  798. X! #define    S_NYMPH        'N'
  799. X  #define    S_OGRE        'O'
  800. X  #define    S_PUDDING    'P'
  801. X  #define    S_QUANTMECH    'Q'
  802. X--- 42,50 ----
  803. X  #define    S_STALKER    'I'
  804. X  #define    S_JABBERWOCK    'J'
  805. X  #define    S_KOP        'K'
  806. X! #define    S_LICH        'L'
  807. X  #define    S_MUMMY        'M'
  808. X! #define    S_NAGA        'N'
  809. X  #define    S_OGRE        'O'
  810. X  #define    S_PUDDING    'P'
  811. X  #define    S_QUANTMECH    'Q'
  812. X***************
  813. X*** 59,68 ****
  814. X  #define    S_ZOMBIE    'Z'
  815. X  #define    S_HUMAN        '@'
  816. X  #define    S_GHOST        ' '
  817. X! #define S_GOLEM        '\''
  818. X  #define    S_DEMON        '&'
  819. X  #define    S_EEL        ';'
  820. X! #define    S_CHAMELEON    ':'
  821. X  
  822. X  #define    S_WORM_TAIL    '~'
  823. X  #define    S_MIMIC_DEF    ']'
  824. X--- 59,68 ----
  825. X  #define    S_ZOMBIE    'Z'
  826. X  #define    S_HUMAN        '@'
  827. X  #define    S_GHOST        ' '
  828. X! #define    S_GOLEM        '\''
  829. X  #define    S_DEMON        '&'
  830. X  #define    S_EEL        ';'
  831. X! #define    S_LIZARD    ':'
  832. X  
  833. X  #define    S_WORM_TAIL    '~'
  834. X  #define    S_MIMIC_DEF    ']'
  835. X*** include/Old/obj.h    Sun Nov 19 15:18:14 1989
  836. X--- include/obj.h    Sun Nov 12 10:39:23 1989
  837. X***************
  838. X*** 1,4 ****
  839. X! /*    SCCS Id: @(#)obj.h    3.0    88/04/12
  840. X  /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
  841. X  /* NetHack may be freely redistributed.  See license for details. */
  842. X  
  843. X--- 1,4 ----
  844. X! /*    SCCS Id: @(#)obj.h    3.0    89/11/10
  845. X  /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
  846. X  /* NetHack may be freely redistributed.  See license for details. */
  847. X  
  848. X***************
  849. X*** 22,27 ****
  850. X--- 22,28 ----
  851. X                     marks your eggs, spinach tins, key shapes
  852. X                     indicates statues have spellbooks inside
  853. X                     tells which fruit a fruit is
  854. X+                    marks diluted potions
  855. X                     special for uball and amulet %% BAH */
  856. X  #define N_LOX    10    /* # of key/lock shapes */
  857. X      char    olet;
  858. X***************
  859. X*** 31,39 ****
  860. X      Bitfield(oinvis,1);    /* not yet implemented */
  861. X      Bitfield(olocked,1);    /* object is locked */
  862. X  #define recharged olocked    /* recharged once */
  863. X! #define oeaten    olocked        /* partially eaten food */
  864. X      Bitfield(otrapped,1);    /* container is trapped */
  865. X! #define opoisoned otrapped    /* weapon has been coated with poison */
  866. X      Bitfield(odispl,1);
  867. X      Bitfield(known,1);    /* exact nature known */
  868. X      Bitfield(dknown,1);    /* color or text known */
  869. X--- 32,40 ----
  870. X      Bitfield(oinvis,1);    /* not yet implemented */
  871. X      Bitfield(olocked,1);    /* object is locked */
  872. X  #define recharged olocked    /* recharged once */
  873. X! #define orotten olocked     /* rotten food */
  874. X      Bitfield(otrapped,1);    /* container is trapped */
  875. X! #define opoisoned otrapped    /* object (weapon) is coated with poison */
  876. X      Bitfield(odispl,1);
  877. X      Bitfield(known,1);    /* exact nature known */
  878. X      Bitfield(dknown,1);    /* color or text known */
  879. X***************
  880. X*** 42,51 ****
  881. X      Bitfield(blessed,1);
  882. X      Bitfield(unpaid,1);    /* on some bill */
  883. X      Bitfield(rustfree,1);
  884. X! #define flameproof     rustfree/* for non-metal armor items */
  885. X! #define in_use         rustfree/* for magic items before useup items */
  886. X      Bitfield(no_charge,1);    /* if shk shouldn't charge for this */
  887. X      Bitfield(onamelth,6);
  888. X      long age;        /* creation date */
  889. X      long owornmask;
  890. X  
  891. X--- 43,54 ----
  892. X      Bitfield(blessed,1);
  893. X      Bitfield(unpaid,1);    /* on some bill */
  894. X      Bitfield(rustfree,1);
  895. X! #ifndef NO_SIGNAL
  896. X! # define in_use rustfree    /* for magic items before useup items */
  897. X! #endif
  898. X      Bitfield(no_charge,1);    /* if shk shouldn't charge for this */
  899. X      Bitfield(onamelth,6);
  900. X+     unsigned oeaten;    /* nutrition left in food, if partly eaten */
  901. X      long age;        /* creation date */
  902. X      long owornmask;
  903. X  
  904. X*** include/Old/objclass.h    Sun Nov 19 15:18:27 1989
  905. X--- include/objclass.h    Tue Nov  7 14:25:54 1989
  906. X***************
  907. X*** 47,54 ****
  908. X  #define WP_BOW        1
  909. X  #define WP_SLING    2
  910. X  #define WP_CROSSBOW    3
  911. X! #define    a_ac        oc_oc1    /* for armors - only used in ARM_BONUS */
  912. X! #define ARM_BONUS(obj)    ((10 - objects[obj->otyp].a_ac) + obj->spe)
  913. X  #define    a_can        oc_oc2    /* for armors */
  914. X  #define bits        oc_oc1    /* for wands */
  915. X                  /* wands */
  916. X--- 47,53 ----
  917. X  #define WP_BOW        1
  918. X  #define WP_SLING    2
  919. X  #define WP_CROSSBOW    3
  920. X! #define    a_ac        oc_oc1    /* for armors - used in ARM_BONUS in do.c */
  921. X  #define    a_can        oc_oc2    /* for armors */
  922. X  #define bits        oc_oc1    /* for wands */
  923. X                  /* wands */
  924. X***************
  925. X*** 66,72 ****
  926. X--- 65,80 ----
  927. X  #endif
  928. X  };
  929. X  
  930. X+ #if defined(MACOS) && !defined(MAKEDEFS_C)
  931. X+ struct small_objclass{
  932. X+     char *oc_name;        /* actual name */
  933. X+     char *oc_descr;        /* description when name unknown */
  934. X+ };
  935. X+ extern struct small_objclass sm_obj[];
  936. X+ extern struct objclass *objects;
  937. X+ #else
  938. X  extern struct objclass objects[];
  939. X+ #endif    /* MACOS && !MAKEDEFS_C */
  940. X  
  941. X  /* definitions of all object-symbols */
  942. X  
  943. X***************
  944. X*** 90,98 ****
  945. X  #ifdef SPELLS
  946. X  #define    SPBOOK_SYM    '+'    /* actually SPELL-book */
  947. X  #endif
  948. X- /* Other places with explicit knowledge of object symbols:
  949. X-  * pager.c:    if(q == '%') pline("%%    a piece of food");
  950. X-  */
  951. X  
  952. X  #ifdef TUTTI_FRUTTI
  953. X  struct fruit {
  954. X--- 98,103 ----
  955. X*** include/Old/patchlevel.h    Sun Nov 19 15:18:44 1989
  956. X--- include/patchlevel.h    Sun Nov 19 15:11:38 1989
  957. X***************
  958. X*** 48,55 ****
  959. X   *  add support for Macintosh OS (courtesy Johnny Lee)
  960. X   *  fix annoying dependency loop via new color.h file
  961. X   *  allow interruption while eating -- general handling of partially eaten food
  962. X!  *  smarter treatment of iron balls
  963. X   *  a handful of other bug fixes
  964. X   */
  965. X  
  966. X! #define PATCHLEVEL    5
  967. X--- 48,69 ----
  968. X   *  add support for Macintosh OS (courtesy Johnny Lee)
  969. X   *  fix annoying dependency loop via new color.h file
  970. X   *  allow interruption while eating -- general handling of partially eaten food
  971. X!  *  smarter treatment of iron balls (courtesy Kevin Darcy)
  972. X   *  a handful of other bug fixes
  973. X   */
  974. X  
  975. X! /*
  976. X!  *  Patch 6, November 19, 1989
  977. X!  *  add overlay support for MS-DOS (courtesy Pierre Martineau, Stephen
  978. X!  *    Spackman, and Norm Meluch)
  979. X!  *  refine Macintosh port
  980. X!  *  different door states show as different symbols (courtesy Ari Huttunen)
  981. X!  *  smarter drawbridges (courtesy Kevin Darcy)
  982. X!  *  add CLIPPING and split INFERNO off HARD
  983. X!  *  further refine eating code wrt picking up and resumption
  984. X!  *  make first few levels easier, by adding :x monsters and increasing initial
  985. X!  *    attribute points and hitting probability
  986. X!  *  teach '/' about configurable symbols
  987. X!  */
  988. X! 
  989. X! #define PATCHLEVEL    6
  990. X*** include/Old/pcconf.h    Sun Nov 19 15:18:57 1989
  991. X--- include/pcconf.h    Fri Nov 17 20:51:35 1989
  992. X***************
  993. X*** 10,22 ****
  994. X  /* #define OS2_CODEVIEW /* define for OS/2 CodeView debugger,
  995. X                 otherwise path searches may fail (TH) */
  996. X  
  997. X  /*
  998. X   *  The following options are configurable:
  999. X   */
  1000. X  
  1001. X  #define DGK            /* MS DOS specific enhancements by dgk */
  1002. X  
  1003. X! /* #define TERMLIB        /* enable use of termcap file /etc/termcap */
  1004. X              /* or ./termcap for MSDOS (SAC) */
  1005. X              /* compile and link in Fred Fish's termcap library, */
  1006. X              /* enclosed in TERMCAP.ARC, to use this */
  1007. X--- 10,25 ----
  1008. X  /* #define OS2_CODEVIEW /* define for OS/2 CodeView debugger,
  1009. X                 otherwise path searches may fail (TH) */
  1010. X  
  1011. X+ #ifndef TOS
  1012. X  /*
  1013. X   *  The following options are configurable:
  1014. X   */
  1015. X  
  1016. X+ #define OVERLAY         /* MS DOS overlay manager - PGM */
  1017. X+ 
  1018. X  #define DGK            /* MS DOS specific enhancements by dgk */
  1019. X  
  1020. X! #define TERMLIB         /* enable use of termcap file /etc/termcap */
  1021. X              /* or ./termcap for MSDOS (SAC) */
  1022. X              /* compile and link in Fred Fish's termcap library, */
  1023. X              /* enclosed in TERMCAP.ARC, to use this */
  1024. X***************
  1025. X*** 24,37 ****
  1026. X  
  1027. X  #define RANDOM        /* have Berkeley random(3) */
  1028. X  
  1029. X! #define PATHLEN        64    /* maximum pathlength */
  1030. X  #define FILENAME    80    /* maximum filename length (conservative) */
  1031. X  #ifndef MSDOS_H
  1032. X! #include "msdos.h"    /* contains necessary externs for [os_name].c */
  1033. X  #endif
  1034. X! #define glo(x)    name_file(lock, (int)x)    /* name_file used for bones */
  1035. X  extern const char *configfile;
  1036. X- /*#define SHELL            /* via exec of COMMAND.COM */
  1037. X  
  1038. X  #ifdef DGK
  1039. X  /*    Selectable DGK options:
  1040. X--- 27,43 ----
  1041. X  
  1042. X  #define RANDOM        /* have Berkeley random(3) */
  1043. X  
  1044. X! #define SHELL        /* via exec of COMMAND.COM */
  1045. X! 
  1046. X! #endif /* TOS */
  1047. X! 
  1048. X! #define PATHLEN     64    /* maximum pathlength */
  1049. X  #define FILENAME    80    /* maximum filename length (conservative) */
  1050. X  #ifndef MSDOS_H
  1051. X! #include "msdos.h"      /* contains necessary externs for [os_name].c */
  1052. X  #endif
  1053. X! #define glo(x)    name_file(lock, (int)x) /* name_file used for bones */
  1054. X  extern const char *configfile;
  1055. X  
  1056. X  #ifdef DGK
  1057. X  /*    Selectable DGK options:
  1058. X***************
  1059. X*** 41,47 ****
  1060. X  /*    Non-Selectable DGK options:
  1061. X   */
  1062. X  # define FROMPERM     1    /* for ramdisk use */
  1063. X! # define TOPERM         2    /* for ramdisk use */
  1064. X  
  1065. X  #endif /* DGK /**/
  1066. X  
  1067. X--- 47,53 ----
  1068. X  /*    Non-Selectable DGK options:
  1069. X   */
  1070. X  # define FROMPERM     1    /* for ramdisk use */
  1071. X! # define TOPERM      2    /* for ramdisk use */
  1072. X  
  1073. X  #endif /* DGK /**/
  1074. X  
  1075. X***************
  1076. X*** 67,75 ****
  1077. X  #endif /* RANDOM */
  1078. X  
  1079. X  #ifdef __TURBOC__
  1080. X! #define    alloc    malloc
  1081. X  # if __TURBOC__ < 0x0200 /* version 2.0 has signal() */
  1082. X! #define    signal    ssignal
  1083. X  # endif
  1084. X  /* rename the next two functions - they clash with the Turbo C library */
  1085. X  #define getdate getdate_
  1086. X--- 73,81 ----
  1087. X  #endif /* RANDOM */
  1088. X  
  1089. X  #ifdef __TURBOC__
  1090. X! #define alloc    malloc
  1091. X  # if __TURBOC__ < 0x0200 /* version 2.0 has signal() */
  1092. X! #define signal    ssignal
  1093. X  # endif
  1094. X  /* rename the next two functions - they clash with the Turbo C library */
  1095. X  #define getdate getdate_
  1096. X***************
  1097. X*** 77,88 ****
  1098. X  #endif
  1099. X  
  1100. X  #ifndef TOS
  1101. X! #define    FCMASK    0660    /* file creation mask */
  1102. X  #endif
  1103. X  
  1104. X  #include <fcntl.h>
  1105. X  
  1106. X! #define    exit    msexit        /* do chdir first */
  1107. X  
  1108. X  #ifndef REDO
  1109. X  #undef    Getchar
  1110. X--- 83,94 ----
  1111. X  #endif
  1112. X  
  1113. X  #ifndef TOS
  1114. X! #define FCMASK    0660    /* file creation mask */
  1115. X  #endif
  1116. X  
  1117. X  #include <fcntl.h>
  1118. X  
  1119. X! #define exit    msexit        /* do chdir first */
  1120. X  
  1121. X  #ifndef REDO
  1122. X  #undef    Getchar
  1123. X*** include/Old/permonst.h    Sun Nov 19 15:19:11 1989
  1124. X--- include/permonst.h    Fri Nov 10 17:01:27 1989
  1125. X***************
  1126. X*** 47,53 ****
  1127. X      unsigned    cwt,            /* weight of corpse */
  1128. X              cnutrit;        /* its nutritional value */
  1129. X      short        pxlth;            /* length of extension */
  1130. X!     uchar        msound;            /* noise it makes */
  1131. X      long        mflags1,        /* boolean bitflags */
  1132. X              mflags2;        /* more boolean bitflags */
  1133. X  # ifdef TEXTCOLOR
  1134. X--- 47,54 ----
  1135. X      unsigned    cwt,            /* weight of corpse */
  1136. X              cnutrit;        /* its nutritional value */
  1137. X      short        pxlth;            /* length of extension */
  1138. X!     uchar        msound;         /* noise it makes (6 bits) */
  1139. X!     uchar        msize;            /* physical size (3 bits) */
  1140. X      long        mflags1,        /* boolean bitflags */
  1141. X              mflags2;        /* more boolean bitflags */
  1142. X  # ifdef TEXTCOLOR
  1143. X*** include/Old/rm.h    Sun Nov 19 15:19:32 1989
  1144. X--- include/rm.h    Sun Nov  5 16:52:50 1989
  1145. X***************
  1146. X*** 10,17 ****
  1147. X--- 10,34 ----
  1148. X   * and generalized for NetHack's release 2 by Eric S. Raymond (eric@snark)
  1149. X   * building on Don G. Kneller's MS-DOS implementation. See options.c for
  1150. X   * the code that permits the user to set the contents of the symbol structure.
  1151. X+  *
  1152. X+  * The door representation was changed by Ari Huttunen(ahuttune@niksula.hut.fi)
  1153. X   */
  1154. X  
  1155. X+ /*
  1156. X+  * TLCORNER    TDWALL        TRCORNER
  1157. X+  * +-         -+-         -+
  1158. X+  * |           |            |
  1159. X+  *
  1160. X+  * TRWALL    CROSSWALL    TLWALL        HWALL
  1161. X+  * |           |           |
  1162. X+  * +-         -+-         -+        ---
  1163. X+  * |           |           |
  1164. X+  *
  1165. X+  * BLCORNER    TUWALL        BRCORNER    VWALL
  1166. X+  * |           |           |        |
  1167. X+  * +-         -+-         -+        |
  1168. X+  */
  1169. X+ 
  1170. X  /* Level location types */
  1171. X  #define STONE        0
  1172. X  #define HWALL        1
  1173. X***************
  1174. X*** 46,61 ****
  1175. X   * these types are subject to change.
  1176. X   * Instead, use one of the macros below.
  1177. X   */
  1178. X  #define IS_WALL(typ)    ((typ) && (typ) <= TRWALL)
  1179. X  #define IS_STWALL(typ)    ((typ) <= TRWALL)    /* STONE <= (typ) <= TRWALL */
  1180. X  #define IS_ROCK(typ)    ((typ) < POOL)        /* absolutely nonaccessible */
  1181. X  #define IS_DOOR(typ)    ((typ) == DOOR)
  1182. X  #define ACCESSIBLE(typ)    ((typ) >= DOOR)        /* good position */
  1183. X  #define IS_ROOM(typ)    ((typ) >= ROOM)        /* ROOM, STAIRS, furniture.. */
  1184. X  #define ZAP_POS(typ)    ((typ) >= POOL)
  1185. X  #define SPACE_POS(typ)    ((typ) > DOOR)
  1186. X- #define IS_CORNER(typ)    ((typ) >= TLCORNER && (typ) <= BRCORNER)
  1187. X- #define IS_T(typ)    ((typ) >= CRWALL && (typ) <= TRWALL)
  1188. X  #define IS_POOL(typ)    ((typ) >= POOL && (typ) <= DRAWBRIDGE_UP)
  1189. X  #define IS_THRONE(typ)    ((typ) == THRONE)
  1190. X  #define IS_FOUNTAIN(typ) ((typ) == FOUNTAIN)
  1191. X--- 63,78 ----
  1192. X   * these types are subject to change.
  1193. X   * Instead, use one of the macros below.
  1194. X   */
  1195. X+ #ifndef STUPID_CPP    /* otherwise these macros are functions in prisym.c */
  1196. X  #define IS_WALL(typ)    ((typ) && (typ) <= TRWALL)
  1197. X  #define IS_STWALL(typ)    ((typ) <= TRWALL)    /* STONE <= (typ) <= TRWALL */
  1198. X  #define IS_ROCK(typ)    ((typ) < POOL)        /* absolutely nonaccessible */
  1199. X  #define IS_DOOR(typ)    ((typ) == DOOR)
  1200. X+ #define IS_FLOOR(typ)    ((typ) == ROOM)
  1201. X  #define ACCESSIBLE(typ)    ((typ) >= DOOR)        /* good position */
  1202. X  #define IS_ROOM(typ)    ((typ) >= ROOM)        /* ROOM, STAIRS, furniture.. */
  1203. X  #define ZAP_POS(typ)    ((typ) >= POOL)
  1204. X  #define SPACE_POS(typ)    ((typ) > DOOR)
  1205. X  #define IS_POOL(typ)    ((typ) >= POOL && (typ) <= DRAWBRIDGE_UP)
  1206. X  #define IS_THRONE(typ)    ((typ) == THRONE)
  1207. X  #define IS_FOUNTAIN(typ) ((typ) == FOUNTAIN)
  1208. X***************
  1209. X*** 63,68 ****
  1210. X--- 80,86 ----
  1211. X  #define IS_ALTAR(typ)    ((typ) == ALTAR)
  1212. X  #define IS_DRAWBRIDGE(typ) ((typ) == DRAWBRIDGE_UP || (typ) == DRAWBRIDGE_DOWN)
  1213. X  #define IS_FURNITURE(typ) ((typ) >= STAIRS && (typ) <= ALTAR)
  1214. X+ #endif
  1215. X  
  1216. X  /*
  1217. X   * The level-map symbols may be compiled in or defined at initialization time
  1218. X***************
  1219. X*** 69,129 ****
  1220. X   */
  1221. X  
  1222. X  /* screen symbols for using character graphics. */
  1223. X! struct symbols {
  1224. X!     unsigned char stone, vwall, hwall, tlcorn, trcorn, blcorn, brcorn;
  1225. X!     unsigned char crwall, tuwall, tdwall, tlwall, trwall;
  1226. X!     unsigned char vbeam, hbeam, lslant, rslant;
  1227. X!     unsigned char door, room, corr, upstair, dnstair, trap, web;
  1228. X!     unsigned char pool;
  1229. X!     unsigned char fountain;
  1230. X!     unsigned char sink;
  1231. X!     unsigned char throne;
  1232. X!     unsigned char altar;
  1233. X!     unsigned char upladder, dnladder, dbvwall, dbhwall;
  1234. X! };
  1235. X! extern struct symbols showsyms;
  1236. X  #ifdef REINCARNATION
  1237. X! extern struct symbols savesyms;
  1238. X  #endif
  1239. X! extern const struct symbols defsyms;
  1240. X  
  1241. X! #define STONE_SYM    showsyms.stone
  1242. X! #define VWALL_SYM    showsyms.vwall
  1243. X! #define HWALL_SYM    showsyms.hwall
  1244. X! #define TLCORN_SYM    showsyms.tlcorn
  1245. X! #define TRCORN_SYM    showsyms.trcorn
  1246. X! #define BLCORN_SYM    showsyms.blcorn
  1247. X! #define BRCORN_SYM    showsyms.brcorn
  1248. X! #define CRWALL_SYM    showsyms.crwall
  1249. X! #define TUWALL_SYM    showsyms.tuwall
  1250. X! #define TDWALL_SYM    showsyms.tdwall
  1251. X! #define TLWALL_SYM    showsyms.tlwall
  1252. X! #define TRWALL_SYM    showsyms.trwall
  1253. X! #define VBEAM_SYM    showsyms.vbeam
  1254. X! #define HBEAM_SYM    showsyms.hbeam
  1255. X! #define LSLANT_SYM    showsyms.lslant
  1256. X! #define RSLANT_SYM    showsyms.rslant
  1257. X! #define DOOR_SYM    showsyms.door
  1258. X! #define ROOM_SYM    showsyms.room
  1259. X! #define    CORR_SYM    showsyms.corr
  1260. X! #define UP_SYM        showsyms.upstair
  1261. X! #define DN_SYM        showsyms.dnstair
  1262. X! #define TRAP_SYM    showsyms.trap
  1263. X! #define WEB_SYM        showsyms.web
  1264. X! #define    POOL_SYM    showsyms.pool
  1265. X! #define FOUNTAIN_SYM    showsyms.fountain
  1266. X! #define SINK_SYM    showsyms.sink
  1267. X! #define THRONE_SYM    showsyms.throne
  1268. X! #define ALTAR_SYM    showsyms.altar
  1269. X! #define UPLADDER_SYM    showsyms.upladder
  1270. X! #define DNLADDER_SYM    showsyms.dnladder
  1271. X! #define DB_VWALL_SYM    showsyms.dbvwall
  1272. X! #define DB_HWALL_SYM    showsyms.dbhwall
  1273. X  
  1274. X  #define    ERRCHAR    ']'
  1275. X  
  1276. X- #define MAXPCHARS    32    /* maximum number of mapped characters */
  1277. X- 
  1278. X  /*
  1279. X   * The 5 possible states of doors
  1280. X   */
  1281. X--- 87,177 ----
  1282. X   */
  1283. X  
  1284. X  /* screen symbols for using character graphics. */
  1285. X! #define S_stone        0
  1286. X! #define S_vwall        1
  1287. X! #define S_hwall        2
  1288. X! #define S_tlcorn    3
  1289. X! #define S_trcorn    4
  1290. X! #define S_blcorn    5
  1291. X! #define S_brcorn    6
  1292. X! #define S_crwall    7
  1293. X! #define S_tuwall    8
  1294. X! #define S_tdwall    9
  1295. X! #define S_tlwall    10
  1296. X! #define S_trwall    11
  1297. X! #define S_vbeam        12
  1298. X! #define S_hbeam        13
  1299. X! #define S_lslant    14
  1300. X! #define S_rslant    15
  1301. X! #define S_ndoor        16
  1302. X! #define S_vodoor    17
  1303. X! #define S_hodoor    18
  1304. X! #define S_cdoor        19
  1305. X! #define S_room        20
  1306. X! #define S_corr        21
  1307. X! #define S_upstair    22
  1308. X! #define S_dnstair    23
  1309. X! #define S_trap        24
  1310. X! #define S_web        25
  1311. X! #define S_pool        26
  1312. X! #define S_fountain    27
  1313. X! #define S_sink        28
  1314. X! #define S_throne    29
  1315. X! #define S_altar        30
  1316. X! #define S_upladder    31
  1317. X! #define S_dnladder    32
  1318. X! #define S_dbvwall    33
  1319. X! #define S_dbhwall    34
  1320. X! 
  1321. X! #define MAXPCHARS    35    /* maximum number of mapped characters */
  1322. X! 
  1323. X! typedef uchar symbol_array[MAXPCHARS];
  1324. X! 
  1325. X! extern symbol_array showsyms;
  1326. X! extern char *explainsyms[MAXPCHARS];  /* tells what the characters are */
  1327. X  #ifdef REINCARNATION
  1328. X! extern symbol_array savesyms;
  1329. X  #endif
  1330. X! extern symbol_array defsyms;
  1331. X  
  1332. X! #define STONE_SYM    showsyms[S_stone]
  1333. X! #define VWALL_SYM    showsyms[S_vwall]
  1334. X! #define HWALL_SYM    showsyms[S_hwall]
  1335. X! #define TLCORN_SYM    showsyms[S_tlcorn]
  1336. X! #define TRCORN_SYM    showsyms[S_trcorn]
  1337. X! #define BLCORN_SYM    showsyms[S_blcorn]
  1338. X! #define BRCORN_SYM    showsyms[S_brcorn]
  1339. X! #define CRWALL_SYM    showsyms[S_crwall]
  1340. X! #define TUWALL_SYM    showsyms[S_tuwall]
  1341. X! #define TDWALL_SYM    showsyms[S_tdwall]
  1342. X! #define TLWALL_SYM    showsyms[S_tlwall]
  1343. X! #define TRWALL_SYM    showsyms[S_trwall]
  1344. X! #define VBEAM_SYM    showsyms[S_vbeam]
  1345. X! #define HBEAM_SYM    showsyms[S_hbeam]
  1346. X! #define LSLANT_SYM    showsyms[S_lslant]
  1347. X! #define RSLANT_SYM    showsyms[S_rslant]
  1348. X! #define NO_DOOR_SYM    showsyms[S_ndoor]
  1349. X! #define H_OPEN_DOOR_SYM    showsyms[S_hodoor]
  1350. X! #define V_OPEN_DOOR_SYM    showsyms[S_vodoor]
  1351. X! #define CLOSED_DOOR_SYM    showsyms[S_cdoor]
  1352. X! #define ROOM_SYM    showsyms[S_room]
  1353. X! #define    CORR_SYM    showsyms[S_corr]
  1354. X! #define UP_SYM        showsyms[S_upstair]
  1355. X! #define DN_SYM        showsyms[S_dnstair]
  1356. X! #define TRAP_SYM    showsyms[S_trap]
  1357. X! #define WEB_SYM        showsyms[S_web]
  1358. X! #define    POOL_SYM    showsyms[S_pool]
  1359. X! #define FOUNTAIN_SYM    showsyms[S_fountain]
  1360. X! #define SINK_SYM    showsyms[S_sink]
  1361. X! #define THRONE_SYM    showsyms[S_throne]
  1362. X! #define ALTAR_SYM    showsyms[S_altar]
  1363. X! #define UPLADDER_SYM    showsyms[S_upladder]
  1364. X! #define DNLADDER_SYM    showsyms[S_dnladder]
  1365. X! #define DB_VWALL_SYM    showsyms[S_dbvwall]
  1366. X! #define DB_HWALL_SYM    showsyms[S_dbhwall]
  1367. X  
  1368. X  #define    ERRCHAR    ']'
  1369. X  
  1370. X  /*
  1371. X   * The 5 possible states of doors
  1372. X   */
  1373. X***************
  1374. X*** 166,172 ****
  1375. X   */
  1376. X  #define DB_MOAT        0
  1377. X  #define DB_FLOOR    8
  1378. X! #define DB_UNDER    8    /* mask for underneath */
  1379. X  
  1380. X  /* 
  1381. X   * Some walls may be non diggable.
  1382. X--- 214,221 ----
  1383. X   */
  1384. X  #define DB_MOAT        0
  1385. X  #define DB_FLOOR    8
  1386. X! #define DB_ICE        16
  1387. X! #define DB_UNDER    24    /* mask for underneath */
  1388. X  
  1389. X  /* 
  1390. X   * Some walls may be non diggable.
  1391. X***************
  1392. X*** 182,198 ****
  1393. X  #define LA_DOWN     2
  1394. X  
  1395. X  /*
  1396. X   * at() display character types, in order of precedence.
  1397. X   */
  1398. X  #define AT_APP        (uchar)0
  1399. X! /* 1-7 are specific overrides, see decl.h */
  1400. X  /* non-specific */
  1401. X! #define AT_ZAP        (uchar)8
  1402. X! #define AT_MON        (uchar)9
  1403. X  #define AT_U        AT_MON
  1404. X! #define AT_OBJ        (uchar)10
  1405. X  #define AT_GLD        AT_OBJ
  1406. X! #define AT_MAP        (uchar)11
  1407. X  
  1408. X  /*
  1409. X   * The structure describing a coordinate position.
  1410. X--- 231,258 ----
  1411. X  #define LA_DOWN     2
  1412. X  
  1413. X  /*
  1414. X+  * Room areas may be iced pools,
  1415. X+  */
  1416. X+ #define ICED_POOL    8
  1417. X+ #define ICED_MOAT    16
  1418. X+ 
  1419. X+ 
  1420. X+ /*
  1421. X   * at() display character types, in order of precedence.
  1422. X   */
  1423. X+ #ifndef MAXCOLORS
  1424. X+ #define MAXCOLORS    1
  1425. X+ #endif
  1426. X+  
  1427. X  #define AT_APP        (uchar)0
  1428. X! /* 1-MAXCOLORS are specific overrides, see color.h */
  1429. X  /* non-specific */
  1430. X! #define AT_ZAP        (uchar)(MAXCOLORS+1)
  1431. X! #define AT_MON        (uchar)(MAXCOLORS+2)
  1432. X  #define AT_U        AT_MON
  1433. X! #define AT_OBJ        (uchar)(MAXCOLORS+3)
  1434. X  #define AT_GLD        AT_OBJ
  1435. X! #define AT_MAP        (uchar)(MAXCOLORS+4)
  1436. X  
  1437. X  /*
  1438. X   * The structure describing a coordinate position.
  1439. X***************
  1440. X*** 213,218 ****
  1441. X--- 273,280 ----
  1442. X  #define diggable    doormask
  1443. X  #define ladder        doormask
  1444. X  #define drawbridgemask    doormask
  1445. X+ #define looted        doormask
  1446. X+ #define icedpool    doormask
  1447. X  
  1448. X  #ifdef MACOS
  1449. X  typedef struct
  1450. X*** include/Old/sp_lev.h    Sun Nov 19 15:19:49 1989
  1451. X--- include/sp_lev.h    Tue Nov 14 20:33:13 1989
  1452. X***************
  1453. X*** 43,49 ****
  1454. X  
  1455. X  typedef struct {
  1456. X      xchar x1, y1, x2, y2;
  1457. X! } dig;
  1458. X  
  1459. X  typedef struct {
  1460. X      xchar x, y, up;
  1461. X--- 43,49 ----
  1462. X  
  1463. X  typedef struct {
  1464. X      xchar x1, y1, x2, y2;
  1465. X! } digpos;
  1466. X  
  1467. X  typedef struct {
  1468. X      xchar x, y, up;
  1469. X***************
  1470. X*** 80,86 ****
  1471. X      char nwalk;
  1472. X      walk **walks;
  1473. X      char ndig;
  1474. X!     dig **digs;
  1475. X      char nlad;
  1476. X      lad **lads;
  1477. X  #ifdef ALTARS
  1478. X--- 80,86 ----
  1479. X      char nwalk;
  1480. X      walk **walks;
  1481. X      char ndig;
  1482. X!     digpos **digs;
  1483. X      char nlad;
  1484. X      lad **lads;
  1485. X  #ifdef ALTARS
  1486. X*** /dev/null    Sun Nov 19 15:20:27 1989
  1487. X--- include/termcap.h    Fri Oct 27 18:13:49 1989
  1488. X***************
  1489. X*** 0 ****
  1490. X--- 1,19 ----
  1491. X+ /*    SCCS Id: @(#)termcap.h    3.0    89/10/27
  1492. X+ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1989. */
  1493. X+ /* NetHack may be freely redistributed.  See license for details. */
  1494. X+ 
  1495. X+ /* common #defines for pri.c and termcap.c */
  1496. X+ 
  1497. X+ #ifndef MSDOS
  1498. X+ # ifndef MACOS
  1499. X+ #  define TERMLIB    /* include termcap code */
  1500. X+ # endif
  1501. X+ #endif
  1502. X+ 
  1503. X+ /* might display need graphics code? */
  1504. X+ #if !defined(AMIGA) && !defined(TOS) && !defined(MACOS)
  1505. X+ # if defined(TERMLIB) || defined(DECRAINBOW) || defined(OS2)
  1506. X+ #  define ASCIIGRAPH
  1507. X+    extern boolean IBMgraphics;      /* does terminal use IBM extended ASCII? */
  1508. X+ # endif
  1509. X+ #endif
  1510. X*** include/Old/tosconf.h    Sun Nov 19 15:20:38 1989
  1511. X--- include/tosconf.h    Fri Nov 17 20:51:35 1989
  1512. X***************
  1513. X*** 13,20 ****
  1514. X     tweaking); otherwise (e.g. GCC) don't do it. OLD_TOS corresponds
  1515. X     most closely to LATTICE C, I think */
  1516. X  
  1517. X! /* #define OLD_TOS */
  1518. X! /* #define NO_SIGNAL */
  1519. X  
  1520. X  #ifdef __GNUC__
  1521. X  #define FCMASK    0666
  1522. X--- 13,20 ----
  1523. X     tweaking); otherwise (e.g. GCC) don't do it. OLD_TOS corresponds
  1524. X     most closely to LATTICE C, I think */
  1525. X  
  1526. X! /* #define OLD_TOS         /* primitive C library */
  1527. X! /* #define NO_SIGNAL         /* compiler doesn't support signals */
  1528. X  
  1529. X  #ifdef __GNUC__
  1530. X  #define FCMASK    0666
  1531. X***************
  1532. X*** 34,45 ****
  1533. X  #endif
  1534. X  
  1535. X  /* configurable options */
  1536. X! #define DGK
  1537. X! #define RANDOM
  1538. X! #define SHELL
  1539. X! #define TEXTCOLOR
  1540. X! #define TERMLIB
  1541. X  
  1542. X  #ifndef MSDOS_H
  1543. X  #include "msdos.h"
  1544. X  #endif
  1545. X--- 34,49 ----
  1546. X  #endif
  1547. X  
  1548. X  /* configurable options */
  1549. X! #define DGK            /* lots of enhancements     */
  1550. X! #define RANDOM            /* improved random numbers     */
  1551. X! #define SHELL            /* allow spawning of shell     */
  1552. X! #define TEXTCOLOR        /* allow color             */
  1553. X! #define TERMLIB            /* use termcap            */
  1554. X  
  1555. X+ #ifndef TERMLIB
  1556. X+ #define ANSI_DEFAULT        /* use vt52 by default        */
  1557. X+ #endif
  1558. X+ 
  1559. X  #ifndef MSDOS_H
  1560. X  #include "msdos.h"
  1561. X  #endif
  1562. X***************
  1563. X*** 46,53 ****
  1564. X  #ifndef PCCONF_H
  1565. X  #include "pcconf.h"          /* remainder of stuff is same as the PC */
  1566. X  #endif
  1567. X! #ifdef TERMLIB
  1568. X! #undef ANSI_DEFAULT
  1569. X! #endif
  1570. X  #endif /* TOSCONF_H /* */
  1571. X  #endif /* TOS /* */
  1572. X--- 50,55 ----
  1573. X  #ifndef PCCONF_H
  1574. X  #include "pcconf.h"          /* remainder of stuff is same as the PC */
  1575. X  #endif
  1576. X! 
  1577. X  #endif /* TOSCONF_H /* */
  1578. X  #endif /* TOS /* */
  1579. X*** include/Old/tradstdc.h    Sun Nov 19 15:20:50 1989
  1580. X--- include/tradstdc.h    Fri Nov 17 20:51:18 1989
  1581. X***************
  1582. X*** 71,92 ****
  1583. X  #endif
  1584. X  #endif /* NEED_VARARGS */
  1585. X  
  1586. X! #if (defined(__STDC__) || defined(MSDOS)) && !defined(AMIGA)
  1587. X  
  1588. X  /* Used for robust ANSI parameter forward declarations:
  1589. X!  * int sprintf P((char *, const char *, ...));
  1590. X   *
  1591. X!  * P() is used to surround parameter list for functions with a fixed number
  1592. X!  * of arguments; V() is used for varying numbers of arguments.  Separate
  1593. X!  * macros are needed because ANSI will mix old-style declarations with
  1594. X!  * prototypes, except in the case of varargs.
  1595. X   */
  1596. X  
  1597. X! # define P(s)        s
  1598. X  # if defined(MSDOS) || defined(USE_STDARG)
  1599. X! #  define V(s)        s
  1600. X  # else
  1601. X! #  define V(s)        ()
  1602. X  # endif
  1603. X  
  1604. X  # ifdef __TURBOC__    /* Cover for stupid Turbo C */
  1605. X--- 71,92 ----
  1606. X  #endif
  1607. X  #endif /* NEED_VARARGS */
  1608. X  
  1609. X! #if (defined(__STDC__) || defined(MSDOS) || defined(THINKC4)) && !defined(AMIGA)
  1610. X  
  1611. X  /* Used for robust ANSI parameter forward declarations:
  1612. X!  * int VDECL(sprintf, (char *, const char *, ...));
  1613. X   *
  1614. X!  * FDECL() is used for functions with a fixed number of arguments;
  1615. X!  * VDECL() is used for functions with a variable number of arguments.
  1616. X!  * Separate macros are needed because ANSI will mix old-style declarations
  1617. X!  * with prototypes, except in the case of varargs.
  1618. X   */
  1619. X  
  1620. X! # define FDECL(f,p)    f p
  1621. X  # if defined(MSDOS) || defined(USE_STDARG)
  1622. X! #  define VDECL(f,p)    f p
  1623. X  # else
  1624. X! #  define VDECL(f,p)    f()
  1625. X  # endif
  1626. X  
  1627. X  # ifdef __TURBOC__    /* Cover for stupid Turbo C */
  1628. X***************
  1629. X*** 102,109 ****
  1630. X  
  1631. X  #else /* __STDC__ */    /* a "traditional" C  compiler */
  1632. X  
  1633. X! # define P(s)        ()
  1634. X! # define V(s)        ()
  1635. X  
  1636. X  # ifndef genericptr_t
  1637. X  #  ifdef AMIGA
  1638. X--- 102,109 ----
  1639. X  
  1640. X  #else /* __STDC__ */    /* a "traditional" C  compiler */
  1641. X  
  1642. X! # define FDECL(f,p)    f()
  1643. X! # define VDECL(f,p)    f()
  1644. X  
  1645. X  # ifndef genericptr_t
  1646. X  #  ifdef AMIGA
  1647. X*** /dev/null    Sun Nov 19 15:21:01 1989
  1648. X--- include/trampoli.h    Fri Nov 17 20:45:01 1989
  1649. X***************
  1650. X*** 0 ****
  1651. X--- 1,241 ----
  1652. X+ /*    SCCS Id: @(#)trampoli.h     3.0    89/11/15      */
  1653. X+ /* Copyright (c) 1989, by Norm Meluch and Stephen Spackman      */
  1654. X+ /* NetHack may be freely redistributed.  See license for details. */
  1655. X+ 
  1656. X+ #ifndef TRAMPOLI_H
  1657. X+ #define TRAMPOLI_H
  1658. X+ 
  1659. X+ #ifdef OVERLAY
  1660. X+ 
  1661. X+ /* ### apply.c ### */
  1662. X+ #define dig()     dig_()
  1663. X+ #define doapply() doapply_()
  1664. X+ #define dojump()  dojump_()
  1665. X+ #define dorub()   dorub_()
  1666. X+ 
  1667. X+ 
  1668. X+ /* ### cmd.c ### */
  1669. X+ #define doextcmd()         doextcmd_()
  1670. X+ #define doextlist()        doextlist_()
  1671. X+ #ifdef POLYSELF
  1672. X+ #define domonability()     domonability_()
  1673. X+ #endif /* POLYSELF */
  1674. X+ #define timed_occupation() timed_occupation_()
  1675. X+ #if defined(WIZARD) || defined(EXPLORE_MODE)
  1676. X+ #define wiz_attributes()   wiz_attributes_()
  1677. X+ #endif
  1678. X+ #ifdef WIZARD
  1679. X+ #define wiz_detect()       wiz_detect_()
  1680. X+ #define wiz_genesis()      wiz_genesis_()
  1681. X+ #define wiz_identify()     wiz_identify_()
  1682. X+ #define wiz_level_tele()   wiz_level_tele_()
  1683. X+ #define wiz_map()          wiz_map_()
  1684. X+ #define wiz_where()        wiz_where_()
  1685. X+ #define wiz_wish()         wiz_wish_()
  1686. X+ #endif
  1687. X+ 
  1688. X+ 
  1689. X+ /* ### do.c ### */
  1690. X+ #define doddrop()  doddrop_()
  1691. X+ #define dodown()   dodown_()
  1692. X+ #define dodrop()   dodrop_()
  1693. X+ #define donull()   donull_()
  1694. X+ #define doup()     doup_()
  1695. X+ #define dowipe()   dowipe_()
  1696. X+ #define drop(x)    drop_(x)
  1697. X+ #define wipeoff()  wipeoff_()
  1698. X+ 
  1699. X+ 
  1700. X+ /* ### do_name.c ### */
  1701. X+ #define ddocall()  ddocall_()
  1702. X+ #define do_mname() do_mname_()
  1703. X+ 
  1704. X+ 
  1705. X+ /* ### do_wear.c ### */
  1706. X+ #define Armor_off()   Armor_off_()
  1707. X+ #define Boots_off()   Boots_off_()
  1708. X+ #define Gloves_off()  Gloves_off_()
  1709. X+ #define Helmet_off()  Helmet_off_()
  1710. X+ #define Armor_on()    Armor_on_()
  1711. X+ #define Boots_on()    Boots_on_()
  1712. X+ #define Gloves_on()   Gloves_on_()
  1713. X+ #define Helmet_on()   Helmet_on_()
  1714. X+ #define doddoremarm() doddoremarm_()
  1715. X+ #define doputon()     doputon_()
  1716. X+ #define doremring()   doremring_()
  1717. X+ #define dotakeoff()   dotakeoff_()
  1718. X+ #define dowear()      dowear_()
  1719. X+ #define select_off(x) select_off_(x)
  1720. X+ #define take_off()    take_off_()
  1721. X+ 
  1722. X+ 
  1723. X+ /* ### dokick.c ### */
  1724. X+ #define dokick() dokick_()
  1725. X+ 
  1726. X+ 
  1727. X+ /* ### dothrow.c ### */
  1728. X+ #define dothrow() dothrow_()
  1729. X+ 
  1730. X+ 
  1731. X+ /* ### eat.c ### */
  1732. X+ #define Hear_again() Hear_again_()
  1733. X+ #define Meatdone()   Meatdone_()
  1734. X+ #define doeat()      doeat_()
  1735. X+ #define eatfood()    eatfood_()
  1736. X+ #define opentin()    opentin_()
  1737. X+ #define unfaint()    unfaint_()
  1738. X+ 
  1739. X+ 
  1740. X+ /* ### end.c ### */
  1741. X+ #define done2() done2_()
  1742. X+ 
  1743. X+ 
  1744. X+ /* ### engrave.c ### */
  1745. X+ #define doengrave() doengrave_()
  1746. X+ 
  1747. X+ 
  1748. X+ /* ### hack.c ### */
  1749. X+ #define dopickup() dopickup_()
  1750. X+ #define identify(x) identify_(x)
  1751. X+ 
  1752. X+ 
  1753. X+ /* ### invent.c ### */
  1754. X+ #define ckunpaid(x)  ckunpaid_(x)
  1755. X+ #define ddoinv()     ddoinv_()
  1756. X+ #define dolook()     dolook_()
  1757. X+ #define dopramulet() dopramulet_()
  1758. X+ #define doprarm()    doprarm_()
  1759. X+ #define doprgold()   doprgold_()
  1760. X+ #define doprring()   doprring_()
  1761. X+ #define doprtool()   doprtool_()
  1762. X+ #define doprwep()    doprwep_()
  1763. X+ #define dotypeinv()  dotypeinv_()
  1764. X+ 
  1765. X+ 
  1766. X+ /* ### ioctl.c ### */
  1767. X+ /*
  1768. X+ #ifdef UNIX
  1769. X+ #ifdef SUSPEND
  1770. X+ #define dosuspend() dosuspend_()
  1771. X+ #endif
  1772. X+ #endif
  1773. X+ */
  1774. X+ 
  1775. X+ 
  1776. X+ /* ### lock.c ### */
  1777. X+ #define doclose()   doclose_()
  1778. X+ #define doforce()   doforce_()
  1779. X+ #define doopen()    doopen_()
  1780. X+ #define forcelock() forcelock_()
  1781. X+ #define picklock()  picklock_()
  1782. X+ 
  1783. X+ 
  1784. X+ /* ### o_init.c ### */
  1785. X+ #define dodiscovered() dodiscovered_()
  1786. X+ 
  1787. X+ 
  1788. X+ /* ### objnam.c ### */
  1789. X+ #define doname(x)   doname_(x)
  1790. X+ #define xname(x)    xname_(x)
  1791. X+ 
  1792. X+ /* ### options.c ### */
  1793. X+ #define doset()          doset_()
  1794. X+ #define dotogglepickup() dotogglepickup_()
  1795. X+ 
  1796. X+ 
  1797. X+ /* ### pager.c ### */
  1798. X+ #define dohelp()     dohelp_()
  1799. X+ #define dohistory()  dohistory_()
  1800. X+ #ifdef UNIX
  1801. X+ #ifdef SHELL
  1802. X+ #define dosh()       dosh_()
  1803. X+ #endif
  1804. X+ #endif
  1805. X+ #define dowhatdoes() dowhatdoes_()
  1806. X+ #define dowhatis()   dowhatis_()
  1807. X+ 
  1808. X+ 
  1809. X+ /* ### pickup.c ### */
  1810. X+ #define ck_bag()         ck_bag_()
  1811. X+ #define ck_container(x)  ck_container_(x)
  1812. X+ #define doloot()         doloot_()
  1813. X+ #define in_container(x)  in_container_(x)
  1814. X+ #define out_container(x) out_container_(x)
  1815. X+ 
  1816. X+ 
  1817. X+ /* ### potion.c ### */
  1818. X+ #define dodrink() dodrink_()
  1819. X+ #define dodip()   dodip_()
  1820. X+ 
  1821. X+ 
  1822. X+ /* ### pray.c ### */
  1823. X+ #ifdef THEOLOGY
  1824. X+ #define dopray()      dopray_()
  1825. X+ #define dosacrifice() dosacrifice_()
  1826. X+ #endif /* THEOLOGY */
  1827. X+ #define doturn()      doturn_()
  1828. X+ 
  1829. X+ 
  1830. X+ /* ### pri.c ### */
  1831. X+ #define doredraw() doredraw_()
  1832. X+ 
  1833. X+ 
  1834. X+ /* ### read.c ### */
  1835. X+ #define doread() doread_()
  1836. X+ 
  1837. X+ 
  1838. X+ /* ### save.c ### */
  1839. X+ #define dosave() dosave_()
  1840. X+ 
  1841. X+ 
  1842. X+ /* ### search.c ### */
  1843. X+ #define doidtrap() doidtrap_()
  1844. X+ #define dosearch() dosearch_()
  1845. X+ 
  1846. X+ 
  1847. X+ /* ### shk.c ### */
  1848. X+ #define dopay() dopay_()
  1849. X+ 
  1850. X+ 
  1851. X+ /* ### sit.c ### */
  1852. X+ #define dosit() dosit_()
  1853. X+ 
  1854. X+ 
  1855. X+ /* ### sounds.c ### */
  1856. X+ #define dotalk() dotalk_()
  1857. X+ 
  1858. X+ 
  1859. X+ /* ### spell.c ### */
  1860. X+ #ifdef SPELLS
  1861. X+ #define learn()    learn_()
  1862. X+ #define docast()   docast_()
  1863. X+ #define dovspell() dovspell_()
  1864. X+ #endif
  1865. X+ 
  1866. X+ 
  1867. X+ /* ### steal.c ### */
  1868. X+ #define stealarm() stealarm_()
  1869. X+ 
  1870. X+ 
  1871. X+ /* ### topl.c ### */
  1872. X+ #define doredotopl() doredotopl_()
  1873. X+ 
  1874. X+ /* ### trap.c ### */
  1875. X+ #define dotele()     dotele_()
  1876. X+ #define dountrap()   dountrap_()
  1877. X+ #define float_down() float_down_()
  1878. X+ 
  1879. X+ /* ### version.c ### */
  1880. X+ #define doversion() doversion_()
  1881. X+ 
  1882. X+ /* ### wield.c ### */
  1883. X+ #define dowield() dowield_()
  1884. X+ 
  1885. X+ /* ### zap.c ### */
  1886. X+ #define bhitm(x, y) bhitm_(x, y)
  1887. X+ #define bhito(x, y) bhito_(x, y)
  1888. X+ #define dozap()     dozap_()
  1889. X+ 
  1890. X+ #endif /* OVERLAY */
  1891. X+ 
  1892. X+ #endif /* TRAMPOLI_H */
  1893. END_OF_FILE
  1894. if test 53394 -ne `wc -c <'patches06b'`; then
  1895.     echo shar: \"'patches06b'\" unpacked with wrong size!
  1896. fi
  1897. # end of 'patches06b'
  1898. fi
  1899. echo shar: End of archive 1 \(of 15\).
  1900. cp /dev/null ark1isdone
  1901. MISSING=""
  1902. for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ; do
  1903.     if test ! -f ark${I}isdone ; then
  1904.     MISSING="${MISSING} ${I}"
  1905.     fi
  1906. done
  1907. if test "${MISSING}" = "" ; then
  1908.     echo You have unpacked all 15 archives.
  1909.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  1910. else
  1911.     echo You still need to unpack the following archives:
  1912.     echo "        " ${MISSING}
  1913. fi
  1914. ##  End of shell archive.
  1915. exit 0
  1916.