Merge branch 'master' into NetHack-3.7
This commit is contained in:
+4
-1
@@ -1,4 +1,4 @@
|
|||||||
$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.64 $ $NHDT-Date: 1561233801 2019/06/22 20:03:21 $
|
$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.65 $ $NHDT-Date: 1561314651 2019/06/23 18:30:51 $
|
||||||
|
|
||||||
This fixes36.3 file is here to capture information about updates in the 3.6.x
|
This fixes36.3 file is here to capture information about updates in the 3.6.x
|
||||||
lineage following the release of 3.6.2 in May 2019. Please note, however,
|
lineage following the release of 3.6.2 in May 2019. Please note, however,
|
||||||
@@ -84,6 +84,9 @@ partly eaten food with one bite left had message anomalies when eaten; the
|
|||||||
usual "you resume your meal" case lacked the "you're finished" message
|
usual "you resume your meal" case lacked the "you're finished" message
|
||||||
when done; eating something else in between to clobber meal context
|
when done; eating something else in between to clobber meal context
|
||||||
resulted in no messages at all when restarting and finishing last bite
|
resulted in no messages at all when restarting and finishing last bite
|
||||||
|
wizard mode ^I menu could list "Not carrying anything" after inventory items
|
||||||
|
if perm_invent option was On (even on tty where that's not supported)
|
||||||
|
change #adjust to treat carrying only gold as not having anything to adjust
|
||||||
|
|
||||||
|
|
||||||
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
|
||||||
|
|||||||
+16
-9
@@ -1,4 +1,4 @@
|
|||||||
/* NetHack 3.6 invent.c $NHDT-Date: 1558234540 2019/05/19 02:55:40 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.258 $ */
|
/* NetHack 3.6 invent.c $NHDT-Date: 1561314651 2019/06/23 18:30:51 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.259 $ */
|
||||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||||
/*-Copyright (c) Derek S. Ray, 2015. */
|
/*-Copyright (c) Derek S. Ray, 2015. */
|
||||||
/* NetHack may be freely redistributed. See license for details. */
|
/* NetHack may be freely redistributed. See license for details. */
|
||||||
@@ -2540,7 +2540,7 @@ long *out_cnt;
|
|||||||
menu_item *selected;
|
menu_item *selected;
|
||||||
unsigned sortflags;
|
unsigned sortflags;
|
||||||
Loot *sortedinvent, *srtinv;
|
Loot *sortedinvent, *srtinv;
|
||||||
boolean wizid = FALSE;
|
boolean wizid = FALSE, gotsomething = FALSE;
|
||||||
|
|
||||||
if (lets && !*lets)
|
if (lets && !*lets)
|
||||||
lets = 0; /* simplify tests: (lets) instead of (lets && *lets) */
|
lets = 0; /* simplify tests: (lets) instead of (lets && *lets) */
|
||||||
@@ -2644,13 +2644,14 @@ long *out_cnt;
|
|||||||
/* wiz_identify stuffed the wiz_identify command character (^I)
|
/* wiz_identify stuffed the wiz_identify command character (^I)
|
||||||
into iflags.override_ID for our use as an accelerator;
|
into iflags.override_ID for our use as an accelerator;
|
||||||
it could be ambiguous if player has assigned a letter to
|
it could be ambiguous if player has assigned a letter to
|
||||||
the #wizidentify command */
|
the #wizidentify command, so include it as a group accelator
|
||||||
|
but use '_' as the primary selector */
|
||||||
if (unid_cnt > 1)
|
if (unid_cnt > 1)
|
||||||
Sprintf(eos(prompt), " (%s for all)",
|
Sprintf(eos(prompt), " (%s for all)",
|
||||||
visctrl(iflags.override_ID));
|
visctrl(iflags.override_ID));
|
||||||
add_menu(win, NO_GLYPH, &any, '_', iflags.override_ID, ATR_NONE,
|
add_menu(win, NO_GLYPH, &any, '_', iflags.override_ID, ATR_NONE,
|
||||||
prompt, MENU_UNSELECTED);
|
prompt, MENU_UNSELECTED);
|
||||||
wizid = TRUE;
|
wizid = gotsomething = TRUE;
|
||||||
}
|
}
|
||||||
} else if (xtra_choice) {
|
} else if (xtra_choice) {
|
||||||
/* wizard override ID and xtra_choice are mutually exclusive */
|
/* wizard override ID and xtra_choice are mutually exclusive */
|
||||||
@@ -2660,6 +2661,7 @@ long *out_cnt;
|
|||||||
any.a_char = HANDS_SYM; /* '-' */
|
any.a_char = HANDS_SYM; /* '-' */
|
||||||
add_menu(win, NO_GLYPH, &any, HANDS_SYM, 0, ATR_NONE,
|
add_menu(win, NO_GLYPH, &any, HANDS_SYM, 0, ATR_NONE,
|
||||||
xtra_choice, MENU_UNSELECTED);
|
xtra_choice, MENU_UNSELECTED);
|
||||||
|
gotsomething = TRUE;
|
||||||
}
|
}
|
||||||
nextclass:
|
nextclass:
|
||||||
classcount = 0;
|
classcount = 0;
|
||||||
@@ -2685,6 +2687,7 @@ long *out_cnt;
|
|||||||
add_menu(win, obj_to_glyph(otmp, rn2_on_display_rng), &any, ilet,
|
add_menu(win, obj_to_glyph(otmp, rn2_on_display_rng), &any, ilet,
|
||||||
wizid ? def_oc_syms[(int) otmp->oclass].sym : 0,
|
wizid ? def_oc_syms[(int) otmp->oclass].sym : 0,
|
||||||
ATR_NONE, doname(otmp), MENU_UNSELECTED);
|
ATR_NONE, doname(otmp), MENU_UNSELECTED);
|
||||||
|
gotsomething = TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (flags.sortpack) {
|
if (flags.sortpack) {
|
||||||
@@ -2702,13 +2705,14 @@ long *out_cnt;
|
|||||||
any.a_char = '*';
|
any.a_char = '*';
|
||||||
add_menu(win, NO_GLYPH, &any, '*', 0, ATR_NONE,
|
add_menu(win, NO_GLYPH, &any, '*', 0, ATR_NONE,
|
||||||
"(list everything)", MENU_UNSELECTED);
|
"(list everything)", MENU_UNSELECTED);
|
||||||
|
gotsomething = TRUE;
|
||||||
}
|
}
|
||||||
unsortloot(&sortedinvent);
|
unsortloot(&sortedinvent);
|
||||||
/* for permanent inventory where we intend to show everything but
|
/* for permanent inventory where we intend to show everything but
|
||||||
nothing has been listed (because there isn't anyhing to list;
|
nothing has been listed (because there isn't anyhing to list;
|
||||||
recognized via any.a_char still being zero; the n==0 case above
|
the n==0 case above gets skipped for perm_invent), put something
|
||||||
gets skipped for perm_invent), put something into the menu */
|
into the menu */
|
||||||
if (iflags.perm_invent && !lets && !any.a_char) {
|
if (iflags.perm_invent && !lets && !gotsomething) {
|
||||||
any = cg.zeroany;
|
any = cg.zeroany;
|
||||||
add_menu(win, NO_GLYPH, &any, 0, 0, 0,
|
add_menu(win, NO_GLYPH, &any, 0, 0, 0,
|
||||||
not_carrying_anything, MENU_UNSELECTED);
|
not_carrying_anything, MENU_UNSELECTED);
|
||||||
@@ -4001,8 +4005,11 @@ doorganize() /* inventory organizer by Del Lamb */
|
|||||||
const char *adj_type;
|
const char *adj_type;
|
||||||
boolean ever_mind = FALSE, collect;
|
boolean ever_mind = FALSE, collect;
|
||||||
|
|
||||||
if (!g.invent) {
|
/* when no invent, or just gold in '$' slot, there's nothing to adjust */
|
||||||
You("aren't carrying anything to adjust.");
|
if (!g.invent || (g.invent->oclass == COIN_CLASS
|
||||||
|
&& g.invent->invlet == GOLD_SYM && !g.invent->nobj)) {
|
||||||
|
You("aren't carrying anything %s.",
|
||||||
|
!g.invent ? "to adjust" : "adjustable");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+4
-3
@@ -1,4 +1,4 @@
|
|||||||
/* NetHack 3.6 teleport.c $NHDT-Date: 1559733391 2019/06/05 11:16:31 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.88 $ */
|
/* NetHack 3.6 teleport.c $NHDT-Date: 1561336020 2019/06/24 00:27:00 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.89 $ */
|
||||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||||
/*-Copyright (c) Robert Patrick Rankin, 2011. */
|
/*-Copyright (c) Robert Patrick Rankin, 2011. */
|
||||||
/* NetHack may be freely redistributed. See license for details. */
|
/* NetHack may be freely redistributed. See license for details. */
|
||||||
@@ -1350,8 +1350,9 @@ int in_sight;
|
|||||||
get_level(&tolevel, depth(&u.uz) + 1);
|
get_level(&tolevel, depth(&u.uz) + 1);
|
||||||
}
|
}
|
||||||
} else if (tt == MAGIC_PORTAL) {
|
} else if (tt == MAGIC_PORTAL) {
|
||||||
if (In_endgame(&u.uz)
|
if (In_endgame(&u.uz) && (mon_has_amulet(mtmp)
|
||||||
&& (mon_has_amulet(mtmp) || is_home_elemental(mtmp->data))) {
|
|| is_home_elemental(mtmp->data)
|
||||||
|
|| rn2(7))) {
|
||||||
if (in_sight && mtmp->data->mlet != S_ELEMENTAL) {
|
if (in_sight && mtmp->data->mlet != S_ELEMENTAL) {
|
||||||
pline("%s seems to shimmer for a moment.", Monnam(mtmp));
|
pline("%s seems to shimmer for a moment.", Monnam(mtmp));
|
||||||
seetrap(trap);
|
seetrap(trap);
|
||||||
|
|||||||
+15
-10
@@ -1,4 +1,4 @@
|
|||||||
/* NetHack 3.6 wizard.c $NHDT-Date: 1539804905 2018/10/17 19:35:05 $ $NHDT-Branch: keni-makedefsm $:$NHDT-Revision: 1.53 $ */
|
/* NetHack 3.6 wizard.c $NHDT-Date: 1561336025 2019/06/24 00:27:05 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.56 $ */
|
||||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||||
/*-Copyright (c) Robert Patrick Rankin, 2016. */
|
/*-Copyright (c) Robert Patrick Rankin, 2016. */
|
||||||
/* NetHack may be freely redistributed. See license for details. */
|
/* NetHack may be freely redistributed. See license for details. */
|
||||||
@@ -356,7 +356,6 @@ xchar *sy;
|
|||||||
*sx = x;
|
*sx = x;
|
||||||
*sy = y;
|
*sy = y;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
@@ -364,28 +363,33 @@ tactics(mtmp)
|
|||||||
register struct monst *mtmp;
|
register struct monst *mtmp;
|
||||||
{
|
{
|
||||||
unsigned long strat = strategy(mtmp);
|
unsigned long strat = strategy(mtmp);
|
||||||
xchar sx = 0, sy = 0;
|
xchar sx = 0, sy = 0, mx, my;
|
||||||
|
|
||||||
mtmp->mstrategy =
|
mtmp->mstrategy =
|
||||||
(mtmp->mstrategy & (STRAT_WAITMASK | STRAT_APPEARMSG)) | strat;
|
(mtmp->mstrategy & (STRAT_WAITMASK | STRAT_APPEARMSG)) | strat;
|
||||||
|
|
||||||
switch (strat) {
|
switch (strat) {
|
||||||
case STRAT_HEAL: /* hide and recover */
|
case STRAT_HEAL: /* hide and recover */
|
||||||
|
mx = mtmp->mx, my = mtmp->my;
|
||||||
/* if wounded, hole up on or near the stairs (to block them) */
|
/* if wounded, hole up on or near the stairs (to block them) */
|
||||||
choose_stairs(&sx, &sy);
|
choose_stairs(&sx, &sy);
|
||||||
mtmp->mavenge = 1; /* covetous monsters attack while fleeing */
|
mtmp->mavenge = 1; /* covetous monsters attack while fleeing */
|
||||||
if (In_W_tower(mtmp->mx, mtmp->my, &u.uz)
|
if (In_W_tower(mx, my, &u.uz)
|
||||||
|| (mtmp->iswiz && !sx && !mon_has_amulet(mtmp))) {
|
|| (mtmp->iswiz && !sx && !mon_has_amulet(mtmp))) {
|
||||||
if (!rn2(3 + mtmp->mhp / 10))
|
if (!rn2(3 + mtmp->mhp / 10))
|
||||||
(void) rloc(mtmp, TRUE);
|
(void) rloc(mtmp, TRUE);
|
||||||
} else if (sx && (mtmp->mx != sx || mtmp->my != sy)) {
|
} else if (sx && (mx != sx || my != sy)) {
|
||||||
if (!mnearto(mtmp, sx, sy, TRUE)) {
|
if (!mnearto(mtmp, sx, sy, TRUE)) {
|
||||||
m_into_limbo(mtmp);
|
/* couldn't move to the target spot for some reason,
|
||||||
|
so stay where we are (don't actually need rloc_to()
|
||||||
|
because mtmp is still on the map at <mx,my>... */
|
||||||
|
rloc_to(mtmp, mx, my);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
mx = mtmp->mx, my = mtmp->my; /* update cached location */
|
||||||
}
|
}
|
||||||
/* if you're not around, cast healing spells */
|
/* if you're not around, cast healing spells */
|
||||||
if (distu(mtmp->mx, mtmp->my) > (BOLT_LIM * BOLT_LIM))
|
if (distu(mx, my) > (BOLT_LIM * BOLT_LIM))
|
||||||
if (mtmp->mhp <= mtmp->mhpmax - 8) {
|
if (mtmp->mhp <= mtmp->mhpmax - 8) {
|
||||||
mtmp->mhp += rnd(8);
|
mtmp->mhp += rnd(8);
|
||||||
return 1;
|
return 1;
|
||||||
@@ -435,12 +439,13 @@ register struct monst *mtmp;
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
} else { /* a monster has it - 'port beside it. */
|
} else { /* a monster has it - 'port beside it. */
|
||||||
|
mx = mtmp->mx, my = mtmp->my;
|
||||||
if (!mnearto(mtmp, tx, ty, FALSE))
|
if (!mnearto(mtmp, tx, ty, FALSE))
|
||||||
m_into_limbo(mtmp);
|
rloc_to(mtmp, mx, my); /* no room? stay put */
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
} /* default case */
|
||||||
}
|
} /* switch */
|
||||||
/*NOTREACHED*/
|
/*NOTREACHED*/
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user