-$NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.259 $ $NHDT-Date: 1550629490 2019/02/20 02:24:50 $
+$NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.260 $ $NHDT-Date: 1550784489 2019/02/21 21:28:09 $
This fixes36.2 file is here to capture information about updates in the 3.6.x
lineage following the release of 3.6.1 in April 2018. Please note, however,
then (player might still deduce the +/- value but hero won't learn it)
a monster with resistances supplied by worn armor would lose them if that
monster went through a shape change even if the armor stayed worn
+after using 'f' to fire/throw with autoquiver enabled and numpad off, then
+ using ^A to repeat, if ammo was just used up and there's nothing
+ suitable to autoquiver it would pick the item in the inventory slot
+ corresponding to the direction letter from preceding 'fire' (and if
+ there was such an item, then ask for direction since ^A data ran out)
Fixes to Post-3.6.1 Problems that Were Exposed Via git Repository
-/* NetHack 3.6 dothrow.c $NHDT-Date: 1545597420 2018/12/23 20:37:00 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.155 $ */
+/* NetHack 3.6 dothrow.c $NHDT-Date: 1550784489 2019/02/21 21:28:09 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.157 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Robert Patrick Rankin, 2013. */
/* NetHack may be freely redistributed. See license for details. */
/* if autoquiver is disabled or has failed, prompt for missile;
fill quiver with it if it's not wielded */
if (!obj) {
+ /* direction of previous throw is not suitable answer here */
+ in_doagain = FALSE;
obj = getobj(uslinging() ? bullets : toss_objs, "throw");
/* Q command doesn't allow gold in quiver */
if (obj && !obj->owornmask && obj->oclass != COIN_CLASS)
}
/* FIXME:
- * Each trap should really trigger on the recoil if
- * it would trigger during normal movement. However,
- * not all the possible side-effects of this are
- * tested [as of 3.4.0] so we trigger those that
- * we have tested, and offer a message for the
- * ones that we have not yet tested.
+ * Each trap should really trigger on the recoil if it would
+ * trigger during normal movement. However, not all the possible
+ * side-effects of this are tested [as of 3.4.0] so we trigger
+ * those that we have tested, and offer a message for the ones
+ * that we have not yet tested.
*/
if ((ttmp = t_at(x, y)) != 0) {
if (stopping_short) {
} else if (petrifier && !Stone_resistance
&& !(poly_when_stoned(youmonst.data)
&& polymon(PM_STONE_GOLEM))) {
- petrify:
+ petrify:
killer.format = KILLED_BY;
Strcpy(killer.name, "elementary physics"); /* "what goes up..." */
You("turn to stone.");
if ((obj->cursed || obj->greased) && (u.dx || u.dy) && !rn2(7)) {
boolean slipok = TRUE;
- if (ammo_and_launcher(obj, uwep))
+ if (ammo_and_launcher(obj, uwep)) {
pline("%s!", Tobjnam(obj, "misfire"));
- else {
+ } else {
/* only slip if it's greased or meant to be thrown */
if (obj->greased || throwing_weapon(obj))
/* BUG: this message is grammatically incorrect if obj has
if (u.dz < 0
/* Mjollnir must we wielded to be thrown--caller verifies this;
aklys must we wielded as primary to return when thrown */
- && ((Role_if(PM_VALKYRIE) && obj->oartifact == ART_MJOLLNIR) || tethered_weapon)
+ && ((Role_if(PM_VALKYRIE) && obj->oartifact == ART_MJOLLNIR)
+ || tethered_weapon)
&& !impaired) {
pline("%s the %s and returns to your hand!", Tobjnam(obj, "hit"),
ceiling(u.ux, u.uy));
}
} else {
/* crossbow range is independent of strength */
- crossbowing =
- (ammo_and_launcher(obj, uwep) && weapon_type(uwep) == P_CROSSBOW);
+ crossbowing = (ammo_and_launcher(obj, uwep)
+ && weapon_type(uwep) == P_CROSSBOW);
urange = (crossbowing ? 18 : (int) ACURRSTR) / 2;
/* balls are easy to throw or at least roll;
* also, this insures the maximum range of a ball is greater
thrownobj = (struct obj *) 0;
return;
} else {
- if (tethered_weapon) tmp_at(DISP_END, 0);
+ if (tethered_weapon)
+ tmp_at(DISP_END, 0);
/* when this location is stepped on, the weapon will be
auto-picked up due to 'obj->was_thrown' of 1;
addinv() prevents thrown Mjollnir from being placed
}
}
-/* an object may hit a monster; various factors adjust the chance of hitting
- */
+/* an object may hit a monster; various factors adjust chance of hitting */
int
omon_adj(mon, obj, mon_notices)
struct monst *mon;
* No bonuses for fleeing or stunned targets (they don't dodge
* melee blows as readily, but dodging arrows is hard anyway).
* Not affected by traps, etc.
- * Certain items which don't in themselves do damage ignore tmp.
+ * Certain items which don't in themselves do damage ignore 'tmp'.
* Distance and monster size affect chance to hit.
*/
tmp = -1 + Luck + find_mac(mon) + u.uhitinc
(void) mpickobj(mon, obj); /* may merge and free obj */
ret = 1;
-nopick:
+ nopick:
if (!Blind)
pline1(buf);
if (!tele_restrict(mon))