transformation message when you apply a figurine
make transformation message of a deliberate apply of a figurine seem a bit less definite when blind. Put 'I' unseen monster marker at the spot you expect it to be.
This commit is contained in:
@@ -104,6 +104,9 @@ wizard mode ^I^I didn't make temporary identifications become persistent if
|
|||||||
the build configuration makes plain 'char' unsigned
|
the build configuration makes plain 'char' unsigned
|
||||||
wizard mode #wizidentify didn't disclose extra information for unID'd items if
|
wizard mode #wizidentify didn't disclose extra information for unID'd items if
|
||||||
key bindings took away ^I and didn't bind #wizidentify to another key
|
key bindings took away ^I and didn't bind #wizidentify to another key
|
||||||
|
make transformation message of a deliberate apply of a figurine seem a bit
|
||||||
|
less definite when blind and place unseen monster marker at the spot
|
||||||
|
you think it should be
|
||||||
|
|
||||||
|
|
||||||
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
|
||||||
|
|||||||
56
src/apply.c
56
src/apply.c
@@ -1,4 +1,4 @@
|
|||||||
/* NetHack 3.6 apply.c $NHDT-Date: 1526769961 2018/05/19 22:46:01 $ $NHDT-Branch: NetHack-3.6.2 $:$NHDT-Revision: 1.246 $ */
|
/* NetHack 3.6 apply.c $NHDT-Date: 1519598527 2018/02/25 22:42:07 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.243 $ */
|
||||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||||
/*-Copyright (c) Robert Patrick Rankin, 2012. */
|
/*-Copyright (c) Robert Patrick Rankin, 2012. */
|
||||||
/* NetHack may be freely redistributed. See license for details. */
|
/* NetHack may be freely redistributed. See license for details. */
|
||||||
@@ -767,7 +767,7 @@ register xchar x, y;
|
|||||||
corpse less likely to remain tame after revival */
|
corpse less likely to remain tame after revival */
|
||||||
xkilled(mtmp, XKILL_NOMSG);
|
xkilled(mtmp, XKILL_NOMSG);
|
||||||
/* life-saving doesn't ordinarily reset this */
|
/* life-saving doesn't ordinarily reset this */
|
||||||
if (!DEADMONSTER(mtmp))
|
if (mtmp->mhp > 0)
|
||||||
u.uconduct.killer = save_pacifism;
|
u.uconduct.killer = save_pacifism;
|
||||||
} else {
|
} else {
|
||||||
pline("%s is choked by the leash!", Monnam(mtmp));
|
pline("%s is choked by the leash!", Monnam(mtmp));
|
||||||
@@ -2865,41 +2865,21 @@ coord *pos;
|
|||||||
int min_range, max_range;
|
int min_range, max_range;
|
||||||
{
|
{
|
||||||
struct monst *mtmp;
|
struct monst *mtmp;
|
||||||
coord mpos;
|
struct monst *selmon = (struct monst *) 0;
|
||||||
boolean impaired;
|
|
||||||
int x, y, lo_x, hi_x, lo_y, hi_y, rt, glyph;
|
|
||||||
|
|
||||||
if (Blind)
|
for (mtmp = fmon; mtmp; mtmp = mtmp->nmon)
|
||||||
return FALSE; /* must be able to see target location */
|
if (mtmp && !DEADMONSTER(mtmp) && !mtmp->mtame
|
||||||
impaired = (Confusion || Stunned || Hallucination);
|
&& cansee(mtmp->mx, mtmp->my)
|
||||||
mpos.x = mpos.y = 0; /* no candidate location yet */
|
&& distu(mtmp->mx, mtmp->my) <= max_range
|
||||||
rt = isqrt(max_range);
|
&& distu(mtmp->mx, mtmp->my) >= min_range) {
|
||||||
lo_x = max(u.ux - rt, 1), hi_x = min(u.ux + rt, COLNO - 1);
|
if (selmon)
|
||||||
lo_y = max(u.uy - rt, 0), hi_y = min(u.uy + rt, ROWNO - 1);
|
return FALSE;
|
||||||
for (x = lo_x; x <= hi_x; ++x) {
|
selmon = mtmp;
|
||||||
for (y = lo_y; y <= hi_y; ++y) {
|
|
||||||
if (distu(x, y) < min_range || distu(x, y) > max_range
|
|
||||||
|| !isok(x, y) || !cansee(x, y))
|
|
||||||
continue;
|
|
||||||
glyph = glyph_at(x, y);
|
|
||||||
if (!impaired
|
|
||||||
&& glyph_is_monster(glyph)
|
|
||||||
&& (mtmp = m_at(x, y)) != 0
|
|
||||||
&& (mtmp->mtame || (mtmp->mpeaceful && flags.confirm)))
|
|
||||||
continue;
|
|
||||||
if (glyph_is_monster(glyph)
|
|
||||||
|| glyph_is_warning(glyph)
|
|
||||||
|| glyph_is_invisible(glyph)
|
|
||||||
|| (glyph_is_statue(glyph) && impaired)) {
|
|
||||||
if (mpos.x)
|
|
||||||
return FALSE; /* more than one candidate location */
|
|
||||||
mpos.x = x, mpos.y = y;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
if (!selmon)
|
||||||
if (!mpos.x)
|
return FALSE;
|
||||||
return FALSE; /* no candidate location */
|
pos->x = selmon->mx;
|
||||||
*pos = mpos;
|
pos->y = selmon->my;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2907,8 +2887,8 @@ static int polearm_range_min = -1;
|
|||||||
static int polearm_range_max = -1;
|
static int polearm_range_max = -1;
|
||||||
|
|
||||||
STATIC_OVL boolean
|
STATIC_OVL boolean
|
||||||
get_valid_polearm_position(x, y)
|
get_valid_polearm_position(x,y)
|
||||||
int x, y;
|
int x,y;
|
||||||
{
|
{
|
||||||
return (isok(x, y) && ACCESSIBLE(levl[x][y].typ)
|
return (isok(x, y) && ACCESSIBLE(levl[x][y].typ)
|
||||||
&& distu(x, y) >= polearm_range_min
|
&& distu(x, y) >= polearm_range_min
|
||||||
@@ -3018,7 +2998,7 @@ struct obj *obj;
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
context.polearm.hitmon = (struct monst *) 0;
|
context.polearm.hitmon = NULL;
|
||||||
/* Attack the monster there */
|
/* Attack the monster there */
|
||||||
bhitpos = cc;
|
bhitpos = cc;
|
||||||
if ((mtmp = m_at(bhitpos.x, bhitpos.y)) != (struct monst *) 0) {
|
if ((mtmp = m_at(bhitpos.x, bhitpos.y)) != (struct monst *) 0) {
|
||||||
|
|||||||
Reference in New Issue
Block a user