home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / games / volume7 / nethack3 / patch7t / patch7.16
Text File  |  1990-02-26  |  53KB  |  1,726 lines

  1. *** include/Old/artifact.h    Mon Feb 19 22:05:53 1990
  2. --- include/artifact.h    Tue Jan 16 18:10:46 1990
  3. ***************
  4. *** 26,32 ****
  5.   
  6.   struct artifact {
  7.       unsigned    otyp;
  8. !     char        *name;
  9.       unsigned    spfx;
  10.       unsigned long mtype;    /* monster type, symbol, or flag */
  11.       struct attack attk, defn;
  12. --- 26,32 ----
  13.   
  14.   struct artifact {
  15.       unsigned    otyp;
  16. !     const char  *name;
  17.       unsigned    spfx;
  18.       unsigned long mtype;    /* monster type, symbol, or flag */
  19.       struct attack attk, defn;
  20. *** include/Old/color.h    Mon Feb 19 22:06:15 1990
  21. --- include/color.h    Thu Feb  8 17:39:31 1990
  22. ***************
  23. *** 12,26 ****
  24.   #define BLUE        4
  25.   #define MAGENTA     5
  26.   #define CYAN        6
  27. - #define WHITE        7
  28.   #define GRAY        7    /* lo-intensity white */
  29.   #define BRIGHT        8
  30.   #define ORANGE_COLORED    9
  31.   #define YELLOW        11
  32.   #define MAXCOLORS    16    /* 8 basic + 8 bright */
  33.   
  34.   /* these can be configured */
  35. - #define HI_MON        RED + BRIGHT    /* default flesh - red slaps! */
  36.   #define HI_OBJ        MAGENTA
  37.   #define HI_METAL    CYAN
  38.   #define HI_COPPER    YELLOW
  39. --- 12,25 ----
  40.   #define BLUE        4
  41.   #define MAGENTA     5
  42.   #define CYAN        6
  43.   #define GRAY        7    /* lo-intensity white */
  44.   #define BRIGHT        8
  45.   #define ORANGE_COLORED    9
  46.   #define YELLOW        11
  47. + #define WHITE        15
  48.   #define MAXCOLORS    16    /* 8 basic + 8 bright */
  49.   
  50.   /* these can be configured */
  51.   #define HI_OBJ        MAGENTA
  52.   #define HI_METAL    CYAN
  53.   #define HI_COPPER    YELLOW
  54. ***************
  55. *** 33,38 ****
  56.   #define HI_PAPER    WHITE
  57.   #define HI_GLASS    CYAN + BRIGHT
  58.   #define HI_MINERAL    GRAY
  59. ! #define HI_ZAP        BLUE + BRIGHT    /* blue zaps! */
  60.   
  61.   #endif /* COLOR_H */
  62. --- 32,37 ----
  63.   #define HI_PAPER    WHITE
  64.   #define HI_GLASS    CYAN + BRIGHT
  65.   #define HI_MINERAL    GRAY
  66. ! #define HI_ZAP        BLUE + BRIGHT
  67.   
  68.   #endif /* COLOR_H */
  69. *** include/Old/config.h    Mon Feb 19 22:06:27 1990
  70. --- include/config.h    Mon Feb 19 18:16:29 1990
  71. ***************
  72. *** 20,26 ****
  73.   #define MSDOS        /* define for MS-DOS (in case compiler doesn't) */
  74.   #else
  75.   /* #define MSDOS    /* define for MS-DOS and most other micros */
  76. ! /* #define AMIGA    /* define for Commodore-Amiga */
  77.   /* #define TOS        /* define for Atari 1040ST */
  78.   
  79.   /* #define STUPID    /* avoid some complicated expressions if
  80. --- 20,34 ----
  81.   #define MSDOS        /* define for MS-DOS (in case compiler doesn't) */
  82.   #else
  83.   /* #define MSDOS    /* define for MS-DOS and most other micros */
  84. !             /* DO NOT define for AMIGA - MSDOS will be
  85. !              * automatically defined at the right place. */
  86. ! # ifdef AZTEC_C     /* Manx 3.6 auto-defines this */
  87. ! #  ifdef MCH_AMIGA    /* Manx 3.6 auto-defines this for AMIGA */
  88. ! #   ifndef AMIGA
  89. ! #define AMIGA        /* define for Commodore-Amiga */
  90. ! #   endif        /* (Lattice auto-defines AMIGA) */
  91. ! #  endif
  92. ! # endif
  93.   /* #define TOS        /* define for Atari 1040ST */
  94.   
  95.   /* #define STUPID    /* avoid some complicated expressions if
  96. ***************
  97. *** 34,53 ****
  98.                * library in the makefile */
  99.   /* #define MINIMAL_TERM    /* if a terminal handles highlighting or tabs poorly,
  100.                  try this define, used in pager.c and termcap.c */
  101. ! /* #define MACOS 1     /* define for Apple Macintosh */
  102.   #endif
  103.   
  104.   #ifdef MACOS
  105. ! #define KR1ED 1        /* for compilers which can't handle defined() */
  106. ! #define LSC 1        /* for the Lighspeed 3.01p4 C compiler on the Mac */
  107. ! /* #define AZTEC 1    /* for the Manx Aztec C 3.6c compiler */
  108. ! /* #define THINKC4    /* for the Think C 4 compiler */
  109.   #define NEED_VARARGS    /* if you're using precompiled headers */
  110. ! #define SMALLDATA 1    /* for Mac compilers with 32K global data limit */
  111. !  
  112. ! # ifdef KR1ED
  113. ! #define defined(x) (x<<1) /* Lightspeed & Aztec can't handle defined() yet */
  114.   # endif
  115.   #endif
  116.   
  117.   
  118. --- 42,88 ----
  119.                * library in the makefile */
  120.   /* #define MINIMAL_TERM    /* if a terminal handles highlighting or tabs poorly,
  121.                  try this define, used in pager.c and termcap.c */
  122. ! /* #define MACOS     /* define for Apple Macintosh */
  123. ! #endif
  124. ! #ifdef AMIGA
  125. ! #define NEED_VARARGS
  126. ! # ifdef AZTEC_C
  127. ! #  define KR1ED        /* Aztec 3.6 needs extra help for defined() */
  128. ! # endif
  129.   #endif
  130.   
  131.   #ifdef MACOS
  132. ! /* #define KR1ED    /* for compilers which can't handle defined() */
  133. !             /* Lightspeed & Aztec can't handle defined() yet */
  134. ! /* #define LSC        /* for the Lightspeed 3.01p4 C compiler on the Mac */
  135. ! /* #define AZTEC    /* for the Manx Aztec C 3.6c compiler */
  136. ! #define THINKC4    /* for the Think C 4 compiler */
  137. ! /* #define MAKEDEFS_C    /* uncomment this ONLY while compiling makedefs */
  138. ! /* #define CUSTOM_IO    /* uncomment only while compiling Nethack */
  139. ! # ifndef MAKEDEFS_C
  140. ! #  ifndef NEED_VARARGS
  141.   #define NEED_VARARGS    /* if you're using precompiled headers */
  142. ! #  endif
  143.   # endif
  144. + #define SMALLDATA    /* for Mac compilers with 32K global data limit */
  145. + #endif
  146. + #ifdef KR1ED        /* For compilers which cannot handle defined() */
  147. + #define defined(x) (-x-1 != -1)
  148. + /* Because:
  149. +  * #define FOO => FOO={} => defined( ) => (-1 != - - 1) => 1
  150. +  * #define FOO 1 or on command-line -DFOO
  151. +  *      => defined(1) => (-1 != - 1 - 1) => 1
  152. +  * if FOO isn't defined, FOO=0. But some compilers default to 0 instead of 1
  153. +  * for -DFOO, oh well.
  154. +  *      => defined(0) => (-1 != - 0 - 1) => 0
  155. +  *
  156. +  * But:
  157. +  * defined("") => (-1 != - "" - 1)
  158. +  *   [which is an unavoidable catastrophe.]
  159. +  */
  160.   #endif
  161.   
  162.   
  163. ***************
  164. *** 63,69 ****
  165.   # ifndef KR1ED
  166.   #define WIZARD  "izchak" /* the person allowed to use the -D option */
  167.   # else
  168. ! #define WIZARD 1
  169.   #define WIZARD_NAME "johnny"
  170.   # endif
  171.   #endif
  172. --- 98,104 ----
  173.   # ifndef KR1ED
  174.   #define WIZARD  "izchak" /* the person allowed to use the -D option */
  175.   # else
  176. ! #define WIZARD
  177.   #define WIZARD_NAME "johnny"
  178.   # endif
  179.   #endif
  180. ***************
  181. *** 78,90 ****
  182.    *    smaller bones/level/save files, but require additional code and time.
  183.    */
  184.   
  185.   #define COMPRESS "/usr/local/compress"  /* path name for 'compress' */
  186. ! #ifndef COMPRESS
  187.   #define ZEROCOMP    /* Use only if COMPRESS is not used -- Olaf Seibert */
  188.   #endif
  189.   
  190.   #define CHDIR        /* delete if no chdir() available */
  191.   
  192.   #ifdef CHDIR
  193.   /*
  194. --- 113,128 ----
  195.    *    smaller bones/level/save files, but require additional code and time.
  196.    */
  197.   
  198. + #ifndef MACOS
  199.   #define COMPRESS "/usr/local/compress"  /* path name for 'compress' */
  200. ! # ifndef COMPRESS
  201.   #define ZEROCOMP    /* Use only if COMPRESS is not used -- Olaf Seibert */
  202. + # endif
  203.   #endif
  204.   
  205. ! #ifndef MACOS
  206.   #define CHDIR        /* delete if no chdir() available */
  207. + #endif
  208.   
  209.   #ifdef CHDIR
  210.   /*
  211. ***************
  212. *** 173,218 ****
  213.    */ 
  214.   
  215.   /* game features */
  216. ! #define POLYSELF      1 /* Polymorph self code by Ken Arromdee */
  217. ! #define THEOLOGY      1 /* Smarter gods - The Unknown Hacker */
  218. ! #define SOUNDS        1 /* Add more life to the dungeon */
  219. ! #define KICK          1 /* Allow kicking things besides doors -Izchak Miller */
  220.   /* dungeon features */
  221. ! #define THRONES       1 /* Thrones and Courts by M. Stephenson */
  222. ! #define FOUNTAINS     1 /* Fountain code by SRT (+ GAN + EB) */
  223. ! #define SINKS         1 /* Kitchen sinks - Janet Walz */
  224. ! #define ALTARS        1 /* Sacrifice sites - Jean-Christophe Collet */
  225.   /* dungeon levels */
  226. ! #define WALLIFIED_MAZE 1 /* Fancy mazes - Jean-Christophe Collet */
  227. ! #define REINCARNATION 1 /* Rogue-like levels */
  228. ! #define STRONGHOLD    1 /* Challenging special levels - Jean-Christophe Collet*/
  229.   /* monsters & objects */
  230. ! #define ORACLE        1 /* Include another source of information */
  231. ! #define MEDUSA        1 /* Mirrors and the Medusa by Richard P. Hughey */
  232. ! #define KOPS          1 /* Keystone Kops by Scott R. Turner */
  233. ! #define ARMY          1 /* Soldiers, barracks by Steve Creps */
  234. ! #define WORM          1 /* Long worms */
  235. ! #define GOLEMS        1 /* Golems, by KAA */
  236. ! #define INFERNO       1 /* Demons & Demonlords */
  237.   #ifdef INFERNO
  238. ! #define SEDUCE        1 /* Succubi/incubi additions, by KAA, suggested by IM */
  239.   #endif
  240. ! #define TOLKIEN       1 /* More varieties of objects and monsters */
  241. ! #define PROBING       1 /* Wand of probing code by Gil Neiger */
  242. ! #define WALKIES       1 /* Leash code by M. Stephenson */
  243. ! #define SHIRT         1 /* Hawaiian shirt code by Steve Linhart */
  244. ! #define MUSIC         1 /* Musical instruments - Jean-Christophe Collet */
  245. ! #define TUTTI_FRUTTI  1 /* Fruits as in Rogue, but which work... -KAA */
  246. ! #define SPELLS        1 /* Spell casting by M. Stephenson */
  247. ! #define NAMED_ITEMS   1 /* Special named items handling */
  248.   /* difficulty */
  249. ! #define ELBERETH      1 /* Allow for disabling the E word - Mike 3point */
  250. ! #define EXPLORE_MODE  1 /* Allow non-scoring play with additional powers */
  251. ! #define HARD          1 /* Enhanced wizard code by M. Stephenson */
  252.   /* I/O */
  253. ! #define REDO          1 /* support for redoing last command - DGK */
  254. ! #define COM_COMPL     1 /* Command line completion by John S. Bien */
  255. ! #define CLIPPING      1 /* allow smaller screens -- ERS */
  256.   
  257.   #ifdef REDO
  258.   #define DOAGAIN '\001'        /* The "redo" key used in tty.c and cmd.c */
  259. --- 211,258 ----
  260.    */ 
  261.   
  262.   /* game features */
  263. ! #define POLYSELF      /* Polymorph self code by Ken Arromdee */
  264. ! #define THEOLOGY      /* Smarter gods - The Unknown Hacker */
  265. ! #define SOUNDS        /* Add more life to the dungeon */
  266. ! #define KICK          /* Allow kicking things besides doors -Izchak Miller */
  267.   /* dungeon features */
  268. ! #define THRONES       /* Thrones and Courts by M. Stephenson */
  269. ! #define FOUNTAINS     /* Fountain code by SRT (+ GAN + EB) */
  270. ! #define SINKS         /* Kitchen sinks - Janet Walz */
  271. ! #define ALTARS        /* Sacrifice sites - Jean-Christophe Collet */
  272.   /* dungeon levels */
  273. ! #define WALLIFIED_MAZE /* Fancy mazes - Jean-Christophe Collet */
  274. ! #define REINCARNATION /* Rogue-like levels */
  275. ! #define STRONGHOLD    /* Challenging special levels - Jean-Christophe Collet*/
  276.   /* monsters & objects */
  277. ! #define ORACLE        /* Include another source of information */
  278. ! #define MEDUSA        /* Mirrors and the Medusa by Richard P. Hughey */
  279. ! #define KOPS          /* Keystone Kops by Scott R. Turner */
  280. ! #define ARMY          /* Soldiers, barracks by Steve Creps */
  281. ! #define WORM          /* Long worms */
  282. ! #define GOLEMS        /* Golems, by KAA */
  283. ! #define INFERNO       /* Demons & Demonlords */
  284.   #ifdef INFERNO
  285. ! #define SEDUCE        /* Succubi/incubi additions, by KAA, suggested by IM */
  286.   #endif
  287. ! #define TOLKIEN       /* More varieties of objects and monsters */
  288. ! #define PROBING       /* Wand of probing code by Gil Neiger */
  289. ! #define WALKIES       /* Leash code by M. Stephenson */
  290. ! #define SHIRT         /* Hawaiian shirt code by Steve Linhart */
  291. ! #define MUSIC         /* Musical instruments - Jean-Christophe Collet */
  292. ! #define TUTTI_FRUTTI  /* Fruits as in Rogue, but which work... -KAA */
  293. ! #define SPELLS        /* Spell casting by M. Stephenson */
  294. ! #define NAMED_ITEMS   /* Special named items handling */
  295.   /* difficulty */
  296. ! #define ELBERETH      /* Allow for disabling the E word - Mike 3point */
  297. ! #define EXPLORE_MODE  /* Allow non-scoring play with additional powers */
  298. ! #define HARD          /* Enhanced wizard code by M. Stephenson */
  299.   /* I/O */
  300. ! #define REDO          /* support for redoing last command - DGK */
  301. ! #define COM_COMPL     /* Command line completion by John S. Bien */
  302. ! #ifndef AMIGA
  303. ! #define CLIPPING      /* allow smaller screens -- ERS */
  304. ! #endif
  305.   
  306.   #ifdef REDO
  307.   #define DOAGAIN '\001'        /* The "redo" key used in tty.c and cmd.c */
  308. *** include/Old/decl.h    Mon Feb 19 22:06:55 1990
  309. --- include/decl.h    Mon Feb 19 18:16:33 1990
  310. ***************
  311. *** 20,26 ****
  312.   E char *catmore;
  313.   #endif    /* DEF_PAGER */
  314.   E char SAVEF[];
  315. ! E char *hname;
  316.   E const char *hu_stat[];    /* defined in eat.c */
  317.   E int medusa_level;
  318.   E int bigroom_level;
  319. --- 20,26 ----
  320.   E char *catmore;
  321.   #endif    /* DEF_PAGER */
  322.   E char SAVEF[];
  323. ! E const char *hname;
  324.   E const char *hu_stat[];    /* defined in eat.c */
  325.   E int medusa_level;
  326.   E int bigroom_level;
  327. ***************
  328. *** 73,91 ****
  329.   E int smeq[];
  330.   E int doorindex;
  331.   E char *save_cm;
  332. ! E char *killer;
  333.   E char inv_order[];
  334.   E char plname[PL_NSIZ];
  335.   E char dogname[];
  336.   E char catname[];
  337.   E const char sdir[], ndir[];    /* defined in hack.c */
  338. ! E char *occtxt;        /* defined when occupation != NULL */
  339. ! E char *nomovemsg;
  340.   E const char nul[];
  341.   E char *HI, *HE, *AS, *AE;    /* set up in termcap.c */
  342.   E char *CD;            /* set up in termcap.c */
  343.   E int CO, LI;            /* set up in termcap.c: COLNO and ROWNO+3 */
  344. ! E char *traps[];
  345.   #ifndef MAKEDEFS_C  /* avoid conflict with lock() */
  346.   E char lock[];
  347.   #endif
  348. --- 73,95 ----
  349.   E int smeq[];
  350.   E int doorindex;
  351.   E char *save_cm;
  352. ! #define KILLED_BY_AN 0
  353. ! #define KILLED_BY 1
  354. ! #define NO_KILLER_PREFIX 2
  355. ! E int killer_format;
  356. ! E const char *killer;
  357.   E char inv_order[];
  358.   E char plname[PL_NSIZ];
  359.   E char dogname[];
  360.   E char catname[];
  361.   E const char sdir[], ndir[];    /* defined in hack.c */
  362. ! E const char *occtxt;        /* defined when occupation != NULL */
  363. ! E const char *nomovemsg;
  364.   E const char nul[];
  365.   E char *HI, *HE, *AS, *AE;    /* set up in termcap.c */
  366.   E char *CD;            /* set up in termcap.c */
  367.   E int CO, LI;            /* set up in termcap.c: COLNO and ROWNO+3 */
  368. ! E const char *traps[];
  369.   #ifndef MAKEDEFS_C  /* avoid conflict with lock() */
  370.   E char lock[];
  371.   #endif
  372. ***************
  373. *** 130,136 ****
  374. --- 134,144 ----
  375.   #ifndef COLOR_H
  376.   #include "color.h"
  377.   #endif
  378. + # ifdef TOS
  379. + E const char *hilites[MAXCOLORS];
  380. + # else
  381.   E char *hilites[MAXCOLORS];
  382. + # endif
  383.   #endif
  384.   
  385.   #ifndef OBJ_H
  386. ***************
  387. *** 189,194 ****
  388. --- 197,210 ----
  389.   
  390.   E const char nothing_happens[];
  391.   E const char thats_enough_tries[];
  392. + E const char monsyms[], objsyms[];
  393. + E const char *monexplain[], *objexplain[];
  394. + #ifdef NAMED_ITEMS
  395. + E const int artifact_num;
  396. + E boolean artiexist[];
  397. + #endif
  398.   
  399.   #undef E
  400.   
  401. *** include/Old/def_os2.h    Mon Feb 19 22:07:10 1990
  402. --- include/def_os2.h    Tue Nov 28 20:50:49 1989
  403. ***************
  404. *** 106,108 ****
  405. --- 106,109 ----
  406.   USHORT APIENTRY DosFindNext(HDIR, PFILEFINDBUF, USHORT, PUSHORT);
  407.   USHORT APIENTRY DosSelectDisk(USHORT);
  408.   USHORT APIENTRY VioGetMode(PVIOMODEINFO, HVIO);
  409. + USHORT APIENTRY VioSetCurPos(USHORT, USHORT, HVIO);
  410. *** include/Old/flag.h    Mon Feb 19 22:08:59 1990
  411. --- include/flag.h    Wed Jan 10 19:21:58 1990
  412. ***************
  413. *** 62,67 ****
  414. --- 62,70 ----
  415.   #endif
  416.       boolean  rawio;        /* Whether can use rawio (IOCTL call) */
  417.   #endif
  418. + #ifdef MACOS
  419. +     boolean  wantspace;        /* Waiting for a space (as in --More--) */
  420. + #endif
  421.   };
  422.   
  423.   extern struct flag flags;
  424. *** include/Old/func_tab.h    Mon Feb 19 22:09:13 1990
  425. --- include/func_tab.h    Tue Jan 16 18:11:08 1990
  426. ***************
  427. *** 8,22 ****
  428.   
  429.   struct func_tab {
  430.       char f_char;
  431. !     int (*f_funct)();
  432. !     char *f_text;
  433.   };
  434.   
  435.   extern const struct func_tab cmdlist[];
  436.   
  437.   struct ext_func_tab {
  438. !     char *ef_txt, *ef_desc;
  439. !     int (*ef_funct)();
  440.   };
  441.   
  442.   extern const struct ext_func_tab extcmdlist[];
  443. --- 8,22 ----
  444.   
  445.   struct func_tab {
  446.       char f_char;
  447. !     int NDECL((*f_funct));
  448. !     const char *f_text;
  449.   };
  450.   
  451.   extern const struct func_tab cmdlist[];
  452.   
  453.   struct ext_func_tab {
  454. !     const char *ef_txt, *ef_desc;
  455. !     int NDECL((*ef_funct));
  456.   };
  457.   
  458.   extern const struct ext_func_tab extcmdlist[];
  459. *** include/Old/global.h    Mon Feb 19 22:09:24 1990
  460. --- include/global.h    Mon Feb 19 18:16:29 1990
  461. ***************
  462. *** 5,23 ****
  463.   #ifndef GLOBAL_H
  464.   #define    GLOBAL_H
  465.   
  466. ! #include <stdio.h>
  467.   
  468.   
  469.   /* #define BETA        /* if a beta-test copy  [MRS] */
  470. ! #define VERSION "3.0h"  /* version number. */
  471.   
  472.   /*
  473.    * Files expected to exist in the playground directory.
  474.    */
  475.   
  476. ! #define RECORD    "record"  /* the file containing the list of topscorers */
  477. ! #define    HELP    "help"      /* the file containing command descriptions */
  478. ! #define    SHELP    "hh"      /* abbreviated form of the same */
  479.   #define    RUMORFILE    "rumors"    /* a file with fortune cookies */
  480.   #define ORACLEFILE    "oracles"    /* a file with oracular information */
  481.   #define    DATAFILE    "data"    /* a file giving the meaning of symbols used */
  482. --- 5,25 ----
  483.   #ifndef GLOBAL_H
  484.   #define    GLOBAL_H
  485.   
  486. ! #ifndef VMS
  487. ! # include <stdio.h>
  488. ! #endif
  489.   
  490.   
  491.   /* #define BETA        /* if a beta-test copy  [MRS] */
  492. ! #define VERSION "3.0i"  /* version number. */
  493.   
  494.   /*
  495.    * Files expected to exist in the playground directory.
  496.    */
  497.   
  498. ! #define RECORD        "record"  /* a file containing list of topscorers */
  499. ! #define    HELP        "help"      /* a file containing command descriptions */
  500. ! #define    SHELP        "hh"          /* abbreviated form of the same */
  501.   #define    RUMORFILE    "rumors"    /* a file with fortune cookies */
  502.   #define ORACLEFILE    "oracles"    /* a file with oracular information */
  503.   #define    DATAFILE    "data"    /* a file giving the meaning of symbols used */
  504. ***************
  505. *** 25,31 ****
  506.   #define HISTORY        "history"    /* a file giving nethack's history */
  507.   #define LICENSE        "license"    /* file with license information */
  508.   #define OPTIONFILE    "opthelp"    /* a file explaining runtime options */
  509.   
  510.   
  511.   /* Assorted definitions that may depend on selections in config.h. */
  512. --- 27,35 ----
  513.   #define HISTORY        "history"    /* a file giving nethack's history */
  514.   #define LICENSE        "license"    /* file with license information */
  515.   #define OPTIONFILE    "opthelp"    /* a file explaining runtime options */
  516. ! #ifdef MACOS
  517. ! #define MACHELP        "MacHelp"    /* file with Macintosh information */
  518. ! #endif
  519.   
  520.   
  521.   /* Assorted definitions that may depend on selections in config.h. */
  522. ***************
  523. *** 55,64 ****
  524.   typedef schar    xchar;
  525.   typedef    xchar    boolean;        /* 0 or 1 */
  526.   
  527. ! #ifndef MACOS    /* defined in MacTypes.h(LSC) or Types.h(Aztec & MPW) */
  528.   #define    TRUE    ((boolean)1)
  529.   #define    FALSE    ((boolean)0)
  530.   #endif
  531.   
  532.   #ifdef BITFIELDS
  533.   #define    Bitfield(x,n)    unsigned x:n
  534. --- 59,70 ----
  535.   typedef schar    xchar;
  536.   typedef    xchar    boolean;        /* 0 or 1 */
  537.   
  538. ! #ifndef MACOS
  539. ! #ifndef TRUE        /* defined in some systems' native include files */
  540.   #define    TRUE    ((boolean)1)
  541.   #define    FALSE    ((boolean)0)
  542.   #endif
  543. + #endif
  544.   
  545.   #ifdef BITFIELDS
  546.   #define    Bitfield(x,n)    unsigned x:n
  547. ***************
  548. *** 74,80 ****
  549.    * prototypes for the ANSI compilers so people quit trying to fix the prototypes
  550.    * to match the standard and thus lose the typechecking.
  551.    */
  552. ! #if defined(MSDOS) || defined(THINKC4) && !(defined(AMIGA) || defined(TOS))
  553.   # define CHAR_P char
  554.   # define SCHAR_P schar
  555.   # define UCHAR_P uchar
  556. --- 80,86 ----
  557.    * prototypes for the ANSI compilers so people quit trying to fix the prototypes
  558.    * to match the standard and thus lose the typechecking.
  559.    */
  560. ! #if (defined(MSDOS) && !defined(TOS)) || defined (AMIGA) || defined(THINKC4)
  561.   # define CHAR_P char
  562.   # define SCHAR_P schar
  563.   # define UCHAR_P uchar
  564. ***************
  565. *** 122,127 ****
  566. --- 128,134 ----
  567.   
  568.   #if defined(VMS) && !defined(VMSCONF_H)
  569.   # include "vmsconf.h"
  570. + # include <stdio.h>
  571.   #endif
  572.   
  573.   #if defined(UNIX) && !defined(UNIXCONF_H)
  574. *** include/Old/hack.h    Mon Feb 19 22:09:46 1990
  575. --- include/hack.h    Mon Feb 19 18:16:34 1990
  576. ***************
  577. *** 75,80 ****
  578. --- 75,85 ----
  579.   #include    "rm.h"
  580.   #endif
  581.   
  582. + #ifdef OVERLAY    /* This doesn't belong here, but we have little choice */
  583. + #undef NDECL
  584. + #define NDECL(f) f()
  585. + #endif
  586.   #ifndef EXTERN_H
  587.   #include    "extern.h"
  588.   #endif
  589. ***************
  590. *** 117,121 ****
  591. --- 122,151 ----
  592.   #define getuid() 1
  593.   #define getlogin() ((char *) NULL)
  594.   #endif /* MSDOS */
  595. + /* Macro for a few items that are only static if we're not overlaid.... */
  596. + #if defined(OVERLAY) && (defined(OVL0) || defined(OVL1) || defined(OVL2) || defined(OVLB))
  597. + # define OSTATIC extern
  598. + # define XSTATIC
  599. + # define OVERLAY_SPLIT
  600. + # ifdef OVLB
  601. + #  define VSTATIC
  602. + # else
  603. + #  define VSTATIC extern
  604. + # endif
  605. + #else
  606. + # define OSTATIC static
  607. + # define XSTATIC static
  608. + # define VSTATIC static
  609. + #endif
  610. + /* Unless explicit control is being taken of what is linked where, */
  611. + /* always compile everything */
  612. + #if !defined(OVERLAY) || (!defined(OVL0) && !defined(OVL1) && !defined(OVL2) && !defined(OVLB))
  613. + # define OVL0    /* Highest priority */
  614. + # define OVL1
  615. + # define OVL2    /* Lowest specified priority */
  616. + # define OVLB    /* The base overlay segment */
  617. + #endif
  618.   
  619.   #endif /* HACK_H /**/
  620. *** include/Old/macconf.h    Mon Feb 19 22:10:17 1990
  621. --- include/macconf.h    Fri Feb 16 19:15:36 1990
  622. ***************
  623. *** 10,16 ****
  624.    *  The following options are configurable:
  625.    */
  626.   
  627. ! #define RANDOM        1 /* have Berkeley random(3) */
  628.   
  629.   #define PATHLEN    220    /* maximum pathlength */
  630.   #define FILENAME    31    /* maximum filename length (conservative) */
  631. --- 10,16 ----
  632.    *  The following options are configurable:
  633.    */
  634.   
  635. ! #define RANDOM        /* have Berkeley random(3) */
  636.   
  637.   #define PATHLEN    220    /* maximum pathlength */
  638.   #define FILENAME    31    /* maximum filename length (conservative) */
  639. ***************
  640. *** 18,24 ****
  641.   #define glo(x)    name_file(lock, x)    /* name_file used for bones */
  642.   #include "msdos.h"    /* contains necessary externs for [os_name].c */
  643.   extern char *configfile;
  644. ! #define NO_SIGNAL    1
  645.   #define    perror(x)
  646.   
  647.   /*
  648. --- 18,24 ----
  649.   #define glo(x)    name_file(lock, x)    /* name_file used for bones */
  650.   #include "msdos.h"    /* contains necessary externs for [os_name].c */
  651.   extern char *configfile;
  652. ! #define NO_SIGNAL
  653.   #define    perror(x)
  654.   
  655.   /*
  656. ***************
  657. *** 55,60 ****
  658. --- 55,62 ----
  659.   #include    <types.h>
  660.   #include    <io.h>
  661.   #define    memcpy(x,y,j)    movmem(y,x,j)
  662. + #define memset(x,y,j)    setmem(x,j,y)
  663. + extern char *malloc();
  664.   extern char    *calloc();
  665.   #else
  666.   #include    <Fcntl.h>
  667. ***************
  668. *** 70,75 ****
  669. --- 72,78 ----
  670.   #endif
  671.   #endif
  672.   
  673. + #include    <pascal.h>
  674.   #include    <Quickdraw.h>
  675.   #include    <FontMgr.h>
  676.   #include    <EventMgr.h>
  677. ***************
  678. *** 101,108 ****
  679. --- 104,117 ----
  680.   #ifdef AZTEC
  681.   #include    <utime.h>    /* AZTEC 3.6c */
  682.   #define    curs(x,y)    tcurs(x,y)
  683. + #include    <Types.h>
  684. + #define    CtoPstr    ctop
  685. + #define    PtoCstr    ptoc
  686.   #else
  687.   #include    <Time.h>    /* MPW 3.0 */
  688. + #include    <Strings.h>
  689. + #define    CtoPstr    c2pstr
  690. + #define    PtoCstr    p2cstr
  691.   #endif
  692.   
  693.   
  694. ***************
  695. *** 141,151 ****
  696.       SysEnvRec    system;
  697.       char    *keyMap;
  698.       short    color[8];
  699.       Handle    shortMBarHandle,
  700.               fullMBarHandle;
  701.   } term_info;
  702.   
  703. ! #define TEXTCOLOR    1
  704.   
  705.   #define    appleMenu    101
  706.   #define    fileMenu    102
  707. --- 150,161 ----
  708.       SysEnvRec    system;
  709.       char    *keyMap;
  710.       short    color[8];
  711. +     CursHandle    cursor[8];
  712.       Handle    shortMBarHandle,
  713.               fullMBarHandle;
  714.   } term_info;
  715.   
  716. ! #define TEXTCOLOR
  717.   
  718.   #define    appleMenu    101
  719.   #define    fileMenu    102
  720. ***************
  721. *** 172,177 ****
  722. --- 182,192 ----
  723.   #define    LEFT_OFFSET    10
  724.   
  725.   /* for macflags variable */
  726. + #define    fScreenKluges        0x3000
  727. + #define    fFullScrKluge        0x2000
  728. + #define    fCornScrKluge        0x1000
  729. + #define    fDisplayKluge        0x800
  730. + #define    fMoveWRTMouse        0x400
  731.   #define    fZoomOnContextSwitch        0x200
  732.   #define    fUseCustomFont        0x100
  733.   #define    fToggleNumPad        0x80
  734. ***************
  735. *** 189,199 ****
  736. --- 204,220 ----
  737.   #define    BONES_TYPE    'BONE'
  738.   #define    LEVEL_TYPE    'LEVL'
  739.   #define    HACK_DATA    'HDTA'
  740. + #define AUXIL_TYPE    'AUXL'
  741. + #define TEXT_TYPE    'TEXT'
  742.   #define MONST_DATA    101
  743.   #define OBJECT_DATA    104
  744.   #define    DEFAULT_DATA    100
  745.   
  746.   #include "extern.h"
  747. + # ifndef MACALERT_H
  748. + #  include "MacAlert.h"
  749. + # endif
  750.   
  751.   #endif /* MACCONF_H /* */
  752.   #endif /* MACOS / */
  753. *** include/Old/mfndpos.h    Mon Feb 19 22:10:31 1990
  754. --- include/mfndpos.h    Tue Nov 28 21:10:41 1989
  755. ***************
  756. *** 1,4 ****
  757. ! /*    SCCS Id: @(#)mfndpos.h    3.0    88/10/15
  758.   /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
  759.   /* NetHack may be freely redistributed.  See license for details. */
  760.   /* mfndpos.h - version 1.0.2 */
  761. --- 1,4 ----
  762. ! /*    SCCS Id: @(#)mfndpos.h    3.0    89/11/22
  763.   /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
  764.   /* NetHack may be freely redistributed.  See license for details. */
  765.   /* mfndpos.h - version 1.0.2 */
  766. ***************
  767. *** 6,26 ****
  768.   #ifndef MFNDPOS_H
  769.   #define MFNDPOS_H
  770.   
  771. ! /* changed by GAN 02/06/87 to add nine extra bits for traps -
  772. !  * this because new traps make nine for traps insufficient
  773. !  */
  774. !  
  775. ! #define ALLOW_TRAPS     0777777L
  776. ! #define ALLOW_U         01000000L    /* can attack you */
  777. ! #define ALLOW_M         02000000L    /* can attack other monsters */
  778. ! #define ALLOW_TM        04000000L
  779. ! #define ALLOW_ALL       (ALLOW_U | ALLOW_M | ALLOW_TM | ALLOW_TRAPS)
  780. ! #define ALLOW_SSM       010000000L    /* ignores scare monster */
  781. ! #define ALLOW_ROCK      020000000L    /* pushes rocks */
  782. ! #define NOTONL          040000000L    /* stays off direct line to player */
  783. ! #define NOGARLIC        0100000000L    /* hates garlic */
  784. ! #define ALLOW_WALL      0200000000L    /* walks through walls */
  785. ! #define ALLOW_DIG       0400000000L    /* digs */
  786. ! #define ALLOW_SANCT    01000000000L    /* enters a temple */
  787.   
  788.   #endif /* MFNDPOS_H /**/
  789. --- 6,25 ----
  790.   #ifndef MFNDPOS_H
  791.   #define MFNDPOS_H
  792.   
  793. ! #define ALLOW_TRAPS    0x0002FFFFL    /* can enter 18 kinds of traps */
  794. ! #define ALLOW_U     0x00040000L    /* can attack you */
  795. ! #define ALLOW_M     0x00080000L    /* can attack other monsters */
  796. ! #define ALLOW_TM    0x00100000L    /* can attack tame monsters */
  797. ! #define ALLOW_ALL    (ALLOW_U | ALLOW_M | ALLOW_TM | ALLOW_TRAPS)
  798. ! #define NOTONL        0x00200000L    /* avoids direct line to player */
  799. ! #define OPENDOOR    0x00400000L    /* opens closed doors */
  800. ! #define UNLOCKDOOR    0x00800000L    /* unlocks locked doors */
  801. ! #define BUSTDOOR    0x01000000L    /* breaks any doors */
  802. ! #define ALLOW_ROCK    0x02000000L    /* pushes rocks */
  803. ! #define ALLOW_WALL    0x04000000L    /* walks thru walls */
  804. ! #define ALLOW_DIG    0x08000000L    /* digs */
  805. ! #define ALLOW_SANCT    0x20000000L    /* enters temples */
  806. ! #define ALLOW_SSM    0x40000000L    /* ignores scare monster */
  807. ! #define NOGARLIC    0x80000000L    /* hates garlic */
  808.   
  809.   #endif /* MFNDPOS_H /**/
  810. *** include/Old/mkroom.h    Mon Feb 19 22:10:42 1990
  811. --- include/mkroom.h    Thu Jan 18 20:28:09 1990
  812. ***************
  813. *** 13,19 ****
  814.   };
  815.   
  816.   struct shclass {
  817. !     char    *name;    /* name of the shop type */
  818.       char    symb;    /* this identifies the shop type */
  819.       int    prob;    /* the shop type probability in % */
  820.       schar    dist;    /* artifact placement type */
  821. --- 13,19 ----
  822.   };
  823.   
  824.   struct shclass {
  825. !     const char    *name;    /* name of the shop type */
  826.       char    symb;    /* this identifies the shop type */
  827.       int    prob;    /* the shop type probability in % */
  828.       schar    dist;    /* artifact placement type */
  829. *** include/Old/monattk.h    Mon Feb 19 22:10:54 1990
  830. --- include/monattk.h    Mon Nov 20 20:44:37 1989
  831. ***************
  832. *** 1,4 ****
  833. ! /*    SCCS Id: @(#)monattk.h    3.0    89/06/15
  834.   /* NetHack may be freely redistributed.  See license for details. */
  835.   /* Copyright 1988, M. Stephenson */
  836.   
  837. --- 1,4 ----
  838. ! /*    SCCS Id: @(#)monattk.h    3.0    89/11/20
  839.   /* NetHack may be freely redistributed.  See license for details. */
  840.   /* Copyright 1988, M. Stephenson */
  841.   
  842. ***************
  843. *** 72,77 ****
  844.   
  845.   #define AD_SAMU        252        /* hits, may steal Amulet (Wizard) */
  846.   #define AD_CURS        253        /* random curse (ex. gremlin) */
  847. - #define AD_CUSS        255        /* says nasty things about you */
  848.   
  849.   #endif /* MONATTK_H /**/
  850. --- 72,76 ----
  851. *** include/Old/monst.h    Mon Feb 19 22:11:43 1990
  852. --- include/monst.h    Fri Feb  2 18:24:36 1990
  853. ***************
  854. *** 18,26 ****
  855.   #define    MTSZ    4
  856.       coord mtrack[MTSZ];    /* monster track */
  857.       int mhp, mhpmax;
  858. !     char mappearance;    /* nonzero for undetected 'M's and the Wizard */
  859. !     int mspec_used;     /* monster's special ability attack timeout */
  860.       schar mtame;        /* level of tameness, implies peaceful */
  861.   
  862.       Bitfield(mimic,1);    /* undetected mimic */
  863.       Bitfield(mdispl,1);    /* mdx,mdy valid */
  864. --- 18,33 ----
  865.   #define    MTSZ    4
  866.       coord mtrack[MTSZ];    /* monster track */
  867.       int mhp, mhpmax;
  868. !     unsigned mappearance;    /* for undetected mimics and the wiz */
  869. !     uchar     m_ap_type;    /* what mappearance is describing: */
  870. ! #define M_AP_NOTHING    0    /* mappearance is unused */
  871. ! #define M_AP_FURNITURE    1    /* stairs, a door, an altar, etc. */
  872. ! #define M_AP_OBJECT    2    /* an object */
  873. ! #define M_AP_MONSTER    3    /* a monster */
  874. ! #define M_AP_GOLD    4    /* a quantity (mappearance holds it) of gold */
  875.       schar mtame;        /* level of tameness, implies peaceful */
  876. +     int mspec_used;     /* monster's special ability attack timeout */
  877.   
  878.       Bitfield(mimic,1);    /* undetected mimic */
  879.       Bitfield(mdispl,1);    /* mdx,mdy valid */
  880. ***************
  881. *** 33,59 ****
  882.       Bitfield(mflee,1);    /* fleeing */
  883.       Bitfield(mfleetim,7);    /* timeout for mflee */
  884.   
  885.       Bitfield(msleep,1);    /* sleeping */
  886. -     Bitfield(mfroz,1);    /* frozen */
  887.       Bitfield(mstun,1);    /* stunned (off balance) */
  888.       Bitfield(mconf,1);    /* confused */
  889.       Bitfield(mcan,1);    /* has been cancelled */
  890.       Bitfield(mpeaceful,1);    /* does not attack unprovoked */
  891. -     Bitfield(mcansee,1);    /* cansee 1, temp.blinded 0, blind 0 */
  892. -     Bitfield(mblinded,7);    /* cansee 0, temp.blinded n, blind 0 */
  893.       Bitfield(mtrapped,1);    /* trapped in a pit or bear trap */
  894.       Bitfield(isshk,1);    /* is shopkeeper */
  895.       Bitfield(isgd,1);    /* is guard */
  896.   #if defined(ALTARS) && defined(THEOLOGY)
  897.       Bitfield(ispriest,1);    /* is a priest */
  898.   #endif
  899.       Bitfield(iswiz,1);    /* is the Wizard of Yendor */
  900. -     Bitfield(mleashed,1);    /* monster is on a leash */
  901.   #ifdef WORM
  902.       Bitfield(wormno,5);    /* at most 31 worms on any level */
  903.   #endif
  904.       long mtrapseen;        /* bitmap of traps we've been trapped in */
  905.       long mlstmv;        /* prevent two moves at once */
  906.       struct obj *minvent;
  907. --- 40,69 ----
  908.       Bitfield(mflee,1);    /* fleeing */
  909.       Bitfield(mfleetim,7);    /* timeout for mflee */
  910.   
  911. +     Bitfield(mcansee,1);    /* cansee 1, temp.blinded 0, blind 0 */
  912. +     Bitfield(mblinded,7);    /* cansee 0, temp.blinded n, blind 0 */
  913. +     Bitfield(mcanmove,1);    /* paralysis, similar to mblinded */
  914. +     Bitfield(mfrozen,7);
  915.       Bitfield(msleep,1);    /* sleeping */
  916.       Bitfield(mstun,1);    /* stunned (off balance) */
  917.       Bitfield(mconf,1);    /* confused */
  918.       Bitfield(mcan,1);    /* has been cancelled */
  919.       Bitfield(mpeaceful,1);    /* does not attack unprovoked */
  920.       Bitfield(mtrapped,1);    /* trapped in a pit or bear trap */
  921. !     Bitfield(mleashed,1);    /* monster is on a leash */
  922.       Bitfield(isshk,1);    /* is shopkeeper */
  923.       Bitfield(isgd,1);    /* is guard */
  924.   #if defined(ALTARS) && defined(THEOLOGY)
  925.       Bitfield(ispriest,1);    /* is a priest */
  926.   #endif
  927.       Bitfield(iswiz,1);    /* is the Wizard of Yendor */
  928.   #ifdef WORM
  929.       Bitfield(wormno,5);    /* at most 31 worms on any level */
  930.   #endif
  931.       long mtrapseen;        /* bitmap of traps we've been trapped in */
  932.       long mlstmv;        /* prevent two moves at once */
  933.       struct obj *minvent;
  934. *** include/Old/msdos.h    Mon Feb 19 22:12:06 1990
  935. --- include/msdos.h    Fri Dec 29 21:38:04 1989
  936. ***************
  937. *** 10,15 ****
  938. --- 10,18 ----
  939.   #endif
  940.   extern const char *alllevels, *allbones;
  941.   extern char levels[], bones[], permbones[], SAVEF[], hackdir[];
  942. + #ifdef MSDOS
  943. + extern char SAVEP[];
  944. + #endif
  945.   extern int ramdisk;
  946.   #if defined(DGK) && !defined(OLD_TOS)
  947.   extern int count_only;
  948. *** include/Old/obj.h    Mon Feb 19 22:12:17 1990
  949. --- include/obj.h    Thu Feb  8 17:17:26 1990
  950. ***************
  951. *** 94,100 ****
  952.   #define is_sword(otmp)    (otmp->otyp >= SHORT_SWORD && otmp->otyp <= KATANA)
  953.   #define bimanual(otmp)    (otmp->olet == WEAPON_SYM && objects[otmp->otyp].oc_bimanual)
  954.   
  955. - #define is_flammable(otmp)    (objects[otmp->otyp].oc_material == WOOD || objects[otmp->otyp].oc_material == 0)
  956.   #define is_rustprone(otmp)    (objects[otmp->otyp].oc_material == METAL)
  957.   #define is_corrodeable(otmp)    (objects[otmp->otyp].oc_material == COPPER)
  958.   # endif /* STUPID_CPP */
  959. --- 94,99 ----
  960. *** include/Old/objclass.h    Mon Feb 19 22:12:33 1990
  961. --- include/objclass.h    Thu Jan 18 20:28:13 1990
  962. ***************
  963. *** 8,16 ****
  964.   /* definition of a class of objects */
  965.   
  966.   struct objclass {
  967. !     char *oc_name;        /* actual name */
  968. !     char *oc_descr;        /* description when name unknown */
  969. !     char *oc_uname;        /* called by user */
  970.       Bitfield(oc_name_known,1);
  971.       Bitfield(oc_merge,1);    /* merge otherwise equal objects */
  972.       Bitfield(oc_uses_known,1); /* obj->known affects full decription */
  973. --- 8,16 ----
  974.   /* definition of a class of objects */
  975.   
  976.   struct objclass {
  977. !     const char *oc_name;        /* actual name */
  978. !     const char *oc_descr;        /* description when name unknown */
  979. !     char *oc_uname;            /* called by user */
  980.       Bitfield(oc_name_known,1);
  981.       Bitfield(oc_merge,1);    /* merge otherwise equal objects */
  982.       Bitfield(oc_uses_known,1); /* obj->known affects full decription */
  983. ***************
  984. *** 79,85 ****
  985.   /* definitions of all object-symbols */
  986.   
  987.   #define    RANDOM_SYM    '\0'    /* used for generating random objects */
  988. ! #define    ILLOBJ_SYM    '\\'
  989.   #define    AMULET_SYM    '"'
  990.   #define    FOOD_SYM    '%'
  991.   #define    WEAPON_SYM    ')'
  992. --- 79,85 ----
  993.   /* definitions of all object-symbols */
  994.   
  995.   #define    RANDOM_SYM    '\0'    /* used for generating random objects */
  996. ! #define    ILLOBJ_SYM    ']'    /* should be same as S_MIMIC_DEF      */
  997.   #define    AMULET_SYM    '"'
  998.   #define    FOOD_SYM    '%'
  999.   #define    WEAPON_SYM    ')'
  1000. *** include/Old/patchlevel.h    Mon Feb 19 22:12:47 1990
  1001. --- include/patchlevel.h    Mon Feb 19 21:53:08 1990
  1002. ***************
  1003. *** 66,69 ****
  1004.    *  teach '/' about configurable symbols
  1005.    */
  1006.   
  1007. ! #define PATCHLEVEL    6
  1008. --- 66,87 ----
  1009.    *  teach '/' about configurable symbols
  1010.    */
  1011.   
  1012. ! /*
  1013. !  *  Patch 7, February 19, 1990
  1014. !  *  refine overlay support to handle portions of .c files through OVLx
  1015. !  *    (courtesy above plus Kevin Smolkowski)
  1016. !  *  update and extend Amiga port and documentation (courtesy Richard Addison,
  1017. !  *    Jochen Erwied, Mark Gooderum, Ken Lorber, Greg Olson, Mike Passaretti,
  1018. !  *    and Gregg Wonderly)
  1019. !  *  refine and extend Macintosh port and documentation (courtesy Johnny Lee,
  1020. !  *    Kevin Sitze, Michael Sokolov, Andy Swanson, Jon Watte, and Tom West)
  1021. !  *  refine VMS documentation
  1022. !  *  continuing ANSIfication, this time of const usage
  1023. !  *  teach '/' about differences within monster classes
  1024. !  *  smarter eating code (yet again), death messages, and treatment of
  1025. !  *    non-animal monsters, monster unconsciousness, and naming
  1026. !  *  extended version command to give compilation options
  1027. !  *  and the usual bug fixes and hole plugs
  1028. !  */
  1029. ! #define PATCHLEVEL    7
  1030. *** include/Old/pcconf.h    Mon Feb 19 22:12:59 1990
  1031. --- include/pcconf.h    Thu Feb 15 19:05:44 1990
  1032. ***************
  1033. *** 6,16 ****
  1034.   #ifndef PCCONF_H
  1035.   #define PCCONF_H
  1036.   
  1037. ! /* #define OS2        /* define for OS/2 (Timo Hakulinen) */
  1038. ! /* #define OS2_CODEVIEW /* define for OS/2 CodeView debugger,
  1039. !                otherwise path searches may fail (TH) */
  1040.   
  1041. ! #ifndef TOS
  1042.   /*
  1043.    *  The following options are configurable:
  1044.    */
  1045. --- 6,18 ----
  1046.   #ifndef PCCONF_H
  1047.   #define PCCONF_H
  1048.   
  1049. ! #if !defined(TOS) && !defined(AMIGA)
  1050.   
  1051. ! /* #define MSC        /* define for pre-ANSI Microsoft C compilers (ver. < 5.0). */
  1052. ! /* #define OS2        /* define for OS/2 (Timo Hakulinen) */
  1053. ! /* #define OS2_CODEVIEW    /* define for OS/2 CodeView debugger versions earlier
  1054. !                than 2.3, otherwise path searches may fail */
  1055.   /*
  1056.    *  The following options are configurable:
  1057.    */
  1058. ***************
  1059. *** 61,67 ****
  1060. --- 63,71 ----
  1061.   #define index    strchr
  1062.   #define rindex    strrchr
  1063.   
  1064. + #ifndef AMIGA
  1065.   #include <time.h>
  1066. + #endif
  1067.   
  1068.   #ifdef RANDOM
  1069.   /* Use the high quality random number routines. */
  1070. ***************
  1071. *** 95,101 ****
  1072.   #define Getchar tgetch
  1073.   #endif
  1074.   
  1075. ! #ifndef TOS
  1076.   #  define TEXTCOLOR /* */
  1077.   #endif
  1078.   
  1079. --- 99,105 ----
  1080.   #define Getchar tgetch
  1081.   #endif
  1082.   
  1083. ! #if !defined(TOS) && !defined(AMIGA)
  1084.   #  define TEXTCOLOR /* */
  1085.   #endif
  1086.   
  1087. *** include/Old/permonst.h    Mon Feb 19 22:13:17 1990
  1088. --- include/permonst.h    Tue Jan 16 18:11:23 1990
  1089. ***************
  1090. *** 16,23 ****
  1091.    *    are set, they may have a special meaning.  For example, if set
  1092.    *    for a blinding attack, they determine the amount of time blinded.
  1093.    */
  1094. - struct attack {
  1095.   
  1096.       uchar           aatyp;
  1097.       uchar           adtyp, damn, damd;
  1098.   };
  1099. --- 16,23 ----
  1100.    *    are set, they may have a special meaning.  For example, if set
  1101.    *    for a blinding attack, they determine the amount of time blinded.
  1102.    */
  1103.   
  1104. + struct attack {
  1105.       uchar           aatyp;
  1106.       uchar           adtyp, damn, damd;
  1107.   };
  1108. ***************
  1109. *** 35,41 ****
  1110.   #if defined(SMALLDATA) && !defined(MAKEDEFS_C)
  1111.       char        mname[24], mlet;        /* full name and sym */
  1112.   #else
  1113. !     char        *mname, mlet;        /* full name and sym */
  1114.   #endif
  1115.       schar        mlevel,            /* base monster level */
  1116.               mmove,            /* move speed */
  1117. --- 35,42 ----
  1118.   #if defined(SMALLDATA) && !defined(MAKEDEFS_C)
  1119.       char        mname[24], mlet;        /* full name and sym */
  1120.   #else
  1121. !     const char    *mname;            /* full name */
  1122. !     char        mlet;            /* symbol */
  1123.   #endif
  1124.       schar        mlevel,            /* base monster level */
  1125.               mmove,            /* move speed */
  1126. *** include/Old/rm.h    Mon Feb 19 22:13:44 1990
  1127. --- include/rm.h    Sat Feb  3 22:42:58 1990
  1128. ***************
  1129. *** 68,74 ****
  1130.   #define IS_STWALL(typ)    ((typ) <= TRWALL)    /* STONE <= (typ) <= TRWALL */
  1131.   #define IS_ROCK(typ)    ((typ) < POOL)        /* absolutely nonaccessible */
  1132.   #define IS_DOOR(typ)    ((typ) == DOOR)
  1133. - #define IS_FLOOR(typ)    ((typ) == ROOM)
  1134.   #define ACCESSIBLE(typ)    ((typ) >= DOOR)        /* good position */
  1135.   #define IS_ROOM(typ)    ((typ) >= ROOM)        /* ROOM, STAIRS, furniture.. */
  1136.   #define ZAP_POS(typ)    ((typ) >= POOL)
  1137. --- 68,73 ----
  1138. ***************
  1139. *** 128,134 ****
  1140.   typedef uchar symbol_array[MAXPCHARS];
  1141.   
  1142.   extern symbol_array showsyms;
  1143. ! extern char *explainsyms[MAXPCHARS];  /* tells what the characters are */
  1144.   #ifdef REINCARNATION
  1145.   extern symbol_array savesyms;
  1146.   #endif
  1147. --- 127,133 ----
  1148.   typedef uchar symbol_array[MAXPCHARS];
  1149.   
  1150.   extern symbol_array showsyms;
  1151. ! extern const char *explainsyms[MAXPCHARS];  /* tells what the characters are */
  1152.   #ifdef REINCARNATION
  1153.   extern symbol_array savesyms;
  1154.   #endif
  1155. *** include/Old/tosconf.h    Mon Feb 19 22:15:04 1990
  1156. --- include/tosconf.h    Thu Feb 15 19:09:29 1990
  1157. ***************
  1158. *** 8,36 ****
  1159.   
  1160.   #define MSDOS        /* must be defined to allow some inclusions */
  1161.   
  1162. ! /* NOTE: if your TOS compiler is dumb, #define OLD_TOS and compile with
  1163. !    oldtos.c to get a minimal configuration (you may need to do some
  1164. !    tweaking); otherwise (e.g. GCC) don't do it. OLD_TOS corresponds
  1165. !    most closely to LATTICE C, I think */
  1166.   
  1167. ! /* #define OLD_TOS         /* primitive C library */
  1168. ! /* #define NO_SIGNAL         /* compiler doesn't support signals */
  1169.   
  1170. ! #ifdef __GNUC__
  1171.   #define FCMASK    0666
  1172.   #define O_BINARY 0
  1173. - #else
  1174. - #define FCMASK    0x8000
  1175.   #endif
  1176.   
  1177.   #ifdef UNIXDEBUG
  1178. - #define O_BINARY    0
  1179.   #define remove(x)    unlink(x)
  1180. - #endif
  1181. - #ifdef OLD_TOS
  1182. - #define Rand() rand()
  1183. - #define Srand() srand()
  1184.   #endif
  1185.   
  1186.   /* configurable options */
  1187. --- 8,30 ----
  1188.   
  1189.   #define MSDOS        /* must be defined to allow some inclusions */
  1190.   
  1191. ! /*
  1192. !    Adjust these options to suit your compiler. The default here is for
  1193. !    GNU C with the latest version of the library.
  1194. ! */
  1195.   
  1196. ! /*#define NO_SIGNAL         /* library doesn't support signals    */
  1197. ! /*#define NO_FSTAT        /* library doesn't have fstat() call    */
  1198.   
  1199. ! #ifdef O_BINARY
  1200. ! #define FCMASK     O_BINARY
  1201. ! #else
  1202.   #define FCMASK    0666
  1203.   #define O_BINARY 0
  1204.   #endif
  1205.   
  1206.   #ifdef UNIXDEBUG
  1207.   #define remove(x)    unlink(x)
  1208.   #endif
  1209.   
  1210.   /* configurable options */
  1211. *** include/Old/tradstdc.h    Mon Feb 19 22:15:20 1990
  1212. --- include/tradstdc.h    Tue Feb  6 18:45:05 1990
  1213. ***************
  1214. *** 10,15 ****
  1215. --- 10,19 ----
  1216.   #define void    int
  1217.   #endif
  1218.   
  1219. + #ifdef APOLLO    /* the Apollo C compiler claims to be __STDC__, but isn't */
  1220. + #undef __STDC__
  1221. + #endif
  1222.   /*
  1223.    * ANSI X3J11 detection.
  1224.    * Makes substitutes for compatibility with the old C standard.
  1225. ***************
  1226. *** 18,25 ****
  1227.   /* Decide how to handle variable parameter lists:
  1228.    * USE_STDARG means use the ANSI <stdarg.h> facilities (only ANSI compilers
  1229.    * should do this, and only if the library supports it).
  1230. !  * USE_VARARGS means use the <varargs.h> facilities. Again, this should only
  1231. !  * be done if the library supports it. ANSI is *not* required for this.
  1232.    * Otherwise, the kludgy old methods are used.
  1233.    * The defaults are USE_STDARG for ANSI compilers, and USE_OLDARGS for
  1234.    * others.
  1235. --- 22,29 ----
  1236.   /* Decide how to handle variable parameter lists:
  1237.    * USE_STDARG means use the ANSI <stdarg.h> facilities (only ANSI compilers
  1238.    * should do this, and only if the library supports it).
  1239. !  * USE_VARARGS means use the <varargs.h> facilities.  Again, this should only
  1240. !  * be done if the library supports it.  ANSI is *not* required for this.
  1241.    * Otherwise, the kludgy old methods are used.
  1242.    * The defaults are USE_STDARG for ANSI compilers, and USE_OLDARGS for
  1243.    * others.
  1244. ***************
  1245. *** 28,35 ****
  1246.   /* #define USE_VARARGS        /* use <varargs.h> instead of <stdarg.h> */
  1247.   /* #define USE_OLDARGS        /* don't use any variable argument facilites */
  1248.   
  1249. ! #ifdef __STDC__
  1250. ! # if !(defined(AMIGA) || defined(USE_VARARGS) || defined(USE_OLDARGS))
  1251.   #   define USE_STDARG
  1252.   # endif
  1253.   #endif
  1254. --- 32,39 ----
  1255.   /* #define USE_VARARGS        /* use <varargs.h> instead of <stdarg.h> */
  1256.   /* #define USE_OLDARGS        /* don't use any variable argument facilites */
  1257.   
  1258. ! #if defined(__STDC__) || defined(VMS)
  1259. ! # if !(defined(AMIGA) && defined(AZTEC_C) || defined(USE_VARARGS) || defined(USE_OLDARGS))
  1260.   #   define USE_STDARG
  1261.   # endif
  1262.   #endif
  1263. ***************
  1264. *** 71,88 ****
  1265.   #endif
  1266.   #endif /* NEED_VARARGS */
  1267.   
  1268. ! #if (defined(__STDC__) || defined(MSDOS) || defined(THINKC4)) && !defined(AMIGA)
  1269.   
  1270.   /* Used for robust ANSI parameter forward declarations:
  1271.    * int VDECL(sprintf, (char *, const char *, ...));
  1272.    *
  1273.    * FDECL() is used for functions with a fixed number of arguments;
  1274.    * VDECL() is used for functions with a variable number of arguments.
  1275.    * Separate macros are needed because ANSI will mix old-style declarations
  1276. !  * with prototypes, except in the case of varargs.
  1277.    */
  1278.   
  1279.   # define FDECL(f,p)    f p
  1280.   # if defined(MSDOS) || defined(USE_STDARG)
  1281.   #  define VDECL(f,p)    f p
  1282.   # else
  1283. --- 75,98 ----
  1284.   #endif
  1285.   #endif /* NEED_VARARGS */
  1286.   
  1287. ! #if defined(__STDC__) || defined(MSDOS) || defined(THINKC4)
  1288.   
  1289.   /* Used for robust ANSI parameter forward declarations:
  1290.    * int VDECL(sprintf, (char *, const char *, ...));
  1291.    *
  1292. +  * NDECL() is used for functions with zero arguments;
  1293.    * FDECL() is used for functions with a fixed number of arguments;
  1294.    * VDECL() is used for functions with a variable number of arguments.
  1295.    * Separate macros are needed because ANSI will mix old-style declarations
  1296. !  * with prototypes, except in the case of varargs, and the OVERLAY-specific
  1297. !  * trampoli.* mechanism conflicts with the ANSI <<f(void)>> syntax.
  1298.    */
  1299.   
  1300. + # define NDECL(f)    f(void)    /* Must be overridden if OVERLAY set later */
  1301.   # define FDECL(f,p)    f p
  1302.   # if defined(MSDOS) || defined(USE_STDARG)
  1303.   #  define VDECL(f,p)    f p
  1304.   # else
  1305. ***************
  1306. *** 102,112 ****
  1307.   
  1308.   #else /* __STDC__ */    /* a "traditional" C  compiler */
  1309.   
  1310.   # define FDECL(f,p)    f()
  1311.   # define VDECL(f,p)    f()
  1312.   
  1313.   # ifndef genericptr_t
  1314. ! #  ifdef AMIGA
  1315.   typedef void *        genericptr_t;
  1316.   #  else
  1317.   typedef char *        genericptr_t;
  1318. --- 112,123 ----
  1319.   
  1320.   #else /* __STDC__ */    /* a "traditional" C  compiler */
  1321.   
  1322. + # define NDECL(f)    f()
  1323.   # define FDECL(f,p)    f()
  1324.   # define VDECL(f,p)    f()
  1325.   
  1326.   # ifndef genericptr_t
  1327. ! #  if defined(AMIGA) || defined(HPUX)
  1328.   typedef void *        genericptr_t;
  1329.   #  else
  1330.   typedef char *        genericptr_t;
  1331. *** include/Old/trampoli.h    Mon Feb 19 22:15:37 1990
  1332. --- include/trampoli.h    Mon Feb  5 18:45:30 1990
  1333. ***************
  1334. *** 20,25 ****
  1335. --- 20,28 ----
  1336.   #ifdef POLYSELF
  1337.   #define domonability()     domonability_()
  1338.   #endif /* POLYSELF */
  1339. + #ifdef EXPLORE_MODE
  1340. + #define enter_explore_mode() enter_explore_mode_()
  1341. + #endif /* EXPLORE_MODE */
  1342.   #define timed_occupation() timed_occupation_()
  1343.   #if defined(WIZARD) || defined(EXPLORE_MODE)
  1344.   #define wiz_attributes()   wiz_attributes_()
  1345. ***************
  1346. *** 87,92 ****
  1347. --- 90,96 ----
  1348.   
  1349.   
  1350.   /* ### end.c ### */
  1351. + #define done1() done1_()
  1352.   #define done2() done2_()
  1353.   
  1354.   
  1355. ***************
  1356. *** 130,135 ****
  1357. --- 134,143 ----
  1358.   #define picklock()  picklock_()
  1359.   
  1360.   
  1361. + /* ### mondata.c ### */
  1362. + #define canseemon(x)    canseemon_(x)
  1363.   /* ### o_init.c ### */
  1364.   #define dodiscovered() dodiscovered_()
  1365.   
  1366. ***************
  1367. *** 156,162 ****
  1368.   
  1369.   
  1370.   /* ### pickup.c ### */
  1371. ! #define ck_bag()         ck_bag_()
  1372.   #define ck_container(x)  ck_container_(x)
  1373.   #define doloot()         doloot_()
  1374.   #define in_container(x)  in_container_(x)
  1375. --- 164,170 ----
  1376.   
  1377.   
  1378.   /* ### pickup.c ### */
  1379. ! #define ck_bag(x)        ck_bag_(x)
  1380.   #define ck_container(x)  ck_container_(x)
  1381.   #define doloot()         doloot_()
  1382.   #define in_container(x)  in_container_(x)
  1383. ***************
  1384. *** 227,232 ****
  1385. --- 235,241 ----
  1386.   
  1387.   /* ### version.c ### */
  1388.   #define doversion() doversion_()
  1389. + #define doextversion() doextversion_()
  1390.   
  1391.   /* ### wield.c ### */
  1392.   #define dowield() dowield_()
  1393. *** include/Old/unixconf.h    Mon Feb 19 22:16:11 1990
  1394. --- include/unixconf.h    Sat Feb  3 16:30:26 1990
  1395. ***************
  1396. *** 16,33 ****
  1397.    * index        strchr
  1398.    * rindex        strrchr
  1399.    *
  1400. -  * Also, the code for suspend is only given for BSD
  1401.    */
  1402.   
  1403.   /* #define BSD        /* define for 4.n BSD  */
  1404. !             /* also for relatives like SunOS */
  1405.   #define ULTRIX        /* define for Ultrix v3.0 or higher (but not lower) */
  1406.               /* Use BSD for < v3.0 */
  1407.               /* "ULTRIX" not to be confused with "ultrix" */
  1408.   /* #define SYSV        /* define for System V */
  1409.   /* #define NETWORK    /* if running on a networked system */
  1410.               /* e.g. Suns sharing a playground through NFS */
  1411.   /* #define GENIX    /* Yet Another Unix Clone */
  1412.   /* #define HISX        /* Bull Unix for XPS Machines */
  1413.   /* #define UNIXPC    /* use in addition to SYSV for AT&T 7300/3B1 */
  1414. --- 16,37 ----
  1415.    * index        strchr
  1416.    * rindex        strrchr
  1417.    *
  1418.    */
  1419.   
  1420. + /* define one of the following */
  1421.   /* #define BSD        /* define for 4.n BSD  */
  1422. !             /* also for relatives like SunOS and DG/UX */
  1423.   #define ULTRIX        /* define for Ultrix v3.0 or higher (but not lower) */
  1424.               /* Use BSD for < v3.0 */
  1425.               /* "ULTRIX" not to be confused with "ultrix" */
  1426.   /* #define SYSV        /* define for System V */
  1427. + /* #define HPUX        /* Hewlett-Packard's Unix, version 6.5 or higher */
  1428. +             /* use SYSV for < v6.5 */
  1429. + /* define any of the following that are appropriate */
  1430.   /* #define NETWORK    /* if running on a networked system */
  1431.               /* e.g. Suns sharing a playground through NFS */
  1432.   /* #define GENIX    /* Yet Another Unix Clone */
  1433.   /* #define HISX        /* Bull Unix for XPS Machines */
  1434.   /* #define UNIXPC    /* use in addition to SYSV for AT&T 7300/3B1 */
  1435. ***************
  1436. *** 36,41 ****
  1437. --- 40,46 ----
  1438.   
  1439.   /* #define PYRAMID_BUG     /* avoid a bug on the Pyramid */
  1440.   /* #define APOLLO    /* same for the Apollo */
  1441. + /* #define BSD_43_BUG    /* for real 4.3BSD cc's without schain botch fix */
  1442.   /* #define MICROPORT_BUG /* problems with large arrays in structs */
  1443.   /* #define MICROPORT_286_BUG /* Changes needed in termcap.c to get it to
  1444.                  run with Microport Sys V/AT version 2.4.
  1445. ***************
  1446. *** 66,99 ****
  1447.    * #define DEF_PAGER    ".../mydir/mypager"
  1448.    */
  1449.   
  1450.   /*
  1451.    * If you define MAIL, then the player will be notified of new mail
  1452. !  * when it arrives. If you also define DEF_MAILREADER then this will
  1453.    * be the default mail reader, and can be overridden by the environment
  1454.    * variable MAILREADER; otherwise an internal pager will be used.
  1455.    * A stat system call is done on the mailbox every MAILCKFREQ moves.
  1456.    */
  1457.   
  1458. ! #define    MAIL        /* Deliver mail during the game */
  1459. ! #ifdef MAIL
  1460.   
  1461.   # if defined(BSD) || defined(ULTRIX)
  1462.   #define    DEF_MAILREADER    "/usr/ucb/Mail"
  1463. ! # else
  1464. ! #  if defined(SYSV) || defined(DGUX)
  1465. ! #   ifdef M_XENIX
  1466.   #define    DEF_MAILREADER    "/usr/bin/mail"
  1467. - #   else
  1468. - #define    DEF_MAILREADER    "/usr/bin/mailx"
  1469. - #   endif
  1470.   #  else
  1471. ! #define    DEF_MAILREADER    "/bin/mail"
  1472.   #  endif
  1473.   # endif
  1474.   
  1475.   #define    MAILCKFREQ    50
  1476.   #endif    /* MAIL */
  1477.   
  1478.   #ifdef COMPRESS
  1479.   /* Some implementations of compress need a 'quiet' option.
  1480.    * If you've got one of these versions, put -q here.
  1481. --- 71,133 ----
  1482.    * #define DEF_PAGER    ".../mydir/mypager"
  1483.    */
  1484.   
  1485.   /*
  1486.    * If you define MAIL, then the player will be notified of new mail
  1487. !  * when it arrives.  If you also define DEF_MAILREADER then this will
  1488.    * be the default mail reader, and can be overridden by the environment
  1489.    * variable MAILREADER; otherwise an internal pager will be used.
  1490.    * A stat system call is done on the mailbox every MAILCKFREQ moves.
  1491.    */
  1492.   
  1493. ! #define MAIL            /* Deliver mail during the game */
  1494. ! /* The Andrew Message System does mail a little differently from normal
  1495. !  * UNIX.  Mail is deposited in the user's own directory in ~/Mailbox 
  1496. !  * (another directory).  MAILBOX is the element that will be added on to 
  1497. !  * the user's home directory path to generate the Mailbox path - just in 
  1498. !  * case other Andrew sites do it differently from CMU.
  1499. !  *
  1500. !  *        dan lovinger
  1501. !  *        dl2n+@andrew.cmu.edu (dec 19 1989)
  1502. !  */
  1503. ! /* #define AMS            /* use Andrew message system for mail */
  1504. ! /* NO_MAILREADER is for kerberos authentcating filesystems where it is
  1505. !  * essentially impossible to securely exec child proccesses, like mail
  1506. !  * readers, when the game is running under a special token.
  1507. !  *
  1508. !  *             dan
  1509. !  */
  1510. ! /* #define NO_MAILREADER     /* have mail daemon just tell player of mail */
  1511.   
  1512. + #ifdef    MAIL
  1513.   # if defined(BSD) || defined(ULTRIX)
  1514. + #  ifdef AMS
  1515. + #define AMS_MAILBOX    "/Mailbox"
  1516. + #  else
  1517.   #define    DEF_MAILREADER    "/usr/ucb/Mail"
  1518. ! #  endif
  1519. ! #else
  1520. ! # if defined(SYSV) || defined(DGUX) || defined(HPUX)
  1521. ! #  ifdef M_XENIX
  1522.   #define    DEF_MAILREADER    "/usr/bin/mail"
  1523.   #  else
  1524. ! #define    DEF_MAILREADER    "/usr/bin/mailx"
  1525.   #  endif
  1526. + # else
  1527. + #define    DEF_MAILREADER    "/bin/mail"
  1528.   # endif
  1529. + #endif
  1530.   
  1531.   #define    MAILCKFREQ    50
  1532.   #endif    /* MAIL */
  1533.   
  1534.   #ifdef COMPRESS
  1535.   /* Some implementations of compress need a 'quiet' option.
  1536.    * If you've got one of these versions, put -q here.
  1537. ***************
  1538. *** 110,116 ****
  1539.    * The remainder of the file should not need to be changed.
  1540.    */
  1541.   
  1542. ! #if (defined(BSD) || defined(ULTRIX)) && !defined(MSDOS)
  1543.   #include    <sys/time.h>
  1544.   #else
  1545.   #include    <time.h>
  1546. --- 144,161 ----
  1547.    * The remainder of the file should not need to be changed.
  1548.    */
  1549.   
  1550. ! /*
  1551. !  * BSD/ULTRIX systems are normally the only ones that can suspend processes.
  1552. !  * Suspending NetHack processes cleanly should be easy to add to other systems
  1553. !  * that have SIGTSTP.  Currently the only such system known to work is HPUX;
  1554. !  * other systems will probably require tweaks to unixtty.c and ioctl.c.
  1555. !  */
  1556. ! #if defined(BSD) || defined(ULTRIX) || defined (HPUX)
  1557. ! #define    SUSPEND        /* let ^Z suspend the game */
  1558. ! #endif
  1559. ! #if defined(BSD) || defined(ULTRIX)
  1560.   #include    <sys/time.h>
  1561.   #else
  1562.   #include    <time.h>
  1563. ***************
  1564. *** 130,138 ****
  1565.   #include "system.h"
  1566.   
  1567.   #if defined(BSD) || defined(ULTRIX)
  1568. ! #define    SUSPEND        /* let ^Z suspend the game */
  1569.   #define memcpy(d, s, n)        bcopy(s, d, n)
  1570.   #define memcmp(s1, s2, n)    bcmp(s2, s1, n)
  1571.   #else    /* therefore SYSV */
  1572.   #define index    strchr
  1573.   #define rindex    strrchr
  1574. --- 175,184 ----
  1575.   #include "system.h"
  1576.   
  1577.   #if defined(BSD) || defined(ULTRIX)
  1578. ! # ifndef DGUX
  1579.   #define memcpy(d, s, n)        bcopy(s, d, n)
  1580.   #define memcmp(s1, s2, n)    bcmp(s2, s1, n)
  1581. + # endif
  1582.   #else    /* therefore SYSV */
  1583.   #define index    strchr
  1584.   #define rindex    strrchr
  1585. *** include/Old/vault.h    Mon Feb 19 22:16:28 1990
  1586. --- include/vault.h    Sun Feb  4 09:47:28 1990
  1587. ***************
  1588. *** 13,22 ****
  1589.   struct egd {
  1590.       int fcbeg, fcend;    /* fcend: first unused pos */
  1591.       xchar gdx, gdy;        /* goal of guard's walk */
  1592.       unsigned gddone:1;
  1593.       struct fakecorridor fakecorr[FCSIZ];
  1594.   };
  1595.   
  1596. ! #define    EGD    ((struct egd *)(&(guard->mextra[0])))
  1597.   
  1598.   #endif /* VAULT_H /* */
  1599. --- 13,25 ----
  1600.   struct egd {
  1601.       int fcbeg, fcend;    /* fcend: first unused pos */
  1602.       xchar gdx, gdy;        /* goal of guard's walk */
  1603. +     xchar ogx, ogy;        /* guard's last position */
  1604. +     xchar gdlevel;        /* level guard was created on */
  1605. +     xchar warncnt;        /* number of warnings to follow */
  1606.       unsigned gddone:1;
  1607.       struct fakecorridor fakecorr[FCSIZ];
  1608.   };
  1609.   
  1610. ! #define    EGD(mon)    ((struct egd *)(&(mon->mextra[0])))
  1611.   
  1612.   #endif /* VAULT_H /* */
  1613. *** include/Old/vmsconf.h    Mon Feb 19 22:16:40 1990
  1614. --- include/vmsconf.h    Tue Feb  6 18:45:10 1990
  1615. ***************
  1616. *** 31,36 ****
  1617. --- 31,42 ----
  1618.    * The remainder of the file should not need to be changed.
  1619.    */
  1620.   
  1621. + /* GCC 1.36 (or maybe GAS) for VMS has a bug with extern const declarations.
  1622. +    Until it is fixed, eliminate const. */
  1623. + #ifdef __GNUC__
  1624. + # define const
  1625. + #endif
  1626.   #include <time.h>
  1627.   #include <file.h>
  1628.   
  1629. ***************
  1630. *** 59,69 ****
  1631. --- 65,79 ----
  1632.   #define Srand(seed) srand(seed)
  1633.   #endif
  1634.   
  1635. + #define bcopy(s1,s2,sz) memcpy(s2,s1,sz)
  1636.   #define unlink(x) delete(x)
  1637.   #define exit(x) vms_exit(x)
  1638.   #define getuid() vms_getuid()
  1639.   #define abort() vms_abort()
  1640.   #define creat(f,m) vms_creat(f,m)
  1641. + /* VMS global names are case insensitive... */
  1642. + #define An vms_an
  1643.   
  1644.   #endif
  1645.   #endif /* VMS /* */
  1646. *** include/Old/you.h    Mon Feb 19 22:17:00 1990
  1647. --- include/you.h    Mon Feb 19 18:16:33 1990
  1648. ***************
  1649. *** 67,73 ****
  1650.       struct prop uprops[LAST_PROP+1];
  1651.   
  1652.       unsigned umconf;
  1653. !     char *usick_cause;
  1654.   /* For messages referring to hands, eyes, feet, etc... when polymorphed */
  1655.   #define ARM 0
  1656.   #define EYE 1
  1657. --- 67,73 ----
  1658.       struct prop uprops[LAST_PROP+1];
  1659.   
  1660.       unsigned umconf;
  1661. !     const char *usick_cause;
  1662.   /* For messages referring to hands, eyes, feet, etc... when polymorphed */
  1663.   #define ARM 0
  1664.   #define EYE 1
  1665. ***************
  1666. *** 81,87 ****
  1667.   #define LEG 9
  1668.   #define LIGHT_HEADED 10
  1669.   #define NECK 11
  1670. ! #define TOE 12
  1671.   #ifdef POLYSELF
  1672.       int mh, mhmax, mtimedone, umonnum;    /* for polymorph-self */
  1673.       struct attribs    macurr,            /* for monster attribs */
  1674. --- 81,88 ----
  1675.   #define LEG 9
  1676.   #define LIGHT_HEADED 10
  1677.   #define NECK 11
  1678. ! #define SPINE 12
  1679. ! #define TOE 13
  1680.   #ifdef POLYSELF
  1681.       int mh, mhmax, mtimedone, umonnum;    /* for polymorph-self */
  1682.       struct attribs    macurr,            /* for monster attribs */
  1683.  
  1684.