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
|
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
@@ -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
@@ -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
@@ -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
@@ -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");
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user