Merge branch 'NetHack-3.6'

This commit is contained in:
nhmall
2019-09-28 20:23:05 -04:00
5 changed files with 20 additions and 13 deletions
+2
View File
@@ -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 panic if same weapon killed any engulfer via melee from inside
uarmh null pointer dereference if a helm of opposite alignment came off due uarmh null pointer dereference if a helm of opposite alignment came off due
to being polymorphed 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 Fixes to Post-3.6.2 Problems that Were Exposed Via git Repository
+5 -1
View File
@@ -316,7 +316,8 @@ struct c_common_strings {
const char *const c_nothing_happens, *const c_thats_enough_tries, const char *const c_nothing_happens, *const c_thats_enough_tries,
*const c_silly_thing_to, *const c_shudder_for_moment, *const c_silly_thing_to, *const c_shudder_for_moment,
*const c_something, *const c_Something, *const c_You_can_move_again, *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; 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 Never_mind c_common_strings.c_Never_mind
#define vision_clears c_common_strings.c_vision_clears #define vision_clears c_common_strings.c_vision_clears
#define the_your c_common_strings.c_the_your #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 */ /* material strings */
E const char *materialnm[]; E const char *materialnm[];
+7 -7
View File
@@ -983,10 +983,10 @@ boolean vis; /* whether the action can be seen */
char *hittee; /* target's name: "you" or mon_nam(mdef) */ char *hittee; /* target's name: "you" or mon_nam(mdef) */
{ {
struct permonst *old_uasmon; struct permonst *old_uasmon;
const char *verb, *fakename; const char *verb;
boolean youattack = (magr == &g.youmonst), youdefend = (mdef == &g.youmonst), boolean youattack = (magr == &g.youmonst), youdefend = (mdef == &g.youmonst),
resisted = FALSE, do_stun, do_confuse, result; 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 */ result = FALSE; /* no message given yet */
/* the most severe effects are less likely at higher enchantment */ /* 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; mdef->mconf = 1;
} }
/* now give message(s) describing side-effects; /* now give message(s) describing side-effects; Use fakename
don't let vtense() be fooled by assigned name ending in 's' */ so vtense() won't be fooled by assigned name ending in 's' */
fakename = youdefend ? "you" : "mon"; fakeidx = youdefend ? 1 : 0;
if (youattack || youdefend || vis) { if (youattack || youdefend || vis) {
(void) upstart(hittee); /* capitalize */ (void) upstart(hittee); /* capitalize */
if (resisted) { if (resisted) {
pline("%s %s!", hittee, vtense(fakename, "resist")); pline("%s %s!", hittee, vtense(fakename[fakeidx], "resist"));
shieldeff(youdefend ? u.ux : mdef->mx, shieldeff(youdefend ? u.ux : mdef->mx,
youdefend ? u.uy : mdef->my); youdefend ? u.uy : mdef->my);
} }
@@ -1146,7 +1146,7 @@ char *hittee; /* target's name: "you" or mon_nam(mdef) */
Strcat(buf, " and "); Strcat(buf, " and ");
if (do_confuse) if (do_confuse)
Strcat(buf, "confused"); 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) ? '!' : '.'); (do_stun && do_confuse) ? '!' : '.');
} }
} }
+2 -1
View File
@@ -93,7 +93,8 @@ const struct c_common_strings c_common_strings = { "Nothing happens.",
"You can move again.", "You can move again.",
"Never mind.", "Never mind.",
"vision quickly clears.", "vision quickly clears.",
{ "the", "your" } }; { "the", "your" },
{ "mon", "you" } };
/* NOTE: the order of these words exactly corresponds to the /* NOTE: the order of these words exactly corresponds to the
order of oc_material values #define'd in objclass.h. */ order of oc_material values #define'd in objclass.h. */
+4 -4
View File
@@ -827,7 +827,7 @@ struct monst *mtmp;
Mnam = Monnam(mtmp); Mnam = Monnam(mtmp);
pline("%s %s into a %s!", Mnam, 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"); (t->ttyp == TRAPDOOR) ? "trap door" : "hole");
if (levl[g.trapx][g.trapy].typ == SCORR) { if (levl[g.trapx][g.trapy].typ == SCORR) {
levl[g.trapx][g.trapy].typ = CORR; levl[g.trapx][g.trapy].typ = CORR;
@@ -924,7 +924,7 @@ struct monst *mtmp;
if (vis) { if (vis) {
Mnam = Monnam(mtmp); Mnam = Monnam(mtmp);
pline("%s %s onto a teleport trap!", Mnam, 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)); seetrap(t_at(g.trapx, g.trapy));
} }
/* don't use rloc_to() because worm tails must "move" */ /* don't use rloc_to() because worm tails must "move" */
@@ -1873,7 +1873,7 @@ struct monst *mtmp;
const char *Mnam = Monnam(mtmp); const char *Mnam = Monnam(mtmp);
pline("%s deliberately %s onto a polymorph trap!", Mnam, pline("%s deliberately %s onto a polymorph trap!", Mnam,
vtense(Mnam, locomotion(mtmp->data, "jump"))); vtense(fakename[0], locomotion(mtmp->data, "jump")));
} }
if (vis) if (vis)
seetrap(t_at(g.trapx, g.trapy)); 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); newsym(mon->mx, mon->my);
if (vis) if (vis)
pline("%s %s %s %s fire trap!", Mnam, 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", is_floater(mon->data) ? "over" : "onto",
trap->tseen ? "the" : "a"); trap->tseen ? "the" : "a");
} }