quest artifact handling (trunk only)

When the hero receives the quest artifact "got it" message, set the
artifact's dknown bit in case the hero is blinded.  That message describes
the object by name, effectively the same as seeing it up close.  (This
would have prevented the "now wearing an Eyes of the Overworld" grammar bug
for monks but not for non-monks, so the previous fix is still necessary.)
This commit is contained in:
nethack.rankin
2006-05-18 02:50:33 +00:00
parent a232123d8c
commit 4ebc37a371
3 changed files with 10 additions and 5 deletions

View File

@@ -1733,7 +1733,7 @@ E void FDECL(free_epri, (struct monst *));
E void NDECL(onquest);
E void NDECL(nemdead);
E void NDECL(artitouch);
E void FDECL(artitouch, (struct obj *));
E boolean NDECL(ok_to_quest);
E void FDECL(leader_speaks, (struct monst *));
E void NDECL(nemesis_speaks);

View File

@@ -1,4 +1,4 @@
/* SCCS Id: @(#)invent.c 3.5 2006/04/15 */
/* SCCS Id: @(#)invent.c 3.5 2006/05/17 */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/* NetHack may be freely redistributed. See license for details. */
@@ -259,7 +259,7 @@ struct obj *obj;
if (u.uhave.questart)
impossible("already have quest artifact?");
u.uhave.questart = 1;
artitouch();
artitouch(obj);
}
set_artifact_intrinsic(obj, 1, W_ART);
}

View File

@@ -1,4 +1,4 @@
/* SCCS Id: @(#)quest.c 3.5 2000/05/05 */
/* SCCS Id: @(#)quest.c 3.5 2006/05/17 */
/* Copyright 1991, M. Stephenson */
/* NetHack may be freely redistributed. See license for details. */
@@ -82,9 +82,14 @@ nemdead()
}
void
artitouch()
artitouch(obj)
struct obj *obj;
{
if(!Qstat(touched_artifact)) {
/* in case we haven't seen the item yet (ie, currently blinded),
this quest message describes it by name so mark it as seen */
obj->dknown = 1;
/* only give this message once */
Qstat(touched_artifact) = TRUE;
qt_pager(QT_GOTIT);
exercise(A_WIS, TRUE);