Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss
Groups keyboard shortcuts have been updated
Dismiss
See shortcuts

NetHack 2.3 Update Pt. 05 of 12

9 views
Skip to first unread message

Mike Stephenson

unread,
Apr 12, 1988, 7:28:01 AM4/12/88
to
-------------------------------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.a
# This archive created: Mon Apr 4 08:52:29 1988
export PATH; PATH=/bin:$PATH
echo shar: extracting "'Update.2.3.a'" '(36456 characters)'
if test -f 'Update.2.3.a'
then
echo shar: will not over-write existing file "'Update.2.3.a'"
else
cat << \SHAR_EOF > 'Update.2.3.a'
*** ./Makefile.att.orig Mon Feb 22 08:39:58 1988
--- ./Makefile.att Thu Feb 18 16:37:42 1988
***************
*** 1,5
# Hack or Quest Makefile.
! # SCCS Id: @(#)Makefile.att 2.2 87/11/11

include $(MAKEINC)/Makepre.h

--- 1,5 -----
# Hack or Quest Makefile.
! # SCCS Id: @(#)Makefile.att 2.3 88/02/12

include $(MAKEINC)/Makepre.h

***************
*** 68,74
@echo "Done."

makedefs: makedefs.c alloc.o config.h
! cc -o makedefs alloc.o makedefs.c

RUMORFILES= rumors.base rumors.kaa rumors.mrx

--- 68,74 -----
@echo "Done."

makedefs: makedefs.c alloc.o config.h
! cc ${CFLAGS} -o makedefs alloc.o makedefs.c

RUMORFILES= rumors.base rumors.kaa rumors.mrx

***************
*** 129,134
mkdir $(GAMEDIR) $(GAMEDIR)/save
touch $(GAMEDIR)/perm
touch $(GAMEDIR)/record
chown $(GAMEUID) $(GAMEDIR) $(GAMEDIR)/*
chgrp $(GAMEGRP) $(GAMEDIR) $(GAMEDIR)/*
chmod 666 $(GAMEDIR)/*

--- 129,135 -----
mkdir $(GAMEDIR) $(GAMEDIR)/save
touch $(GAMEDIR)/perm
touch $(GAMEDIR)/record
+ touch $(GAMEDIR)/logfile
chown $(GAMEUID) $(GAMEDIR) $(GAMEDIR)/*
chgrp $(GAMEGRP) $(GAMEDIR) $(GAMEDIR)/*
chmod 666 $(GAMEDIR)/*
*** ./Makefile.unix.orig Mon Feb 22 08:39:58 1988
--- ./Makefile.unix Thu Mar 31 12:11:06 1988
***************
*** 1,5
# Hack or Quest Makefile.
! # SCCS Id: @(#)Makefile.unix 2.1 87/10/08

# if you are cross-compiling (eg. from Xenix into a Dos enviornment)
# you will have to redefine these filenames.

--- 1,5 -----
# Hack or Quest Makefile.
! # SCCS Id: @(#)Makefile.unix 2.3 88/02/12

# if you are cross-compiling (eg. from Xenix into a Dos enviornment)
# you will have to redefine these filenames.
***************
*** 72,78
nroff -mn Guidebook.mn > Guidebook

makedefs: makedefs.c alloc.o config.h
! cc -o makedefs alloc.o makedefs.c

RUMORFILES= rumors.base rumors.kaa rumors.mrx

--- 72,78 -----
nroff -mn Guidebook.mn > Guidebook

makedefs: makedefs.c alloc.o config.h
! cc $(CFLAGS) -o makedefs alloc.o makedefs.c

RUMORFILES= rumors.base rumors.kaa rumors.mrx

***************
*** 133,138
mkdir $(GAMEDIR) $(GAMEDIR)/save
touch $(GAMEDIR)/perm
touch $(GAMEDIR)/record
chown $(GAMEUID) $(SHELLDIR)/$(GAME) $(GAMEDIR) $(GAMEDIR)/*
chgrp $(GAMEGRP) $(SHELLDIR)/$(GAME) $(GAMEDIR) $(GAMEDIR)/*
chmod 666 $(GAMEDIR)/*

--- 133,139 -----
mkdir $(GAMEDIR) $(GAMEDIR)/save
touch $(GAMEDIR)/perm
touch $(GAMEDIR)/record
+ touch $(GAMEDIR)/logfile
chown $(GAMEUID) $(SHELLDIR)/$(GAME) $(GAMEDIR) $(GAMEDIR)/*
chgrp $(GAMEGRP) $(SHELLDIR)/$(GAME) $(GAMEDIR) $(GAMEDIR)/*
chmod 666 $(GAMEDIR)/*
***************
*** 139,144
chmod 777 $(GAMEDIR) $(GAMEDIR)/save

install: $(VARAUX) $(GAME)
-mkdir $(GAMEDIR)
-mkdir $(GAMEDIR)/save
-rm -f $(GAMEDIR)/$(GAME)

--- 140,146 -----
chmod 777 $(GAMEDIR) $(GAMEDIR)/save

install: $(VARAUX) $(GAME)
+ strip $(GAME)
-mkdir $(GAMEDIR)
-mkdir $(GAMEDIR)/save
-rm -f $(GAMEDIR)/$(GAME)
*** ./Makefile.xenix.orig Mon Feb 22 08:39:59 1988
--- ./Makefile.xenix Thu Feb 18 16:39:06 1988
***************
*** 138,143
mkdir $(GAMEDIR) $(GAMEDIR)/save
touch $(GAMEDIR)/perm
touch $(GAMEDIR)/record
chown $(GAMEUID) $(GAMEDIR) $(GAMEDIR)/*
chgrp $(GAMEGRP) $(GAMEDIR) $(GAMEDIR)/*
chmod 666 $(GAMEDIR)/*

--- 138,144 -----
mkdir $(GAMEDIR) $(GAMEDIR)/save
touch $(GAMEDIR)/perm
touch $(GAMEDIR)/record
+ touch $(GAMEDIR)/logfile
chown $(GAMEUID) $(GAMEDIR) $(GAMEDIR)/*
chgrp $(GAMEGRP) $(GAMEDIR) $(GAMEDIR)/*
chmod 666 $(GAMEDIR)/*
*** ./apply.c.orig Mon Feb 22 08:39:59 1988
--- ./apply.c Thu Mar 31 09:08:56 1988
***************
*** 1,4
! /* SCCS Id: @(#)apply.c 2.1 87/09/23
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */

#include "hack.h"

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

#include "hack.h"
***************
*** 12,17
extern char quitchars[];
extern char pl_character[];

#ifdef KAA
extern boolean unweapon;
#endif

--- 12,20 -----
extern char quitchars[];
extern char pl_character[];

+ #ifdef DGKMOD
+ extern void set_occupation();
+ #endif
#ifdef KAA
extern boolean unweapon;
#endif
***************
*** 23,28
#ifdef RPH
static use_mirror();
#endif

doapply() {
register struct obj *obj;

--- 26,32 -----
#ifdef RPH
static use_mirror();
#endif
+ static use_lamp();

doapply() {
register struct obj *obj;
***************
*** 54,59
use_mirror(obj);
break;
#endif
#ifdef WALKIES
case LEASH:
use_leash(obj);

--- 58,67 -----
use_mirror(obj);
break;
#endif
+ case LAMP:
+ case MAGIC_LAMP:
+ use_lamp(obj);
+ break;
#ifdef WALKIES
case LEASH:
use_leash(obj);
***************
*** 81,87
break;
#endif
case BLINDFOLD:
! if (Blindfolded) {
Blindfolded = 0;
if (!Blinded) Blinded = 1; /* see on next move */
else pline("You still cannot see.");

--- 89,96 -----
break;
#endif
case BLINDFOLD:
! if (Blindfolded && obj->owornmask) {
! pline("You remove the blindfold.");
Blindfolded = 0;
obj->owornmask = 0;
if (!Blinded) Blinded = 1; /* see on nexte */
***************
*** 83,89
case BLINDFOLD:
if (Blindfolded) {
Blindfolded = 0;
! if (!Blinded) Blinded = 1; /* see on next move */
else pline("You still cannot see.");
} else {
Blindfolded = 1;

--- 92,99 -----
if (Blindfolded && obj->owornmask) {
pline("You remove the blindfold.");
Blindfolded = 0;
! obj->owornmask = 0;
! if (!Blinded) Blinded = 1; /* see on nexte */
else pline("You still cannot see.");
} else if (!Blindfolded) {
pline("You put the blindfold on.");
***************
*** 85,92
Blindfolded = 0;
if (!Blinded) Blinded = 1; /* see on next move */
else pline("You still cannot see.");
! } else {
! Blindfolded = 1;
seeoff(0);
}
break;

--- 95,104 -----
obj->owornmask = 0;
if (!Blinded) Blinded = 1; /* see on nexte */
else pline("You still cannot see.");
! } else if (!Blindfolded) {
! pline("You put the blindfold on.");
! Blindfolded = INTRINSIC;
! obj->owornmask = W_TOOL;
seeoff(0);
} else pline("You are already wearing a blindfold!");
break;
***************
*** 88,94
} else {
Blindfolded = 1;
seeoff(0);
! }
break;
default:
pline("Sorry, I don't know how to use that.");

--- 100,106 -----
Blindfolded = INTRINSIC;
obj->owornmask = W_TOOL;
seeoff(0);
! } else pline("You are already wearing a blindfold!");
break;
case BADGE:
if (Badged && obj->owornmask) {
***************
*** 90,95
seeoff(0);
}
break;
default:
pline("Sorry, I don't know how to use that.");
xit:

--- 102,118 -----
seeoff(0);
} else pline("You are already wearing a blindfold!");
break;
+ case BADGE:
+ if (Badged && obj->owornmask) {
+ pline("You remove the badge.");
+ Badged = 0;
+ obj->owornmask = 0;
+ } else if (!Badged) {
+ pline("You pin the badge on your chest.");
+ Badged = INTRINSIC;
+ obj->owornmask = W_TOOL;
+ } else pline("You are already wearing a badge!");
+ break;
default:
pline("Sorry, I don't know how to use that.");
xit:
***************
*** 342,347
static
use_leash(obj) struct obj *obj; {
register struct monst *mtmp = fmon;

while(mtmp && !mtmp->mleashed) mtmp = mtmp->nmon;

--- 365,371 -----
static
use_leash(obj) struct obj *obj; {
register struct monst *mtmp = fmon;
+ extern char *lmonnam();

while(mtmp && !mtmp->mleashed) mtmp = mtmp->nmon;

***************
*** 732,734
}/* use_mirror */

#endif

--- 756,788 -----
}/* use_mirror */

#endif
+
+ static
+ use_lamp(obj)
+ struct obj *obj;
+ {
+ if(obj->spe <= 0 || obj->otyp == MAGIC_LAMP ) {
+ pline("This lamp has no oil.");
+ return;
+ }
+ litroom(TRUE);
+ obj->spe -= 1;
+ }
+
+ dorub() {
+
+ if (!(carrying(LAMP) || carrying(MAGIC_LAMP))) {
+ pline("You do not have a lamp!");
+ return;
+ }
+ if (!(uwep->otyp == LAMP || uwep->otyp == MAGIC_LAMP)) {
+ pline("You must wield the lamp to rub it!");
+ return;
+ }
+ if (uwep->otyp == MAGIC_LAMP && uwep->spe > 0 && !rn2(3)) {
+ uwep->spe = 0;
+ djinni_from_bottle();
+ } else if (uwep->otyp == MAGIC_LAMP && rn2(2) && !Blind)
+ pline("You see a puff of smoke.");
+ else pline("Nothing happens.");
+ }
*** ./cmd.c.orig Mon Feb 22 08:39:59 1988
--- ./cmd.c Fri Feb 19 07:53:14 1988
***************
*** 1,4
! /* SCCS Id: @(#)cmd.c 2.0 87/09/15
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */

#include "hack.h"

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

#include "hack.h"
***************
*** 10,16
doengrave(),dotele(),dohelp(),doeat(),doddrop(),do_mname(),doidtrap(),
doprwep(),doprarm(),doprring(),doprgold(),dodiscovered(),dotypeinv(),dolook(),
doset(),doup(), dodown(), done1(), donull(), dothrow(), doextcmd(), dodip(),
! dopray(), doextlist();
#ifdef WIZARD
int wiz_wish(), wiz_identify();
#endif

--- 10,21 -----
doengrave(),dotele(),dohelp(),doeat(),doddrop(),do_mname(),doidtrap(),
doprwep(),doprarm(),doprring(),doprgold(),dodiscovered(),dotypeinv(),dolook(),
doset(),doup(), dodown(), done1(), donull(), dothrow(), doextcmd(), dodip(),
! dopray(), doextlist(), dorub();
!
! #ifdef THEOLOGY
! int dosacrifice ();
! #endif;
!
#ifdef WIZARD
int wiz_wish(), wiz_identify(), wiz_map(), wiz_detect(), wiz_attributes();
#endif
***************
*** 12,18
doset(),doup(), dodown(), done1(), donull(), dothrow(), doextcmd(), dodip(),
dopray(), doextlist();
#ifdef WIZARD
! int wiz_wish(), wiz_identify();
#endif
#ifdef NEWCLASS
int dosit(), doturn();

--- 17,23 -----
#endif;

#ifdef WIZARD
! int wiz_wish(), wiz_identify(), wiz_map(), wiz_detect(), wiz_attributes();
#endif
#ifdef NEWCLASS
int dosit(), doturn();
***************
*** 125,130
#endif /* REDO */

struct func_tab cmdlist[]={
#ifdef WIZARD
{'\011', wiz_identify},
#endif

--- 130,138 -----
#endif /* REDO */

struct func_tab cmdlist[]={
+ #if defined(DGKMOD) && defined(DEBUG_DOESNT_WORK)
+ {'\004', /* ^D */ dodebug}, /* generic debug function */
+ #endif
#ifdef WIZARD
{'\005', /* ^E */ wiz_detect},
{'\006', /* ^F */ wiz_map},
***************
*** 126,132

struct func_tab cmdlist[]={
#ifdef WIZARD
! {'\011', wiz_identify},
#endif
{'\020', doredotopl},
{'\022', doredraw},

--- 134,142 -----
{'\004', /* ^D */ dodebug}, /* generic debug function */
#endif
#ifdef WIZARD
! {'\005', /* ^E */ wiz_detect},
! {'\006', /* ^F */ wiz_map},
! {'\011', /* ^I */ wiz_identify},
#endif
{'\020', /* ^P */ doredotopl},
{'\022', /* ^R */ doredraw},
***************
*** 128,136
#ifdef WIZARD
{'\011', wiz_identify},
#endif
! {'\020', doredotopl},
! {'\022', doredraw},
! {'\024', dotele},
#ifdef WIZARD
{'\027', wiz_wish},
#endif

--- 138,146 -----
{'\006', /* ^F */ wiz_map},
{'\011', /* ^I */ wiz_identify},
#endif
! {'\020', /* ^P */ doredotopl},
! {'\022', /* ^R */ doredraw},
! {'\024', /* ^T */ dotele},
#ifdef WIZARD
{'\027', /* ^W */ wiz_wish},
{'\030', /* ^X */ wiz_attributes},
***************
*** 132,138
{'\022', doredraw},
{'\024', dotele},
#ifdef WIZARD
! {'\027', wiz_wish},
#endif
#ifdef SUSPEND
{'\032', dosuspend},

--- 142,149 -----
{'\022', /* ^R */ doredraw},
{'\024', /* ^T */ dotele},
#ifdef WIZARD
! {'\027', /* ^W */ wiz_wish},
! {'\030', /* ^X */ wiz_attributes},
#endif
#ifdef SUSPEND
{'\032', /* ^Z */ dosuspend},
***************
*** 135,141
{'\027', wiz_wish},
#endif
#ifdef SUSPEND
! {'\032', dosuspend},
#endif
{'a', doapply},
{'A', doddoremarm},

--- 146,152 -----
{'\030', /* ^X */ wiz_attributes},
#endif
#ifdef SUSPEND
! {'\032', /* ^Z */ dosuspend},
#endif
{'a', doapply},
{'A', doddoremarm},
***************
*** 196,204
#ifdef DGKMOD
{'@', dotogglepickup},
{'V', doMSCversion},
- # ifdef DEBUG_DOESNT_WORK
- {'\004', dodebug}, /* generic debug function */
- # endif
#endif
{WEAPON_SYM, doprwep},
{ARMOR_SYM, doprarm},

--- 207,212 -----
#ifdef DGKMOD
{'@', dotogglepickup},
{'V', doMSCversion},
#endif
{WEAPON_SYM, doprwep},
{ARMOR_SYM, doprarm},
***************
*** 210,216

struct ext_func_tab extcmdlist[] = {
#ifdef KAA
! "breathe", "breathe like a dragon", dobreathe,
#endif
#ifdef SPELLS
"cast", "cast a spell", docast,

--- 218,224 -----

struct ext_func_tab extcmdlist[] = {
#ifdef KAA
! "breathe", "breathe fire like a red dragon", dobreathe,
#endif
#ifdef SPELLS
"cast", "cast a spell", docast,
***************
*** 216,221
"cast", "cast a spell", docast,
#endif
"dip", "dip an object into something", dodip,
"pray", "pray to the gods for help", dopray,
#ifdef KAA
"remove", "remove a cursed item", doremove,

--- 224,233 -----
"cast", "cast a spell", docast,
#endif
"dip", "dip an object into something", dodip,
+ #ifdef PRAYERS
+ #ifdef THEOLOGY
+ "sacrifice", "offer a sacrifice to the gods", dosacrifice,
+ #endif
"pray", "pray to the gods for help", dopray,
#endif
#ifdef KAA
***************
*** 217,222
#endif
"dip", "dip an object into something", dodip,
"pray", "pray to the gods for help", dopray,
#ifdef KAA
"remove", "remove a cursed item", doremove,
#endif

--- 229,235 -----
"sacrifice", "offer a sacrifice to the gods", dosacrifice,
#endif
"pray", "pray to the gods for help", dopray,
+ #endif
#ifdef KAA
"remove", "remove a cursed item", doremove,
#endif
***************
*** 221,226
"remove", "remove a cursed item", doremove,
#endif
#ifdef NEWCLASS
"sit", "sit down", dosit,
"turn", "turn undead", doturn,
#endif

--- 234,240 -----
"remove", "remove a cursed item", doremove,
#endif
#ifdef NEWCLASS
+ "rub", "rub a lamp", dorub,
"sit", "sit down", dosit,
"turn", "turn undead", doturn,
#endif
***************
*** 527,532
if (!objects[obj->otyp].oc_name_known || !obj->known)
identify(obj);
}
return(0);
}
#endif /* WIZARD */

--- 541,720 -----
if (!objects[obj->otyp].oc_name_known || !obj->known)
identify(obj);
}
+ return(0);
+ }
+
+ int wiz_map()
+ {
+ if (wizard) do_mapping();
+ else pline("If you want a map, you'll have to make one yourself!");
+ }
+
+ int wiz_detect()
+ {
+ if(wizard) {
+ if(!findit()) return;
+ } else pline("Don't ask me where anything is, I only work here!");
+ }
+
+ int wiz_attributes()
+ {
+ char buf[BUFSZ];
+
+ if (!wizard) {
+ pline("Alas! You are not allowed see attributes.");
+ pline("Nice try though...");
+ return;
+ }
+
+ set_pager(0);
+ if(page_line("Current Attributes:") || page_line("")) goto quit;
+
+ if (Adornment) {
+ (void) sprintf(buf, "You are adorned.");
+ if(page_line(buf)) goto quit;
+ }
+ if (Teleportation) {
+ (void) sprintf(buf, "You can teleport.");
+ if(page_line(buf)) goto quit;
+ }
+ if (Regeneration) {
+ (void) sprintf(buf, "You regenerate.");
+ if(page_line(buf)) goto quit;
+ }
+ if (Searching) {
+ (void) sprintf(buf, "You have searching.");
+ if(page_line(buf)) goto quit;
+ }
+ if (See_invisible) {
+ (void) sprintf(buf, "You see invisible.");
+ if(page_line(buf)) goto quit;
+ }
+ if (Stealth) {
+ (void) sprintf(buf, "You have stealth.");
+ if(page_line(buf)) goto quit;
+ }
+ if (Levitation) {
+ (void) sprintf(buf, "You are levitated.");
+ if(page_line(buf)) goto quit;
+ }
+ if (Poison_resistance) {
+ (void) sprintf(buf, "You are poison resistant.");
+ if(page_line(buf)) goto quit;
+ }
+ if (Aggravate_monster) {
+ (void) sprintf(buf, "You aggravate monsters.");
+ if(page_line(buf)) goto quit;
+ }
+ if (Hunger) {
+ (void) sprintf(buf, "You have hunger.");
+ if(page_line(buf)) goto quit;
+ }
+ if (Fire_resistance) {
+ (void) sprintf(buf, "You are fire resistant.");
+ if(page_line(buf)) goto quit;
+ }
+ if (Cold_resistance) {
+ (void) sprintf(buf, "You are cold resistant.");
+ if(page_line(buf)) goto quit;
+ }
+ if (Protection_from_shape_changers) {
+ (void) sprintf(buf, "You are protected from shape changers.");
+ if(page_line(buf)) goto quit;
+ }
+ if (Conflict) {
+ (void) sprintf(buf, "You cause conflict.");
+ if(page_line(buf)) goto quit;
+ }
+ if (Gain_strength) {
+ (void) sprintf(buf, "You have extra strength.");
+ if(page_line(buf)) goto quit;
+ }
+ if (Increase_damage) {
+ (void) sprintf(buf, "You cause extra damage.");
+ if(page_line(buf)) goto quit;
+ }
+ if (Protection) {
+ (void) sprintf(buf, "You are protected.");
+ if(page_line(buf)) goto quit;
+ }
+ if (Warning) {
+ (void) sprintf(buf, "You are warned.");
+ if(page_line(buf)) goto quit;
+ }
+ if (Teleport_control) {
+ (void) sprintf(buf, "You have teleport control.");
+ if(page_line(buf)) goto quit;
+ }
+ if (Polymorph) {
+ (void) sprintf(buf, "You are polymorphing.");
+ if(page_line(buf)) goto quit;
+ }
+ if (Polymorph_control) {
+ (void) sprintf(buf, "You have polymorph control.");
+ if(page_line(buf)) goto quit;
+ }
+ if (Shock_resistance) {
+ (void) sprintf(buf, "You are shock resistant.");
+ if(page_line(buf)) goto quit;
+ }
+ if (Telepat) {
+ (void) sprintf(buf, "You have telepathy.");
+ if(page_line(buf)) goto quit;
+ }
+ if (Fast) {
+ (void) sprintf(buf, "You are fast.");
+ if(page_line(buf)) goto quit;
+ }
+ if (Confusion) {
+ (void) sprintf(buf, "You are confused.");
+ if(page_line(buf)) goto quit;
+ }
+ if (Invisible) {
+ (void) sprintf(buf, "You are invisible.");
+ if(page_line(buf)) goto quit;
+ }
+ if (Glib) {
+ (void) sprintf(buf, "You are glib.");
+ if(page_line(buf)) goto quit;
+ }
+ if (Punished) {
+ (void) sprintf(buf, "You are punished.");
+ if(page_line(buf)) goto quit;
+ }
+ if (Sick) {
+ (void) sprintf(buf, "You are sick.");
+ if(page_line(buf)) goto quit;
+ }
+ if (Blinded) {
+ (void) sprintf(buf, "You are blinded.");
+ if(page_line(buf)) goto quit;
+ }
+ if (Wounded_legs) {
+ (void) sprintf(buf, "You have wounded legs.");
+ if(page_line(buf)) goto quit;
+ }
+ if (Stoned) {
+ (void) sprintf(buf, "You are stoned.");
+ if(page_line(buf)) goto quit;
+ }
+ if (Hallucination) {
+ (void) sprintf(buf, "You are hallucinated.");
+ if(page_line(buf)) goto quit;
+ }
+ if (Blindfolded) {
+ (void) sprintf(buf, "You are blindfolded.");
+ if(page_line(buf)) goto quit;
+ }
+ if (Badged) {
+ (void) sprintf(buf, "You are badged.");
+ if(page_line(buf)) goto quit;
+ }
+
+ set_pager(1);
+ return(0);
+ quit:
+ set_pager(2);
return(0);
}
#endif /* WIZARD */
*** ./config.h.orig Mon Feb 22 08:40:00 1988
--- ./config.h Thu Mar 31 13:16:31 1988
***************
*** 1,4
! /* SCCS Id: @(#)config.h 2.2 87/11/11
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */

#ifndef CONFIG /* make sure the compiler does not see the typedefs twice */

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

#ifndef CONFIG /* make sure the compiler does not see the typedefs twice */
***************
*** 17,23
* rindex strrchr
* Also, the code for suspend and various ioctls is only given for BSD4.2
*/
! /* #define MSDOS /* define for MS-DOS (actually defined by compiler) */
#define UNIX /* delete if no fork(), exec() available */
/* #define GENIX /* Yet Another Unix Clone */
#define BSD /* defind for 4.n BSD */

--- 17,25 -----
* rindex strrchr
* Also, the code for suspend and various ioctls is only given for BSD4.2
*/
! #ifdef __MSDOS__ /* Turbo C auto-defines __MSDOS__, others MSDOS */
! /* # define MSDOS /* define for MS-DOS (actually defined by compiler) */
! #endif
#define UNIX /* delete if no fork(), exec() available */
/* #define GENIX /* Yet Another Unix Clone */
#define BSD /* defind for 4.n BSD */
***************
*** 22,27
/* #define GENIX /* Yet Another Unix Clone */
#define BSD /* defind for 4.n BSD */
/* #define SYSV /* define for System V */

/* #define BETA /* if a beta-test copy [MRS] */
#define VERSION "2.2a" /* version number. */

--- 24,30 -----
/* #define GENIX /* Yet Another Unix Clone */
#define BSD /* defind for 4.n BSD */
/* #define SYSV /* define for System V */
+ /* #define NETWORK /* if running on a networked system */

/* #define BETA /* if a beta-test copy [MRS] */
#define VERSION "2.3e" /* version number. */
***************
*** 24,30
/* #define SYSV /* define for System V */

/* #define BETA /* if a beta-test copy [MRS] */
! #define VERSION "2.2a" /* version number. */

#define PYRAMID_BUG /* avoid a bug on the Pyramid */
/* #define APOLLO /* same for the Apollo */

--- 27,33 -----
/* #define NETWORK /* if running on a networked system */

/* #define BETA /* if a beta-test copy [MRS] */
! #define VERSION "2.3e" /* version number. */

#define PYRAMID_BUG /* avoid a bug on the Pyramid */
/* #define APOLLO /* same for the Apollo */
***************
*** 37,47
#define signal ssignal
#endif

! #define WIZARD "mike" /* the person allowed to use the -D option */
! #define RECORD "record"/* the file containing the list of topscorers */
! #define NEWS "news" /* the file containing the latest hack news */
! #define HELP "help" /* the file containing a description of the commands */
! #define SHELP "hh" /* abbreviated form of the same */
#define RUMORFILE "rumors" /* a file with fortune cookies */
#define DATAFILE "data" /* a file giving the meaning of symbols used */
#define FMASK 0660 /* file creation mask */

--- 40,54 -----
#define signal ssignal
#endif

! #ifndef WIZARD /* allow for compile-time or Makefile changes */
! # define WIZARD "mike" /* the person allowed to use the -D option */
! #endif
!
! #define RECORD "record" /* the file containing the list of topscorers */
! #define LOGFILE "logfile" /* larger file for debugging purposes */
! #define NEWS "news" /* the file containing the latest hack news */
! #define HELP "help" /* the file containing command descriptions */
! #define SHELP "hh" /* abbreviated form of the same */
#define RUMORFILE "rumors" /* a file with fortune cookies */
#define DATAFILE "data" /* a file giving the meaning of symbols used */
#define FMASK 0660 /* file creation mask */
***************
*** 149,154
*/
typedef schar xchar;
typedef xchar boolean; /* 0 or 1 */
#define TRUE 1
#define FALSE 0

--- 156,162 -----
*/
typedef schar xchar;
typedef xchar boolean; /* 0 or 1 */
+ /* #define void int /* define if no "void" data type. */
#define TRUE 1
#define FALSE 0

***************
*** 219,224
#define KJSMODS /* Various changes made by Kevin Sweet */
#define BVH /* Additions by Bruce Holloway */
#define SAC /* Soldiers, barracks by Steve Creps */

#if defined(MSDOS) && defined(GRAPHICS)
#define MSDOSCOLOR

--- 227,236 -----
#define KJSMODS /* Various changes made by Kevin Sweet */
#define BVH /* Additions by Bruce Holloway */
#define SAC /* Soldiers, barracks by Steve Creps */
+ #define SHIRT /* Hawaiian shirt code by Steve Linhart */
+ #define THEOLOGY /* Smarter gods - The Unknown Hacker */
+ #define STOOGES /* Three wild and crazy guys - Bruce Mewborne */
+ #define SINKS /* Kitchen sinks - Janet Walz */

#ifdef MSDOS
#define TERMLIB /* enable use of termcap file c:\etc\termcap */
***************
*** 220,227
#define BVH /* Additions by Bruce Holloway */
#define SAC /* Soldiers, barracks by Steve Creps */

! #if defined(MSDOS) && defined(GRAPHICS)
! #define MSDOSCOLOR
#endif

/*

--- 232,243 -----
#define STOOGES /* Three wild and crazy guys - Bruce Mewborne */
#define SINKS /* Kitchen sinks - Janet Walz */

! #ifdef MSDOS
! #define TERMLIB /* enable use of termcap file c:\etc\termcap */
! /* or .\termcap.cnf for MSDOS (SAC) */
! # ifdef GRAPHICS
! # define MSDOSCOLOR
! # endif
#endif

/*
***************
*** 230,235

#define GOLD_ON_BOTL
#define EXP_ON_BOTL

#ifdef REDO
#define DOAGAIN '\001' /* Used in tty.c and cmd.c */

--- 246,252 -----

#define GOLD_ON_BOTL
#define EXP_ON_BOTL
+ #define SCORE_ON_BOTL /* added by Gary Erickson (erickson@ucivax) */

#ifdef REDO
#define DOAGAIN '\001' /* Used in tty.c and cmd.c */
*** ./do.c.orig Mon Feb 22 08:40:01 1988
--- ./do.c Tue Mar 29 08:33:59 1988
***************
*** 1,4
! /* SCCS Id: @(#)do.c 2.0 87/09/15
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */

/* Contains code for 'd', 'D' (drop), '>', '<' (up, down) and 't' (throw) */

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

/* Contains code for 'd', 'D' (drop), '>', '<' (up, down) and 't' (throw) */
***************
*** 47,53
free((char *) obj);
return(1);
}
! if(obj->owornmask & (W_ARMOR | W_RING)){
pline("You cannot drop something you are wearing.");
return(0);
}

--- 47,53 -----
free((char *) obj);
return(1);
}
! if(obj->owornmask & (W_ARMOR | W_RING | W_TOOL)){
pline("You cannot drop something you are wearing.");
return(0);
}
***************
*** 68,73
}
}
#endif
pline("You dropped %s.", doname(obj));
dropx(obj);
return(1);

--- 68,85 -----
}
}
#endif
+ #ifdef SINKS
+ if((obj->olet == RING_SYM) && IS_SINK(levl[u.ux][u.uy].typ))
+ if (u.uswallow) {
+ freeinv(obj);
+ mpickobj(u.ustuck,obj);
+ return(1);
+ }
+ else {
+ dosinkring(obj);
+ return(1);
+ }
+ #endif
pline("You dropped %s.", doname(obj));
dropx(obj);
return(1);
***************
*** 401,403
Wounded_legs = 0;
}
}

--- 413,525 -----
Wounded_legs = 0;
}
}
+
+ #ifdef SINKS
+ trycall(obj)
+ register struct obj *obj;
+ {
+ if(!objects[obj->otyp].oc_name_known &&
+ !objects[obj->otyp].oc_uname)
+ docall(obj);
+ }
+
+ dosinkring(obj) /* obj is a ring being dropped over a kitchen sink */
+ register struct obj *obj;
+ {
+ register struct obj *otmp,*otmp2;
+ register short eaten;
+ pline("You drop %s down the drain.", doname(obj));
+ switch(obj->otyp) {
+ case RIN_ADORNMENT: {
+ pline("The faucets flash brightly for a moment.");
+ trycall(obj);
+ break;
+ }
+ case RIN_REGENERATION: {
+ pline("The sink looks as good as new.");
+ trycall(obj);
+ break;
+ }
+ case RIN_SEARCHING:
+ break;
+ case RIN_SEE_INVISIBLE:
+ break;
+ case RIN_STEALTH: {
+ pline("The sink seems to blend into the floor for a moment.");
+ trycall(obj);
+ break;
+ }
+ case RIN_LEVITATION: {
+ pline("The sink quivers upward for a moment.");
+ trycall(obj);
+ break;
+ }
+ case RIN_POISON_RESISTANCE:
+ break;
+ case RIN_AGGRAVATE_MONSTER:
+ break;
+ case RIN_HUNGER: {
+ eaten = 0;
+ for(otmp=fobj; otmp; otmp=otmp2) {
+ otmp2 = otmp->nobj;
+ if(otmp->ox == u.ux && otmp->oy == u.uy)
+ if(!Punished ||
+ (otmp->otyp != HEAVY_IRON_BALL && otmp->otyp != IRON_CHAIN)) {
+ eaten++;
+ pline("Suddenly, %s vanishes from the sink!",doname(otmp));
+ delobj(otmp);
+ }
+ }
+ if(eaten)
+ trycall(obj);
+ break;
+ }
+ case RIN_FIRE_RESISTANCE: {
+ pline("The hot water faucet flashes brightly for a moment.");
+ trycall(obj);
+ break;
+ }
+ case RIN_COLD_RESISTANCE: {
+ pline("The cold water faucet flashes brightly for a moment.");
+ trycall(obj);
+ break;
+ }
+ case RIN_PROTECTION_FROM_SHAPE_CHAN: {
+ pline("The sink momentarily looks nothing like a fountain.");
+ trycall(obj);
+ break;
+ }
+ case RIN_CONFLICT:
+ break;
+ case RIN_GAIN_STRENGTH:
+ break;
+ case RIN_INCREASE_DAMAGE:
+ break;
+ case RIN_PROTECTION:
+ break;
+ case RIN_WARNING: {
+ pline("The sink glows white for a moment.");
+ trycall(obj);
+ break;
+ }
+ case RIN_TELEPORTATION: /* fall through */
+ case RIN_TELEPORT_CONTROL: {
+ pline("The sink momentarily vanishes.");
+ trycall(obj);
+ break;
+ }
+ case RIN_POLYMORPH: /* fall through */
+ case RIN_POLYMORPH_CONTROL: {
+ pline("The sink momentarily looks like a fountain.");
+ trycall(obj);
+ break;
+ }
+ }
+ if (!rn2(20)) {
+ pline("The sink backs up, leaving %s.", doname(obj));
+ dropx(obj);
+ }
+ else
+ useup(obj);
+ }
+ #endif
*** ./do_name.c.orig Mon Feb 22 08:40:02 1988
--- ./do_name.c Thu Mar 31 09:08:57 1988
***************
*** 1,4
! /* SCCS Id: @(#)do_name.c 2.1 87/11/09
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */

#include <stdio.h>

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

#include <stdio.h>
***************
*** 5,10
#include "hack.h"
extern char plname[];
extern char *rndmonnam();

getpos(cc,force,goal)
coord *cc;

--- 5,11 -----
#include "hack.h"
extern char plname[];
extern char *rndmonnam();
+ extern void savech();

getpos(cc,force,goal)
coord *cc;
***************
*** 255,260
(void) strcpy(buf, shkname(mtmp));
break;
}
/* fall into next case */
default:
(void) sprintf(buf, "the %s%s",

--- 256,267 -----
(void) strcpy(buf, shkname(mtmp));
break;
}
+ #ifdef STOOGES
+ if(mtmp->isstooge) {
+ (void) strcpy(buf, mtmp->data->mname);
+ break;
+ }
+ #endif
/* fall into next case */
default:
(void) sprintf(buf, "the %s%s",
*** ./do_wear.c.orig Mon Feb 22 08:40:02 1988
--- ./do_wear.c Thu Jan 21 12:24:14 1988
***************
*** 1,4
! /* SCCS Id: @(#)do_wear.c 2.0 87/09/15
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */

#include <stdio.h>

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

#include <stdio.h>
***************
*** 13,19

doremarm() {
register struct obj *otmp;
! if(!uarm && !uarmh && !uarms && !uarmg) {
pline("Not wearing any armor.");
return(0);
}

--- 13,23 -----

doremarm() {
register struct obj *otmp;
! if(!uarm && !uarmh && !uarms && !uarmg
! #ifdef SHIRT
! && !uarmu
! #endif
! ) {
pline("Not wearing any armor.");
return(0);
}
***************
*** 17,22
pline("Not wearing any armor.");
return(0);
}
otmp = (!uarmh && !uarms && !uarmg) ? uarm :
(!uarms && !uarm && !uarmg) ? uarmh :
(!uarmh && !uarm && !uarmg) ? uarms :

--- 21,32 -----
pline("Not wearing any armor.");
return(0);
}
+ #ifdef SHIRT
+ otmp = (!uarmh && !uarms && !uarmg) ? (uarm ? uarm : uarmu) :
+ (!uarm && !uarms && !uarmg && !uarmu) ? uarmh :
+ (!uarm && !uarmh && !uarmg && !uarmu) ? uarms :
+ (!uarm && !uarmh && !uarms && !uarmu) ? uarmg :
+ #else
otmp = (!uarmh && !uarms && !uarmg) ? uarm :
(!uarms && !uarm && !uarmg) ? uarmh :
(!uarmh && !uarm && !uarmg) ? uarms :
***************
*** 21,26
(!uarms && !uarm && !uarmg) ? uarmh :
(!uarmh && !uarm && !uarmg) ? uarms :
(!uarmh && !uarm && !uarms) ? uarmg :
getobj("[", "take off");
if(!otmp) return(0);
if(!(otmp->owornmask & (W_ARMOR - W_ARM2))) {

--- 31,37 -----
(!uarms && !uarm && !uarmg) ? uarmh :
(!uarmh && !uarm && !uarmg) ? uarms :
(!uarmh && !uarm && !uarms) ? uarmg :
+ #endif
getobj("[", "take off");
if(!otmp) return(0);
if(!(otmp->owornmask & (W_ARMOR - W_ARM2))) {
***************
*** 94,100
nomovemsg = "You finished taking off your helmet.";
break;
case PAIR_OF_GLOVES:
! nomovemsg = "You finished taking off your gloves";
break;
default:
nomovemsg = "You finished taking off your suit.";

--- 105,111 -----
nomovemsg = "You finished taking off your helmet.";
break;
case PAIR_OF_GLOVES:
! nomovemsg = "You finished taking off your gloves.";
break;
default:
nomovemsg = "You finished taking off your suit.";
***************
*** 144,149
err++;
} else
mask = W_ARMG;
} else {
#ifdef KAA
if(cantweararm(u.usym)) {

--- 155,178 -----
err++;
} else
mask = W_ARMG;
+ #ifdef SHIRT
+ } else if( otmp->otyp == HAWAIIAN_SHIRT ) {
+ # ifdef KAA
+ if(cantweararm(u.usym)) {
+ pline("You can't wear a shirt!");
+ return(0);
+ }
+ # endif
+ if (uarm || uarmu) {
+ if(!uarm) /* then uarmu */
+ pline("You are already wearing a shirt.");
+ else
+ pline("You can't wear that over your %s.",
+ uarm->otyp != ELVEN_CLOAK ? "armor" : "cloak" );
+ err++;
+ } else
+ mask = W_ARMU;
+ #endif
} else {
#ifdef KAA
if(cantweararm(u.usym)) {
***************
*** 299,304
if(uarmh) uac -= ARM_BONUS(uarmh);
if(uarms) uac -= ARM_BONUS(uarms);
if(uarmg) uac -= ARM_BONUS(uarmg);
if(uleft && uleft->otyp == RIN_PROTECTION) uac -= uleft->spe;
if(uright && uright->otyp == RIN_PROTECTION) uac -= uright->spe;
#ifdef PRAYERS

--- 328,334 -----
if(uarmh) uac -= ARM_BONUS(uarmh);
if(uarms) uac -= ARM_BONUS(uarms);
if(uarmg) uac -= ARM_BONUS(uarmg);
+ if(uarmu) uac -= ARM_BONUS(uarmu);
if(uleft && uleft->otyp == RIN_PROTECTION) uac -= uleft->spe;
if(uright && uright->otyp == RIN_PROTECTION) uac -= uright->spe;
#ifdef PRAYERS
***************
*** 352,357
if(uarmh && (!otmph || !rn2(4))) otmph = uarmh;
if(uarmg && (!otmph || !rn2(4))) otmph = uarmg;
if(uarms && (!otmph || !rn2(4))) otmph = uarms;
return(otmph);
}

--- 382,388 -----
if(uarmh && (!otmph || !rn2(4))) otmph = uarmh;
if(uarmg && (!otmph || !rn2(4))) otmph = uarmg;
if(uarms && (!otmph || !rn2(4))) otmph = uarms;
+ if(!uarm && uarmu && (!otmph || !rn2(4))) otmph = uarmu;
return(otmph);
}

***************
*** 361,366
if(otmph->rustfree ||
otmph->otyp == CRYSTAL_PLATE_MAIL ||
otmph->otyp == ELVEN_CLOAK ||
otmph->otyp == LEATHER_ARMOR ||
otmph->otyp == STUDDED_LEATHER_ARMOR) {
pline("Your %s not affected!",

--- 392,400 -----
if(otmph->rustfree ||
otmph->otyp == CRYSTAL_PLATE_MAIL ||
otmph->otyp == ELVEN_CLOAK ||
+ #ifdef SHIRT
+ otmph->otyp == HAWAIIAN_SHIRT ||
+ #endif
otmph->otyp == LEATHER_ARMOR ||
otmph->otyp == STUDDED_LEATHER_ARMOR) {
pline("Your %s not affected!",
*** ./dog.c.orig Tue Mar 29 08:56:11 1988
--- ./dog.c Tue Mar 29 08:58:11 1988
***************
*** 1,4
! /* SCCS Id: @(#)dog.c 1.4 87/08/08
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/* dog.c - version 1.0.3 */

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

#include "hack.h"
***************
*** 1,6
/* SCCS Id: @(#)dog.c 1.4 87/08/08
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
- /* dog.c - version 1.0.3 */

#include "hack.h"
extern struct monst *makemon();

--- 1,5 -----
/* SCCS Id: @(#)dog.c 2.3 88/03/29
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */

#include "hack.h"
extern struct monst *makemon();
***************
*** 31,36
strcpy(NAME(mtmp2), dogname);
replmon(mtmp, mtmp2);
mtmp = mtmp2;
}
#endif /* DOGNAME */
initedog(mtmp);

--- 30,36 -----
strcpy(NAME(mtmp2), dogname);
replmon(mtmp, mtmp2);
mtmp = mtmp2;
+ dogname[0] = '\0'; /* name only first dog */
}
#endif /* DOGNAME */
initedog(mtmp);
SHAR_EOF
if test 36456 -ne "`wc -c < 'Update.2.3.a'`"
then
echo shar: error transmitting "'Update.2.3.a'" '(should have been 36456 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