[comp.sources.amiga] v02i072: nethack - D&D-like game

page@swan.ulowell.edu (Bob Page) (12/02/88)

Submitted-by: u211344@hnykun11.bitnet (Olaf 'Rhialto' Seibert)
Posting-number: Volume 2, Issue 72
Archive-name: fun/nethack.d3

#	This is a shell archive.
#	Remove everything above and including the cut line.
#	Then run the rest of the file through sh.
#----cut here-----cut here-----cut here-----cut here----#
#!/bin/sh
# shar:    Shell Archiver
#	Run the following text with /bin/sh to create:
#	diffs.3
# This archive created: Thu Dec  1 17:55:33 1988
cat << \SHAR_EOF > diffs.3

--- 155,159 -----
  # ifdef MSDOS
                        wizard = TRUE;
! # else /* MSDOS */
                        if(!strcmp(getlogin(), WIZARD))
                                wizard = TRUE;
***************
*** 135,138
  # endif
                        break;
  #endif
                case 'u':

--- 165,173 -----
  # endif
                        break;
+ #endif /* WIZARD */
+ #ifdef NEWS
+               case 'n':
+                       flags.nonews = TRUE;
+                       break;
  #endif
                case 'u':
***************
*** 209,212
        start_screen();
  #ifdef DGK
        strncat(SAVEF, plname, 8);
        strcat(SAVEF, ".sav");

--- 244,250 -----
        start_screen();
  #ifdef DGK
+ # ifdef AMIGA
+       strncat(SAVEF, plname, 27);
+ # else
        strncat(SAVEF, plname, 8);
  # endif
***************
*** 210,213
  #ifdef DGK
        strncat(SAVEF, plname, 8);
        strcat(SAVEF, ".sav");
        cls();

--- 248,252 -----
  # else
        strncat(SAVEF, plname, 8);
+ # endif
        strcat(SAVEF, ".sav");
        cls();
***************
*** 227,240
                pline("Hello %s%s, welcome to %s!",
                        (Badged) ? "Officer " : "", plname, hname);
- #ifdef WIZARD
-               if (wizard && dlevel == 1)
- # ifdef STOOGES
- pline ("The wiz is at %d, the medusa is at %d, and the stooges are at %d",
-                       u.wiz_level, u.medusa_level, u.stooge_level);
- # else
-                   pline ("The wiz is at %d, and the medusa at %d",
-                          u.wiz_level, u.medusa_level);
- # endif
- #endif
                flags.move = 0;
        } else {

--- 266,269 -----
                pline("Hello %s%s, welcome to %s!",
                        (Badged) ? "Officer " : "", plname, hname);
                flags.move = 0;
        } else {
***************
*** 272,275
                }
                seemons();
                docrt();


--- 301,308 -----
                }
                seemons();
+ #ifdef NEWS
+               if(flags.nonews || !readnews())
+                       /* after reading news we did docrt() already */
+ #endif
                docrt();

***************
*** 276,279
                /* give welcome message before pickup messages */
                pline("Hello %s, welcome to %s!", plname, hname);

                pickup(1);

--- 309,322 -----
                /* give welcome message before pickup messages */
                pline("Hello %s, welcome to %s!", plname, hname);
+ #ifdef WIZARD
+               if (wizard)
+ # ifdef STOOGES
+ pline ("The wiz is at %d, the medusa is at %d, and the stooges are at %d",
+                       u.wiz_level, u.medusa_level, u.stooge_level);
+ # else
+                   pline ("The wiz is at %d, and the medusa at %d",
+                          u.wiz_level, u.medusa_level);
+ # endif
+ #endif

                pickup(1);
***************
*** 292,295
        (void) signal(SIGINT, SIG_IGN);
  #ifdef MSDOS
        /* Help for Microsoft optimizer.  Otherwise main is too large -dgk*/
        moveloop();

--- 335,339 -----
        (void) signal(SIGINT, SIG_IGN);
  #ifdef MSDOS
+ # ifndef AMIGA
        /* Help for Microsoft optimizer.  Otherwise main is too large -dgk*/
        moveloop();
***************
*** 301,304
        char ch;
        int abort;
  #endif /* MSDOS */
        for(;;) {

--- 345,349 -----
        char ch;
        int abort;
+ # endif /* AMIGA */
  #endif /* MSDOS */
        for(;;) {
***************
*** 387,391
  #endif
                        if(Teleportation && !rn2(85)) tele();
! #if defined(KAA) && defined(BVH)
                        if(Polymorph && !rn2(100)) polyself();
  #endif

--- 432,438 -----
  #endif
                        if(Teleportation && !rn2(85)) tele();
! /* #if defined(KAA) && defined(BVH) */
! #ifdef KAA
! # ifdef BVH
                        if(Polymorph && !rn2(100)) polyself();
  # endif
***************
*** 389,392
  #if defined(KAA) && defined(BVH)
                        if(Polymorph && !rn2(100)) polyself();
  #endif
                        if(Searching && multi >= 0) (void) dosearch();

--- 436,440 -----
  # ifdef BVH
                        if(Polymorph && !rn2(100)) polyself();
+ # endif
  #endif
                        if(Searching && multi >= 0) (void) dosearch();
***************
*** 477,480
                        }
                } else if(multi == 0) {
                        rhack((char *) 0);
                }

--- 525,531 -----
                        }
                } else if(multi == 0) {
+ #ifdef MAIL
+                       ckmailstatus();
+ #endif
                        rhack((char *) 0);
                }
***************
*** 502,506
  /*
   * plname is filled either by an option (-u Player  or  -uPlayer) or
!  * explicitly (-w implies wizard) or by askname.
   * It may still contain a suffix denoting pl_character.
   */

--- 553,557 -----
  /*
   * plname is filled either by an option (-u Player  or  -uPlayer) or
!  * explicitly (-D implies wizard) or by askname.
   * It may still contain a suffix denoting pl_character.
   */
***************
*** 511,517
        ct = 0;
        while((c = getchar()) != '\n'){
- #ifdef MSDOS
-               msmsg("%c", c);
- #endif
                if(c == EOF) error("End of input\n");
                /* some people get confused when their erase char is not ^H */

--- 562,565 -----
        ct = 0;
        while((c = getchar()) != '\n'){
                if(c == EOF) error("End of input\n");
                /* some people get confused when their erase char is not ^H */
***************
*** 516,521
                if(c == EOF) error("End of input\n");
                /* some people get confused when their erase char is not ^H */
!               if(c == '\010') {
!                       if(ct) ct--;
                        continue;
                }

--- 564,574 -----
                if(c == EOF) error("End of input\n");
                /* some people get confused when their erase char is not ^H */
!               if(c == '\b') {
!                       if(ct) {
!                               ct--;
! #ifdef MSDOS
!                               msmsg("\b \b");
! #endif
!                       }
                        continue;
                }
***************
*** 522,525
                if(c != '-')
                if(c < 'A' || (c > 'Z' && c < 'a') || c > 'z') c = '_';
                if(ct < sizeof(plname)-1) plname[ct++] = c;
        }

--- 575,581 -----
                if(c != '-')
                if(c < 'A' || (c > 'Z' && c < 'a') || c > 'z') c = '_';
+ #ifdef MSDOS
+               msmsg("%c", c);
+ #endif
                if(ct < sizeof(plname)-1) plname[ct++] = c;
        }
***************
*** 547,550

  #ifdef DGK
        /* Change the default drive as well.
         */

--- 603,607 -----

  #ifdef DGK
+ # ifndef AMIGA
        /* Change the default drive as well.
         */
***************
*** 550,553
         */
        chdrive(dir);
  #endif


--- 607,611 -----
         */
        chdrive(dir);
+ # endif
  #endif

***************
*** 559,562

            if(dir == NULL)
                dir = ".";
            if((fd = open(RECORD, 2)) < 0) {

--- 617,623 -----

            if(dir == NULL)
+ #ifdef AMIGA
+               dir = "";
+ #else
                dir = ".";
  #endif
***************
*** 560,563
            if(dir == NULL)
                dir = ".";
            if((fd = open(RECORD, 2)) < 0) {
  #ifdef DGK

--- 621,625 -----
  #else
                dir = ".";
+ #endif
            if((fd = open(RECORD, 2)) < 0) {
  #ifdef DGK
diff -bc2 pcunix.c Amiga:pcunix.c
No differences encountered
diff -bc2 permonst.h Amiga:permonst.h
No differences encountered
diff -bc2 polyself.c Amiga:polyself.c
*** polyself.c  Wed May  4 15:08:48 1988
--- Amiga:polyself.c      Thu Aug  4 13:04:55 1988
***************
*** 45,49
            if (!rn2(10)) flags.female = !flags.female;
            tmp = u.uhpmax;
!           tmp2 = u.ulevel;
            u.usym = '@';
            prme();

--- 45,49 -----
            if (!rn2(10)) flags.female = !flags.female;
            tmp = u.uhpmax;
!           if (!(tmp2 = u.ulevel)) tmp2 = 1;   /* Seems this happened once */
            u.usym = '@';
            prme();
***************
*** 50,54
            u.mtimedone = u.mh = u.mhmax = 0;
            u.ulevel = u.ulevel-2+rn2(5);
!           if (u.ulevel > 127 || u.ulevel == 0) u.ulevel = 1;
            if (u.ulevel > 14) u.ulevel = 14;
            if (u.ulevel == 1) u.uexp = rnd(10);

--- 50,54 -----
            u.mtimedone = u.mh = u.mhmax = 0;
            u.ulevel = u.ulevel-2+rn2(5);
!           if (u.ulevel > 127 || u.ulevel <= 0) u.ulevel = 1;
            if (u.ulevel > 14) u.ulevel = 14;
            if (u.ulevel == 1) u.uexp = rnd(10);
***************
*** 76,81
  #ifdef BVH
                if(Polymorph_control) {
!                   u.uhp = (u.uhp <= 0) ? 1 : u.uhp;
!                   u.uhpmax = (u.uhpmax <= 0) ? 1  : u.uhpmax;
                } else {
  #endif

--- 76,81 -----
  #ifdef BVH
                if(Polymorph_control) {
!                   if (u.uhp <= 0) u.uhp = 1;
!                   if (u.uhpmax <= 0) u.uhpmax = 1;
                } else {
  #endif
***************
*** 162,166
       else if (uarmu) {
                pline("The transformation causes you to tear out of your
shirt!");
!               if (uarmu) useup(uarmu);
        }
  #endif

--- 162,166 -----
       else if (uarmu) {
                pline("The transformation causes you to tear out of your
shirt!");
!               /*if (uarmu)*/ useup(uarmu);
      }
  #endif
diff -bc2 pray.c Amiga:pray.c
*** pray.c      Wed May  4 15:08:54 1988
--- Amiga:pray.c  Sun Jul 24 16:53:07 1988
***************
*** 405,409
                        }
  #ifdef KAA
!                       if(uwep && (uwep->olet == WEAPON_SYM)) {
                            if (uwep->cursed) {
                                uwep->cursed=0;

--- 405,409 -----
                        }
  #ifdef KAA
!                       if(uwep->olet == WEAPON_SYM) {
                            if (uwep->cursed) {
                                uwep->cursed=0;
diff -bc2 pri.c Amiga:pri.c
*** pri.c       Wed May  4 15:08:54 1988
--- Amiga:pri.c   Sun Jul 24 17:07:24 1988
***************
*** 19,23
  swallowed()
  {
!       char *ulook = "|@|";
        ulook[1] = u.usym;


--- 19,23 -----
  swallowed()
  {
!       static char ulook[] = "|@|";   /*OIS*/
        ulook[1] = u.usym;

***************
*** 24,27
        cls();
        curs(u.ux-1, u.uy+1);
        fputs("/-\\", stdout);
        curx = u.ux+2;

--- 24,30 -----
        cls();
        curs(u.ux-1, u.uy+1);
+ #ifdef stdout_puts    /* Defined when not via normal files */
+       stdout_puts("/-\\");       /* OIS, for AMIGA */
+ #else
        fputs("/-\\", stdout);
  #endif
***************
*** 25,28
        curs(u.ux-1, u.uy+1);
        fputs("/-\\", stdout);
        curx = u.ux+2;
        curs(u.ux-1, u.uy+2);

--- 28,32 -----
  #else
        fputs("/-\\", stdout);
+ #endif
        curx = u.ux+2;
        curs(u.ux-1, u.uy+2);
***************
*** 27,30
        curx = u.ux+2;
        curs(u.ux-1, u.uy+2);
        fputs(ulook, stdout);
        curx = u.ux+2;

--- 31,37 -----
        curx = u.ux+2;
        curs(u.ux-1, u.uy+2);
+ #ifdef stdout_puts
+       stdout_puts(ulook);        /* for AMIGA */
+ #else
        fputs(ulook, stdout);
  #endif
***************
*** 28,31
        curs(u.ux-1, u.uy+2);
        fputs(ulook, stdout);
        curx = u.ux+2;
        curs(u.ux-1, u.uy+3);

--- 35,39 -----
  #else
        fputs(ulook, stdout);
+ #endif
        curx = u.ux+2;
        curs(u.ux-1, u.uy+3);
***************
*** 30,33
        curx = u.ux+2;
        curs(u.ux-1, u.uy+3);
        fputs("\\-/", stdout);
        curx = u.ux+2;

--- 38,44 -----
        curx = u.ux+2;
        curs(u.ux-1, u.uy+3);
+ #ifdef stdout_puts
+       stdout_puts("\\-/");       /* for AMIGA */
+ #else
        fputs("\\-/", stdout);
  #endif
***************
*** 31,34
        curs(u.ux-1, u.uy+3);
        fputs("\\-/", stdout);
        curx = u.ux+2;
        u.udispl = 1;

--- 42,46 -----
  #else
        fputs("\\-/", stdout);
+ #endif
        curx = u.ux+2;
        u.udispl = 1;
***************
*** 130,134
        if(!Invisible) {
                levl[(u.udisx = u.ux)][(u.udisy = u.uy)].scrsym = u.usym;
!               levl[u.udisx][u.udisy].seen = 1;
                u.udispl = 1;
        } else  u.udispl = 0;

--- 142,146 -----
        if(!Invisible) {
                levl[(u.udisx = u.ux)][(u.udisy = u.uy)].scrsym = u.usym;
!               RM_SET_SEEN(levl[u.udisx][u.udisy]);
                u.udispl = 1;
        } else  u.udispl = 0;
***************
*** 140,144
  /* This nonsense should disappear soon --------------------------------- */

! #if defined(DGK) && !defined(MSDOSCOLOR)
        /* I don't know DEC Rainbows, but if HILITE_COLOR is applicable,
         * the !defined(HILITE_COLOR) will have to be compensated for.

--- 152,163 -----
  /* This nonsense should disappear soon --------------------------------- */

! /* #if defined(DGK) && !defined(MSDOSCOLOR) */
! #ifdef DGK
! # define XXX
! #endif
! #ifdef MSDOSCOLOR
! # undef XXX
! #endif
! #ifdef XXX
        /* I don't know DEC Rainbows, but if HILITE_COLOR is applicable,
         * the !defined(HILITE_COLOR) will have to be compensated for.
***************
*** 151,156
                for(y = 0; y < ROWNO; y++)
                        for(x = 0; x < COLNO; x++)
!                               if((room = &levl[x][y])->new) {
!                                       room->new = 0;
                                        at(x,y,room->scrsym);
                                } else if(room->seen)

--- 170,175 -----
                for(y = 0; y < ROWNO; y++)
                        for(x = 0; x < COLNO; x++)
!                               if((room = &levl[x][y]), RM_NEW(*room)) {
!                                       RM_CLR_NEW(*room);
                                        at(x,y,room->scrsym);
                                } else if(RM_SEEN(*room))
***************
*** 154,158
                                        room->new = 0;
                                        at(x,y,room->scrsym);
!                               } else if(room->seen)
                                        at(x,y,room->scrsym);
                multipleAts = FALSE;

--- 173,177 -----
                                        RM_CLR_NEW(*room);
                                        at(x,y,room->scrsym);
!                               } else if(RM_SEEN(*room))
                                        at(x,y,room->scrsym);
                multipleAts = FALSE;
***************
*** 169,174
                        memset(buf, ' ', COLNO);
                        for(x = 0, start = -1, end = -1; x < COLNO; x++)
!                               if((room = &levl[x][y])->new) {
!                                       room->new = 0;
                                        buf[x] = room->scrsym;
                                        if (start < 0)

--- 188,193 -----
                        memset(buf, ' ', COLNO);
                        for(x = 0, start = -1, end = -1; x < COLNO; x++)
!                               if((room = &levl[x][y]), RM_NEW(*room)) {
!                                       RM_CLR_NEW(*room);
                                        buf[x] = room->scrsym;
                                        if (start < 0)
***************
*** 175,179
                                                start = x;
                                        end = x;
!                               } else if(room->seen) {
                                        buf[x] = room->scrsym;
                                        if (start < 0)

--- 194,198 -----
                                                start = x;
                                        end = x;
!                               } else if(RM_SEEN(*room)) {
                                        buf[x] = room->scrsym;
                                        if (start < 0)
***************
*** 184,187
                                buf[end + 1] = '\0';
                                curs(start, y + 2);
                                fputs(buf + start, stdout);
                                curx = end + 1;

--- 203,209 -----
                                buf[end + 1] = '\0';
                                curs(start, y + 2);
+ #ifdef stdout_puts
+                               stdout_puts(buf + start);
+ #else
                                fputs(buf + start, stdout);
  #endif
***************
*** 185,188
                                curs(start, y + 2);
                                fputs(buf + start, stdout);
                                curx = end + 1;
                        }

--- 207,211 -----
  #else
                                fputs(buf + start, stdout);
+ #endif
                                curx = end + 1;
                        }
***************
*** 192,197
        for(y = 0; y < ROWNO; y++)
                for(x = 0; x < COLNO; x++)
!                       if((room = &levl[x][y])->new) {
!                               room->new = 0;
                                at(x,y,room->scrsym);
                        } else if(room->seen)

--- 215,220 -----
        for(y = 0; y < ROWNO; y++)
                for(x = 0; x < COLNO; x++)
!                       if((room = &levl[x][y]), RM_NEW(*room)) {
!                               RM_CLR_NEW(*room);
                                at(x,y,room->scrsym);
                        } else if (RM_SEEN(*room))
***************
*** 195,199
                                room->new = 0;
                                at(x,y,room->scrsym);
!                       } else if(room->seen)
                                at(x,y,room->scrsym);
  #endif

--- 218,222 -----
                                RM_CLR_NEW(*room);
                                at(x,y,room->scrsym);
!                       } else if (RM_SEEN(*room))
                                at(x,y,room->scrsym);
  #endif
***************
*** 198,201
                                at(x,y,room->scrsym);
  #endif
        scrlx = COLNO;
        scrly = ROWNO;

--- 221,225 -----
                                at(x,y,room->scrsym);
  #endif
+ #undef XXX
        scrlx = COLNO;
        scrly = ROWNO;
***************
*** 231,236
                if(y < ROWNO) {
                    for(x = xmin; x < COLNO; x++) {
!                       if((room = &levl[x][y])->new) {
!                               room->new = 0;
                                at(x,y,room->scrsym);
                        } else

--- 255,260 -----
                if(y < ROWNO) {
                    for(x = xmin; x < COLNO; x++) {
!                       if((room = &levl[x][y]), RM_NEW(*room)) {
!                               RM_CLR_NEW(*room);
                                at(x,y,room->scrsym);
                        } else
***************
*** 235,239
                                at(x,y,room->scrsym);
                        } else
!                               if(room->seen)
                                        at(x,y,room->scrsym);
                    }

--- 259,263 -----
                                at(x,y,room->scrsym);
                        } else
!                               if (RM_SEEN(*room))
                                        at(x,y,room->scrsym);
                    }
***************
*** 294,298
                if(mtmp->data->mlet == ';')
                        mtmp->minvis = (u.ustuck != mtmp &&
!                                       levl[mtmp->mx][mtmp->my].typ == POOL);
                pmon(mtmp);
  #ifndef NOWORM

--- 318,322 -----
                if(mtmp->data->mlet == ';')
                        mtmp->minvis = (u.ustuck != mtmp &&
!                                       RM_TYP(levl[mtmp->mx][mtmp->my]) ==
POOL);
                pmon(mtmp);
  #ifndef NOWORM
***************
*** 348,353
        for(y = scrly; y <= scrhy; y++)
                for(x = scrlx; x <= scrhx; x++)
!                       if((room = &levl[x][y])->new) {
!                               room->new = 0;
                                at(x,y,room->scrsym);
                        }

--- 372,377 -----
        for(y = scrly; y <= scrhy; y++)
                for(x = scrlx; x <= scrhx; x++)
!                       if((room = &levl[x][y]), RM_NEW(*room)) {
!                               RM_CLR_NEW(*room);
                                at(x,y,room->scrsym);
                        }
***************
*** 383,387
                u.mtimedone ? u.mh : u.uhp, u.mtimedone ? u.mhmax : u.uhpmax,
                u.uen, u.uenmax, u.uac);
! #  else
                u.uhp, u.uhpmax, u.uen, u.uenmax, u.uac);
  #  endif

--- 407,411 -----
                u.mtimedone ? u.mh : u.uhp, u.mtimedone ? u.mhmax : u.uhpmax,
                u.uen, u.uenmax, u.uac);
! #  else /* !KAA */
                u.uhp, u.uhpmax, u.uen, u.uenmax, u.uac);
  #  endif /* KAA */
***************
*** 385,390
  #  else
                u.uhp, u.uhpmax, u.uen, u.uenmax, u.uac);
! #  endif
! # else
                "Level %-2d  Gold %-5lu  Hp %3d(%d)  Ac %-2d  ",
                dlevel, u.ugold,

--- 409,414 -----
  #  else /* !KAA */
                u.uhp, u.uhpmax, u.uen, u.uenmax, u.uac);
! #  endif /* KAA */
! # else /* !SPELLS */
                "Level %-2d  Gold %-5lu  Hp %3d(%d)  Ac %-2d  ",
                dlevel, u.ugold,
***************
*** 392,396
                u.mtimedone ? u.mh : u.uhp, u.mtimedone ? u.mhmax : u.uhpmax,
                u.uac);
! #  else
                u.uhp, u.uhpmax, u.uac);
  #  endif

--- 416,420 -----
                u.mtimedone ? u.mh : u.uhp, u.mtimedone ? u.mhmax : u.uhpmax,
                u.uac);
! #  else /* !KAA */
                u.uhp, u.uhpmax, u.uac);
  #  endif /* KAA */
***************
*** 394,400
  #  else
                u.uhp, u.uhpmax, u.uac);
! #  endif
! # endif
! #else
  # ifdef SPELLS
                "Level %-2d Hp %3d(%d) Energy %3d(%d) Ac %-2d ",

--- 418,424 -----
  #  else /* !KAA */
                u.uhp, u.uhpmax, u.uac);
! #  endif /* KAA */
! # endif /* SPELLS */
! #else /* !GOLD_ON_BOTL */
  # ifdef SPELLS
                "Level %-2d Hp %3d(%d) Energy %3d(%d) Ac %-2d ",
***************
*** 403,407
                u.mtimedone ? u.mh : u.uhp, u.mtimedone ? u.mhmax, u.uhpmax,
                u.uen, u.uenmax, u.uac);
! #  else
                u.uhp, u.uhpmax, u.uen, u.uenmax, u.uac);
  #  endif

--- 427,431 -----
                u.mtimedone ? u.mh : u.uhp, u.mtimedone ? u.mhmax, u.uhpmax,
                u.uen, u.uenmax, u.uac);
! #  else /* !KAA */
                u.uhp, u.uhpmax, u.uen, u.uenmax, u.uac);
  #  endif /* KAA */
***************
*** 405,410
  #  else
                u.uhp, u.uhpmax, u.uen, u.uenmax, u.uac);
! #  endif
! # else
                "Level %-2d   Hp %3d(%d)   Ac %-2d   ",
                dlevel,

--- 429,434 -----
  #  else /* !KAA */
                u.uhp, u.uhpmax, u.uen, u.uenmax, u.uac);
! #  endif /* KAA */
! # else /* !SPELLS */
                "Level %-2d   Hp %3d(%d)   Ac %-2d   ",
                dlevel,
***************
*** 412,416
                u.mtimedone ? u.mh : u.uhp, u.mtimedone ? u.mhmax, u.uhpmax,
                u.uac);
! #  else
                u.uhp, u.uhpmax, u.uac);
  #  endif

--- 436,440 -----
                u.mtimedone ? u.mh : u.uhp, u.mtimedone ? u.mhmax, u.uhpmax,
                u.uac);
! #  else /* !KAA */
                u.uhp, u.uhpmax, u.uac);
  #  endif /* KAA */
***************
*** 414,420
  #  else
                u.uhp, u.uhpmax, u.uac);
! #  endif
! # endif
! #endif
  #ifdef KAA
        if (u.mtimedone)

--- 438,444 -----
  #  else /* !KAA */
                u.uhp, u.uhpmax, u.uac);
! #  endif /* KAA */
! # endif /* SPELLS */
! #endif /* GOLD_ON_BOTL */
  #ifdef KAA
        if (u.mtimedone)
***************
*** 463,467
  }

! #if defined(WAN_PROBING) || defined(KAA)
  mstatusline(mtmp) register struct monst *mtmp; {
        pline("Status of %s: ", monnam(mtmp));

--- 487,499 -----
  }

! /* #if defined(WAN_PROBING) || defined(KAA) */
! #ifdef WAN_PROBING
! # define XXX
! #endif
! #ifdef KAA
! # define XXX
! #endif
!
! #ifdef XXX
  mstatusline(mtmp) register struct monst *mtmp; {
        pline("Status of %s: ", monnam(mtmp));
***************
*** 485,488
  }
  #endif

  cls(){

--- 517,521 -----
  }
  #endif
+ #undef XXX

  cls(){
diff -bc2 rip.c Amiga:rip.c
*** rip.c       Wed May  4 15:09:00 1988
--- Amiga:rip.c   Wed Jul 27 20:41:10 1988
***************
*** 43,48
                !strncmp(killer, "the ", 4) ? "" :
                !strcmp(killer, "starvation") ? "" :
!               !strncmp(killer, "Mr.") ? "" :
!               !strncmp(killer, "Ms.") ? "" :
  #ifdef STOOGES
                !strcmp(killer, "Larry") ? "" :

--- 43,48 -----
                !strncmp(killer, "the ", 4) ? "" :
                !strcmp(killer, "starvation") ? "" :
!               !strncmp(killer, "Mr.", 3) ? "" :
!               !strncmp(killer, "Ms.", 3) ? "" :
  #ifdef STOOGES
                !strcmp(killer, "Larry") ? "" :
***************
*** 84,87
  }

  center(line, text) int line; char *text; {
  register char *ip,*op;

--- 84,91 -----
  }

+ /*
+  * dirty to write into unnamed literal strings...
+  * they might be in a read-only code-segment! (OIS)
+  */
  center(line, text) int line; char *text; {
  register char *ip,*op;
diff -bc2 rm.h Amiga:rm.h
*** rm.h        Wed May  4 15:09:00 1988
--- Amiga:rm.h    Sun Jul 24 23:45:54 1988
***************
*** 116,120
  #define       ERRCHAR ']'

! #define MAXPCHARS     17      /* maximum number of mapped characters */

  #define IS_CORNER(x)  ((x) == TLCORN_SYM || (x) == TRCORN_SYM \

--- 116,120 -----
  #define ERRCHAR ']'

! #define MAXPCHARS     18      /* maximum number of mapped characters */

  #define IS_CORNER(x)    ((x) == TLCORN_SYM || (x) == TRCORN_SYM \
***************
*** 126,130
   * the size of temporary files and save files.
   */
- #ifdef MSDOS
  /* Save disk space by using unsigned char's instead of unsigned ints
   */

--- 126,129 -----
   * the size of temporary files and save files.
   */
  /* Save disk space by using unsigned char's instead of unsigned ints
   */
***************
*** 129,132
  /* Save disk space by using unsigned char's instead of unsigned ints
   */
  struct rm {
        uchar scrsym;

--- 128,132 -----
  /* Save disk space by using unsigned char's instead of unsigned ints
   */
+ #ifdef BITFIELD_BUG
  struct rm {
        uchar scrsym;
***************
*** 131,134
  struct rm {
        uchar scrsym;
        unsigned typ:5;
        unsigned new:1;

--- 131,176 -----
  struct rm {
        uchar scrsym;
+     uchar flags;
+  /* unsigned short typ:5;
+     unsigned short new:1;
+     unsigned short seen:1;
+     unsigned short lit:1; */
+ };
+
+ # define RM_TYPM    0x1F
+ # define RM_NEWM    0x20
+ # define RM_SEENM   0x40
+ # define RM_LITM    0x80
+
+        /* The first macro evaluates room twice... */
+ # define RM_SET_TYP(room, type) ((room).flags = ( (room).flags & ~RM_TYPM ) |
(type))
+ # define RM_TYP(room)           ((room).flags &   RM_TYPM)
+ # define RM_SET_NEW(room)       ((room).flags |=  RM_NEWM)
+ # define RM_CLR_NEW(room)       ((room).flags &= ~RM_NEWM)
+ # define RM_NEW(room)           ((room).flags &   RM_NEWM)
+ # define RM_SET_SEEN(room)      ((room).flags |=  RM_SEENM)
+ # define RM_CLR_SEEN(room)      ((room).flags &= ~RM_SEENM)
+ # define RM_SEEN(room)          ((room).flags &   RM_SEENM)
+ # define RM_SET_LIT(room)       ((room).flags |=  RM_LITM)
+ # define RM_CLR_LIT(room)       ((room).flags &= ~RM_LITM)
+ # define RM_LIT(room)           ((room).flags &   RM_LITM)
+
+ #else  /* no BITFIELD_BUG */
+
+ # define RM_SET_TYP(room, type) ((room).typ = type)
+ # define RM_TYP(room)           ((room).typ)
+ # define RM_SET_NEW(room)       ((room).new = 1)
+ # define RM_CLR_NEW(room)       ((room).new = 0)
+ # define RM_NEW(room)           ((room).new)
+ # define RM_SET_SEEN(room)      ((room).seen = 1)
+ # define RM_CLR_SEEN(room)      ((room).seen = 0)
+ # define RM_SEEN(room)          ((room).seen)
+ # define RM_SET_LIT(room)       ((room).lit = 1)
+ # define RM_CLR_LIT(room)       ((room).lit = 0)
+ # define RM_LIT(room)           ((room).lit)
+
+ # ifdef MSDOS
+ struct rm {
+       uchar scrsym;
        unsigned typ:5;
        unsigned new:1;
***************
*** 136,140
        unsigned lit:1;
  };
! #else
  struct rm {
        char scrsym;

--- 178,182 -----
        unsigned lit:1;
  };
! # else
  struct rm {
        char scrsym;
***************
*** 144,148
        Bitfield(lit,1);
  };
! #endif /* MSDOS /**/
  extern struct rm levl[COLNO][ROWNO];


--- 186,191 -----
        Bitfield(lit,1);
  };
! # endif /* MSDOS /**/
! #endif /* BITFIELD_BUG */
  extern struct rm levl[COLNO][ROWNO];

diff -bc2 rnd.c Amiga:rnd.c
No differences encountered
diff -bc2 rumors.c Amiga:rumors.c
No differences encountered
diff -bc2 search.c Amiga:search.c
*** search.c    Fri Jan 22 09:08:44 1988
--- Amiga:search.c        Mon Jul 11 16:26:24 1988
***************
*** 16,23

        if(u.uswallow) return(0);
!       for(lx = u.ux; (num = levl[lx-1][u.uy].typ) && num != CORR; lx--) ;
!       for(hx = u.ux; (num = levl[hx+1][u.uy].typ) && num != CORR; hx++) ;
!       for(ly = u.uy; (num = levl[u.ux][ly-1].typ) && num != CORR; ly--) ;
!       for(hy = u.uy; (num = levl[u.ux][hy+1].typ) && num != CORR; hy++) ;
        num = 0;
        for(zy = ly; zy <= hy; zy++)

--- 16,23 -----

      if(u.uswallow) return(0);
!     for(lx = u.ux; (num = RM_TYP(levl[lx-1][u.uy])) && num != CORR; lx--) ;
!     for(hx = u.ux; (num = RM_TYP(levl[hx+1][u.uy])) && num != CORR; hx++) ;
!     for(ly = u.uy; (num = RM_TYP(levl[u.ux][ly-1])) && num != CORR; ly--) ;
!     for(hy = u.uy; (num = RM_TYP(levl[u.ux][hy+1])) && num != CORR; hy++) ;
      num = 0;
      for(zy = ly; zy <= hy; zy++)
***************
*** 23,28
        for(zy = ly; zy <= hy; zy++)
                for(zx = lx; zx <= hx; zx++) {
!                       if(levl[zx][zy].typ == SDOOR) {
!                               levl[zx][zy].typ = DOOR;
                                atl(zx, zy, DOOR_SYM);
                                num++;

--- 23,28 -----
      for(zy = ly; zy <= hy; zy++)
        for(zx = lx; zx <= hx; zx++) {
!           if(RM_TYP(levl[zx][zy]) == SDOOR) {
!               RM_SET_TYP(levl[zx][zy], DOOR);
                atl(zx, zy, DOOR_SYM);
                num++;
***************
*** 27,32
                                atl(zx, zy, DOOR_SYM);
                                num++;
!                       } else if(levl[zx][zy].typ == SCORR) {
!                               levl[zx][zy].typ = CORR;
                                atl(zx, zy, CORR_SYM);
                                num++;

--- 27,32 -----
                atl(zx, zy, DOOR_SYM);
                num++;
!           } else if(RM_TYP(levl[zx][zy]) == SCORR) {
!               RM_SET_TYP(levl[zx][zy], CORR);
                atl(zx, zy, CORR_SYM);
                num++;
***************
*** 67,71
        for(x = u.ux-1; x < u.ux+2; x++)
        for(y = u.uy-1; y < u.uy+2; y++) if(x != u.ux || y != u.uy) {
!               if(levl[x][y].typ == SDOOR) {
                        if(rn2(7-fund)) continue;
                        levl[x][y].typ = DOOR;

--- 67,71 -----
      for(x = u.ux-1; x < u.ux+2; x++)
      for(y = u.uy-1; y < u.uy+2; y++) if(x != u.ux || y != u.uy) {
!       if(RM_TYP(levl[x][y]) == SDOOR) {
            if(rn2(7-fund)) continue;
            RM_SET_TYP(levl[x][y], DOOR);
***************
*** 69,74
                if(levl[x][y].typ == SDOOR) {
                        if(rn2(7-fund)) continue;
!                       levl[x][y].typ = DOOR;
!                       levl[x][y].seen = 0;    /* force prl */
                        prl(x,y);
                        nomul(0);

--- 69,74 -----
        if(RM_TYP(levl[x][y]) == SDOOR) {
            if(rn2(7-fund)) continue;
!           RM_SET_TYP(levl[x][y], DOOR);
!           RM_CLR_SEEN(levl[x][y]);    /* force prl */
            prl(x,y);
            nomul(0);
***************
*** 73,77
                        prl(x,y);
                        nomul(0);
!               } else if(levl[x][y].typ == SCORR) {
                        if(rn2(7-fund)) continue;
                        levl[x][y].typ = CORR;

--- 73,77 -----
            prl(x,y);
            nomul(0);
!       } else if(RM_TYP(levl[x][y]) == SCORR) {
            if(rn2(7-fund)) continue;
            RM_SET_TYP(levl[x][y], CORR);
***************
*** 75,80
                } else if(levl[x][y].typ == SCORR) {
                        if(rn2(7-fund)) continue;
!                       levl[x][y].typ = CORR;
!                       levl[x][y].seen = 0;    /* force prl */
                        prl(x,y);
                        nomul(0);

--- 75,80 -----
        } else if(RM_TYP(levl[x][y]) == SCORR) {
            if(rn2(7-fund)) continue;
!           RM_SET_TYP(levl[x][y], CORR);
!           RM_CLR_SEEN(levl[x][y]);    /* force prl */
            prl(x,y);
            nomul(0);
diff -bc2 sit.c Amiga:sit.c
*** sit.c       Wed May  4 15:09:08 1988
--- Amiga:sit.c   Sun Jul 24 18:14:59 1988
***************
*** 17,21

                pline("You are floating in the air, you can't sit!");
!       } else  if(IS_THRONE(levl[u.ux][u.uy].typ)) {

                pline("As you sit in the opulent throne");

--- 17,21 -----

                pline("You are floating in the air, you can't sit!");
!       } else  if(IS_THRONE(RM_TYP(levl[u.ux][u.uy]))) {

                pline("As you sit in the opulent throne");
***************
*** 134,138
                } else  pline("you feel somehow out of place...");

!               if (!rn2(3) && IS_THRONE(levl[u.ux][u.uy].typ)) {

                        pline("The throne vanishes in a puff of logic.");

--- 134,138 -----
                } else  pline("you feel somehow out of place...");

!               if (!rn2(3) && IS_THRONE(RM_TYP(levl[u.ux][u.uy])))    {

                        pline("The throne vanishes in a puff of logic.");
***************
*** 138,142
                        pline("The throne vanishes in a puff of logic.");
  /*                    levl[u.ux][u.uy].scrsym = ROOM_SYM; */
!                       levl[u.ux][u.uy].typ = ROOM;
                }


--- 138,142 -----
                        pline("The throne vanishes in a puff of logic.");
  /*                    levl[u.ux][u.uy].scrsym = ROOM_SYM; */
!                       RM_SET_TYP(levl[u.ux][u.uy], ROOM);
                }

***************
*** 146,150
  #endif /* NEWCLASS /**/

! #if defined(NEWCLASS) || defined(PRAYERS) || defined(HARD)
  rndcurse() {                  /* curse a few inventory items at random! */


--- 146,161 -----
  #endif /* NEWCLASS /**/

! /* #if defined(NEWCLASS) || defined(PRAYERS) || defined(HARD) */
! #ifdef NEWCLASS
! # define XXX
! #endif
! #ifdef PRAYERS
! # define XXX
! #endif
! #ifdef HARD
! # define XXX
! #endif
!
! #ifdef XXX
  rndcurse() {                    /* curse a few inventory items at random! */

diff -bc2 spell.h Amiga:spell.h
No differences encountered
diff -bc2 steal.c Amiga:steal.c
No differences encountered
diff -bc2 timeout.c Amiga:timeout.c
No differences encountered
diff -bc2 topl.c Amiga:topl.c
No differences encountered
diff -bc2 track.c Amiga:track.c
No differences encountered
diff -bc2 vault.c Amiga:vault.c
*** vault.c     Fri Jan 22 09:08:50 1988
--- Amiga:vault.c         Mon Jul 11 16:37:50 1988
***************
*** 47,52
                        return;
                crm = &levl[fcx][fcy];
!               crm->typ = EGD->fakecorr[fcbeg].ftyp;
!               if(!crm->typ) crm->seen = 0;
                newsym(fcx,fcy);
                EGD->fcbeg++;

--- 47,52 -----
            return;
        crm = &levl[fcx][fcy];
!       RM_SET_TYP(*crm, EGD->fakecorr[fcbeg].ftyp);
!       if(!RM_TYP(*crm)) RM_CLR_SEEN(*crm);
        newsym(fcx,fcy);
        EGD->fcbeg++;
***************
*** 96,100
                x = u.ux+dd;
              if(x < 0 || x > COLNO-1) continue;
!             if(levl[x][y].typ == CORR) goto fnd;
            }
          }

--- 96,100 -----
                        x = u.ux+dd;
                    if(x < 0 || x > COLNO-1) continue;
!                   if(RM_TYP(levl[x][y]) == CORR) goto fnd;
                }
            }
***************
*** 103,107
        tele();
        return;
! fnd:
        gx = x; gy = y;


--- 103,107 -----
        tele();
        return;
!     fnd:
        gx = x; gy = y;

***************
*** 108,112
        /* next find a good place for a door in the wall */
        x = u.ux; y = u.uy;
!       while(levl[x][y].typ == ROOM) {
                register int dx,dy;


--- 108,112 -----
        /* next find a good place for a door in the wall */
        x = u.ux; y = u.uy;
!       while(RM_TYP(levl[x][y]) == ROOM) {
            register int dx,dy;

***************
*** 156,161
        EGD->fakecorr[0].fx = x;
        EGD->fakecorr[0].fy = y;
!       EGD->fakecorr[0].ftyp = levl[x][y].typ;
!       levl[x][y].typ = DOOR;
        EGD->fcend = 1;
      }

--- 156,161 -----
        EGD->fakecorr[0].fx = x;
        EGD->fakecorr[0].fy = y;
!       EGD->fakecorr[0].ftyp = RM_TYP(levl[x][y]);
!       RM_SET_TYP(levl[x][y], DOOR);
        EGD->fcend = 1;
      }
***************
*** 182,186
            if(nx == x || ny == y) if(nx != x || ny != y)
            if(isok(nx,ny))
!           if(!IS_WALL(typ = (crm = &levl[nx][ny])->typ) && typ != POOL) {
                register int i;
                for(i = EGD->fcbeg; i < EGD->fcend; i++)

--- 182,186 -----
        if(nx == x || ny == y) if(nx != x || ny != y)
        if(isok(nx,ny))
!       if(!IS_WALL(typ = RM_TYP(*(crm = &levl[nx][ny]))) && typ != POOL) {
            register int i;
            for(i = EGD->fcbeg; i < EGD->fcend; i++)
***************
*** 193,197
                EGD->gddone = 1;
                if(ACCESSIBLE(typ)) goto newpos;
!               crm->typ = (typ == SCORR) ? CORR : DOOR;
                goto proceed;
            }

--- 193,197 -----
            EGD->gddone = 1;
            if(ACCESSIBLE(typ)) goto newpos;
!           RM_SET_TYP(*crm, (typ == SCORR) ? CORR : DOOR);
            goto proceed;
        }
***************
*** 196,200
                goto proceed;
            }
!     nextnxy:  ;
        }
        nx = x;

--- 196,200 -----
            goto proceed;
        }
! nextnxy:    ;
      }
      nx = x;
***************
*** 206,210
        if(abs(gx-x) >= abs(gy-y)) nx += dx; else ny += dy;

!       while((typ = (crm = &levl[nx][ny])->typ) != 0) {
        /* in view of the above we must have IS_WALL(typ) or typ == POOL */
        /* must be a wall here */

--- 206,210 -----
      if(abs(gx-x) >= abs(gy-y)) nx += dx; else ny += dy;

!     while((typ = RM_TYP(*(crm = &levl[nx][ny]))) != 0) {
      /* in view of the above we must have IS_WALL(typ) or typ == POOL */
      /* must be a wall here */
***************
*** 211,215
                if(isok(nx+nx-x,ny+ny-y) && typ != POOL &&
  #ifdef RPH
!                   SPACE_POS(levl[nx+nx-x][ny+ny-y].typ)){
  #else
                    ZAP_POS(levl[nx+nx-x][ny+ny-y].typ)){

--- 211,215 -----
        if(isok(nx+nx-x,ny+ny-y) && typ != POOL &&
  #ifdef RPH
!           SPACE_POS(RM_TYP(levl[nx+nx-x][ny+ny-y]))){
  #else
            ZAP_POS(RM_TYP(levl[nx+nx-x][ny+ny-y]))){
***************
*** 213,217
                    SPACE_POS(levl[nx+nx-x][ny+ny-y].typ)){
  #else
!                   ZAP_POS(levl[nx+nx-x][ny+ny-y].typ)){
  #endif
                        crm->typ = DOOR;

--- 213,217 -----
            SPACE_POS(RM_TYP(levl[nx+nx-x][ny+ny-y]))){
  #else
!           ZAP_POS(RM_TYP(levl[nx+nx-x][ny+ny-y]))){
  #endif
            RM_SET_TYP(*crm, DOOR);
***************
*** 215,219
                    ZAP_POS(levl[nx+nx-x][ny+ny-y].typ)){
  #endif
!                       crm->typ = DOOR;
                        goto proceed;
                }

--- 215,219 -----
            ZAP_POS(RM_TYP(levl[nx+nx-x][ny+ny-y]))){
  #endif
!           RM_SET_TYP(*crm, DOOR);
            goto proceed;
        }
***************
*** 227,231
                }
                /* I don't like this, but ... */
!               crm->typ = DOOR;
                goto proceed;
        }

--- 227,231 -----
        }
        /* I don't like this, but ... */
!       RM_SET_TYP(*crm, DOOR);
        goto proceed;
      }
***************
*** 230,234
                goto proceed;
        }
!       crm->typ = CORR;
  proceed:
        if(cansee(nx,ny)) {

--- 230,234 -----
        goto proceed;
      }
!     RM_SET_TYP(*crm, CORR);
  proceed:
      if(cansee(nx,ny)) {
diff -bc2 version.c Amiga:version.c
*** version.c   Wed May  4 15:09:22 1988
--- Amiga:version.c       Sun Jul 24 22:06:54 1988
***************
*** 8,12

  #ifdef BETA
!       pline("%s Net%s Beta Version %s - last build %s.",
  #else
        pline("%s Net%s Version %s - last build %s.",

--- 8,12 -----

  #ifdef BETA
!       pline("%s Net%s Beta Version %s - last built %s.",
  #else
        pline("%s Net%s Version %s - last built %s.",
***************
*** 10,14
        pline("%s Net%s Beta Version %s - last build %s.",
  #else
!       pline("%s Net%s Version %s - last build %s.",
  #endif
  #ifdef UNIX

--- 10,14 -----
        pline("%s Net%s Beta Version %s - last built %s.",
  #else
!       pline("%s Net%s Version %s - last built %s.",
  #endif
  #ifdef UNIX
***************
*** 16,19
  #endif
  #ifdef MSDOS
                "PC"
  #endif

--- 16,22 -----
  #endif
  #ifdef MSDOS
+ # ifdef AMIGA
+       "Amiga"
+ # else
                "PC"
  # endif
***************
*** 17,20
  #ifdef MSDOS
                "PC"
  #endif
  #ifdef QUEST

--- 20,24 -----
  # else
                "PC"
+ # endif
  #endif
  #ifdef QUEST
***************
*** 41,44
  #endif
  #ifdef MSDOS
                "PC"
  #endif

--- 45,51 -----
  #endif
  #ifdef MSDOS
+ # ifdef AMIGA
+       "Amiga"
+ # else
                "PC"
  # endif
***************
*** 42,45
  #ifdef MSDOS
                "PC"
  #endif
  #ifdef QUEST

--- 49,53 -----
  # else
                "PC"
+ # endif
  #endif
  #ifdef QUEST
***************
*** 75,78
        pg_line("    Steve Linhart      Bruce Mewborne     Janet Walz");
        pg_line("    and...             The Unknown Hacker");
        set_pager(1);
        return(0);

--- 83,91 -----
        pg_line("    Steve Linhart      Bruce Mewborne     Janet Walz");
        pg_line("    and...             The Unknown Hacker");
+
+ #ifdef AMIGA
+       pg_line("");
+       pg_line("Amiga NetHack was ported for you by Olaf Seibert
(KosmoSoft).");
+ #endif
        set_pager(1);
        return(0);
diff -bc2 wield.c Amiga:wield.c
No differences encountered
diff -bc2 wizard.c Amiga:wizard.c
*** wizard.c    Wed May  4 15:09:22 1988
--- Amiga:wizard.c        Sun Jul 24 22:16:12 1988
***************
*** 10,14
  extern struct obj *carrying(), *mksobj_at();

! #if defined(HARD) || defined(DGKMOD)
  # ifdef SAC
  char  nasties[] = "cdDeImoPTUVwxXz3&,:;";

--- 10,22 -----
  extern struct obj *carrying(), *mksobj_at();

! /* #if defined(HARD) || defined(DGKMOD)*/
! #ifdef HARD
! # define XXX
! #endif
! #ifdef DKGMOD
! # define XXX
! #endif
!
! #ifdef XXX
  # ifdef SAC
  char  nasties[] = "cdDeImoPTUVwxXz3&,:;";
***************
*** 20,23
  #define       WIZSHOT     6   /* one chance in WIZSHOT that wizard will try
magic */
  #endif

  #define       BOLT_LIM    8   /* from this distance D and 1 will try to hit
you */

--- 28,32 -----
  #define WIZSHOT     6 /* one chance in WIZSHOT that wizard will try magic */
  #endif
+ #undef XXX

  #define BOLT_LIM    8 /* from this distance D and 1 will try to hit you */
***************
*** 172,176
                                miss(oclass->oc_name, mtmp);
                        else {
! #endif
                                hit(oclass->oc_name, mtmp, exclam(damage));
                                mtmp->mhp -= damage;

--- 181,185 -----
                                miss(oclass->oc_name, mtmp);
                        else {
! #endif /* KAA */
                                hit(oclass->oc_name, mtmp, exclam(damage));
                                mtmp->mhp -= damage;
***************
*** 192,196
                                                mtmp->mblinded = 127;
                                } else
! # endif
                                    if(obj->otyp == ENORMOUS_ROCK) {
                                        mksobj_at(ENORMOUS_ROCK, bhitpos.x,
bhitpos.y);

--- 201,205 -----
                                                mtmp->mblinded = 127;
                                } else
! # endif /* KOPS */
                                    if(obj->otyp == ENORMOUS_ROCK) {
                                        mksobj_at(ENORMOUS_ROCK, bhitpos.x,
bhitpos.y);
***************
*** 199,203
                                }
                        }
! #endif
                }
                if (bhitpos.x == u.ux && bhitpos.y == u.uy) {

--- 208,212 -----
                                }
                        }
! #endif /* KAA */
                }
                if (bhitpos.x == u.ux && bhitpos.y == u.uy) {
***************
*** 209,213
  /* Cream pies must disappear if they hit or miss. */
                        { int hit, blindinc, thitu();
!                        if (!(hit = thitu(8, (obj->otyp != CREAM_PIE) ?
rnd(oclass->wldam) : 0, oclass->oc_name))
                            && obj->otyp != CREAM_PIE
  # else

--- 218,223 -----
  /* Cream pies must disappear if they hit or miss. */
                        { int hit, blindinc, thitu();
!                        if (!(hit = thitu(8, (obj->otyp != CREAM_PIE) ?
!                               rnd(oclass->wldam) : 0, oclass->oc_name))
                            && obj->otyp != CREAM_PIE
  # else
***************
*** 222,226
                                stackobj(fobj);
                         }
! #if defined(KAA) && defined(KOPS)
                         if(hit && obj->otyp == CREAM_PIE) {
                            if(!Blind)  pline("Yeech! You've been creamed.");

--- 232,238 -----
                                stackobj(fobj);
                         }
! /* #if defined(KAA) && defined(KOPS) */
! #ifdef KAA
! # ifdef KOPS
                         if(hit && obj->otyp == CREAM_PIE) {
                            if(!Blind)  pline("Yeech! You've been creamed.");
***************
*** 234,237
                         }
                        }
  #endif
                        range = 0;

--- 246,250 -----
                         }
                        }
+ # endif
  #endif
                        range = 0;
***************
*** 239,243
                tmp_at(bhitpos.x, bhitpos.y);
  #ifdef SINKS
!               if(IS_SINK(levl[bhitpos.x][bhitpos.y].typ))
                        break;  /* thrown objects fall on sink */
  #endif

--- 252,256 -----
                tmp_at(bhitpos.x, bhitpos.y);
  #ifdef SINKS
!               if(IS_SINK(RM_TYP(levl[bhitpos.x][bhitpos.y])))
                        break;  /* thrown objects fall on sink */
  #endif
***************
*** 275,279
                for (x = mtmp->mx, y = mtmp->my; x != u.ux || y != u.uy;
                                x += sgn(tx), y += sgn(ty))
!                       if (!ACCESSIBLE(levl[x][y].typ))
                                return(1);


--- 288,292 -----
                for (x = mtmp->mx, y = mtmp->my; x != u.ux || y != u.uy;
                                x += sgn(tx), y += sgn(ty))
!                       if (!ACCESSIBLE(RM_TYP(levl[x][y])))
                                return(1);

diff -bc2 worm.c Amiga:worm.c
No differences encountered
diff -bc2 worn.c Amiga:worn.c
No differences encountered
diff -bc2 wseg.h Amiga:wseg.h
No differences encountered
diff -bc2 you.h Amiga:you.h
*** you.h       Wed May  4 15:09:24 1988
--- Amiga:you.h   Tue Jul 26 14:49:08 1988
***************
*** 89,93
        int mh, mhmax, mtimedone, umonnum;      /* for polymorph-self */
        schar mstr, mstrmax;                    /* for saving ustr/ustrmax */
! #if defined(KOPS) && defined(KAA)
        unsigned ucreamed;
  #endif

--- 89,95 -----
        int mh, mhmax, mtimedone, umonnum;      /* for polymorph-self */
        schar mstr, mstrmax;                    /* for saving ustr/ustrmax */
! /* #if defined(KOPS) && defined(KAA) */
! #ifdef KOPS
! # ifdef KAA
        unsigned ucreamed;
  # endif
***************
*** 91,94
  #if defined(KOPS) && defined(KAA)
        unsigned ucreamed;
  #endif
        unsigned uswallow;              /* set if swallowed by a monster */

--- 93,97 -----
  # ifdef KAA
        unsigned ucreamed;
+ # endif
  #endif
        unsigned uswallow;              /* set if swallowed by a monster */
diff -bc2 unixmain.c Amiga:aux/unixmain.c
*** unixmain.c  Wed May  4 15:09:16 1988
--- Amiga:aux/unixmain.c  Wed Jul 27 23:35:07 1988
***************
*** 242,246
                pline("Hello %s, welcome to %s!", plname, gamename);
  #ifdef WIZARD
!               if (wizard && dlevel == 1)
  # ifdef STOOGES
  pline ("The wiz is at %d, the medusa is at %d, and the stooges are at %d",

--- 242,246 -----
                pline("Hello %s, welcome to %s!", plname, gamename);
  #ifdef WIZARD
!               if (wizard)
  # ifdef STOOGES
  pline ("The wiz is at %d, the medusa is at %d, and the stooges are at %d",


diff -bc2 objnam.c Amiga:objnam.c
*** objnam.c    Wed May  4 15:08:40 1988
--- Amiga:objnam.c        Sun Jul 24 15:56:30 1988
***************
*** 550,554
  #endif
        p = eos(bp);
! #if defined(KOPS) && !defined(KJSMODS)
        if (!strcmp(p-3, "kop")) {
                *(p-3) = 'K';

--- 550,556 -----
  #endif
        p = eos(bp);
! /* #if defined(KOPS) && !defined(KJSMODS) */
! #ifdef KOPS
! # ifndef KJSMODS
        if (!strcmp(p-3, "kop")) {
                *(p-3) = 'K';
***************
*** 556,559
                goto srch;
        }
  #endif
        for(i = 0; i < sizeof(wrpsym); i++) {

--- 558,562 -----
                goto srch;
        }
+ # endif
  #endif
        for(i = 0; i < sizeof(wrpsym); i++) {
diff -bc2 options.c Amiga:options.c
No differences encountered
diff -bc2 pager.c Amiga:pager.c
*** pager.c     Wed May  4 15:08:44 1988
--- Amiga:pager.c         Sun Jul 24 16:09:30 1988
***************
*** 9,12
  #include      <signal.h>
  #include       "hack.h"
  extern int CO, LI;    /* usually COLNO and ROWNO+2 */
  extern char *CD;
SHAR_EOF
#	End of shell archive
exit 0
-- 
Bob Page, U of Lowell CS Dept.  page@swan.ulowell.edu  ulowell!page
Have five nice days.