Merge branch 'NetHack-3.6'
This commit is contained in:
@@ -154,6 +154,8 @@ wielded aklys that returned to hero when thrown while inside an engulfer left
|
||||
panic if same weapon killed any engulfer via melee from inside
|
||||
uarmh null pointer dereference if a helm of opposite alignment came off due
|
||||
to being polymorphed
|
||||
verb tense was inappropriate in some messages when a mon/pet had a name
|
||||
ending in 's'
|
||||
|
||||
|
||||
Fixes to Post-3.6.2 Problems that Were Exposed Via git Repository
|
||||
|
||||
@@ -316,7 +316,8 @@ struct c_common_strings {
|
||||
const char *const c_nothing_happens, *const c_thats_enough_tries,
|
||||
*const c_silly_thing_to, *const c_shudder_for_moment,
|
||||
*const c_something, *const c_Something, *const c_You_can_move_again,
|
||||
*const c_Never_mind, *c_vision_clears, *const c_the_your[2];
|
||||
*const c_Never_mind, *c_vision_clears, *const c_the_your[2],
|
||||
*const c_fakename[2];
|
||||
};
|
||||
|
||||
E const struct c_common_strings c_common_strings;
|
||||
@@ -331,6 +332,9 @@ E const struct c_common_strings c_common_strings;
|
||||
#define Never_mind c_common_strings.c_Never_mind
|
||||
#define vision_clears c_common_strings.c_vision_clears
|
||||
#define the_your c_common_strings.c_the_your
|
||||
/* fakename[] used occasionally so vtense() won't be fooled by an assigned
|
||||
name ending in 's' */
|
||||
#define fakename c_common_strings.c_fakename
|
||||
|
||||
/* material strings */
|
||||
E const char *materialnm[];
|
||||
|
||||
@@ -983,10 +983,10 @@ boolean vis; /* whether the action can be seen */
|
||||
char *hittee; /* target's name: "you" or mon_nam(mdef) */
|
||||
{
|
||||
struct permonst *old_uasmon;
|
||||
const char *verb, *fakename;
|
||||
const char *verb;
|
||||
boolean youattack = (magr == &g.youmonst), youdefend = (mdef == &g.youmonst),
|
||||
resisted = FALSE, do_stun, do_confuse, result;
|
||||
int attack_indx, scare_dieroll = MB_MAX_DIEROLL / 2;
|
||||
int attack_indx, fakeidx, scare_dieroll = MB_MAX_DIEROLL / 2;
|
||||
|
||||
result = FALSE; /* no message given yet */
|
||||
/* the most severe effects are less likely at higher enchantment */
|
||||
@@ -1126,13 +1126,13 @@ char *hittee; /* target's name: "you" or mon_nam(mdef) */
|
||||
mdef->mconf = 1;
|
||||
}
|
||||
|
||||
/* now give message(s) describing side-effects;
|
||||
don't let vtense() be fooled by assigned name ending in 's' */
|
||||
fakename = youdefend ? "you" : "mon";
|
||||
/* now give message(s) describing side-effects; Use fakename
|
||||
so vtense() won't be fooled by assigned name ending in 's' */
|
||||
fakeidx = youdefend ? 1 : 0;
|
||||
if (youattack || youdefend || vis) {
|
||||
(void) upstart(hittee); /* capitalize */
|
||||
if (resisted) {
|
||||
pline("%s %s!", hittee, vtense(fakename, "resist"));
|
||||
pline("%s %s!", hittee, vtense(fakename[fakeidx], "resist"));
|
||||
shieldeff(youdefend ? u.ux : mdef->mx,
|
||||
youdefend ? u.uy : mdef->my);
|
||||
}
|
||||
@@ -1146,7 +1146,7 @@ char *hittee; /* target's name: "you" or mon_nam(mdef) */
|
||||
Strcat(buf, " and ");
|
||||
if (do_confuse)
|
||||
Strcat(buf, "confused");
|
||||
pline("%s %s %s%c", hittee, vtense(fakename, "are"), buf,
|
||||
pline("%s %s %s%c", hittee, vtense(fakename[fakeidx], "are"), buf,
|
||||
(do_stun && do_confuse) ? '!' : '.');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -93,7 +93,8 @@ const struct c_common_strings c_common_strings = { "Nothing happens.",
|
||||
"You can move again.",
|
||||
"Never mind.",
|
||||
"vision quickly clears.",
|
||||
{ "the", "your" } };
|
||||
{ "the", "your" },
|
||||
{ "mon", "you" } };
|
||||
|
||||
/* NOTE: the order of these words exactly corresponds to the
|
||||
order of oc_material values #define'd in objclass.h. */
|
||||
|
||||
@@ -827,7 +827,7 @@ struct monst *mtmp;
|
||||
|
||||
Mnam = Monnam(mtmp);
|
||||
pline("%s %s into a %s!", Mnam,
|
||||
vtense(Mnam, locomotion(mtmp->data, "jump")),
|
||||
vtense(fakename[0], locomotion(mtmp->data, "jump")),
|
||||
(t->ttyp == TRAPDOOR) ? "trap door" : "hole");
|
||||
if (levl[g.trapx][g.trapy].typ == SCORR) {
|
||||
levl[g.trapx][g.trapy].typ = CORR;
|
||||
@@ -924,7 +924,7 @@ struct monst *mtmp;
|
||||
if (vis) {
|
||||
Mnam = Monnam(mtmp);
|
||||
pline("%s %s onto a teleport trap!", Mnam,
|
||||
vtense(Mnam, locomotion(mtmp->data, "jump")));
|
||||
vtense(fakename[0], locomotion(mtmp->data, "jump")));
|
||||
seetrap(t_at(g.trapx, g.trapy));
|
||||
}
|
||||
/* don't use rloc_to() because worm tails must "move" */
|
||||
@@ -1873,7 +1873,7 @@ struct monst *mtmp;
|
||||
const char *Mnam = Monnam(mtmp);
|
||||
|
||||
pline("%s deliberately %s onto a polymorph trap!", Mnam,
|
||||
vtense(Mnam, locomotion(mtmp->data, "jump")));
|
||||
vtense(fakename[0], locomotion(mtmp->data, "jump")));
|
||||
}
|
||||
if (vis)
|
||||
seetrap(t_at(g.trapx, g.trapy));
|
||||
@@ -2451,7 +2451,7 @@ boolean by_you; /* true: if mon kills itself, hero gets credit/blame */
|
||||
newsym(mon->mx, mon->my);
|
||||
if (vis)
|
||||
pline("%s %s %s %s fire trap!", Mnam,
|
||||
vtense(Mnam, locomotion(mon->data, "move")),
|
||||
vtense(fakename[0], locomotion(mon->data, "move")),
|
||||
is_floater(mon->data) ? "over" : "onto",
|
||||
trap->tseen ? "the" : "a");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user