display bit for spellbook gift (trunk only)
From the newsgroup: when invisible and unable to see invisible,
if successful prayer results in being given a spellbook you'll get the
message "an object appears at your feet" but the spellbook won't show on
the map. Add a newsym() to force its location to be updated. (I didn't
try to figure out why spellbooks use place_object() when all other divine
gifts use dropy() but that's why only this case has the display glitch.)
This also fixes up the message vs map update sequencing for a couple
of other "at your feet" cases so that all of them use the same ordering:
first the message is given, then the object drops.
[Timing is the only reason not to put this simple change into 3.4.3.]
This commit is contained in:
@@ -47,6 +47,7 @@ make it possible for the code to recognize your starting pet throughout the
|
||||
game via is_starting_pet(mon) macro
|
||||
healers notice when a wand of undead turning revives a monster so the
|
||||
wand is then identified
|
||||
update display if bestowed a spellbook while unable to see invisible self
|
||||
|
||||
|
||||
Platform- and/or Interface-Specific Fixes
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* SCCS Id: @(#)pray.c 3.4 2003/03/23 */
|
||||
/* SCCS Id: @(#)pray.c 3.4 2003/10/26 */
|
||||
/* Copyright (c) Benson I. Margulies, Mike Stephenson, Steve Linhart, 1989. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
|
||||
@@ -748,8 +748,8 @@ gcrownu()
|
||||
} else if (!already_exists) {
|
||||
obj = mksobj(RUNESWORD, FALSE, FALSE);
|
||||
obj = oname(obj, artiname(ART_STORMBRINGER));
|
||||
at_your_feet(An(swordbuf));
|
||||
obj->spe = 1;
|
||||
at_your_feet(An(swordbuf));
|
||||
dropy(obj);
|
||||
u.ugifts++;
|
||||
}
|
||||
@@ -989,7 +989,6 @@ pleased(g_align)
|
||||
struct obj *otmp;
|
||||
int sp_no, trycnt = u.ulevel + 1;
|
||||
|
||||
at_your_feet("An object");
|
||||
/* not yet known spells given preference over already known ones */
|
||||
/* Also, try to grant a spell for which there is a skill slot */
|
||||
otmp = mkobj(SPBOOK_CLASS, TRUE);
|
||||
@@ -1007,7 +1006,9 @@ pleased(g_align)
|
||||
otmp->otyp = rnd_class(bases[SPBOOK_CLASS], SPE_BLANK_PAPER);
|
||||
}
|
||||
bless(otmp);
|
||||
at_your_feet("A spellbook");
|
||||
place_object(otmp, u.ux, u.uy);
|
||||
newsym(u.ux, u.uy);
|
||||
break;
|
||||
}
|
||||
default: impossible("Confused deity!");
|
||||
@@ -1472,8 +1473,8 @@ verbalize("In return for thy service, I grant thee the gift of Immortality!");
|
||||
if (otmp->spe < 0) otmp->spe = 0;
|
||||
if (otmp->cursed) uncurse(otmp);
|
||||
otmp->oerodeproof = TRUE;
|
||||
dropy(otmp);
|
||||
at_your_feet("An object");
|
||||
dropy(otmp);
|
||||
godvoice(u.ualign.type, "Use my gift wisely!");
|
||||
u.ugifts++;
|
||||
u.ublesscnt = rnz(300 + (50 * nartifacts));
|
||||
|
||||
Reference in New Issue
Block a user