#! /bin/sh
# This is a shell archive. Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file". To overwrite existing
# files, type "sh file -c". You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g.. If this archive is complete, you
# will see the following message at the end:
# "End of archive 5 (of 18)."
# Contents: patches03a sys/amiga/amifont8.uu
# Wrapped by billr@saab on Tue Jul 20 14:57:19 1993
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'patches03a' -a "${1}" != "-c" ; then
echo shar: Renaming existing file \"'patches03a'\" to \"'patches03a.orig'\"
mv -f 'patches03a' 'patches03a.orig'
fi
echo shar: Extracting \"'patches03a'\" \(53393 characters\)
sed "s/^X//" >'patches03a' <<'END_OF_FILE'
X*** /tmp/da20824 Mon Jul 12 17:31:22 1993
X--- src/allmain.c Thu Jul 1 14:42:14 1993
X***************
X*** 1,4 ****
X! /* SCCS Id: @(#)allmain.c 3.1 93/05/23 */
X /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
X /* NetHack may be freely redistributed. See license for details. */
X
X--- 1,4 ----
X! /* SCCS Id: @(#)allmain.c 3.1 93/06/16 */
X /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
X /* NetHack may be freely redistributed. See license for details. */
X
X***************
X*** 163,169 ****
X }
X
X if(!u.uinvulnerable) {
X! if(Teleportation && !rn2(85)) tele();
X #ifdef POLYSELF
X if(Polymorph && !rn2(100)) {
X if (multi >= 0) {
X--- 163,175 ----
X }
X
X if(!u.uinvulnerable) {
X! if(Teleportation && !rn2(85)) {
X! #ifdef REDO /* clear doagain keystrokes */
X! pushch(0);
X! savech(0);
X! #endif
X! tele();
X! }
X #ifdef POLYSELF
X if(Polymorph && !rn2(100)) {
X if (multi >= 0) {
X*** /tmp/da20840 Mon Jul 12 17:31:27 1993
X--- src/apply.c Wed Jul 7 16:23:53 1993
X***************
X*** 1,4 ****
X! /* SCCS Id: @(#)apply.c 3.1 93/05/25 */
X /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
X /* NetHack may be freely redistributed. See license for details. */
X
X--- 1,4 ----
X! /* SCCS Id: @(#)apply.c 3.1 93/06/24 */
X /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
X /* NetHack may be freely redistributed. See license for details. */
X
X***************
X*** 40,45 ****
X--- 40,49 ----
X static void FDECL(mkcavearea, (BOOLEAN_P));
X static void FDECL(digactualhole, (int));
X
X+ #ifdef AMIGA
X+ void FDECL( amii_speaker, ( struct obj *, char *, int ) );
X+ #endif
X+
X #ifdef TOURIST
X static int
X use_camera(obj)
X***************
X*** 270,276 ****
X um_dist(x,y,n)
X register xchar x, y, n;
X {
X! return(abs(u.ux - x) > n || abs(u.uy - y) > n);
X }
X
X #endif /* OVLB */
X--- 274,280 ----
X um_dist(x,y,n)
X register xchar x, y, n;
X {
X! return((boolean)(abs(u.ux - x) > n || abs(u.uy - y) > n));
X }
X
X #endif /* OVLB */
X***************
X*** 674,680 ****
X register struct trap *ttmp;
X
X if(dig_effort > 250) {
X! dighole();
X dig_level.dnum = 0;
X dig_level.dlevel = -1;
X return(0); /* done with digging */
X--- 678,684 ----
X register struct trap *ttmp;
X
X if(dig_effort > 250) {
X! (void) dighole(FALSE);
X dig_level.dnum = 0;
X dig_level.dlevel = -1;
X return(0); /* done with digging */
X***************
X*** 693,701 ****
X angry_priest();
X }
X
X! digactualhole(PIT); /* at u.ux, u.uy */
X! dig_level.dnum = 0;
X! dig_level.dlevel = -1;
X return(0);
X }
X if(dig_effort > 100) {
X--- 697,706 ----
X angry_priest();
X }
X
X! if (dighole(TRUE)) { /* make pit at <u.ux,u.uy> */
X! dig_level.dnum = 0;
X! dig_level.dlevel = -1;
X! }
X return(0);
X }
X if(dig_effort > 100) {
X***************
X*** 824,836 ****
X register int x1, y1;
X int lo_x = max(1,x-1), hi_x = min(x+1,COLNO-1),
X lo_y = max(0,y-1), hi_y = min(y+1,ROWNO-1);
X
X for (x1 = lo_x; x1 <= hi_x; x1++)
X for (y1 = lo_y; y1 <= hi_y; y1++)
X! if(levl[x1][y1].typ == MOAT || levl[x1][y1].typ == LAVAPOOL)
X! return levl[x1][y1].typ;
X
X! return ROOM;
X }
X
X static void
X--- 829,858 ----
X register int x1, y1;
X int lo_x = max(1,x-1), hi_x = min(x+1,COLNO-1),
X lo_y = max(0,y-1), hi_y = min(y+1,ROWNO-1);
X+ int pool_cnt = 0, moat_cnt = 0, lava_cnt = 0;
X
X for (x1 = lo_x; x1 <= hi_x; x1++)
X for (y1 = lo_y; y1 <= hi_y; y1++)
X! if (levl[x1][y1].typ == POOL)
X! pool_cnt++;
X! else if (levl[x1][y1].typ == MOAT ||
X! (levl[x1][y1].typ == DRAWBRIDGE_UP &&
X! (levl[x1][y1].drawbridgemask & DB_UNDER) == DB_MOAT))
X! moat_cnt++;
X! else if (levl[x1][y1].typ == LAVAPOOL ||
X! (levl[x1][y1].typ == DRAWBRIDGE_UP &&
X! (levl[x1][y1].drawbridgemask & DB_UNDER) == DB_LAVA))
X! lava_cnt++;
X! pool_cnt /= 3; /* not as much liquid as the others */
X
X! if (lava_cnt > moat_cnt + pool_cnt && rn2(lava_cnt + 1))
X! return LAVAPOOL;
X! else if (moat_cnt > 0 && rn2(moat_cnt + 1))
X! return MOAT;
X! else if (pool_cnt > 0 && rn2(pool_cnt + 1))
X! return POOL;
X! else
X! return ROOM;
X }
X
X static void
X***************
X*** 861,867 ****
X if (oldobjs != newobjs) /* something unearthed */
X pickup(1); /* detects pit */
X else
X! You("dig a pit.");
X
X } else { /* TRAPDOOR */
X pline("You dig a hole through the %s.", surface(u.ux,u.uy));
X--- 883,889 ----
X if (oldobjs != newobjs) /* something unearthed */
X pickup(1); /* detects pit */
X else
X! You("dig a pit in the %s.", surface(u.ux, u.uy));
X
X } else { /* TRAPDOOR */
X pline("You dig a hole through the %s.", surface(u.ux,u.uy));
X***************
X*** 909,916 ****
X }
X }
X
X! void
X! dighole()
X {
X register struct trap *ttmp = t_at(u.ux, u.uy);
X struct rm *lev = &levl[u.ux][u.uy];
X--- 931,940 ----
X }
X }
X
X! /* return TRUE if digging succeeded, FALSE otherwise */
X! boolean
X! dighole(pit_only)
X! boolean pit_only;
X {
X register struct trap *ttmp = t_at(u.ux, u.uy);
X struct rm *lev = &levl[u.ux][u.uy];
X***************
X*** 927,933 ****
X wake_nearby(); /* splashing */
X
X } else if (lev->typ == DRAWBRIDGE_DOWN) {
X! destroy_drawbridge(u.ux,u.uy);
X
X } else if ((boulder_here = sobj_at(BOULDER, u.ux, u.uy)) != 0) {
X if (ttmp && (ttmp->ttyp == PIT || ttmp->ttyp == SPIKED_PIT)) {
X--- 951,963 ----
X wake_nearby(); /* splashing */
X
X } else if (lev->typ == DRAWBRIDGE_DOWN) {
X! if (pit_only) {
X! pline("The drawbridge seems too hard to dig through.");
X! return FALSE;
X! } else {
X! destroy_drawbridge(u.ux, u.uy);
X! return TRUE;
X! }
X
X } else if ((boulder_here = sobj_at(BOULDER, u.ux, u.uy)) != 0) {
X if (ttmp && (ttmp->ttyp == PIT || ttmp->ttyp == SPIKED_PIT)) {
X***************
X*** 958,963 ****
X--- 988,994 ----
X }
X }
X delobj(boulder_here);
X+ return TRUE;
X
X } else if (lev->typ == DRAWBRIDGE_UP) {
X /* must be floor or ice, other cases handled above */
X***************
X*** 965,985 ****
X typ = fillholetyp(u.ux,u.uy);
X
X if (typ == ROOM) {
X- if (lev->drawbridgemask & DB_ICE)
X- typ = MOAT;
X- else {
X /*
X! * We can't dig a pit here since that will destroy
X * the drawbridge. The following is a cop-out. --dlc
X */
X! pline("The floor here is too hard to dig in.");
X! return;
X! }
X }
X
X! lev->drawbridgemask &= DB_DIR;
X! if (typ == LAVAPOOL) lev->drawbridgemask |= DB_LAVA;
X! liquid_flow:
X newsym(u.ux,u.uy);
X
X pline("As you dig a pit, it fills with %s!",
X--- 996,1014 ----
X typ = fillholetyp(u.ux,u.uy);
X
X if (typ == ROOM) {
X /*
X! * We can't dig a hole here since that will destroy
X * the drawbridge. The following is a cop-out. --dlc
X */
X! pline("The %s here is too hard to dig in.",
X! surface(u.ux, u.uy));
X! return FALSE;
X }
X
X! lev->drawbridgemask &= ~DB_UNDER;
X! lev->drawbridgemask |= (typ == LAVAPOOL) ? DB_LAVA : DB_MOAT;
X!
X! liquid_flow:
X newsym(u.ux,u.uy);
X
X pline("As you dig a pit, it fills with %s!",
X***************
X*** 994,1006 ****
X--- 1023,1038 ----
X else if (!Wwalking)
X (void) drown();
X }
X+ return TRUE;
X
X } else if (IS_FOUNTAIN(lev->typ)) {
X dogushforth(FALSE);
X dryup(u.ux,u.uy);
X+ return TRUE;
X #ifdef SINKS
X } else if (IS_SINK(lev->typ)) {
X breaksink(u.ux, u.uy);
X+ return TRUE;
X #endif
X /* the following two are here for the wand of digging */
X } else if (IS_THRONE(lev->typ)) {
X***************
X*** 1010,1030 ****
X pline("The altar is too hard to break apart.");
X
X } else {
X! if (lev->typ == ICE) {
X! typ = fillholetyp(u.ux,u.uy);
X
X! if (typ != ROOM) {
X! lev->typ = typ;
X! goto liquid_flow;
X! }
X }
X
X /* finally we get to make a hole */
X! if (nohole) { /* can't make a trapdoor, so make a pit */
X digactualhole(PIT);
X! } else
X digactualhole(TRAPDOOR);
X }
X }
X
X static boolean
X--- 1042,1064 ----
X pline("The altar is too hard to break apart.");
X
X } else {
X! typ = fillholetyp(u.ux,u.uy);
X
X! if (typ != ROOM) {
X! lev->typ = typ;
X! goto liquid_flow;
X }
X
X /* finally we get to make a hole */
X! if (nohole || pit_only)
X digactualhole(PIT);
X! else
X digactualhole(TRAPDOOR);
X+
X+ return TRUE;
X }
X+
X+ return FALSE;
X }
X
X static boolean
X***************
X*** 1168,1178 ****
X dig_pos.y = u.uy;
X assign_level(&dig_level, &u.uz);
X dig_effort = 0;
X! You("start digging in the %s.", surface(u.ux,u.uy));
X if(*u.ushops)
X shopdig(0);
X } else
X! You("continue digging in the %s.", surface(u.ux,u.uy));
X did_dig_msg = FALSE;
X set_occupation(dig, "digging", 0);
X }
X--- 1202,1212 ----
X dig_pos.y = u.uy;
X assign_level(&dig_level, &u.uz);
X dig_effort = 0;
X! You("start digging downward.");
X if(*u.ushops)
X shopdig(0);
X } else
X! You("continue digging downward.");
X did_dig_msg = FALSE;
X set_occupation(dig, "digging", 0);
X }
X***************
X*** 1327,1333 ****
X
X if(Underwater) {
X #ifdef AMIGA
X! amii_speaker( obj, "AwDwGwEwDhEhAqDqFwGw", AMII_MUFFLED_VOLUME );
X #endif
X pline("But the sound is muffled.");
X return;
X--- 1361,1367 ----
X
X if(Underwater) {
X #ifdef AMIGA
X! amii_speaker( obj, "AhDhGqEqDhEhAqDqFhGw", AMII_MUFFLED_VOLUME );
X #endif
X pline("But the sound is muffled.");
X return;
X***************
X*** 1338,1344 ****
X return;
X }
X #ifdef AMIGA
X! amii_speaker( obj, "awdwgwewdhehaqdqfwgw", AMII_MUFFLED_VOLUME );
X #endif
X if(obj->cursed && !rn2(3)) {
X register struct monst *mtmp;
X--- 1372,1378 ----
X return;
X }
X #ifdef AMIGA
X! amii_speaker( obj, "ahdhgqeqdhehaqdqfhgw", AMII_MUFFLED_VOLUME );
X #endif
X if(obj->cursed && !rn2(3)) {
X register struct monst *mtmp;
X***************
X*** 1382,1388 ****
X register int cnt = openit();
X if(cnt == -1) return; /* was swallowed */
X #ifdef AMIGA
X! amii_speaker( obj, "awawawDwEwCw", AMII_SOFT_VOLUME );
X #endif
X switch(cnt) {
X case 0: pline(nothing_happens); break;
X--- 1416,1422 ----
X register int cnt = openit();
X if(cnt == -1) return; /* was swallowed */
X #ifdef AMIGA
X! amii_speaker( obj, "ahahahDhEhCw", AMII_SOFT_VOLUME );
X #endif
X switch(cnt) {
X case 0: pline(nothing_happens); break;
X***************
X*** 1394,1400 ****
X } else pline(nothing_happens);
X } else { /* uncursed */
X #ifdef AMIGA
X! amii_speaker( obj, "AeFeaeFeAefegW", AMII_OKAY_VOLUME );
X #endif
X if(obj->spe > 0) {
X register int cnt = findit();
X--- 1428,1434 ----
X } else pline(nothing_happens);
X } else { /* uncursed */
X #ifdef AMIGA
X! amii_speaker( obj, "AeFeaeFeAefegw", AMII_OKAY_VOLUME );
X #endif
X if(obj->spe > 0) {
X register int cnt = findit();
X***************
X*** 1770,1775 ****
X--- 1804,1818 ----
X }
X }
X
X+ boolean
X+ tinnable(corpse)
X+ struct obj *corpse;
X+ {
X+ if (corpse->oeaten) return 0;
X+ if (!mons[corpse->corpsenm].cnutrit) return 0;
X+ return 1;
X+ }
X+
X static void
X use_tinning_kit(obj)
X register struct obj *obj;
X***************
X*** 1779,1785 ****
X /* This takes only 1 move. If this is to be changed to take many
X * moves, we've got to deal with decaying corpses...
X */
X! if (!(corpse = floorfood("tin", 1))) return;
X if (corpse->oeaten) {
X You("cannot tin something which is partly eaten.");
X return;
X--- 1822,1828 ----
X /* This takes only 1 move. If this is to be changed to take many
X * moves, we've got to deal with decaying corpses...
X */
X! if (!(corpse = floorfood("tin", 2))) return;
X if (corpse->oeaten) {
X You("cannot tin something which is partly eaten.");
X return;
X*** /tmp/da20850 Mon Jul 12 17:31:33 1993
X--- src/artifact.c Wed Jul 7 16:23:58 1993
X***************
X*** 235,241 ****
X {
X const struct artifact *arti = get_artifact(otmp);
X
X! return(arti && (arti->spfx & abil));
X }
X
X #endif /* OVL0 */
X--- 235,241 ----
X {
X const struct artifact *arti = get_artifact(otmp);
X
X! return((boolean)(arti && (arti->spfx & abil)));
X }
X
X #endif /* OVL0 */
X***************
X*** 256,263 ****
X */
X for (a = artilist+1; a->otyp; a++)
X if (a->otyp == otmp->otyp && !strcmp(a->name, name))
X! return ((a->spfx & (SPFX_NOGEN|SPFX_RESTR)) != 0 ||
X! otmp->quan > 1L);
X
X return FALSE;
X }
X--- 256,263 ----
X */
X for (a = artilist+1; a->otyp; a++)
X if (a->otyp == otmp->otyp && !strcmp(a->name, name))
X! return ((boolean)((a->spfx & (SPFX_NOGEN|SPFX_RESTR)) != 0 ||
X! otmp->quan > 1L));
X
X return FALSE;
X }
X***************
X*** 270,276 ****
X register const struct artifact *weap;
X
X if ((weap = get_artifact(otmp)) != 0)
X! return(weap->attk.adtyp == adtyp);
X return(0);
X }
X
X--- 270,276 ----
X register const struct artifact *weap;
X
X if ((weap = get_artifact(otmp)) != 0)
X! return((boolean)(weap->attk.adtyp == adtyp));
X return(0);
X }
X
X***************
X*** 282,288 ****
X register const struct artifact *weap;
X
X if ((weap = get_artifact(otmp)) != 0)
X! return(weap->defn.adtyp == adtyp);
X return(0);
X }
X
X--- 282,288 ----
X register const struct artifact *weap;
X
X if ((weap = get_artifact(otmp)) != 0)
X! return((boolean)(weap->defn.adtyp == adtyp));
X return(0);
X }
X
X***************
X*** 844,856 ****
X pline("Somehow, %s misses wildly.",
X mon_nam(magr));
X *dmgptr = 0;
X! return (youattack || vis);
X }
X if (noncorporeal(mdef->data) || amorphous(mdef->data)) {
X pline("%s slices through %s neck.",
X artilist[ART_VORPAL_BLADE].name,
X s_suffix(mon_nam(mdef)));
X! return (youattack || vis);
X }
X *dmgptr = mdef->mhp;
X pline(behead_msg[rn2(SIZE(behead_msg))],
X--- 844,856 ----
X pline("Somehow, %s misses wildly.",
X mon_nam(magr));
X *dmgptr = 0;
X! return ((boolean)(youattack || vis));
X }
X if (noncorporeal(mdef->data) || amorphous(mdef->data)) {
X pline("%s slices through %s neck.",
X artilist[ART_VORPAL_BLADE].name,
X s_suffix(mon_nam(mdef)));
X! return ((boolean)(youattack || vis));
X }
X *dmgptr = mdef->mhp;
X pline(behead_msg[rn2(SIZE(behead_msg))],
X*** /tmp/da20858 Mon Jul 12 17:31:35 1993
X--- src/attrib.c Wed Jul 7 16:24:00 1993
X***************
X*** 687,693 ****
X #ifdef WIN32_BUG
X else return(x=((tmp >= 125) ? 125 : (tmp <= 3) ? 3 : tmp));
X #else
X! else return((tmp >= 125) ? 125 : (tmp <= 3) ? 3 : tmp);
X #endif
X }
X #ifdef POLYSELF
X--- 687,693 ----
X #ifdef WIN32_BUG
X else return(x=((tmp >= 125) ? 125 : (tmp <= 3) ? 3 : tmp));
X #else
X! else return((schar)((tmp >= 125) ? 125 : (tmp <= 3) ? 3 : tmp));
X #endif
X }
X #ifdef POLYSELF
X***************
X*** 700,706 ****
X #ifdef WIN32_BUG
X return(x=((tmp >= 25) ? 25 : (tmp <= 3) ? 3 : tmp));
X #else
X! return((tmp >= 25) ? 25 : (tmp <= 3) ? 3 : tmp);
X #endif
X }
X
X--- 700,706 ----
X #ifdef WIN32_BUG
X return(x=((tmp >= 25) ? 25 : (tmp <= 3) ? 3 : tmp));
X #else
X! return((schar)((tmp >= 25) ? 25 : (tmp <= 3) ? 3 : tmp));
X #endif
X }
X
X***************
X*** 711,719 ****
X {
X register int str = ACURR(A_STR);
X
X! if (str <= 18) return str;
X! if (str <= 121) return (19 + str / 50); /* map to 19-21 */
X! else return str - 100;
X }
X
X #endif /* OVL0 */
X--- 711,719 ----
X {
X register int str = ACURR(A_STR);
X
X! if (str <= 18) return((schar)str);
X! if (str <= 121) return((schar)(19 + str / 50)); /* map to 19-21 */
X! else return((schar)(str - 100));
X }
X
X #endif /* OVL0 */
X*** /tmp/da20875 Mon Jul 12 17:31:40 1993
X--- src/bones.c Wed Jul 7 16:59:00 1993
X***************
X*** 1,4 ****
X! /* SCCS Id: @(#)bones.c 3.1 93/05/22 */
X /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985,1993. */
X /* NetHack may be freely redistributed. See license for details. */
X
X--- 1,4 ----
X! /* SCCS Id: @(#)bones.c 3.1 93/06/05 */
X /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985,1993. */
X /* NetHack may be freely redistributed. See license for details. */
X
X***************
X*** 26,32 ****
X
X if (ledger_no(&save_dlevel)) assign_level(lev, &save_dlevel);
X
X! return (((sptr = Is_special(lev)) && !sptr->boneid)
X || !dungeons[lev->dnum].boneid
X /* no bones on the last or multiway branch levels */
X /* in any dungeon (level 1 isn't multiway). */
X--- 26,32 ----
X
X if (ledger_no(&save_dlevel)) assign_level(lev, &save_dlevel);
X
X! return (boolean)(((sptr = Is_special(lev)) && !sptr->boneid)
X || !dungeons[lev->dnum].boneid
X /* no bones on the last or multiway branch levels */
X /* in any dungeon (level 1 isn't multiway). */
X***************
X*** 172,178 ****
X #ifdef TUTTI_FRUTTI
X struct fruit *f;
X #endif
X! char *bonesid;
X
X if(ledger_no(&u.uz) <= 0 || ledger_no(&u.uz) > maxledgerno()) return;
X if(no_bones_level(&u.uz)) return; /* no bones for specific levels */
X--- 172,178 ----
X #ifdef TUTTI_FRUTTI
X struct fruit *f;
X #endif
X! char c, *bonesid;
X
X if(ledger_no(&u.uz) <= 0 || ledger_no(&u.uz) > maxledgerno()) return;
X if(no_bones_level(&u.uz)) return; /* no bones for specific levels */
X***************
X*** 321,327 ****
X co_false(); /* make sure bonesid and savefruitchn get written */
X #endif /* MFLOPPY */
X
X! bwrite(fd, (genericptr_t) bonesid, 7); /* DD.nnn */
X #ifdef TUTTI_FRUTTI
X savefruitchn(fd, WRITE_SAVE | FREE_SAVE);
X #endif
X--- 321,329 ----
X co_false(); /* make sure bonesid and savefruitchn get written */
X #endif /* MFLOPPY */
X
X! c = (char) (strlen(bonesid) + 1);
X! bwrite(fd, (genericptr_t) &c, sizeof c);
X! bwrite(fd, (genericptr_t) bonesid, (unsigned) c); /* DD.nnn */
X #ifdef TUTTI_FRUTTI
X savefruitchn(fd, WRITE_SAVE | FREE_SAVE);
X #endif
X***************
X*** 335,341 ****
X {
X register int fd;
X register int ok;
X! char *bonesid, oldbonesid[7];
X
X #ifdef EXPLORE_MODE
X if(discover) /* save bones files for real games */
X--- 337,343 ----
X {
X register int fd;
X register int ok;
X! char c, *bonesid, oldbonesid[10];
X
X #ifdef EXPLORE_MODE
X if(discover) /* save bones files for real games */
X***************
X*** 362,368 ****
X }
X #endif
X minit(); /* ZEROCOMP */
X! mread(fd, (genericptr_t) oldbonesid, 7); /* DD.nnn */
X if (strcmp(bonesid, oldbonesid)) {
X #ifdef WIZARD
X if (wizard) {
X--- 364,371 ----
X }
X #endif
X minit(); /* ZEROCOMP */
X! mread(fd, (genericptr_t) &c, sizeof c); /* length incl. '\0' */
X! mread(fd, (genericptr_t) oldbonesid, (unsigned) c); /* DD.nnn */
X if (strcmp(bonesid, oldbonesid)) {
X #ifdef WIZARD
X if (wizard) {
X*** /tmp/da20893 Mon Jul 12 17:31:45 1993
X--- src/cmd.c Thu Jul 8 13:53:33 1993
X***************
X*** 1,4 ****
X! /* SCCS Id: @(#)cmd.c 3.1 93/04/24 */
X /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
X /* NetHack may be freely redistributed. See license for details. */
X
X--- 1,4 ----
X! /* SCCS Id: @(#)cmd.c 3.1 93/06/18 */
X /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
X /* NetHack may be freely redistributed. See license for details. */
X
X***************
X*** 201,208 ****
X * pushed back on the pushq.
X */
X if (occupation) return '\0';
X! if (in_doagain) return (shead != stail) ? saveq[stail++] : '\0';
X! else return (phead != ptail) ? pushq[ptail++] : '\0';
X }
X
X char
X--- 201,208 ----
X * pushed back on the pushq.
X */
X if (occupation) return '\0';
X! if (in_doagain) return(char)((shead != stail) ? saveq[stail++] : '\0');
X! else return(char)((phead != ptail) ? pushq[ptail++] : '\0');
X }
X
X char
X***************
X*** 211,217 ****
X
X if(!(ch = popch()))
X ch = nhgetch();
X! return(ch);
X }
X
X /* A ch == 0 resets the pushq */
X--- 211,217 ----
X
X if(!(ch = popch()))
X ch = nhgetch();
X! return((char)ch);
X }
X
X /* A ch == 0 resets the pushq */
X***************
X*** 581,586 ****
X--- 581,594 ----
X enl_msg("Bad luck ", "does", "did", " not time out for you");
X if (ltmp >= 0)
X enl_msg("Good luck ", "does", "did", " not time out for you");
X+ }
X+
X+ if (u.umortality) {
X+ if (u.umortality == 1)
X+ Sprintf(buf, "once");
X+ else
X+ Sprintf(buf, "%d times", u.umortality);
X+ enl_msg("You ", "have been killed ", "died ", buf);
X }
X
X display_nhwindow(en_win, TRUE);
X*** /tmp/da20901 Mon Jul 12 17:31:47 1993
X--- src/dbridge.c Wed Jul 7 16:24:08 1993
X***************
X*** 112,118 ****
X is_db_wall(x,y)
X int x,y;
X {
X! return( levl[x][y].typ == DBWALL );
X }
X
X
X--- 112,118 ----
X is_db_wall(x,y)
X int x,y;
X {
X! return((boolean)( levl[x][y].typ == DBWALL ));
X }
X
X
X***************
X*** 379,392 ****
X if (noncorporeal(etmp->edata))
X return(TRUE);
X if (is_pool(x, y))
X! return((is_u(etmp) && (Wwalking || Amphibious || Levitation)) ||
X is_swimmer(etmp->edata) || is_flyer(etmp->edata) ||
X! is_floater(etmp->edata));
X /* must force call to lava_effects in e_died if is_u */
X if (is_lava(x, y))
X! return(is_u(etmp) ? !!Levitation : resists_fire(etmp->edata));
X if (is_db_wall(x, y))
X! return(passes_walls(etmp->edata));
X return(TRUE);
X }
X
X--- 379,392 ----
X if (noncorporeal(etmp->edata))
X return(TRUE);
X if (is_pool(x, y))
X! return((boolean)((is_u(etmp) && (Wwalking || Amphibious || Levitation)) ||
X is_swimmer(etmp->edata) || is_flyer(etmp->edata) ||
X! is_floater(etmp->edata)));
X /* must force call to lava_effects in e_died if is_u */
X if (is_lava(x, y))
X! return((boolean)(is_u(etmp) ? !!Levitation : resists_fire(etmp->edata)));
X if (is_db_wall(x, y))
X! return((boolean)(passes_walls(etmp->edata)));
X return(TRUE);
X }
X
X***************
X*** 434,440 ****
X automiss(etmp)
X struct entity *etmp;
X {
X! return(passes_walls(etmp->edata) || noncorporeal(etmp->edata));
X }
X
X /*
X--- 434,440 ----
X automiss(etmp)
X struct entity *etmp;
X {
X! return((boolean)(passes_walls(etmp->edata) || noncorporeal(etmp->edata)));
X }
X
X /*
X***************
X*** 477,483 ****
X pline("Miss chance = %d (out of 8)", misses);
X #endif
X
X! return((misses >= rnd(8))? TRUE : FALSE);
X }
X
X /*
X--- 477,483 ----
X pline("Miss chance = %d (out of 8)", misses);
X #endif
X
X! return((boolean)((misses >= rnd(8))? TRUE : FALSE));
X }
X
X /*
X***************
X*** 507,513 ****
X #ifdef D_DEBUG
X pline("%s to jump (%d chances in 10)", E_phrase(etmp, "try"), tmp);
X #endif
X! return((tmp >= rnd(10))? TRUE : FALSE);
X }
X
X static void
X--- 507,513 ----
X #ifdef D_DEBUG
X pline("%s to jump (%d chances in 10)", E_phrase(etmp, "try"), tmp);
X #endif
X! return((boolean)((tmp >= rnd(10))? TRUE : FALSE));
X }
X
X static void
X*** /tmp/da20917 Mon Jul 12 17:31:52 1993
X--- src/detect.c Wed Jul 7 16:24:11 1993
X***************
X*** 1,4 ****
X! /* SCCS Id: @(#)detect.c 3.1 93/03/30 */
X /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
X /* NetHack may be freely redistributed. See license for details. */
X
X--- 1,4 ----
X! /* SCCS Id: @(#)detect.c 3.1 93/06/15 */
X /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
X /* NetHack may be freely redistributed. See license for details. */
X
X***************
X*** 53,61 ****
X if (glyph_is_object(lev->glyph)) {
X /* there's some object shown here */
X if (oclass == ALL_CLASSES) {
X! return !(level.objects[x][y] || /* stale if nothing here */
X ((mtmp = m_at(x,y)) != 0 &&
X! (mtmp->mgold || mtmp->minvent)));
X } else if (objects[glyph_to_obj(lev->glyph)].oc_class == oclass) {
X /* the object shown here is of interest */
X for (otmp = level.objects[x][y]; otmp; otmp = otmp->nexthere)
X--- 53,61 ----
X if (glyph_is_object(lev->glyph)) {
X /* there's some object shown here */
X if (oclass == ALL_CLASSES) {
X! return((boolean)( !(level.objects[x][y] || /* stale if nothing here */
X ((mtmp = m_at(x,y)) != 0 &&
X! (mtmp->mgold || mtmp->minvent)))));
X } else if (objects[glyph_to_obj(lev->glyph)].oc_class == oclass) {
X /* the object shown here is of interest */
X for (otmp = level.objects[x][y]; otmp; otmp = otmp->nexthere)
X***************
X*** 587,593 ****
X }
X oops = (rnd(20) > ACURR(A_INT) || obj->cursed);
X if (oops && (obj->spe > 0)) {
X! switch(rnd(5)) {
X case 1 : pline("%s is too much to comprehend!", The(bname));
X break;
X case 2 : pline("%s confuses you!", The(bname));
X--- 587,593 ----
X }
X oops = (rnd(20) > ACURR(A_INT) || obj->cursed);
X if (oops && (obj->spe > 0)) {
X! switch (rnd(obj->oartifact ? 4 : 5)) {
X case 1 : pline("%s is too much to comprehend!", The(bname));
X break;
X case 2 : pline("%s confuses you!", The(bname));
X*** /tmp/da20933 Mon Jul 12 17:31:57 1993
X--- src/do.c Thu Jul 8 17:04:53 1993
X***************
X*** 1,4 ****
X! /* SCCS Id: @(#)do.c 3.1 93/03/30 */
X /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
X /* NetHack may be freely redistributed. See license for details. */
X
X--- 1,4 ----
X! /* SCCS Id: @(#)do.c 3.1 93/06/26 */
X /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
X /* NetHack may be freely redistributed. See license for details. */
X
X***************
X*** 153,159 ****
X (t->ttyp==PIT || t->ttyp==SPIKED_PIT || t->ttyp==TRAPDOOR)) {
X struct monst *mtmp;
X
X- bury_objs(x, y);
X if(!Can_fall_thru(&u.uz) && t->ttyp == TRAPDOOR)
X return FALSE;
X if (((mtmp = m_at(x, y)) && mtmp->mtrapped) ||
X--- 153,158 ----
X***************
X*** 166,173 ****
X if (!passes_walls(mtmp->data) && !throws_rocks(mtmp->data))
X if (hmon(mtmp, obj, TRUE))
X return FALSE; /* still alive */
X- else
X- bury_objs(x, y); /* treasure, corpse */
X } else
X #ifdef POLYSELF
X if (!passes_walls(uasmon) && !throws_rocks(uasmon))
X--- 165,170 ----
X***************
X*** 193,198 ****
X--- 190,196 ----
X }
X deltrap(t);
X obfree(obj, (struct obj *)0);
X+ bury_objs(x, y);
X newsym(x,y);
X return TRUE;
X } else if (is_pool(x, y)) {
X***************
X*** 219,226 ****
X } else {
X pline("%s land%s on the altar.", Doname2(obj),
X (obj->quan == 1L) ? "s" : "");
X! if (obj->otyp != GOLD_PIECE)
X! obj->bknown = 1;
X }
X }
X
X--- 217,223 ----
X } else {
X pline("%s land%s on the altar.", Doname2(obj),
X (obj->quan == 1L) ? "s" : "");
X! obj->bknown = 1;
X }
X }
X
X***************
X*** 976,983 ****
X if (enexto(&mm, mm.x, mm.y, &mons[PM_ANGEL])) {
X if ((mtmp = mk_roamer(&mons[PM_ANGEL], u.ualign.type,
X mm.x, mm.y, TRUE)) != 0) {
X! register struct obj *otmp =
X! mksobj(SILVER_SABER, FALSE, FALSE);
X
X if (!Blind)
X pline("An angel appears near you.");
X--- 973,979 ----
X if (enexto(&mm, mm.x, mm.y, &mons[PM_ANGEL])) {
X if ((mtmp = mk_roamer(&mons[PM_ANGEL], u.ualign.type,
X mm.x, mm.y, TRUE)) != 0) {
X! register struct obj *otmp;
X
X if (!Blind)
X pline("An angel appears near you.");
X***************
X*** 992,1000 ****
X mtmp->m_lev = rn1(8,15);
X mtmp->mhp = mtmp->mhpmax =
X d((int)mtmp->m_lev,10) + 30 + rnd(30);
X bless(otmp);
X! otmp->spe = 7;
X! mpickobj(mtmp, otmp);
X }
X }
X }
X--- 988,1006 ----
X mtmp->m_lev = rn1(8,15);
X mtmp->mhp = mtmp->mhpmax =
X d((int)mtmp->m_lev,10) + 30 + rnd(30);
X+ if ((otmp = select_hwep(mtmp)) == 0) {
X+ otmp = mksobj(SILVER_SABER, FALSE, FALSE);
X+ mpickobj(mtmp, otmp);
X+ }
X bless(otmp);
X! if (otmp->spe < 4) otmp->spe += rnd(4);
X! #ifdef MUSE
X! if ((otmp = which_armor(mtmp, W_ARMS)) == 0
X! || otmp->otyp != SHIELD_OF_REFLECTION) {
X! (void) mongets(mtmp, AMULET_OF_REFLECTION);
X! m_dowear(mtmp, TRUE);
X! }
X! #endif
X }
X }
X }
X*** /tmp/da20951 Mon Jul 12 17:32:04 1993
X--- src/do_wear.c Wed Jul 7 16:24:13 1993
X***************
X*** 1,4 ****
X! /* SCCS Id: @(#)do_wear.c 3.1 93/05/25 */
X /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
X /* NetHack may be freely redistributed. See license for details. */
X
X--- 1,4 ----
X! /* SCCS Id: @(#)do_wear.c 3.1 93/06/24 */
X /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
X /* NetHack may be freely redistributed. See license for details. */
X
X***************
X*** 64,71 ****
X is_boots(otmp)
X register struct obj *otmp;
X {
X! return(otmp->otyp >= LOW_BOOTS &&
X! otmp->otyp <= LEVITATION_BOOTS);
X }
X
X boolean
X--- 64,71 ----
X is_boots(otmp)
X register struct obj *otmp;
X {
X! return((boolean)(otmp->otyp >= LOW_BOOTS &&
X! otmp->otyp <= LEVITATION_BOOTS));
X }
X
X boolean
X***************
X*** 72,79 ****
X is_helmet(otmp)
X register struct obj *otmp;
X {
X! return(otmp->otyp >= ELVEN_LEATHER_HELM &&
X! otmp->otyp <= HELM_OF_TELEPATHY);
X }
X
X #endif /* OVLB */
X--- 72,79 ----
X is_helmet(otmp)
X register struct obj *otmp;
X {
X! return((boolean)(otmp->otyp >= ELVEN_LEATHER_HELM &&
X! otmp->otyp <= HELM_OF_TELEPATHY));
X }
X
X #endif /* OVLB */
X***************
X*** 83,90 ****
X is_gloves(otmp)
X register struct obj *otmp;
X {
X! return(otmp->otyp >= LEATHER_GLOVES &&
X! otmp->otyp <= GAUNTLETS_OF_DEXTERITY);
X }
X
X #endif /* OVL2 */
X--- 83,90 ----
X is_gloves(otmp)
X register struct obj *otmp;
X {
X! return((boolean)(otmp->otyp >= LEATHER_GLOVES &&
X! otmp->otyp <= GAUNTLETS_OF_DEXTERITY));
X }
X
X #endif /* OVL2 */
X***************
X*** 94,101 ****
X is_cloak(otmp)
X register struct obj *otmp;
X {
X! return(otmp->otyp >= MUMMY_WRAPPING &&
X! otmp->otyp <= CLOAK_OF_DISPLACEMENT);
X }
X
X boolean
X--- 94,101 ----
X is_cloak(otmp)
X register struct obj *otmp;
X {
X! return((boolean)(otmp->otyp >= MUMMY_WRAPPING &&
X! otmp->otyp <= CLOAK_OF_DISPLACEMENT));
X }
X
X boolean
X***************
X*** 102,109 ****
X is_shield(otmp)
X register struct obj *otmp;
X {
X! return(otmp->otyp >= SMALL_SHIELD &&
X! otmp->otyp <= SHIELD_OF_REFLECTION);
X }
X
X /*
X--- 102,109 ----
X is_shield(otmp)
X register struct obj *otmp;
X {
X! return((boolean)(otmp->otyp >= SMALL_SHIELD &&
X! otmp->otyp <= SHIELD_OF_REFLECTION));
X }
X
X /*
X***************
X*** 781,790 ****
X donning(otmp)
X register struct obj *otmp;
X {
X! return (otmp == uarmf && (afternmv == Boots_on || afternmv == Boots_off))
X || (otmp == uarmh && (afternmv == Helmet_on || afternmv == Helmet_off))
X || (otmp == uarmg && (afternmv == Gloves_on || afternmv == Gloves_off))
X! || (otmp == uarm && (afternmv == Armor_on || afternmv == Armor_off));
X }
X
X void
X--- 781,790 ----
X donning(otmp)
X register struct obj *otmp;
X {
X! return((boolean)((otmp == uarmf && (afternmv == Boots_on || afternmv == Boots_off))
X || (otmp == uarmh && (afternmv == Helmet_on || afternmv == Helmet_off))
X || (otmp == uarmg && (afternmv == Gloves_on || afternmv == Gloves_off))
X! || (otmp == uarm && (afternmv == Armor_on || afternmv == Armor_off))));
X }
X
X void
X***************
X*** 865,872 ****
X pline("The bear trap prevents you from pulling your %s out.",
X body_part(FOOT));
X else
X! You("are stuck in the floor, and cannot pull your %s out.",
X! makeplural(body_part(FOOT)));
X return(0);
X }
X reset_remarm(); /* since you may change ordering */
X--- 865,872 ----
X pline("The bear trap prevents you from pulling your %s out.",
X body_part(FOOT));
X else
X! You("are stuck in the %s, and cannot pull your %s out.",
X! surface(u.ux, u.uy), makeplural(body_part(FOOT)));
X return(0);
X }
X reset_remarm(); /* since you may change ordering */
X***************
X*** 1067,1084 ****
X }
X if(!err) mask = W_ARMS;
X } else if(is_boots(otmp)) {
X! if(uarmf) {
X already_wearing("boots.");
X err++;
X! } if (u.utrap && (u.utraptype == TT_BEARTRAP ||
X! u.utraptype == TT_INFLOOR)) {
X! if (u.utraptype == TT_BEARTRAP)
X! Your("%s is trapped!", body_part(FOOT));
X! else
X! Your("%s are stuck in the floor!",
X! makeplural(body_part(FOOT)));
X! err++;
X! } else
X mask = W_ARMF;
X } else if(is_gloves(otmp)) {
X if(uarmg) {
X--- 1067,1085 ----
X }
X if(!err) mask = W_ARMS;
X } else if(is_boots(otmp)) {
X! if (uarmf) {
X already_wearing("boots.");
X err++;
X! } if (u.utrap && (u.utraptype == TT_BEARTRAP ||
X! u.utraptype == TT_INFLOOR)) {
X! if (u.utraptype == TT_BEARTRAP)
X! Your("%s is trapped!", body_part(FOOT));
X! else
X! Your("%s are stuck in the %s!",
X! makeplural(body_part(FOOT)),
X! surface(u.ux, u.uy));
X! err++;
X! } else
X mask = W_ARMF;
X } else if(is_gloves(otmp)) {
X if(uarmg) {
X***************
X*** 1337,1343 ****
X /* changed so cursed weapons don't fall, GAN 10/30/86 */
X Your("%s %sslips from your %s.",
X is_sword(otmp) ? "sword" :
X! makesingular(oclass_names[otmp->oclass]),
X xfl ? "also " : "",
X makeplural(body_part(HAND)));
X setuwep((struct obj *)0);
X--- 1338,1344 ----
X /* changed so cursed weapons don't fall, GAN 10/30/86 */
X Your("%s %sslips from your %s.",
X is_sword(otmp) ? "sword" :
X! makesingular(oclass_names[(int)otmp->oclass]),
X xfl ? "also " : "",
X makeplural(body_part(HAND)));
X setuwep((struct obj *)0);
X***************
X*** 1614,1620 ****
X } else if((otmp = uarm) && (!atmp || atmp == uarm)) {
X /* may be disintegrated by spell or dragon breath... */
X if (donning(otmp)) cancel_don();
X! Your("armor turns to dust and falls to the floor!");
X (void) Armor_gone();
X useup(otmp);
X #ifdef TOURIST
X--- 1615,1622 ----
X } else if((otmp = uarm) && (!atmp || atmp == uarm)) {
X /* may be disintegrated by spell or dragon breath... */
X if (donning(otmp)) cancel_don();
X! Your("armor turns to dust and falls to the %s!",
X! surface(u.ux,u.uy));
X (void) Armor_gone();
X useup(otmp);
X #ifdef TOURIST
X*** /tmp/da20959 Mon Jul 12 17:32:07 1993
X--- src/dog.c Wed Jul 7 16:55:05 1993
X***************
X*** 1,4 ****
X! /* SCCS Id: @(#)dog.c 3.1 93/03/30 */
X /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
X /* NetHack may be freely redistributed. See license for details. */
X
X--- 1,4 ----
X! /* SCCS Id: @(#)dog.c 3.1 93/06/19 */
X /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
X /* NetHack may be freely redistributed. See license for details. */
X
X***************
X*** 195,200 ****
X--- 195,208 ----
X /* let monster move a bit on the new level */
X /* see placement code below */
X mtmp->mx = min(nmv, 8);
X+ #ifdef MULDGN
X+ /* temporary hack...
X+ * Ft.Ludios' entry chamber isn't classified as a
X+ * room by lev_comp and any movement greater than
X+ * 1 can result in placement beyond solid walls.
X+ */
X+ if (Is_knox(&u.uz)) mtmp->mx = 1;
X+ #endif
X
X if(!regenerates(mtmp->data)) nmv /= 20;
X if((long)mtmp->mhp + nmv >= (long)mtmp->mhpmax)
X***************
X*** 215,220 ****
X--- 223,229 ----
X home_shk(mtmp, TRUE);
X else switch(mtmp->my) {
X xchar xlocale, ylocale;
X+ register struct trap *t;
X
X case 1: xlocale = xupstair; ylocale = yupstair;
X goto common;
X***************
X*** 226,256 ****
X goto common;
X case 5: xlocale = sstairs.sx; ylocale = sstairs.sy;
X goto common;
X common:
X! if (xlocale) {
X! if(mtmp->mx) {
X! /* monster moved a bit */
X! /* pick a nearby location */
X! /* mnearto() deals w/stone, et al */
X int i, j;
X! char *rmlist = in_rooms(xlocale,
X! ylocale, 0);
X!
X! if (rmlist) {
X! xlocale = somex(
X! &rooms[*rmlist - ROOMOFFSET]);
X! ylocale = somey(
X! &rooms[*rmlist - ROOMOFFSET]);
X! } else {
X! i = max(1, xlocale - mtmp->mx);
X! j = min(COLNO-1, xlocale+mtmp->mx);
X! xlocale = rn1(j-i,i);
X!
X! i = max(0, ylocale - mtmp->mx);
X! j = min(ROWNO-1, ylocale+mtmp->mx);
X! ylocale = rn1(j-i,i);
X! }
X }
X (void) mnearto(mtmp,
X xlocale, ylocale, FALSE);
X break;
X--- 235,276 ----
X goto common;
X case 5: xlocale = sstairs.sx; ylocale = sstairs.sy;
X goto common;
X+ case 6: /* portal */
X+ for (t = ftrap; t; t = t->ntrap)
X+ if (t->ttyp == MAGIC_PORTAL) break;
X+ if (t) {
X+ xlocale = t->tx;
X+ ylocale = t->ty;
X+ } else {
X+ if (!In_endgame(&u.uz))
X+ impossible("losedogs: no corresponding portal?");
X+ xlocale = ylocale = 0;
X+ }
X+ goto common;
X common:
X! if (xlocale && mtmp->mx) {
X! /* monster moved a bit */
X! /* pick a nearby location */
X! /* mnearto() deals w/stone, et al */
X! char *r = in_rooms(xlocale, ylocale, 0);
X! if (r && *r) {
X! coord c;
X! /* somexy() handles irregular rooms */
X! if (somexy(&rooms[*r - ROOMOFFSET], &c))
X! xlocale = c.x, ylocale = c.y;
X! else
X! xlocale = ylocale = 0;
X! } else {
X int i, j;
X! i = max(1, xlocale - mtmp->mx);
X! j = min(COLNO-1, xlocale + mtmp->mx);
X! xlocale = rn1(j - i, i);
X! i = max(0, ylocale - mtmp->mx);
X! j = min(ROWNO-1, ylocale + mtmp->mx);
X! ylocale = rn1(j - i, i);
X }
X+ }
X+ if (xlocale) {
X (void) mnearto(mtmp,
X xlocale, ylocale, FALSE);
X break;
X***************
X*** 309,316 ****
X set_residency(mtmp, TRUE);
X
X if (mtmp->wormno) {
X /* NOTE: worm is truncated to # segs = max wormno size */
X! num_segs = min(count_wsegs(mtmp), MAX_NUM_WORMS - 1);
X wormgone(mtmp);
X }
X
X--- 329,338 ----
X set_residency(mtmp, TRUE);
X
X if (mtmp->wormno) {
X+ register int cnt;
X /* NOTE: worm is truncated to # segs = max wormno size */
X! cnt = count_wsegs(mtmp);
X! num_segs = min(cnt, MAX_NUM_WORMS - 1);
X wormgone(mtmp);
X }
X
X***************
X*** 346,351 ****
X--- 368,374 ----
X * 3: < ladder,
X * 4: > ladder,
X * 5: sstairs
X+ * 6: portal
X */
X {
X register struct obj *obj;
X***************
X*** 355,362 ****
X set_residency(mtmp, TRUE);
X
X if (mtmp->wormno) {
X /* **** NOTE: worm is truncated to # segs = max wormno size **** */
X! num_segs = min(count_wsegs(mtmp), MAX_NUM_WORMS - 1);
X wormgone(mtmp);
X }
X
X--- 378,387 ----
X set_residency(mtmp, TRUE);
X
X if (mtmp->wormno) {
X+ register int cnt;
X /* **** NOTE: worm is truncated to # segs = max wormno size **** */
X! cnt = count_wsegs(mtmp);
X! num_segs = min(cnt, MAX_NUM_WORMS - 1);
X wormgone(mtmp);
X }
X
X*** /tmp/da20975 Mon Jul 12 17:32:12 1993
X--- src/dokick.c Thu Jul 1 14:06:55 1993
X***************
X*** 1,4 ****
X! /* SCCS Id: @(#)dokick.c 3.1 93/05/14 */
X /* Copyright (c) Izchak Miller, Mike Stephenson, Steve Linhart, 1989. */
X /* NetHack may be freely redistributed. See license for details. */
X
X--- 1,4 ----
X! /* SCCS Id: @(#)dokick.c 3.1 93/06/15 */
X /* Copyright (c) Izchak Miller, Mike Stephenson, Steve Linhart, 1989. */
X /* NetHack may be freely redistributed. See license for details. */
X
X***************
X*** 344,350 ****
X for(otmp = kickobj->cobj; otmp; otmp = otmp2) {
X otmp2 = otmp->nobj;
X if (objects[otmp->otyp].oc_material == GLASS
X! && !rn2(3)) {
X You("hear a muffled shatter.");
X if(costly) loss += stolen_value(otmp, x, y,
X (boolean)shkp->mpeaceful, TRUE);
X--- 344,350 ----
X for(otmp = kickobj->cobj; otmp; otmp = otmp2) {
X otmp2 = otmp->nobj;
X if (objects[otmp->otyp].oc_material == GLASS
X! && !obj_resists(otmp, 33, 100)) {
X You("hear a muffled shatter.");
X if(costly) loss += stolen_value(otmp, x, y,
X (boolean)shkp->mpeaceful, TRUE);
X*** /tmp/da20984 Mon Jul 12 17:32:15 1993
X--- src/dothrow.c Tue Jul 6 15:53:45 1993
X***************
X*** 1,4 ****
X! /* SCCS Id: @(#)dothrow.c 3.1 93/05/15 */
X /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
X /* NetHack may be freely redistributed. See license for details. */
X
X--- 1,4 ----
X! /* SCCS Id: @(#)dothrow.c 3.1 93/06/15 */
X /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
X /* NetHack may be freely redistributed. See license for details. */
X
X***************
X*** 539,544 ****
X--- 539,553 ----
X return(gem_accept(mon, obj));
X }
X }
X+ #ifdef MULDGN
X+ /* don't make game unwinnable if naive player throws artifact
X+ at leader.... */
X+ if (mon->data->msound == MS_LEADER && is_quest_artifact(obj)) {
X+ if (mon->mcanmove)
X+ pline("%s ignores %s.", Monnam(mon), the(xname(obj)));
X+ return(0);
X+ }
X+ #endif
X if(obj->oclass == WEAPON_CLASS || obj->otyp == PICK_AXE ||
X obj->otyp == UNICORN_HORN || obj->oclass == GEM_CLASS) {
X if(obj->otyp < DART || obj->oclass == GEM_CLASS) {
X***************
X*** 695,700 ****
X--- 704,711 ----
X register struct obj *obj;
X register boolean loose; /* if not loose, obj is in fobj chain */
X {
X+ if (obj_resists(obj, 1, 100)) return 0;
X+
X switch(obj->otyp) {
X case MIRROR:
X change_luck(-2); /* and fall through */
X*** /tmp/da21001 Mon Jul 12 17:32:20 1993
X--- src/dungeon.c Wed Jul 7 16:24:18 1993
X***************
X*** 1,4 ****
X! /* SCCS Id: @(#)dungeon.c 3.1 93/01/17 */
X /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
X /* NetHack may be freely redistributed. See license for details. */
X
X--- 1,4 ----
X! /* SCCS Id: @(#)dungeon.c 3.1 93/06/26 */
X /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
X /* NetHack may be freely redistributed. See license for details. */
X
X***************
X*** 8,14 ****
X #ifdef OVL1
X
X #define DUNGEON_FILE "dungeon"
X! #if defined(MICRO) && !defined(AMIGA)
X # define RDMODE "rb"
X #else
X # define RDMODE "r"
X--- 8,14 ----
X #ifdef OVL1
X
X #define DUNGEON_FILE "dungeon"
X! #if (defined(MICRO) && !defined(AMIGA)) || defined(THINK_C)
X # define RDMODE "rb"
X #else
X # define RDMODE "r"
X***************
X*** 182,190 ****
X if (!strcmp(dungeons[i].dname, s)) return i;
X
X panic("Couldn't resolve dungeon number for name \"%s\".", s);
X! #if defined(LINT) || defined(GCC_WARN)
X return (xchar)0;
X- #endif
X }
X
X s_level *
X--- 182,189 ----
X if (!strcmp(dungeons[i].dname, s)) return i;
X
X panic("Couldn't resolve dungeon number for name \"%s\".", s);
X! /*NOT REACHED*/
X return (xchar)0;
X }
X
X s_level *
X***************
X*** 233,241 ****
X return(pdnum);
X
X panic("parent_dnum: couldn't resolve branch.");
X! #if defined(LINT) || defined(GCC_WARN)
X return (xchar)0;
X- #endif
X }
X
X /*
X--- 232,239 ----
X return(pdnum);
X
X panic("parent_dnum: couldn't resolve branch.");
X! /*NOT REACHED*/
X return (xchar)0;
X }
X
X /*
X***************
X*** 856,862 ****
X ledger_no(lev)
X d_level *lev;
X {
X! return(lev->dlevel + dungeons[lev->dnum].ledger_start);
X }
X
X /*
X--- 854,860 ----
X ledger_no(lev)
X d_level *lev;
X {
X! return((xchar)(lev->dlevel + dungeons[lev->dnum].ledger_start));
X }
X
X /*
X***************
X*** 881,892 ****
X ledger_to_dnum(ledgerno)
X xchar ledgerno;
X {
X! xchar i;
X
X! for(i = 0; i < n_dgns; i++)
X! if(dungeons[i].ledger_start >= ledgerno) return(i-1);
X
X! return(MAXDUNGEON);
X }
X
X /* return the level of the dungeon this ledgerno exists in */
X--- 879,895 ----
X ledger_to_dnum(ledgerno)
X xchar ledgerno;
X {
X! register int i;
X
X! /* find i such that (i->base + 1) <= ledgerno <= (i->base + i->count) */
X! for (i = 0; i < n_dgns; i++)
X! if (dungeons[i].ledger_start < ledgerno &&
X! ledgerno <= dungeons[i].ledger_start + dungeons[i].num_dunlevs)
X! return (xchar)i;
X
X! panic("level number out of range [ledger_to_dnum(%d)]", (int)ledgerno);
X! /*NOT REACHED*/
X! return (xchar)0;
X }
X
X /* return the level of the dungeon this ledgerno exists in */
X***************
X*** 894,900 ****
X ledger_to_dlev(ledgerno)
X xchar ledgerno;
X {
X! return(ledgerno - dungeons[ledger_to_dnum(ledgerno)].ledger_start);
X }
X
X #endif /* OVL1 */
X--- 897,903 ----
X ledger_to_dlev(ledgerno)
X xchar ledgerno;
X {
X! return((xchar)(ledgerno - dungeons[ledger_to_dnum(ledgerno)].ledger_start));
X }
X
X #endif /* OVL1 */
X***************
X*** 906,912 ****
X depth(lev)
X d_level *lev;
X {
X! return dungeons[lev->dnum].depth_start + lev->dlevel - 1;
X }
X
X boolean
X--- 909,915 ----
X depth(lev)
X d_level *lev;
X {
X! return((schar)( dungeons[lev->dnum].depth_start + lev->dlevel - 1));
X }
X
X boolean
X***************
X*** 913,919 ****
X on_level(lev1, lev2) /* are "lev1" and "lev2" actually the same? */
X d_level *lev1, *lev2;
X {
X! return((lev1->dnum == lev2->dnum) && (lev1->dlevel == lev2->dlevel));
X }
X
X #endif /* OVL0 */
X--- 916,922 ----
X on_level(lev1, lev2) /* are "lev1" and "lev2" actually the same? */
X d_level *lev1, *lev2;
X {
X! return((boolean)((lev1->dnum == lev2->dnum) && (lev1->dlevel == lev2->dlevel)));
X }
X
X #endif /* OVL0 */
X***************
X*** 1034,1044 ****
X On_stairs(x, y)
X xchar x, y;
X {
X! return((x == xupstair && y == yupstair) ||
X (x == xdnstair && y == ydnstair) ||
X (x == xdnladder && y == ydnladder) ||
X (x == xupladder && y == yupladder) ||
X! (x == sstairs.sx && y == sstairs.sy));
X }
X
X boolean
X--- 1037,1047 ----
X On_stairs(x, y)
X xchar x, y;
X {
X! return((boolean)((x == xupstair && y == yupstair) ||
X (x == xdnstair && y == ydnstair) ||
X (x == xdnladder && y == ydnladder) ||
X (x == xupladder && y == yupladder) ||
X! (x == sstairs.sx && y == sstairs.sy)));
X }
X
X boolean
X***************
X*** 1045,1051 ****
X Is_botlevel(lev)
X d_level *lev;
X {
X! return lev->dlevel == dungeons[lev->dnum].num_dunlevs;
X }
X
X boolean
X--- 1048,1054 ----
X Is_botlevel(lev)
X d_level *lev;
X {
X! return((boolean)(lev->dlevel == dungeons[lev->dnum].num_dunlevs));
X }
X
X boolean
X***************
X*** 1052,1059 ****
X Can_dig_down(lev)
X d_level *lev;
X {
X! return !level.flags.hardfloor
X! && !Is_botlevel(lev) && !Invocation_lev(lev);
X }
X
X /*
X--- 1055,1062 ----
X Can_dig_down(lev)
X d_level *lev;
X {
X! return((boolean)(!level.flags.hardfloor
X! && !Is_botlevel(lev) && !Invocation_lev(lev)));
X }
X
X /*
X***************
X*** 1065,1071 ****
X Can_fall_thru(lev)
X d_level *lev;
X {
X! return Can_dig_down(lev) || Is_stronghold(lev);
X }
X
X /*
X--- 1068,1074 ----
X Can_fall_thru(lev)
X d_level *lev;
X {
X! return((boolean)(Can_dig_down(lev) || Is_stronghold(lev)));
X }
X
X /*
X***************
X*** 1078,1087 ****
X Can_rise_up(lev)
X d_level *lev;
X {
X! return !In_endgame(lev) &&
X (lev->dlevel > 1 ||
X (dungeons[lev->dnum].entry_lev == 1 && ledger_no(lev) != 1 &&
X! sstairs.sx && sstairs.up));
X }
X
X /*
X--- 1081,1090 ----
X Can_rise_up(lev)
X d_level *lev;
X {
X! return((boolean)(!In_endgame(lev) &&
X (lev->dlevel > 1 ||
X (dungeons[lev->dnum].entry_lev == 1 && ledger_no(lev) != 1 &&
X! sstairs.sx && sstairs.up))));
X }
X
X /*
X***************
X*** 1151,1157 ****
X In_quest(lev) /* are you in the quest dungeon? */
X d_level *lev;
X {
X! return(lev->dnum == quest_dnum);
X }
X #endif /* MULDGN */
X
X--- 1154,1160 ----
X In_quest(lev) /* are you in the quest dungeon? */
X d_level *lev;
X {
X! return((boolean)(lev->dnum == quest_dnum));
X }
X #endif /* MULDGN */
X
X***************
X*** 1163,1169 ****
X In_mines(lev) /* are you in the mines dungeon? */
X d_level *lev;
X {
X! return(lev->dnum == mines_dnum);
X }
X
X /*
X--- 1166,1172 ----
X In_mines(lev) /* are you in the mines dungeon? */
X d_level *lev;
X {
X! return((boolean)(lev->dnum == mines_dnum));
X }
X
X /*
X***************
X*** 1207,1213 ****
X branch *br;
X
X br = dungeon_branch(s);
X! return on_level(&u.uz, &br->end1) ? TRUE : FALSE;
X }
X #endif /* MULDGN */
X
X--- 1210,1216 ----
X branch *br;
X
X br = dungeon_branch(s);
X! return((boolean)(on_level(&u.uz, &br->end1) ? TRUE : FALSE));
X }
X #endif /* MULDGN */
X
X***************
X*** 1215,1221 ****
X In_tower(lev) /* are you inside the tower? */
X d_level *lev;
X {
X! return(lev->dnum == tower_dnum);
X }
X
X #endif /* OVL1 */
X--- 1218,1224 ----
X In_tower(lev) /* are you inside the tower? */
X d_level *lev;
X {
X! return((boolean)(lev->dnum == tower_dnum));
X }
X
X #endif /* OVL1 */
X***************
X*** 1225,1231 ****
X In_hell(lev) /* are you in one of the Hell levels? */
X d_level *lev;
X {
X! return(dungeons[lev->dnum].flags.hellish);
X }
X
X #endif /* OVL0 */
X--- 1228,1234 ----
X In_hell(lev) /* are you in one of the Hell levels? */
X d_level *lev;
X {
X! return((boolean)(dungeons[lev->dnum].flags.hellish));
X }
X
X #endif /* OVL0 */
X***************
X*** 1291,1298 ****
X Invocation_lev(lev)
X d_level *lev;
X {
X! return(In_hell(lev) &&
X! lev->dlevel == (dungeons[lev->dnum].num_dunlevs - 1));
X }
X
X /* use instead of depth() wherever a degree of difficulty is made
X--- 1294,1301 ----
X Invocation_lev(lev)
X d_level *lev;
X {
X! return((boolean)(In_hell(lev) &&
X! lev->dlevel == (dungeons[lev->dnum].num_dunlevs - 1)));
X }
X
X /* use instead of depth() wherever a degree of difficulty is made
X***************
X*** 1302,1308 ****
X level_difficulty()
X {
X if (In_endgame(&u.uz))
X! return((xchar) depth(&sanctum_level) + u.ulevel/2);
X else
X if (u.uhave.amulet)
X return(deepest_lev_reached(FALSE));
X--- 1305,1311 ----
X level_difficulty()
X {
X if (In_endgame(&u.uz))
X! return((xchar)(depth(&sanctum_level) + u.ulevel/2));
X else
X if (u.uhave.amulet)
X return(deepest_lev_reached(FALSE));
X*** /tmp/da21010 Mon Jul 12 17:32:24 1993
X--- src/eat.c Mon Jul 12 13:45:04 1993
X***************
X*** 103,109 ****
X return TRUE;
X if (u.umonnum == PM_GELATINOUS_CUBE && is_organic(obj))
X return TRUE;
X! return !!index(comestibles, obj->oclass);
X }
X # endif /* POLYSELF */
X #endif /* OVL1 */
X--- 103,109 ----
X return TRUE;
X if (u.umonnum == PM_GELATINOUS_CUBE && is_organic(obj))
X return TRUE;
X! return((boolean)(!!index(comestibles, obj->oclass)));
X }
X # endif /* POLYSELF */
X #endif /* OVL1 */
X***************
X*** 956,963 ****
X
X #ifdef POLYSELF
X if (metallivorous(uasmon)) {
X! You("bite right into the metal tin....");
X tmp = 1;
X } else
X #endif
X if (otmp->blessed) {
X--- 956,966 ----
X
X #ifdef POLYSELF
X if (metallivorous(uasmon)) {
X! You("bite right into the metal tin...");
X tmp = 1;
X+ } else if (nolimbs(uasmon)) {
X+ You("cannot handle the tin properly to open it.");
X+ return;
X } else
X #endif
X if (otmp->blessed) {
X***************
X*** 1718,1724 ****
X boolean
X is_fainted()
X {
X! return(u.uhs == FAINTED);
X }
X
X void
X--- 1721,1727 ----
X boolean
X is_fainted()
X {
X! return((boolean)(u.uhs == FAINTED));
X }
X
X void
X***************
X*** 1832,1840 ****
X * in inventory.
X */
X struct obj *
X! floorfood(verb,corpseonly) /* get food from floor or pack */
X const char *verb;
X! boolean corpseonly;
X {
X register struct obj *otmp;
X char qbuf[QBUFSZ];
X--- 1835,1843 ----
X * in inventory.
X */
X struct obj *
X! floorfood(verb,corpsecheck) /* get food from floor or pack */
X const char *verb;
X! int corpsecheck; /* 0, no check, 1, corpses, 2, tinnable corpses */
X {
X register struct obj *otmp;
X char qbuf[QBUFSZ];
X***************
X*** 1859,1865 ****
X if (!(Levitation && !Is_airlevel(&u.uz) && !Is_waterlevel(&u.uz))
X && !u.uswallow) {
X for(otmp = level.objects[u.ux][u.uy]; otmp; otmp = otmp->nexthere) {
X! if(corpseonly ? otmp->otyp==CORPSE :
X #ifdef POLYSELF
X feeding ? (otmp->oclass != GOLD_CLASS && is_edible(otmp)) :
X #endif
X--- 1862,1869 ----
X if (!(Levitation && !Is_airlevel(&u.uz) && !Is_waterlevel(&u.uz))
X && !u.uswallow) {
X for(otmp = level.objects[u.ux][u.uy]; otmp; otmp = otmp->nexthere) {
X! if(corpsecheck ?
X! (otmp->otyp==CORPSE && (corpsecheck == 1 || tinnable(otmp))) :
X #ifdef POLYSELF
X feeding ? (otmp->oclass != GOLD_CLASS && is_edible(otmp)) :
X #endif
X*** /tmp/da21019 Mon Jul 12 17:32:28 1993
X--- src/end.c Thu Jul 8 13:53:35 1993
X***************
X*** 1,4 ****
X! /* SCCS Id: @(#)end.c 3.1 93/05/29 */
X /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
X /* NetHack may be freely redistributed. See license for details. */
X
X--- 1,4 ----
X! /* SCCS Id: @(#)end.c 3.1 93/06/30 */
X /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
X /* NetHack may be freely redistributed. See license for details. */
X
X***************
X*** 18,23 ****
X--- 18,27 ----
X static void NDECL(list_vanquished);
X static void NDECL(list_genocided);
X
X+ #ifdef AMIGA
X+ void NDECL(clear_icon);
X+ #endif
X+
X /*
X * The order of these needs to match the macros in hack.h.
X */
X***************
X*** 382,387 ****
X--- 386,392 ----
X return;
X }
X #endif
X+ if (how < PANICKED) u.umortality++;
X if (Lifesaved && how <= GENOCIDED) {
X pline("But wait...");
X makeknown(AMULET_OF_LIFE_SAVING);
X***************
X*** 684,690 ****
X for (obj = box->cobj; obj; obj = obj->nobj) {
X if (identified) {
X makeknown(obj->otyp);
X! obj->known = obj->bknown = obj->dknown = 1;
X }
X putstr(tmpwin, 0, doname(obj));
X }
X--- 689,696 ----
X for (obj = box->cobj; obj; obj = obj->nobj) {
X if (identified) {
X makeknown(obj->otyp);
X! obj->known = obj->bknown =
X! obj->dknown = obj->rknown = 1;
X }
X putstr(tmpwin, 0, doname(obj));
X }
END_OF_FILE
if test 53393 -ne `wc -c <'patches03a'`; then
echo shar: \"'patches03a'\" unpacked with wrong size!
fi
# end of 'patches03a'
if test -f 'sys/amiga/amifont8.uu' -a "${1}" != "-c" ; then
echo shar: Renaming existing file \"'sys/amiga/amifont8.uu'\" to \"'sys/amiga/amifont8.uu.orig'\"
mv -f 'sys/amiga/amifont8.uu' 'sys/amiga/amifont8.uu.orig'
fi
echo shar: Extracting \"'sys/amiga/amifont8.uu'\" \(3490 characters\)
sed "s/^X//" >'sys/amiga/amifont8.uu' <<'END_OF_FILE'
Xbegin 644 8
XM```#\P`````````!``````````````)E```#Z0```F5P_TYU```````````,
XM`````!H/@``!``````````````````````````````````````````!&140`
XM```````````,`````!H`````"20`"`!```@`!@`!```@_P```&X`M```!@X`
XM```````````8;&P8`#@8##````````,\&#P\''X<?CP\```,`#`\?!C\//C^
XM_CQF?@[F\(+&./PX_#Q^9L/&P\/^/,`\$``8`.``#@`<`.`8!N`X````````
XM``@````````.&'!RS.?BY^?EY^?GY^?GY.?AY^?__\,8`&;GY^?GY^3GX>?G
XMYVH```!J:A@````8&!@``!@88L!6`%96```8`!@8`*@5P8.BP:@5YP/_[W_^
XM````P,```P`\;&P^QFP8&!AF&`````9F.&9F/&`P9F9F&!@8`!AFQCQF9FQF
XM9F9F&`9F8,;F;&9L9F9:9L/&9L/&,&`,.``8`&``!@`V`&```&`8````````
XM`!@````````8&!B<,Z6BH:&EI*2AI:6EI*2AI*3__\,8`&:DH:6EI:2DH:2D
XMI58```!65CP````8&!@``!@\96-J`&IJ```8`!@8UB/$`\`C+"O4A`/_]Y_Y
XM````P,```P`\`/Y@S&@P,`P\&`````QN&`8&;'Q@!F9F&!@P?@P&WCQFP&9@
XM8,!F&`9L8.[VQF;&9G`89F;&/&:,,#`,;``,/&P\-CPP.VPX!F889GP\W#WL
XM/CYF9F-C9GX8&!@`S.7BY^?GY^?AY^?GY^3GY^?_`.<8`,/GX>?GY^?DY^?G
XMY6K_#_!KZCP````8&!@``!AF8#97_];7`&8<`#@\;&I6)F1I/&F6YP./]]_[
XM#__PP,```P`8`&P\&'8`,`S_?@!^`!A^&!P<S`9\##P^``!@``8,WF9\P&9X
XM>,Y^&`9X8/[>QGS&?#@89F;6&#P8,!@,Q@``!G9F;F9X9G88!FP8=V9F9F9V
XM8!AF9FLV9DQP&`X`,Z6BI*&AH:6AI:&EI:2EI*3_`.<8_P`E(24A)24D)20D
XMI595/5Q55F;_#_`/\/\``-O#?AMJ5:JJ```?__C_JIPY:];X*]I;A`-F[\_S
XM.``<P&``!@`8`/X&,-P`,`P\&````#!V&#`&_@9F&&8&```P``P8WGYFP&9@
XM8,9F&&9L8M;.QF#&;`X89CS^/!@R,`P,````'F9@9GXP9F88!G@8:V9F9F9F
XM/!AF9FL<9A@8&!@`S.?BY^?AY^?AY^'EY^?GY^3_`.<8_P`G(2<A)2<G)R<D
XMIVJJ:JHZK&8`&!@``!@``,/;9NQ5JE95&``</#@`;&O6G#DK^#?LYP/Q[_//
XM8``&P#@`'````&Q\9LP`&!AF&!@`&&!F&&9F#&9F&&8,&!@8?A@`P,-F9FQF
XM8&9F&&9F9L;&;&!L9F889CSN9AAF,`8,````9F9F9F`P/&88!FP88V9F?#Y@
XM!AIF/#8V/#(8&!@`,P````````````````````#_`.<8`,,`````````````
XM`%;_5=8/\,,`&!@``!AS`&889C9KU^K_```8&!@`UB9D:E8\:;0M``/_W_O?
XMP``#P`__\``8`&P8QG8`##```!@`&,`\?GX\'CP\&#PX&!@,`#`8>,/\//C^
XM\#YF?CSF_L;&./`\XSP\/AC&PSS^/`,\````.SP\.SQXQN8\9N8\8V8\8`;P
XM?`P[	C&'X.&'``S`````````````````````#__\,8`&8`````````````
XM`&H`:VH``,,`&!@``!B<&#P89F-6:E8``&88&!@`K`/`(\0L(T&"``/_W_F?
XMP``#P````````````````````#```````````````````#``````````````
XM```````````````&`````````````````/X`````````?```/```````\`<`
XM````````<```````,P````````````````````#__\,8`&8`````````````
XM`%8`5E8`````&!@``!@``!@8`,!J5FH````8&!@``,&#J!7!HL&#``/_[_Y_
XMP``#P`````````@`"``(`!``"``8``@`(``(`"@`"``P``@`.``(`$``"`!(
XM``@`4``(`%@`"`!@``@`:``(`'``"`!X``@`@``(`(@`"`"0``@`F``(`*``
XM"`"H``@`L``(`+@`"`#```@`R``(`-``"`#8``@`X``(`.@`"`#P``@`^``(
XM`0``"`$(``@!$``(`1@`"`$@``@!*``(`3``"`$X``@!0``(`4@`"`%0``@!
XM6``(`6``"`%H``@!<``(`7@`"`&```@!B``(`9``"`&8``@!H``(`:@`"`&P
XM``@!N``(`<``"`'(``@!T``(`=@`"`'@``@!Z``(`?``"`'X``@"```(`@@`
XM"`(0``@"&``(`B``"`(H``@",``(`C@`"`)```@"2``(`E``"`)8``@"8``(
XM`F@`"`)P``@">``(`H``"`*(``@"D``(`I@`"`*@``@"J``(`K``"`*X``@"
XMP``(`L@`"`+0``@"V``(`N``"`+H``@"\``(`O@`"`,```@#"``(`Q``"`,8
XM``@#(``(`R@`"`,P``@#.``(`T``"`-(``@#4``(`U@`"`-@``@#:``(`W``
XM"`-X``@#@``(`X@`"`.0``@#F``(`Z``"`.H``@#L``(`[@`"`/```@#R``(
XM`]``"`/8``@#X``(`^@`"`/P``@#^``(!```"``(``@`$``(`!@`"``@``@`
XM*``(`#``"``X``@`0``(`$@`"`!0``@`6``(`&``"`!H``@`<``(`'@`"`"`
XM``@`B``(`)``"`"8``@`H``(`*@`"`"P``@`N``(`,``"`#(``@`T``(`-@`
XM"`#@``@`Z``(`/``"`#X``@$"``(!!``"`08``@$(``(!"@`"`0P``@#J``(
XM!#@`"`.8``@$0``(!$@`"`10``@$6``(!&``"`1H``@$<``(!'@`"`2```@$
XMB``(!)``"`28``@$H``(!*@`"`2P``@$N``(!,``"`3(``@!V``(`>``"`'H
XM``@!\``(`?@`"`(```@$T``(!-@`"`3@``@$Z``(!/``"`3X``@%```(!0@`
XM"`40``@%&``(!2``"`4H``@%,``(!3@`"`5```@%2``(!5``"`58``@%8``(
XM!6@`"`5P``@%>``(!8``"`6(``@%D``(!9@`"`+8``@"X``(`N@`"`+P``@"
XM^``(````"``````#[`````0`````````#@```$0```!<````8@````````/R
X`
Xend
END_OF_FILE
if test 3490 -ne `wc -c <'sys/amiga/amifont8.uu'`; then
echo shar: \"'sys/amiga/amifont8.uu'\" unpacked with wrong size!
fi
# end of 'sys/amiga/amifont8.uu'
echo shar: End of archive 5 \(of 18\).
cp /dev/null ark5isdone
MISSING=""
for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ; do
if test ! -f ark${I}isdone ; then
MISSING="${MISSING} ${I}"
fi
done
if test "${MISSING}" = "" ; then
echo You have unpacked all 18 archives.
echo "Now execute ./patchit3.sh"
rm -f ark[1-9]isdone ark[1-9][0-9]isdone
else
echo You still need to unpack the following archives:
echo " " ${MISSING}
fi
## End of shell archive.
exit 0