Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

NetHack 2.3 Update Pt. 09 of 12

4 views
Skip to first unread message

Mike Stephenson

unread,
Apr 14, 1988, 7:49:51 AM4/14/88
to

Two more today...

-------------------------------cut here---------------------------------------
#! /bin/sh
# This is a shell archive, meaning:
# 1. Remove everything above the #! /bin/sh line.
# 2. Save the resulting text in a file.
# 3. Execute the file with /bin/sh (not csh) to create the files:
# Update.2.3.d
# This archive created: Mon Apr 4 08:52:34 1988
export PATH; PATH=/bin:$PATH
echo shar: extracting "'Update.2.3.d'" '(38790 characters)'
if test -f 'Update.2.3.d'
then
echo shar: will not over-write existing file "'Update.2.3.d'"
else
cat << \SHAR_EOF > 'Update.2.3.d'
*** ./mon.c.orig Mon Feb 22 08:40:08 1988
--- ./mon.c Thu Mar 31 11:19:13 1988
***************
*** 1,4
! /* SCCS Id: @(#)mon.c 2.1 87/10/17
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */

#include "hack.h"

--- 1,4 -----
! /* SCCS Id: @(#)mon.c 2.3 87/12/12
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */

#include "hack.h"
***************
*** 3,9

#include "hack.h"
#include "mfndpos.h"
! extern struct monst *mkmon_at();
extern struct trap *maketrap();
extern struct obj *mkobj_at(), *mksobj_at();
extern char *hcolor();

--- 3,9 -----

#include "hack.h"
#include "mfndpos.h"
! extern struct monst *makemon(), *mkmon_at();
extern struct trap *maketrap();
extern struct obj *mkobj_at(), *mksobj_at();
extern char *hcolor();
***************
*** 41,47
mtmp->mlstmv = moves;

/* most monsters drown in pools */
! { boolean inpool, iseel;

inpool = (levl[mtmp->mx][mtmp->my].typ == POOL);
iseel = (mtmp->data->mlet == ';');

--- 41,48 -----
mtmp->mlstmv = moves;

/* most monsters drown in pools */
! { boolean inpool,infountain,iseel,isgremlin;
! extern struct permonst pm_gremlin;

inpool = (levl[mtmp->mx][mtmp->my].typ == POOL);
iseel = (mtmp->data->mlet == ';');
***************
*** 45,51

inpool = (levl[mtmp->mx][mtmp->my].typ == POOL);
iseel = (mtmp->data->mlet == ';');
! if(inpool && !iseel) {
if(cansee(mtmp->mx,mtmp->my))
pline("%s drowns.", Monnam(mtmp));
mondead(mtmp);

--- 46,62 -----

inpool = (levl[mtmp->mx][mtmp->my].typ == POOL);
iseel = (mtmp->data->mlet == ';');
! isgremlin = (mtmp->data->mlet == 'G' && mtmp->isgremlin);
! infountain = (levl[mtmp->mx][mtmp->my].typ == FOUNTAIN);
! if((inpool || infountain) && isgremlin && rn2(3)) {
! coord mm;
! enexto(&mm, mtmp->mx, mtmp->my);
! if(cansee(mtmp->mx,mtmp->my) &&
! makemon(PM_GREMLIN, mm.x, mm.y))
! pline("%s multiplies.", Monnam(mtmp));
! if (infountain) dryup();
! }
! if(inpool && !iseel && !isgremlin) {
if(cansee(mtmp->mx,mtmp->my))
pline("%s drowns.", Monnam(mtmp));
mondead(mtmp);
***************
*** 73,79
if(Conflict && cansee(mtmp->mx,mtmp->my)
&& (fr = fightm(mtmp)) == 2)
continue;
! if(fr<0 && dochugw(mtmp))
continue;
}
if(mtmp->mspeed == MFAST && dochugw(mtmp))

--- 84,92 -----
if(Conflict && cansee(mtmp->mx,mtmp->my)
&& (fr = fightm(mtmp)) == 2)
continue;
! #ifdef STOOGES
! if((mtmp->isstooge) && cansee(mtmp->mx,mtmp->my)
! && (fr = fightm(mtmp)) == 2)
continue;
#endif
if(fr<0 && dochugw(mtmp))
***************
*** 75,80
continue;
if(fr<0 && dochugw(mtmp))
continue;
}
if(mtmp->mspeed == MFAST && dochugw(mtmp))
continue;

--- 88,96 -----
if((mtmp->isstooge) && cansee(mtmp->mx,mtmp->my)
&& (fr = fightm(mtmp)) == 2)
continue;
+ #endif
+ if(fr<0 && dochugw(mtmp))
+ continue;
}
if(mtmp->mspeed == MFAST && dochugw(mtmp))
continue;
***************
*** 265,271
{ register struct trap *ttmp = t_at(nx, ny);
register long tt;
if(ttmp) {
! tt = 1L << ttmp->ttyp;
/* below if added by GAN 02/06/87 to avoid
* traps out of range
*/

--- 281,290 -----
{ register struct trap *ttmp = t_at(nx, ny);
register long tt;
if(ttmp) {
! /* tt = 1L << ttmp->ttyp;*/
! /* why don't we just have code look like what it's supposed to do? then it
! /* might start working for every case. try this instead: -sac */
! tt = (ttmp->ttyp < TRAPNUM && ttmp->ttyp > 0);
/* below if added by GAN 02/06/87 to avoid
* traps out of range
*/
***************
*** 270,276
* traps out of range
*/
if(!(tt & ALLOW_TRAPS)) {
! impossible("A monster looked at a very strange trap");
continue;
}
if(mon->mtrapseen & tt){

--- 289,295 -----
* traps out of range
*/
if(!(tt & ALLOW_TRAPS)) {
! impossible("A monster looked at a very strange trap of type %d.", ttmp->ttyp);
continue;
}
if(mon->mtrapseen & tt){
***************
*** 384,390

if(mon == fmon) fmon = fmon->nmon;
else {
! for(mtmp = fmon; mtmp->nmon != mon; mtmp = mtmp->nmon) ;
mtmp->nmon = mon->nmon;
}
}

--- 403,409 -----

if(mon == fmon) fmon = fmon->nmon;
else {
! for(mtmp = fmon; mtmp && mtmp->nmon != mon; mtmp = mtmp->nmon) ;
mtmp->nmon = mon->nmon;
}
}
***************
*** 483,489
/* punish bad behaviour */
if(mdat->mlet == '@') {
HTelepat = 0;
! u.uluck -= 2;
}
if(mtmp->mpeaceful || mtmp->mtame) u.uluck--;
if(mdat->mlet == 'u') u.uluck -= 5;

--- 502,508 -----
/* punish bad behaviour */
if(mdat->mlet == '@') {
HTelepat = 0;
! change_luck(-2);
}
if(mtmp->mpeaceful || mtmp->mtame) change_luck(-1);
if(mdat->mlet == 'u') change_luck(-5);
***************
*** 485,493
HTelepat = 0;
u.uluck -= 2;
}
! if(mtmp->mpeaceful || mtmp->mtame) u.uluck--;
! if(mdat->mlet == 'u') u.uluck -= 5;
! if((int)u.uluck < LUCKMIN) u.uluck = LUCKMIN;

/* give experience points */
tmp = 1 + mdat->mlevel * mdat->mlevel;

--- 504,511 -----
HTelepat = 0;
change_luck(-2);
}
! if(mtmp->mpeaceful || mtmp->mtame) change_luck(-1);
! if(mdat->mlet == 'u') change_luck(-5);

/* give experience points */
tmp = 1 + mdat->mlevel * mdat->mlevel;
***************
*** 492,513
/* give experience points */
tmp = 1 + mdat->mlevel * mdat->mlevel;
if(mdat->ac < 3) tmp += 2*(7 - mdat->ac);
! if(index(
! #ifdef RPH
! # ifdef KAA
! "AcsSDXaeRTVWU&In:P89",
! # else
! "AcsSDXaeRTVWU&In:P8",
! # endif
! #else
! # ifdef KAA
! "AcsSDXaeRTVWU&In:P9",
! # else
! "AcsSDXaeRTVWU&In:P",
! # endif
! #endif
! mdat->mlet)) tmp += 2*mdat->mlevel;
!
if(index("DeV&P",mdat->mlet)) tmp += (7*mdat->mlevel);
if(mdat->mlevel > 6) tmp += 50;
if(mdat->mlet == ';') tmp += 1000;

--- 510,516 -----
/* give experience points */
tmp = 1 + mdat->mlevel * mdat->mlevel;
if(mdat->ac < 3) tmp += 2*(7 - mdat->ac);
! if(index("AcsSDXaeRTVWU&In:P389",mdat->mlet)) tmp += 2*mdat->mlevel;
if(index("DeV&P",mdat->mlet)) tmp += (7*mdat->mlevel);
if(mdat->mlevel > 6) tmp += 50;
if(mdat->mlet == ';') tmp += 1000;
***************
*** 565,571
#ifdef RPH
old_nlth = mtmp->mnamelth;
if (old_nlth > 0) (void) strcpy (old_name, NAME(mtmp));
! #endif
mondead(mtmp);
tmp = mdat->mlet;
if(tmp == 'm') { /* he killed a minotaur, give him a wand of digging */

--- 568,582 -----
#ifdef RPH
old_nlth = mtmp->mnamelth;
if (old_nlth > 0) (void) strcpy (old_name, NAME(mtmp));
! #endif
! if (mdat->mlet == '&' && mtmp->isdjinni) { /* no djinni corpse */
! mondead(mtmp);
! return;
! }
! if (mdat->mlet == 'G' && mtmp->isgremlin) { /* no gremlin corpse */
! mondead(mtmp);
! return;
! }
mondead(mtmp);
tmp = mdat->mlet;
if(tmp == 'm') { /* he killed a minotaur, give him a wand of digging */
***************
*** 586,591
stackobj(fobj);
} else
#endif
#ifdef KAA
if(tmp == '&') (void) mkobj_at(0, x, y);
else

--- 597,608 -----
stackobj(fobj);
} else
#endif
+ #ifdef SAC
+ if(tmp == '3') {
+ ; /* don't do anything special- keep it from failing on */
+ /* call to letter(tmp) */
+ } else
+ #endif /* SAC */
#ifdef KAA
if(tmp == '&') (void) mkobj_at(0, x, y);
else
***************
*** 635,641
old_name, old_nlth);
# ifdef KOPS
else if (mdat->mlet == 'K')
! obj2 = mksobj_at((rn2(4) ? CLUB : WHISTLE), x, y);
# endif
else
obj2 = mkobj_at(tmp,x,y);

--- 652,659 -----
old_name, old_nlth);
# ifdef KOPS
else if (mdat->mlet == 'K')
! obj2 = mksobj_at((rn2(2) ? CLUB :
! (rn2(2)) ? WHISTLE : BADGE), x, y);
# endif
else
obj2 = mkobj_at(tmp,x,y);
***************
*** 686,692
{
register mhp, hpn, hpd;

! if(mdat == mtmp->data) return(0); /* still the same monster */
#ifndef NOWORM
if(mtmp->wormno) wormdead(mtmp); /* throw tail away */
#endif

--- 704,719 -----
{
register mhp, hpn, hpd;

! #ifdef RPH
! /* mdat = 0 -> caller wants a random monster shape */
! if (mdat == 0) {
! /* ie. minimum shape is mons[15], minimum random range */
! /* is 3, and randomness tails off as you descend into the */
! /* depths max shape is mons[CMNUM-1] */
! mdat = &mons[CMNUM-1-rn2((CMNUM-17) - (CMNUM-20)*dlevel/MAXLEVEL)];
! }
! #endif
! if(mdat == mtmp->data) return(0); /* still the same monster */
#ifndef NOWORM
if(mtmp->wormno) wormdead(mtmp); /* throw tail away */
#endif
*** ./monmove.c.orig Mon Feb 22 08:40:08 1988
--- ./monmove.c Thu Mar 31 11:19:13 1988
***************
*** 1,4
! /* SCCS Id: @(#)monmove.c 2.1 87/10/18
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */

#include "hack.h"

--- 1,4 -----
! /* SCCS Id: @(#)monmove.c 2.3 87/12/12
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */

#include "hack.h"
***************
*** 5,10
#include "mfndpos.h"
#define NULL (char *) 0

extern int warnlevel; /* defined in mon.c */

dochugw(mtmp) register struct monst *mtmp; {

--- 5,11 -----
#include "mfndpos.h"
#define NULL (char *) 0

+ extern struct obj *mksobj_at();
extern int warnlevel; /* defined in mon.c */

dochugw(mtmp) register struct monst *mtmp; {
***************
*** 31,37
register tmp, nearby, scared, onscary;

if(mtmp->cham && !rn2(6))
! (void) newcham(mtmp, &mons[dlevel+14+rn2(CMNUM-14-dlevel)]);
mdat = mtmp->data;
if(mdat->mlevel < 0)
panic("bad monster %c (%d)",mdat->mlet,mdat->mlevel);

--- 32,43 -----
register tmp, nearby, scared, onscary;

if(mtmp->cham && !rn2(6))
! (void) newcham(mtmp,
! #ifndef RPH
! &mons[dlevel+14+rn2(CMNUM-14-dlevel)]);
! #else
! (struct permonst *)0);
! #endif
mdat = mtmp->data;
if(mdat->mlevel < 0)
panic("bad monster %c (%d)",mdat->mlet,mdat->mlevel);
***************
*** 111,117
#endif
}
#ifdef HARD /* Demonic Blackmail!!! */
! if(mdat->mlet == '&' && mtmp->mpeaceful && !mtmp->mtame)
if(demon_talk(mtmp))
return(1); /* you paid it off */
#endif

--- 117,124 -----
#endif
}
#ifdef HARD /* Demonic Blackmail!!! */
! if(mdat->mlet == '&' && mtmp->mpeaceful
! && !mtmp->mtame && !mtmp->isdjinni)
if(demon_talk(mtmp))
return(1); /* you paid it off */
#endif
*** ./monst.c.orig Mon Feb 22 08:40:08 1988
--- ./monst.c Thu Mar 31 17:16:47 1988
***************
*** 1,4
! /* SCCS Id: @(#)monst.c 2.2 87/11/29
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */

#include "hack.h"

--- 1,4 -----
! /* SCCS Id: @(#)monst.c 2.3 87/12/16
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */

#include "hack.h"
***************
*** 3,8

#include "hack.h"
#include "eshk.h"
extern char plname[PL_NSIZ];

struct permonst mons[CMNUM+2] = {

--- 3,9 -----

#include "hack.h"
#include "eshk.h"
+ #include "edog.h"
extern char plname[PL_NSIZ];

struct permonst mons[CMNUM+2] = {
***************
*** 87,95
{ "trapper", ',', 12, 3, 3, 0, 0, 0, 0 },
{ "purple worm", 'P', 15, 9, 6, 20, 2, 8, 0 },
{ "demon", '&', 10, 12,-4, 30, 1, 4, 0 },
- #ifdef SAC
- { "soldier", '3', 12, 9,-3, 15,10, 4, 0 },
- #endif /* SAC */
{ "minotaur", 'm', 15, 15, 6, 0, 4, 10, 0 },
{ "shopkeeper", '@', 12, 18, 0, 50, 4, 8, sizeof(struct eshk) }
};

--- 88,93 -----
{ "trapper", ',', 12, 3, 3, 0, 0, 0, 0 },
{ "purple worm", 'P', 15, 9, 6, 20, 2, 8, 0 },
{ "demon", '&', 10, 12,-4, 30, 1, 4, 0 },
{ "minotaur", 'm', 15, 15, 6, 0, 4, 10, 0 },
{ "shopkeeper", '@', 12, 18, 0, 50, 4, 8, sizeof(struct eshk) }
};
***************
*** 96,101

struct permonst pm_ghost = { "ghost", ' ', 10, 3, -5, 50, 1, 1, sizeof(plname) };
#ifdef SAC
struct permonst pm_wizard = { "wizard of Yendor", '1', 20, 12, -8, 100, 2, 12, 0 };
#else
struct permonst pm_wizard = { "wizard of Yendor", '1', 15, 12, -2, 70, 1, 12, 0 };

--- 94,100 -----

struct permonst pm_ghost = { "ghost", ' ', 10, 3, -5, 50, 1, 1, sizeof(plname) };
#ifdef SAC
+ struct permonst pm_soldier = { "soldier", '3', 12, 4, -3, 15, 10, 4, 0 };
struct permonst pm_wizard = { "wizard of Yendor", '1', 20, 12, -8, 100, 2, 12, 0 };
#else
struct permonst pm_wizard = { "wizard of Yendor", '1', 15, 12, -2, 70, 1, 12, 0 };
***************
*** 106,110
#ifdef MAIL
struct permonst pm_mail_daemon = { "mail daemon", '2', 100, 1, 10, 127, 0, 0, 0 };
#endif
! struct permonst pm_eel = { "giant eel", ';', 15, 6, -3, 0, 3, 6, 0 };
!

--- 105,115 -----
#ifdef MAIL
struct permonst pm_mail_daemon = { "mail daemon", '2', 100, 1, 10, 127, 0, 0, 0 };
#endif
! struct permonst pm_eel = {"electric eel", ';', 15, 6, -3, 0, 3, 6, 0};
! struct permonst pm_djinni = {"djinni", '&', 10, 12, 0, 30, 2, 8, 0};
! struct permonst pm_gremlin= {"gremlin", 'G', 3, 12, 2, 25, 1, 8, 0};
! #ifdef STOOGES
! struct permonst pm_larry = {"Larry", '@', 3, 12, 10, 0, 1, 6, 0};
! struct permonst pm_curly = {"Curly", '@', 3, 12, 10, 0, 1, 6, 0};
! struct permonst pm_moe = {"Moe", '@', 3, 12, 10, 0, 1, 6, 0};
! #endif
*** ./monst.h.orig Mon Feb 22 08:40:09 1988
--- ./monst.h Thu Feb 11 11:44:52 1988
***************
*** 1,4
! /* SCCS Id: @(#)monst.h 2.1 87/09/28
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */

struct monst {

--- 1,4 -----
! /* SCCS Id: @(#)monst.h 2.3 88/02/11
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */

struct monst {
***************
*** 37,42
#endif
#ifdef WALKIES
Bitfield(mleashed,1); /* monster is on a leash */
#endif
long mtrapseen; /* bitmap of traps we've been trapped in */
long mlstmv; /* prevent two moves at once */

--- 37,48 -----
#endif
#ifdef WALKIES
Bitfield(mleashed,1); /* monster is on a leash */
+ #endif
+ Bitfield(dragon,3); /* multiple dragon type */
+ Bitfield(isdjinni,1); /* is djinni */
+ Bitfield(isgremlin,1); /* is gremlin */
+ #ifdef STOOGES
+ Bitfield(isstooge,1); /* is stooge */
#endif
long mtrapseen; /* bitmap of traps we've been trapped in */
long mlstmv; /* prevent two moves at once */
*** ./msdos.c.orig Mon Feb 22 08:40:09 1988
--- ./msdos.c Wed Dec 16 13:23:38 1987
***************
*** 1,4
! /* SCCS Id: @(#)msdos.c 2.1 87/10/19
/* An assortment of MSDOS functions.
*/

--- 1,4 -----
! /* SCCS Id: @(#)msdos.c 2.3 87/12/16
/* An assortment of MSDOS functions.
*/

***************
*** 90,96
char *comspec;

if (comspec = getcomspec()) {
! settty("To return to HACK, type \"exit\" at the DOS prompt.\n");
chdirx(orgdir, 0);
if (spawnl(P_WAIT, comspec, comspec, NULL) < 0) {
printf("\nCan't spawn %s !\n", comspec);

--- 90,96 -----
char *comspec;

if (comspec = getcomspec()) {
! settty("To return to NetHack, type \"exit\" at the DOS prompt.\n");
chdirx(orgdir, 0);
if (spawnl(P_WAIT, comspec, comspec, NULL) < 0) {
printf("\nCan't spawn %s !\n", comspec);
*** ./objclass.h.orig Mon Feb 22 08:40:10 1988
--- ./objclass.h Sun Jan 24 18:27:35 1988
***************
*** 1,4
! /* SCCS Id: @(#)objclass.h 2.1 87/09/23
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */

/* definition of a class of objects */

--- 1,4 -----
! /* SCCS Id: @(#)objclass.h 2.3 88/01/24
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */

/* definition of a class of objects */
***************
*** 31,39
#define wldam oc_oc2 /* for weapons and PICK_AXE */

#define g_val oc_oi /* for gems: value on exit */
! #ifdef MSDOS
! int oc_descr_i; /* where the description comes from */
! #endif
#ifdef SPELLS
#define spl_lev oc_oi /* for books: spell level */
#endif

--- 31,37 -----
#define wldam oc_oc2 /* for weapons and PICK_AXE */

#define g_val oc_oi /* for gems: value on exit */
!
#ifdef SPELLS
#define spl_lev oc_oi /* for books: spell level */
#endif
*** ./objects.h.orig Mon Feb 22 08:40:10 1988
--- ./objects.h Thu Mar 31 11:25:06 1988
***************
*** 1,4
! /* SCCS Id: @(#)objects.h 2.2 87/11/29
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */

/* objects have letter " % ) ( 0 _ ` [ ! ? / = * + */

--- 1,4 -----
! /* SCCS Id: @(#)objects.h 2.3 87/12/16
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */

/* objects have letter " % ) ( 0 _ ` [ ! ? / = * + */
***************
*** 31,36
FOOD("slice of pizza", 5, 0, 1, 250),
FOOD("cream pie", 3, 0, 1, 100),
FOOD("tin", 7, 0, 1, 0),
FOOD("orange", 1, 0, 1, 80),
FOOD("apple", 1, 0, 1, 50),
FOOD("pear", 1, 0, 1, 50),

--- 31,38 -----
FOOD("slice of pizza", 5, 0, 1, 250),
FOOD("cream pie", 3, 0, 1, 100),
FOOD("tin", 7, 0, 1, 0),
+ FOOD("K-ration", 0, 1, 1, 400),
+ FOOD("C-ration", 0, 1, 1, 300),
FOOD("orange", 1, 0, 1, 80),
FOOD("apple", 1, 0, 1, 50),
FOOD("pear", 1, 0, 1, 50),
***************
*** 154,161
WEAPON("crossbow", 5, 3, 4, 6),

#ifdef WALKIES
! { "whistle", "whistle", NULL, 0, 0, TOOL_SYM, 55, 0, 2, 0, 0, 0 },
! { "leash", NULL, NULL, 1, 0, TOOL_SYM, 20, 0, 20, 0, 0, 0 },
#else
{ "whistle", "whistle", NULL, 0, 0, TOOL_SYM, 75, 0, 2, 0, 0, 0 },
{ "leash", NULL, NULL, 1, 0, TOOL_SYM, 0, 0, 20, 0, 0, 0 },

--- 156,163 -----
WEAPON("crossbow", 5, 3, 4, 6),

#ifdef WALKIES
! { "whistle", "whistle", NULL, 0, 0, TOOL_SYM, 40, 0, 2, 0, 0, 0 },
! { "leash", NULL, NULL, 1, 0, TOOL_SYM, 20, 0, 6, 0, 0, 0 },
#else
{ "whistle", "whistle", NULL, 0, 0, TOOL_SYM, 60, 0, 2, 0, 0, 0 },
{ "leash", NULL, NULL, 1, 0, TOOL_SYM, 0, 0, 6, 0, 0, 0 },
***************
*** 157,164
{ "whistle", "whistle", NULL, 0, 0, TOOL_SYM, 55, 0, 2, 0, 0, 0 },
{ "leash", NULL, NULL, 1, 0, TOOL_SYM, 20, 0, 20, 0, 0, 0 },
#else
! { "whistle", "whistle", NULL, 0, 0, TOOL_SYM, 75, 0, 2, 0, 0, 0 },
! { "leash", NULL, NULL, 1, 0, TOOL_SYM, 0, 0, 20, 0, 0, 0 },
#endif
{ "magic whistle", "whistle", NULL, 0, 0, TOOL_SYM, 9, 0, 2, 0, 0, 0 },
#ifdef RPH

--- 159,166 -----
{ "whistle", "whistle", NULL, 0, 0, TOOL_SYM, 40, 0, 2, 0, 0, 0 },
{ "leash", NULL, NULL, 1, 0, TOOL_SYM, 20, 0, 6, 0, 0, 0 },
#else
! { "whistle", "whistle", NULL, 0, 0, TOOL_SYM, 60, 0, 2, 0, 0, 0 },
! { "leash", NULL, NULL, 1, 0, TOOL_SYM, 0, 0, 6, 0, 0, 0 },
#endif
{ "magic whistle", "whistle", NULL, 0, 0, TOOL_SYM, 9, 0, 2, 0, 0, 0 },
#ifdef RPH
***************
*** 174,179
{ "magic marker", NULL, NULL, 1, 0, TOOL_SYM, 1, 0, 1, 0, 0, 0 },
{ "stethoscope", NULL, NULL, 1, 0, TOOL_SYM, 1, 0, 3, 0, 0, 0 },
{ "can opener", NULL, NULL, 1, 1, TOOL_SYM, 1, 0, 1, 0, 0, 0 },

{ "heavy iron ball", NULL, NULL, 1, 0,
BALL_SYM, 100, 0, 20, 0, 0, 0 },

--- 176,184 -----
{ "magic marker", NULL, NULL, 1, 0, TOOL_SYM, 1, 0, 1, 0, 0, 0 },
{ "stethoscope", NULL, NULL, 1, 0, TOOL_SYM, 1, 0, 3, 0, 0, 0 },
{ "can opener", NULL, NULL, 1, 1, TOOL_SYM, 1, 0, 1, 0, 0, 0 },
+ { "lamp", "lamp", NULL, 0, 0, TOOL_SYM, 12, 0, 10, 0, 0, 0 },
+ { "magic lamp", "lamp", NULL, 0, 0, TOOL_SYM, 2, 0, 10, 0, 0, 0 },
+ { "badge", "badge", NULL, 0, 0, TOOL_SYM, 1, 0, 2, 0, 0, 0 },

{ "heavy iron ball", NULL, NULL, 1, 0,
BALL_SYM, 100, 0, 20, 0, 0, 0 },
***************
*** 212,217
/* the armors below do not rust */
ARMOR("studded leather armor", 12, 3, 3, 7, 1),
ARMOR("elfin chain mail", 1, 1, 2, 5, 3),
ARMOR("bronze plate mail", 6, 5, 9, 4, 0),
ARMOR("crystal plate mail", 1, 5, 9, 3, 2),
ARMOR("leather armor", 15, 3, 2, 8, 0),

--- 217,225 -----
/* the armors below do not rust */
ARMOR("studded leather armor", 12, 3, 3, 7, 1),
ARMOR("elfin chain mail", 1, 1, 2, 5, 3),
+ #ifdef SHIRT
+ ARMOR("bronze plate mail", 5, 5, 9, 4, 0),
+ #else
ARMOR("bronze plate mail", 6, 5, 9, 4, 0),
#endif
ARMOR("crystal plate mail", 1, 5, 9, 3, 2),
***************
*** 213,218
ARMOR("studded leather armor", 12, 3, 3, 7, 1),
ARMOR("elfin chain mail", 1, 1, 2, 5, 3),
ARMOR("bronze plate mail", 6, 5, 9, 4, 0),
ARMOR("crystal plate mail", 1, 5, 9, 3, 2),
ARMOR("leather armor", 15, 3, 2, 8, 0),
ARMOR("elven cloak", 5, 0, 2, 9, 3),

--- 221,227 -----
ARMOR("bronze plate mail", 5, 5, 9, 4, 0),
#else
ARMOR("bronze plate mail", 6, 5, 9, 4, 0),
+ #endif
ARMOR("crystal plate mail", 1, 5, 9, 3, 2),
ARMOR("leather armor", 15, 3, 2, 8, 0),
ARMOR("elven cloak", 5, 0, 2, 9, 3),
***************
*** 217,222
ARMOR("leather armor", 15, 3, 2, 8, 0),
ARMOR("elven cloak", 5, 0, 2, 9, 3),
ARMOR("shield", 3, 0, 2, 9, 0),
ARMOR("pair of gloves", 1, 1, 2, 9, 0),

#define POTION(name,color) { name, color, NULL, 0, 1,\

--- 226,236 -----
ARMOR("leather armor", 15, 3, 2, 8, 0),
ARMOR("elven cloak", 5, 0, 2, 9, 3),
ARMOR("shield", 3, 0, 2, 9, 0),
+ #ifdef SHIRT
+ ARMOR("Hawaiian shirt", 1, 0, 2,10, 0),
+ #else
+ ARMOR("Hawaiian shirt", 0, 0, 2,10, 0),
+ #endif
ARMOR("pair of gloves", 1, 1, 2, 9, 0),

#define POTION(name,color) { name, color, NULL, 0, 1,\
***************
*** 300,306
WAND("probing", "oak", 0, IMMEDIATE),
#endif
WAND("digging", "iron", 5, RAY),
! WAND("magic missile", "aluminum", 10, RAY),
WAND("fire", "steel", 5, RAY),
WAND("sleep", "curved", 5, RAY),
WAND("cold", "short", 5, RAY),

--- 314,320 -----
WAND("probing", "oak", 0, IMMEDIATE),
#endif
WAND("digging", "iron", 5, RAY),
! WAND("magic missile", "aluminum", 5, RAY),
WAND("fire", "steel", 5, RAY),
WAND("sleep", "curved", 5, RAY),
WAND("cold", "short", 5, RAY),
***************
*** 305,311
WAND("sleep", "curved", 5, RAY),
WAND("cold", "short", 5, RAY),
WAND("death", "long", 1, RAY),
! WAND(NULL, "ebony", 0, 0),
WAND(NULL, "runed", 0, 0),

#ifdef SPELLS

--- 319,325 -----
WAND("sleep", "curved", 5, RAY),
WAND("cold", "short", 5, RAY),
WAND("death", "long", 1, RAY),
! WAND("lightning", "ebony", 5, RAY),
WAND(NULL, "runed", 0, 0),

#ifdef SPELLS
***************
*** 377,383
RING("teleport control", "iron", 0),
RING("polymorph", "ivory", 0),
RING("polymorph control","blackened", 0),
! RING(NULL, "hematite", 0),
RING(NULL, "brass", 0),

/* gems ************************************************************/

--- 391,397 -----
RING("teleport control", "iron", 0),
RING("polymorph", "ivory", 0),
RING("polymorph control","blackened", 0),
! RING("shock resistance", "hematite", 0),
RING(NULL, "brass", 0),

/* gems ************************************************************/
***************
*** 383,390
/* gems ************************************************************/
#define GEM(name,color,prob,gval) { name, color, NULL, 0, 1,\
GEM_SYM, prob, 0, 1, 0, 0, gval }
! GEM("dilithium crystal", "lavender", 1, 4500),
! GEM("diamond", "blue", 1, 4000),
GEM("ruby", "red", 1, 3500),
GEM("sapphire", "blue", 1, 3000),
GEM("emerald", "green", 1, 2500),

--- 397,404 -----
/* gems ************************************************************/
#define GEM(name,color,prob,gval) { name, color, NULL, 0, 1,\
GEM_SYM, prob, 0, 1, 0, 0, gval }
! GEM("dilithium crystal", "white", 1, 4500),
! GEM("diamond", "white", 1, 4000),
GEM("ruby", "red", 1, 3500),
GEM("sapphire", "blue", 1, 3000),
GEM("emerald", "green", 1, 2500),
***************
*** 389,408
GEM("sapphire", "blue", 1, 3000),
GEM("emerald", "green", 1, 2500),
GEM("turquoise", "green", 1, 2000),
! GEM("aquamarine", "blue", 1, 1500),
! GEM("tourmaline", "green", 1, 1000),
! GEM("topaz", "yellow", 1, 900),
! GEM("opal", "yellow", 1, 800),
! GEM("garnet", "dark", 1, 700),
! GEM("amethyst", "violet", 1, 650),
! GEM("agate", "green", 2, 600),
! GEM("onyx", "white", 2, 550),
! GEM("jasper", "yellowish brown", 2, 500),
! GEM("jade", "green", 2, 450),
! GEM("worthless piece of blue glass", "blue", 20, 0),
! GEM("worthless piece of red glass", "red", 20, 0),
! GEM("worthless piece of yellow glass", "yellow", 20, 0),
! GEM("worthless piece of green glass", "green", 20, 0),
{ NULL, NULL, NULL, 0, 0, ILLOBJ_SYM, 0, 0, 0, 0, 0, 0 }
};

--- 403,422 -----
GEM("sapphire", "blue", 1, 3000),
GEM("emerald", "green", 1, 2500),
GEM("turquoise", "green", 1, 2000),
! GEM("aquamarine", "green", 1, 1500),
! GEM("amber", "yellowish brown", 1, 1000),
! GEM("topaz", "yellowish brown", 1, 900),
! GEM("opal", "white", 1, 800),
! GEM("garnet", "red", 1, 700),
! GEM("amethyst", "violet", 1, 600),
! GEM("jasper", "red", 2, 500),
! GEM("fluorite", "violet", 2, 400),
! GEM("jade", "green", 2, 300),
! GEM("worthless piece of white glass", "white", 16, 100),
! GEM("worthless piece of blue glass", "blue", 16, 0),
! GEM("worthless piece of red glass", "red", 16, 0),
! GEM("worthless piece of yellowish brown glass", "yellowish brown", 17, 0),
! GEM("worthless piece of green glass", "green", 17, 0),
{ NULL, NULL, NULL, 0, 0, ILLOBJ_SYM, 0, 0, 0, 0, 0, 0 }
};

*** ./objnam.c.orig Mon Feb 22 08:40:10 1988
--- ./objnam.c Tue Mar 29 09:02:11 1988
***************
*** 1,4
! /* SCCS Id: @(#)objnam.c 2.1 87/09/28
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */

#include "hack.h"

--- 1,4 -----
! /* SCCS Id: @(#)objnam.c 2.3 88/01/21
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */

#include "hack.h"
***************
*** 284,289
Sprintf(prefix, "%u ", obj->quan);
else
Strcpy(prefix, "a ");
switch(obj->olet) {
case AMULET_SYM:
if(strncmp(bp, "cheap ", 6))

--- 284,291 -----
Sprintf(prefix, "%u ", obj->quan);
else
Strcpy(prefix, "a ");
+ if((obj->cursed && obj->known))
+ Strcat(prefix, "cursed ");
switch(obj->olet) {
case AMULET_SYM:
if(strncmp(bp, "cheap ", 6))
***************
*** 306,312
break;
#ifdef MARKER
case TOOL_SYM: /* temp. hack by GAN 11/18/86 */
! if(obj->otyp != MAGIC_MARKER) break;
#endif
case WAND_SYM:
if(obj->known)

--- 308,319 -----
break;
#ifdef MARKER
case TOOL_SYM: /* temp. hack by GAN 11/18/86 */
! if(obj->owornmask & W_TOOL) { /* blindfold or badge */
! Strcat(bp, " (being worn)");
! break;
! }
! if(!(obj->otyp == MAGIC_MARKER || obj->otyp == LAMP)) break;
! /* if marker or lamp fall trough to show charges */
#endif
case WAND_SYM:
if(obj->known)
***************
*** 313,320
Sprintf(eos(bp), " (%d)", obj->spe);
break;
case RING_SYM:
! if(obj->owornmask & W_RINGR) Strcat(bp, " (on right hand)");
! if(obj->owornmask & W_RINGL) Strcat(bp, " (on left hand)");
if(obj->known && (objects[obj->otyp].bits & SPEC)) {
Strcat(prefix, sitoa(obj->spe));
Strcat(prefix, " ");

--- 320,331 -----
Sprintf(eos(bp), " (%d)", obj->spe);
break;
case RING_SYM:
! if(obj->owornmask & W_RINGR) Strcat(bp, " (on right ");
! if(obj->owornmask & W_RINGL) Strcat(bp, " (on left ");
! if(obj->owornmask & W_RING) {
! if (humanoid(u.usym)) Strcat(bp, "hand)");
! else Strcat(bp, "paw)");
! }
if(obj->known && (objects[obj->otyp].bits & SPEC)) {
Strcat(prefix, sitoa(obj->spe));
Strcat(prefix, " ");
***************
*** 321,328
}
break;
}
! if(obj->owornmask & W_WEP)
! Strcat(bp, " (weapon in hand)");
if(obj->unpaid)
Strcat(bp, " (unpaid)");
if(!strcmp(prefix, "a ") && index(vowels, *bp))

--- 332,342 -----
}
break;
}
! if(obj->owornmask & W_WEP) {
! Strcat(bp, " (weapon in ");
! if (humanoid(u.usym)) Strcat(bp, "hand)");
! else Strcat(bp, "paw)");
! }
if(obj->unpaid)
Strcat(bp, " (unpaid)");
if(!strcmp(prefix, " a ") && index(vowels, *bp))
***************
*** 325,332
Strcat(bp, " (weapon in hand)");
if(obj->unpaid)
Strcat(bp, " (unpaid)");
! if(!strcmp(prefix, "a ") && index(vowels, *bp))
! Strcpy(prefix, "an ");
bp = strprepend(bp, prefix);
return(bp);
}

--- 339,346 -----
}
if(obj->unpaid)
Strcat(bp, " (unpaid)");
! if(!strcmp(prefix, " a ") && index(vowels, *bp))
! Strcpy(prefix, " an ");
bp = strprepend(bp, prefix);
return(bp);
}
***************
*** 412,423
cnt = 1;
bp += 2;
}
- #ifdef KAA
- if(!strncmp(bp,"blessed ",8)) {
- blessed=1;
- bp += 8;
- }
- #endif
if(!cnt && digit(*bp)){
cnt = atoi(bp);
while(digit(*bp)) bp++;

--- 426,431 -----
cnt = 1;
bp += 2;
}
if(!cnt && digit(*bp)){
cnt = atoi(bp);
while(digit(*bp)) bp++;
***************
*** 424,430
while(*bp == ' ') bp++;
}
if(!cnt) cnt = 1; /* %% what with "gems" etc. ? */
!
if(*bp == '+' || *bp == '-'){
spesgn = (*bp++ == '+') ? 1 : -1;
spe = atoi(bp);

--- 432,443 -----
while(*bp == ' ') bp++;
}
if(!cnt) cnt = 1; /* %% what with "gems" etc. ? */
! #ifdef KAA
! if(!strncmp(bp, "blessed ",8)) {
! blessed=1;
! bp += 8;
! }
! #endif
if(*bp == '+' || *bp == '-'){
spesgn = (*bp++ == '+') ? 1 : -1;
spe = atoi(bp);
***************
*** 528,533
goto srch;
}

p = eos(bp);
#if defined(KOPS) && !defined(KJSMODS)
if (!strcmp(p-3, "kop")) {

--- 541,553 -----
goto srch;
}

+ #ifdef SHIRT
+ if (!strcmp(bp, "hawaiian shirt")) {
+ *(bp) = 'H';
+ an = bp;
+ goto srch;
+ }
+ #endif
p = eos(bp);
#if defined(KOPS) && !defined(KJSMODS)
if (!strcmp(p-3, "kop")) {
***************
*** 607,613
if(heavy) otmp->owt += 15;

if(cnt > 0 && index("%?!*)", let) &&
! (cnt < 4 ||
#ifdef WIZARD
wizard ||
#endif

--- 627,633 -----
if(heavy) otmp->owt += 15;

if(cnt > 0 && index("%?!*)", let) &&
! (cnt < rnd(6) ||
#ifdef WIZARD
wizard ||
#endif
***************
*** 618,624
#endif
)) otmp->quan = cnt;

! if(spe > 3 && spe > otmp->spe) {
#ifdef WIZARD
if(!wizard)
#endif

--- 638,644 -----
#endif
)) otmp->quan = cnt;

! if(spe > rnd(5) && spe > otmp->spe) {
#ifdef WIZARD
if(!wizard)
#endif
***************
*** 631,637
else otmp->dknown=1;
}
#endif
! if(spe == 3 && u.uluck < 0)
spesgn = -1;
if(let != WAND_SYM && spesgn == -1)
spe = -spe;

--- 651,657 -----
else otmp->dknown=1;
}
#endif
! if(spe > 2 && u.uluck < 0)
spesgn = -1;
if(let != WAND_SYM && spesgn == -1)
spe = -spe;
***************
*** 645,650
else if(typ == MAGIC_MARKER)
spe = rn1(50,50);
#endif
otmp->spe = spe;

if(spesgn == -1)

--- 665,674 -----
else if(typ == MAGIC_MARKER)
spe = rn1(50,50);
#endif
+ else if(typ == LAMP)
+ spe = rnd(10);
+ else if(typ == MAGIC_LAMP)
+ spe = 1;
otmp->spe = spe;

if(spesgn == -1)
*** ./options.c.orig Mon Feb 22 08:40:11 1988
--- ./options.c Thu Mar 31 09:08:51 1988
***************
*** 1,4
! /* SCCS Id: @(#)options.c 2.0 87/09/14
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */

#include "config.h"

--- 1,4 -----
! /* SCCS Id: @(#)options.c 2.3 87/12/12
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */

#include "config.h"
***************
*** 149,155
goto bad; /* bad char in order */
else if (index(sp + 1, *sp))
goto bad; /* dup char in order */
! tmp = (char *) alloc(strlen(inv_order) + 1);
(void) strcpy(tmp, op);
for (sp = inv_order, tmpend = strlen(tmp); *sp; sp++)
if (!index(tmp, *sp)) {

--- 149,155 -----
goto bad; /* bad char in order */
else if (index(sp + 1, *sp))
goto bad; /* dup char in order */
! tmp = (char *) alloc((unsigned)(strlen(inv_order)+1));
(void) strcpy(tmp, op);
for (sp = inv_order, tmpend = strlen(tmp); *sp; sp++)
if (!index(tmp, *sp)) {
***************
*** 233,240
else
opts = op + 1;
/*
! * You could have problems here if you configure FOUNTAINS, SPIDERS or NEWCLASS
! * in or out and forget to change the tail entries in your graphics string.
*/
#define SETPCHAR(f, n) showsyms.f = (strlen(opts) > n) ? opts[n] : defsyms.f
SETPCHAR(stone, 0);

--- 233,241 -----
else
opts = op + 1;
/*
! * You could have problems here if you configure FOUNTAINS, SPIDERS, NEWCLASS
! * or SINKS in or out and forget to change the tail entries in your graphics
! * string.
*/
#define SETPCHAR(f, n) showsyms.f = (strlen(opts) > n) ? opts[n] : defsyms.f
SETPCHAR(stone, 0);
***************
*** 260,265
#ifdef SPIDERS
SETPCHAR(web, 16);
#endif
#undef SETPCHAR
return;
}

--- 261,269 -----
#ifdef SPIDERS
SETPCHAR(web, 16);
#endif
+ #ifdef SINKS
+ SETPCHAR(sink, 17);
+ #endif
#undef SETPCHAR
return;
}
***************
*** 427,433
#ifndef QUEST
"Hack");
#else
! "Quest);
#endif
if(page_line("") || page_line(buf) || page_line("")) goto quit;

--- 431,437 -----
#ifndef QUEST
"Hack");
#else
! "Quest");
#endif
if(page_line("") || page_line(buf) || page_line("")) goto quit;

***************
*** 443,449
Page_line("");

#ifdef DGK
! Page_line("Boolean options are confirm, pickup, rawio, silent, sortpack, time, IBMBIOS,")
Page_line("and DECRainbow. These can be negated by prefixing them with '!' or \"no\".");
#else
Page_line("Boolean options are rest_on_space, news, time, null tombstone, and (fe)male,");

--- 447,453 -----
Page_line("");

#ifdef DGK
! Page_line("Boolean options are confirm, pickup, rawio, silent, sortpack, time, IBMBIOS,");
Page_line("and DECRainbow. These can be negated by prefixing them with '!' or \"no\".");
#else
Page_line("Boolean options are rest_on_space, news, time, null tombstone, and (fe)male,");
*** ./pager.c.orig Mon Feb 22 08:40:11 1988
--- ./pager.c Tue Mar 29 08:43:08 1988
***************
*** 1,4
! /* SCCS Id: @(#)pager.c 2.1 87/11/09
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */

/* This file contains the command routine dowhatis() and a pager. */

--- 1,4 -----
! /* SCCS Id: @(#)pager.c 2.3 87/12/12
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */

/* This file contains the command routine dowhatis() and a pager. */
***************
*** 12,17
extern char *CD;
extern char quitchars[];
extern char *getenv(), *getlogin();
int done1();

dowhatis()

--- 12,18 -----
extern char *CD;
extern char quitchars[];
extern char *getenv(), *getlogin();
+ extern xchar curx;
int done1();

dowhatis()
***************
*** 69,74
#endif
#ifdef SPIDERS
else if (r == showsyms.web) q = defsyms.web;
else
q = r;
#endif

--- 70,79 -----
#endif
#ifdef SPIDERS
else if (r == showsyms.web) q = defsyms.web;
+ #endif
+ #ifdef SINKS
+ else if (r == showsyms.sink) q = defsyms.sink;
+ #endif
else
q = r;
#endif /* GRAPHICS */
***************
*** 71,77
else if (r == showsyms.web) q = defsyms.web;
else
q = r;
- #endif
#endif /* GRAPHICS */
#ifdef DGKMOD
if (index(quitchars, q)) {

--- 76,81 -----
#endif
else
q = r;
#endif /* GRAPHICS */
#ifdef DGKMOD
if (index(quitchars, q)) {
***************
*** 251,256
cl_eos();
}
}
xputs(s); xputc('\n');
cury++;
return(0);

--- 255,261 -----
cl_eos();
}
}
+ #ifdef TERMINFO
xputs(s); xputc('\n');
#else
puts(s);
***************
*** 252,257
}
}
xputs(s); xputc('\n');
cury++;
return(0);
}

--- 257,265 -----
}
#ifdef TERMINFO
xputs(s); xputc('\n');
+ #else
+ puts(s);
+ #endif
cury++;
return(0);
}
***************
*** 295,301

if(!text) return; /* superfluous, just to be sure */
linect++;
! len = strlen(text);
if(len > maxlen)
maxlen = len;
tl = (struct line *)

--- 303,309 -----

if(!text) return; /* superfluous, just to be sure */
linect++;
! len = strlen(text) + 1; /* allow for an extra leading space */
if(len > maxlen)
maxlen = len;
tl = (struct line *)
***************
*** 302,308
alloc((unsigned)(len + sizeof(struct line) + 1));
tl->next_line = 0;
tl->line_text = (char *)(tl + 1);
! (void) strcpy(tl->line_text, text);
if(!texthead)
texthead = tl;
else

--- 310,318 -----
alloc((unsigned)(len + sizeof(struct line) + 1));
tl->next_line = 0;
tl->line_text = (char *)(tl + 1);
! tl->line_text[0] = ' ';
! tl->line_text[1] = '\0';
! (void) strcat(tl->line_text, text);
if(!texthead)
texthead = tl;
else
***************
*** 328,333
flags.toplin = 0;
curline = 1;
for (tl = texthead; tl; tl = tl->next_line) {
curs (lth, curline);
if(curline > 1)
cl_end ();

--- 338,346 -----
flags.toplin = 0;
curline = 1;
for (tl = texthead; tl; tl = tl->next_line) {
+ #ifdef MSDOS
+ cmov (lth, curline);
+ #else
curs (lth, curline);
#endif
if(curline > 1)
***************
*** 329,334
curline = 1;
for (tl = texthead; tl; tl = tl->next_line) {
curs (lth, curline);
if(curline > 1)
cl_end ();
putsym(' ');

--- 342,348 -----
cmov (lth, curline);
#else
curs (lth, curline);
+ #endif
if(curline > 1)
cl_end ();
xputs(tl->line_text);
***************
*** 331,337
curs (lth, curline);
if(curline > 1)
cl_end ();
- putsym(' ');
xputs(tl->line_text);
curline++;
}

--- 345,350 -----
#endif
if(curline > 1)
cl_end ();
xputs(tl->line_text);
curx = curx + strlen(tl->line_text);
curline++;
***************
*** 333,338
cl_end ();
putsym(' ');
xputs(tl->line_text);
curline++;
}
curs (lth, curline);

--- 346,352 -----
if(curline > 1)
cl_end ();
xputs(tl->line_text);
+ curx = curx + strlen(tl->line_text);
curline++;
}
#ifdef MSDOS
***************
*** 335,340
xputs(tl->line_text);
curline++;
}
curs (lth, curline);
cl_end ();
cmore (text);

--- 349,357 -----
curx = curx + strlen(tl->line_text);
curline++;
}
+ #ifdef MSDOS
+ cmov (lth, curline);
+ #else
curs (lth, curline);
#endif
cl_end ();
***************
*** 336,341
curline++;
}
curs (lth, curline);
cl_end ();
cmore (text);
home ();

--- 353,359 -----
cmov (lth, curline);
#else
curs (lth, curline);
+ #endif
cl_end ();
cmore (text);
home ();
SHAR_EOF
if test 38790 -ne "`wc -c < 'Update.2.3.d'`"
then
echo shar: error transmitting "'Update.2.3.d'" '(should have been 38790 characters)'
fi
fi # end of overwriting check
# End of shell archive
exit 0
--
Mike Stephenson

Mail: Genamation Inc. Phone: (416) 475-9434
351 Steelcase Rd. W
Markham, Ontario. UUCP: uunet!{mnetor,utzoo}!genat!genpyr!mike
Canada L3R 3W1 uunet!{mnetor,utzoo}!genat!mike

0 new messages