From 67c80b2e4b33beaa7a6d630df47636c851948a75 Mon Sep 17 00:00:00 2001 From: nhmall Date: Thu, 4 Oct 2018 22:00:08 -0400 Subject: [PATCH] Revert "fix up a bad commit" This reverts commit 2eb8436db2b8a7123857f386a89003aed18c71d4. --- src/dothrow.c | 62 +++++++++++++++++++-------------------------------- 1 file changed, 23 insertions(+), 39 deletions(-) diff --git a/src/dothrow.c b/src/dothrow.c index 877740193..81487a5b6 100644 --- a/src/dothrow.c +++ b/src/dothrow.c @@ -571,7 +571,7 @@ int x, y; int ox, oy, *range = (int *) arg; struct obj *obj; struct monst *mon; - boolean may_pass = TRUE, via_jumping, stopping_short; + boolean may_pass = TRUE; struct trap *ttmp; int dmg = 0; @@ -583,8 +583,6 @@ int x, y; } else if (*range == 0) { return FALSE; /* previous step wants to stop now */ } - via_jumping = (EWwalking & I_SPECIAL) != 0L; - stopping_short = (via_jumping && *range < 2); if (!Passes_walls || !(may_pass = may_passwall(x, y))) { boolean odoor_diag = (IS_DOOR(levl[x][y].typ) @@ -664,8 +662,12 @@ int x, y; mon->mundetected = 0; /* wakeup() will handle mimic */ mnam = a_monnam(mon); /* after unhiding */ - pronoun = noit_mhim(mon); + pronoun = mhim(mon); if (!strcmp(mnam, "it")) { + /* mhim() uses pronoun_gender() which forces neuter if monster + can't be seen; we want him/her for humanoid sensed by touch */ + if (!strcmp(pronoun, "it") && humanoid(mon->data)) + pronoun = genders[mon->female].him; mnam = !strcmp(pronoun, "it") ? "something" : "someone"; } if (!glyph_is_monster(glyph) && !glyph_is_invisible(glyph)) @@ -708,17 +710,12 @@ int x, y; vision_recalc(1); /* update for new position */ flush_screen(1); - if (is_pool(x, y) && !u.uinwater) { - if ((Is_waterlevel(&u.uz) && levl[x][y].typ == WATER) - || !(Levitation || Flying || Wwalking)) { - multi = 0; /* can move, so drown() allows crawling out of water */ - (void) drown(); - return FALSE; - } else if (!Is_waterlevel(&u.uz) && !stopping_short) { - Norep("You move over %s.", an(is_moat(x, y) ? "moat" : "pool")); - } - } else if (is_lava(x, y) && !stopping_short) { - Norep("You move over some lava."); + if (is_pool(x, y) && !u.uinwater + && ((Is_waterlevel(&u.uz) && levl[x][y].typ == WATER) + || !(Levitation || Flying || Wwalking))) { + multi = 0; /* can move, so drown() allows crawling out of water */ + (void) drown(); + return FALSE; } /* FIXME: @@ -730,9 +727,7 @@ int x, y; * ones that we have not yet tested. */ if ((ttmp = t_at(x, y)) != 0) { - if (stopping_short) { - ; /* see the comment above hurtle_jump() */ - } else if (ttmp->ttyp == MAGIC_PORTAL) { + if (ttmp->ttyp == MAGIC_PORTAL) { dotrap(ttmp, 0); return FALSE; } else if (ttmp->ttyp == VIBRATING_SQUARE) { @@ -740,12 +735,11 @@ int x, y; dotrap(ttmp, 0); /* doesn't print messages */ } else if (ttmp->ttyp == FIRE_TRAP) { dotrap(ttmp, 0); - } else if ((is_pit(ttmp->ttyp) || is_hole(ttmp->ttyp)) + } else if ((ttmp->ttyp == PIT || ttmp->ttyp == SPIKED_PIT + || ttmp->ttyp == HOLE || ttmp->ttyp == TRAPDOOR) && Sokoban) { - /* air currents overcome the recoil in Sokoban; - when jumping, caller performs last step and enters trap */ - if (!via_jumping) - dotrap(ttmp, 0); + /* Air currents overcome the recoil */ + dotrap(ttmp, 0); *range = 0; return TRUE; } else { @@ -1134,8 +1128,6 @@ boolean twoweap; /* used to restore twoweapon mode if wielded weapon returns */ mon = u.ustuck; bhitpos.x = mon->mx; bhitpos.y = mon->my; - if (tethered_weapon) - tmp_at(DISP_TETHER, obj_to_glyph(obj)); } else if (u.dz) { if (u.dz < 0 /* Mjollnir must we wielded to be thrown--caller verifies this; @@ -1282,27 +1274,19 @@ boolean twoweap; /* used to restore twoweapon mode if wielded weapon returns */ /* missile has already been handled */ if (tethered_weapon) tmp_at(DISP_END, 0); } else if (u.uswallow) { - if (tethered_weapon) { + if (tethered_weapon) tmp_at(DISP_END, 0); - pline("%s returns to your hand!", The(xname(thrownobj))); - thrownobj = addinv(thrownobj); - (void) encumber_msg(); - if (thrownobj->owornmask & W_QUIVER) /* in case addinv() autoquivered */ - setuqwep((struct obj *) 0); - setuwep(thrownobj); - } else { - /* ball is not picked up by monster */ - if (obj != uball) - (void) mpickobj(u.ustuck, obj); - thrownobj = (struct obj *) 0; - } + /* ball is not picked up by monster */ + if (obj != uball) + (void) mpickobj(u.ustuck, obj); + thrownobj = (struct obj *) 0; } else { /* Mjollnir must we wielded to be thrown--caller verifies this; aklys must we wielded as primary to return when thrown */ if ((obj->oartifact == ART_MJOLLNIR && Role_if(PM_VALKYRIE)) || tethered_weapon) { if (rn2(100)) { - if (tethered_weapon) + if (tethered_weapon) tmp_at(DISP_END, BACKTRACK); else sho_obj_return_to_u(obj); /* display its flight */ -- 2.40.0