Merge branch 'NetHack-3.6.2'
This commit is contained in:
+1
-1
@@ -1800,7 +1800,7 @@ a minion of %d. %d commands that you retain
|
|||||||
of Yendor.
|
of Yendor.
|
||||||
|
|
||||||
"Go forth, and let %d guide your steps."
|
"Go forth, and let %d guide your steps."
|
||||||
%E [Congraulations, %p. Keep %o; go and recover the Amulet.]
|
%E [Congratulations, %p. Keep %o; go and recover the Amulet.]
|
||||||
%Cc Pri 00082
|
%Cc Pri 00082
|
||||||
%lC reiterates that %o is yours now.
|
%lC reiterates that %o is yours now.
|
||||||
|
|
||||||
|
|||||||
@@ -72,6 +72,10 @@ remembered corpse which isn't there anymore would be described by farlook as
|
|||||||
the corpse of a random monster type
|
the corpse of a random monster type
|
||||||
when eating a tin of spinach, don't "feel like Popeye" is sustain-abilities
|
when eating a tin of spinach, don't "feel like Popeye" is sustain-abilities
|
||||||
prevents any strength gain
|
prevents any strength gain
|
||||||
|
summary text [for message history] of quest message Pri 00081 (Priest quest
|
||||||
|
success message given when bringing quest artifact to leader)
|
||||||
|
misspelled "congratulations"
|
||||||
|
verbal charm/seduce messages were given even when hero was deaf
|
||||||
|
|
||||||
|
|
||||||
Fixes to Post-3.6.1 Problems that Were Exposed Via git Repository
|
Fixes to Post-3.6.1 Problems that Were Exposed Via git Repository
|
||||||
|
|||||||
+62
-54
@@ -11,7 +11,7 @@ STATIC_VAR NEARDATA struct obj *mon_currwep = (struct obj *) 0;
|
|||||||
STATIC_DCL boolean FDECL(u_slip_free, (struct monst *, struct attack *));
|
STATIC_DCL boolean FDECL(u_slip_free, (struct monst *, struct attack *));
|
||||||
STATIC_DCL int FDECL(passiveum, (struct permonst *, struct monst *,
|
STATIC_DCL int FDECL(passiveum, (struct permonst *, struct monst *,
|
||||||
struct attack *));
|
struct attack *));
|
||||||
STATIC_DCL void FDECL(mayberem, (struct obj *, const char *));
|
STATIC_DCL void FDECL(mayberem, (const char *, struct obj *, const char *));
|
||||||
STATIC_DCL boolean FDECL(diseasemu, (struct permonst *));
|
STATIC_DCL boolean FDECL(diseasemu, (struct permonst *));
|
||||||
STATIC_DCL int FDECL(hitmu, (struct monst *, struct attack *));
|
STATIC_DCL int FDECL(hitmu, (struct monst *, struct attack *));
|
||||||
STATIC_DCL int FDECL(gulpmu, (struct monst *, struct attack *));
|
STATIC_DCL int FDECL(gulpmu, (struct monst *, struct attack *));
|
||||||
@@ -39,7 +39,7 @@ struct attack *mattk;
|
|||||||
if ((compat = could_seduce(mtmp, &youmonst, mattk)) != 0
|
if ((compat = could_seduce(mtmp, &youmonst, mattk)) != 0
|
||||||
&& !mtmp->mcan && !mtmp->mspec_used) {
|
&& !mtmp->mcan && !mtmp->mspec_used) {
|
||||||
pline("%s %s you %s.", Monst_name,
|
pline("%s %s you %s.", Monst_name,
|
||||||
Blind ? "talks to" : "smiles at",
|
!Blind ? "smiles at" : !Deaf ? "talks to" : "touches",
|
||||||
(compat == 2) ? "engagingly" : "seductively");
|
(compat == 2) ? "engagingly" : "seductively");
|
||||||
} else {
|
} else {
|
||||||
switch (mattk->aatyp) {
|
switch (mattk->aatyp) {
|
||||||
@@ -155,7 +155,7 @@ struct attack *mattk;
|
|||||||
/* maybe it's attacking an image around the corner? */
|
/* maybe it's attacking an image around the corner? */
|
||||||
|
|
||||||
compat = ((mattk->adtyp == AD_SEDU || mattk->adtyp == AD_SSEX)
|
compat = ((mattk->adtyp == AD_SEDU || mattk->adtyp == AD_SSEX)
|
||||||
&& could_seduce(mtmp, &youmonst, (struct attack *) 0));
|
? could_seduce(mtmp, &youmonst, (struct attack *) 0) : 0);
|
||||||
Monst_name = Monnam(mtmp);
|
Monst_name = Monnam(mtmp);
|
||||||
|
|
||||||
if (!mtmp->mcansee || (Invis && !perceives(mtmp->data))) {
|
if (!mtmp->mcansee || (Invis && !perceives(mtmp->data))) {
|
||||||
@@ -188,17 +188,16 @@ struct attack *mattk;
|
|||||||
}
|
}
|
||||||
|
|
||||||
} else if (Displaced) {
|
} else if (Displaced) {
|
||||||
|
/* give 'displaced' message even if hero is Blind */
|
||||||
if (compat)
|
if (compat)
|
||||||
pline("%s smiles %s at your %sdisplaced image...", Monst_name,
|
pline("%s smiles %s at your %sdisplaced image...", Monst_name,
|
||||||
(compat == 2) ? "engagingly" : "seductively",
|
(compat == 2) ? "engagingly" : "seductively",
|
||||||
Invis ? "invisible " : "");
|
Invis ? "invisible " : "");
|
||||||
else
|
else
|
||||||
pline("%s strikes at your %sdisplaced image and misses you!",
|
pline("%s strikes at your %sdisplaced image and misses you!",
|
||||||
/* Note: if you're both invisible and displaced,
|
/* Note: if you're both invisible and displaced, only
|
||||||
* only monsters which see invisible will attack your
|
* monsters which see invisible will attack your displaced
|
||||||
* displaced image, since the displaced image is also
|
* image, since the displaced image is also invisible. */
|
||||||
* invisible.
|
|
||||||
*/
|
|
||||||
Monst_name, Invis ? "invisible " : "");
|
Monst_name, Invis ? "invisible " : "");
|
||||||
|
|
||||||
} else if (Underwater) {
|
} else if (Underwater) {
|
||||||
@@ -1328,7 +1327,8 @@ register struct attack *mattk;
|
|||||||
} else if (dmgtype(youmonst.data, AD_SEDU)
|
} else if (dmgtype(youmonst.data, AD_SEDU)
|
||||||
|| (SYSOPT_SEDUCE && dmgtype(youmonst.data, AD_SSEX))) {
|
|| (SYSOPT_SEDUCE && dmgtype(youmonst.data, AD_SSEX))) {
|
||||||
pline("%s %s.", Monnam(mtmp),
|
pline("%s %s.", Monnam(mtmp),
|
||||||
mtmp->minvent
|
Deaf ? "says something but you can't hear it"
|
||||||
|
: mtmp->minvent
|
||||||
? "brags about the goods some dungeon explorer provided"
|
? "brags about the goods some dungeon explorer provided"
|
||||||
: "makes some remarks about how difficult theft is lately");
|
: "makes some remarks about how difficult theft is lately");
|
||||||
if (!tele_restrict(mtmp))
|
if (!tele_restrict(mtmp))
|
||||||
@@ -1883,6 +1883,7 @@ struct attack *mattk;
|
|||||||
if (can_blnd(mtmp, &youmonst, mattk->aatyp, (struct obj *) 0)) {
|
if (can_blnd(mtmp, &youmonst, mattk->aatyp, (struct obj *) 0)) {
|
||||||
if (!Blind) {
|
if (!Blind) {
|
||||||
long was_blinded = Blinded;
|
long was_blinded = Blinded;
|
||||||
|
|
||||||
if (!Blinded)
|
if (!Blinded)
|
||||||
You_cant("see in here!");
|
You_cant("see in here!");
|
||||||
make_blinded((long) tmp, FALSE);
|
make_blinded((long) tmp, FALSE);
|
||||||
@@ -2355,24 +2356,27 @@ struct monst *mon;
|
|||||||
{
|
{
|
||||||
struct obj *ring, *nring;
|
struct obj *ring, *nring;
|
||||||
boolean fem = (mon->data == &mons[PM_SUCCUBUS]); /* otherwise incubus */
|
boolean fem = (mon->data == &mons[PM_SUCCUBUS]); /* otherwise incubus */
|
||||||
|
boolean seewho, naked; /* True iff no armor */
|
||||||
int attr_tot, tried_gloves = 0;
|
int attr_tot, tried_gloves = 0;
|
||||||
char qbuf[QBUFSZ];
|
char qbuf[QBUFSZ], Who[QBUFSZ];
|
||||||
|
|
||||||
if (mon->mcan || mon->mspec_used) {
|
if (mon->mcan || mon->mspec_used) {
|
||||||
pline("%s acts as though %s has got a %sheadache.", Monnam(mon),
|
pline("%s acts as though %s has got a %sheadache.", Monnam(mon),
|
||||||
mhe(mon), mon->mcan ? "severe " : "");
|
mhe(mon), mon->mcan ? "severe " : "");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (unconscious()) {
|
if (unconscious()) {
|
||||||
pline("%s seems dismayed at your lack of response.", Monnam(mon));
|
pline("%s seems dismayed at your lack of response.", Monnam(mon));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
seewho = canseemon(mon);
|
||||||
if (Blind)
|
if (!seewho)
|
||||||
pline("It caresses you...");
|
pline("Someone caresses you...");
|
||||||
else
|
else
|
||||||
You_feel("very attracted to %s.", mon_nam(mon));
|
You_feel("very attracted to %s.", mon_nam(mon));
|
||||||
|
/* cache the seducer's name in a local buffer */
|
||||||
|
Strcpy(Who, (!seewho ? (fem ? "She" : "He") : Monnam(mon)));
|
||||||
|
|
||||||
/* if in the process of putting armor on or taking armor off,
|
/* if in the process of putting armor on or taking armor off,
|
||||||
interrupt that activity now */
|
interrupt that activity now */
|
||||||
(void) stop_donning((struct obj *) 0);
|
(void) stop_donning((struct obj *) 0);
|
||||||
@@ -2388,11 +2392,12 @@ struct monst *mon;
|
|||||||
if (ring->owornmask && uarmg) {
|
if (ring->owornmask && uarmg) {
|
||||||
/* don't take off worn ring if gloves are in the way */
|
/* don't take off worn ring if gloves are in the way */
|
||||||
if (!tried_gloves++)
|
if (!tried_gloves++)
|
||||||
mayberem(uarmg, "gloves");
|
mayberem(Who, uarmg, "gloves");
|
||||||
if (uarmg)
|
if (uarmg)
|
||||||
continue; /* next ring might not be worn */
|
continue; /* next ring might not be worn */
|
||||||
}
|
}
|
||||||
if (rn2(20) < ACURR(A_CHA)) {
|
/* confirmation prompt when charisma is high bypassed if deaf */
|
||||||
|
if (!Deaf && rn2(20) < ACURR(A_CHA)) {
|
||||||
(void) safe_qbuf(qbuf, "\"That ",
|
(void) safe_qbuf(qbuf, "\"That ",
|
||||||
" looks pretty. May I have it?\"", ring,
|
" looks pretty. May I have it?\"", ring,
|
||||||
xname, simpleonames, "ring");
|
xname, simpleonames, "ring");
|
||||||
@@ -2401,16 +2406,11 @@ struct monst *mon;
|
|||||||
continue;
|
continue;
|
||||||
} else
|
} else
|
||||||
pline("%s decides she'd like %s, and takes it.",
|
pline("%s decides she'd like %s, and takes it.",
|
||||||
Blind ? "She" : Monnam(mon), yname(ring));
|
Who, yname(ring));
|
||||||
makeknown(RIN_ADORNMENT);
|
makeknown(RIN_ADORNMENT);
|
||||||
if (ring == uleft || ring == uright)
|
/* might be in left or right ring slot or weapon/alt-wep/quiver */
|
||||||
Ring_gone(ring);
|
if (ring->owornmask)
|
||||||
if (ring == uwep)
|
remove_worn_item(ring, FALSE);
|
||||||
setuwep((struct obj *) 0);
|
|
||||||
if (ring == uswapwep)
|
|
||||||
setuswapwep((struct obj *) 0);
|
|
||||||
if (ring == uquiver)
|
|
||||||
setuqwep((struct obj *) 0);
|
|
||||||
freeinv(ring);
|
freeinv(ring);
|
||||||
(void) mpickobj(mon, ring);
|
(void) mpickobj(mon, ring);
|
||||||
} else {
|
} else {
|
||||||
@@ -2422,41 +2422,40 @@ struct monst *mon;
|
|||||||
if (uarmg) {
|
if (uarmg) {
|
||||||
/* don't put on ring if gloves are in the way */
|
/* don't put on ring if gloves are in the way */
|
||||||
if (!tried_gloves++)
|
if (!tried_gloves++)
|
||||||
mayberem(uarmg, "gloves");
|
mayberem(Who, uarmg, "gloves");
|
||||||
if (uarmg)
|
if (uarmg)
|
||||||
break; /* no point trying further rings */
|
break; /* no point trying further rings */
|
||||||
}
|
}
|
||||||
if (rn2(20) < ACURR(A_CHA)) {
|
/* confirmation prompt when charisma is high bypassed if deaf */
|
||||||
|
if (!Deaf && rn2(20) < ACURR(A_CHA)) {
|
||||||
(void) safe_qbuf(qbuf, "\"That ",
|
(void) safe_qbuf(qbuf, "\"That ",
|
||||||
" looks pretty. Would you wear it for me?\"",
|
" looks pretty. Would you wear it for me?\"",
|
||||||
ring, xname, simpleonames, "ring");
|
ring, xname, simpleonames, "ring");
|
||||||
makeknown(RIN_ADORNMENT);
|
makeknown(RIN_ADORNMENT);
|
||||||
if (yn(qbuf) == 'n')
|
if (yn(qbuf) == 'n')
|
||||||
continue;
|
continue;
|
||||||
} else {
|
} else {
|
||||||
pline("%s decides you'd look prettier wearing %s,",
|
pline("%s decides you'd look prettier wearing %s,",
|
||||||
Blind ? "He" : Monnam(mon), yname(ring));
|
Who, yname(ring));
|
||||||
pline("and puts it on your finger.");
|
pline("and puts it on your finger.");
|
||||||
}
|
}
|
||||||
makeknown(RIN_ADORNMENT);
|
makeknown(RIN_ADORNMENT);
|
||||||
if (!uright) {
|
if (!uright) {
|
||||||
pline("%s puts %s on your right %s.",
|
pline("%s puts %s on your right %s.",
|
||||||
Blind ? "He" : Monnam(mon), the(xname(ring)),
|
Who, the(xname(ring)), body_part(HAND));
|
||||||
body_part(HAND));
|
|
||||||
setworn(ring, RIGHT_RING);
|
setworn(ring, RIGHT_RING);
|
||||||
} else if (!uleft) {
|
} else if (!uleft) {
|
||||||
pline("%s puts %s on your left %s.",
|
pline("%s puts %s on your left %s.",
|
||||||
Blind ? "He" : Monnam(mon), the(xname(ring)),
|
Who, the(xname(ring)), body_part(HAND));
|
||||||
body_part(HAND));
|
|
||||||
setworn(ring, LEFT_RING);
|
setworn(ring, LEFT_RING);
|
||||||
} else if (uright && uright->otyp != RIN_ADORNMENT) {
|
} else if (uright && uright->otyp != RIN_ADORNMENT) {
|
||||||
pline("%s replaces %s with %s.", Blind ? "He" : Monnam(mon),
|
pline("%s replaces %s with %s.",
|
||||||
yname(uright), yname(ring));
|
Who, yname(uright), yname(ring));
|
||||||
Ring_gone(uright);
|
Ring_gone(uright);
|
||||||
setworn(ring, RIGHT_RING);
|
setworn(ring, RIGHT_RING);
|
||||||
} else if (uleft && uleft->otyp != RIN_ADORNMENT) {
|
} else if (uleft && uleft->otyp != RIN_ADORNMENT) {
|
||||||
pline("%s replaces %s with %s.", Blind ? "He" : Monnam(mon),
|
pline("%s replaces %s with %s.",
|
||||||
yname(uleft), yname(ring));
|
Who, yname(uleft), yname(ring));
|
||||||
Ring_gone(uleft);
|
Ring_gone(uleft);
|
||||||
setworn(ring, LEFT_RING);
|
setworn(ring, LEFT_RING);
|
||||||
} else
|
} else
|
||||||
@@ -2466,26 +2465,31 @@ struct monst *mon;
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!uarmc && !uarmf && !uarmg && !uarms && !uarmh && !uarmu)
|
naked = (!uarmc && !uarmf && !uarmg && !uarms && !uarmh && !uarmu);
|
||||||
pline("%s murmurs sweet nothings into your ear.",
|
pline("%s %s%s.", Who,
|
||||||
Blind ? (fem ? "She" : "He") : Monnam(mon));
|
Deaf ? "seems to murmur into your ear"
|
||||||
else
|
: naked ? "murmurs sweet nothings into your ear"
|
||||||
pline("%s murmurs in your ear, while helping you undress.",
|
: "murmurs in your ear",
|
||||||
Blind ? (fem ? "She" : "He") : Monnam(mon));
|
naked ? "" : ", while helping you undress");
|
||||||
mayberem(uarmc, cloak_simple_name(uarmc));
|
mayberem(Who, uarmc, cloak_simple_name(uarmc));
|
||||||
if (!uarmc)
|
if (!uarmc)
|
||||||
mayberem(uarm, "suit");
|
mayberem(Who, uarm, "suit");
|
||||||
mayberem(uarmf, "boots");
|
mayberem(Who, uarmf, "boots");
|
||||||
if (!tried_gloves)
|
if (!tried_gloves)
|
||||||
mayberem(uarmg, "gloves");
|
mayberem(Who, uarmg, "gloves");
|
||||||
mayberem(uarms, "shield");
|
mayberem(Who, uarms, "shield");
|
||||||
mayberem(uarmh, helm_simple_name(uarmh));
|
mayberem(Who, uarmh, helm_simple_name(uarmh));
|
||||||
if (!uarmc && !uarm)
|
if (!uarmc && !uarm)
|
||||||
mayberem(uarmu, "shirt");
|
mayberem(Who, uarmu, "shirt");
|
||||||
|
|
||||||
if (uarm || uarmc) {
|
if (uarm || uarmc) {
|
||||||
verbalize("You're such a %s; I wish...",
|
if (!Deaf)
|
||||||
flags.female ? "sweet lady" : "nice guy");
|
verbalize("You're such a %s; I wish...",
|
||||||
|
flags.female ? "sweet lady" : "nice guy");
|
||||||
|
else if (seewho)
|
||||||
|
pline("%s appears to sigh.", Monnam(mon));
|
||||||
|
/* else no regret message if can't see or hear seducer */
|
||||||
|
|
||||||
if (!tele_restrict(mon))
|
if (!tele_restrict(mon))
|
||||||
(void) rloc(mon, TRUE);
|
(void) rloc(mon, TRUE);
|
||||||
return 1;
|
return 1;
|
||||||
@@ -2623,7 +2627,8 @@ struct monst *mon;
|
|||||||
}
|
}
|
||||||
|
|
||||||
STATIC_OVL void
|
STATIC_OVL void
|
||||||
mayberem(obj, str)
|
mayberem(seducer, obj, str)
|
||||||
|
const char *seducer; /* only used for alternate message */
|
||||||
struct obj *obj;
|
struct obj *obj;
|
||||||
const char *str;
|
const char *str;
|
||||||
{
|
{
|
||||||
@@ -2632,7 +2637,10 @@ const char *str;
|
|||||||
if (!obj || !obj->owornmask)
|
if (!obj || !obj->owornmask)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (rn2(20) < ACURR(A_CHA)) {
|
/* being deaf overrides confirmation prompt for high charisma */
|
||||||
|
if (Deaf) {
|
||||||
|
pline("%s takes off your %s.", seducer, str);
|
||||||
|
} else if (rn2(20) < ACURR(A_CHA)) {
|
||||||
Sprintf(qbuf, "\"Shall I remove your %s, %s?\"", str,
|
Sprintf(qbuf, "\"Shall I remove your %s, %s?\"", str,
|
||||||
(!rn2(2) ? "lover" : !rn2(2) ? "dear" : "sweetheart"));
|
(!rn2(2) ? "lover" : !rn2(2) ? "dear" : "sweetheart"));
|
||||||
if (yn(qbuf) == 'n')
|
if (yn(qbuf) == 'n')
|
||||||
|
|||||||
@@ -153,6 +153,7 @@ DLBFLG =
|
|||||||
# Visual Studio we are using. We set VSVER to 0000 to flag any version that
|
# Visual Studio we are using. We set VSVER to 0000 to flag any version that
|
||||||
# is too old or untested.
|
# is too old or untested.
|
||||||
#
|
#
|
||||||
|
#NMAKE version 1414264330 is distributed with VS 15.7.5
|
||||||
|
|
||||||
#!MESSAGE $(MAKEFLAGS)
|
#!MESSAGE $(MAKEFLAGS)
|
||||||
#!MESSAGE $(MAKEDIR)
|
#!MESSAGE $(MAKEDIR)
|
||||||
@@ -174,9 +175,9 @@ VSVER=2012
|
|||||||
VSVER=2013
|
VSVER=2013
|
||||||
!ELSEIF ($(MAKEVERSION) > 1400000000) && ($(MAKEVERSION) < 1411000000)
|
!ELSEIF ($(MAKEVERSION) > 1400000000) && ($(MAKEVERSION) < 1411000000)
|
||||||
VSVER=2015
|
VSVER=2015
|
||||||
!ELSEIF ($(MAKEVERSION) > 1411000000) && ($(MAKEVERSION) < 1412258351)
|
!ELSEIF ($(MAKEVERSION) > 1411000000) && ($(MAKEVERSION) < 1414264331)
|
||||||
VSVER=$(VSNEWEST)
|
VSVER=$(VSNEWEST)
|
||||||
!ELSEIF ($(MAKEVERSION) > 1412258350)
|
!ELSEIF ($(MAKEVERSION) > 1414264330)
|
||||||
VSVER=2999 #untested future version
|
VSVER=2999 #untested future version
|
||||||
!ENDIF
|
!ENDIF
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user