geographical shopkeeper updates
stethoscope use should be free the first time it's use per player move
travel command caches last position to make non-mouse less painful
+update pit trapped time when polymorphing to or from a monster that passes_walls
Platform- and/or Interface-Specific Fixes
if(at_u) {
if (!wont_fall) {
+ if (!Passes_walls)
u.utrap = rn1(4,2);
- u.utraptype = TT_PIT;
- vision_full_recalc = 1; /* vision limits change */
+ u.utraptype = TT_PIT;
+ vision_full_recalc = 1; /* vision limits change */
} else
- u.utrap = 0;
+ u.utrap = 0;
if (oldobjs != newobjs) /* something unearthed */
(void) pickup(1); /* detects pit */
} else if(mtmp) {
{
boolean sticky = sticks(youmonst.data) && u.ustuck && !u.uswallow,
was_mimicking = (youmonst.m_ap_type == M_AP_OBJECT);
-
+ boolean could_pass_walls = Passes_walls;
boolean was_blind = !!Blind;
if (Upolyd) {
if (u.twoweap && !could_twoweap(youmonst.data))
untwoweapon();
+ if (u.utraptype == TT_PIT) {
+ if (could_pass_walls) { /* player forms cannot pass walls */
+ u.utrap = rn1(6,2);
+ }
+ }
if (was_blind && !Blind) { /* reverting from eyeless */
Blinded = 1L;
make_blinded(0L, TRUE); /* remove blindness */
{
boolean sticky = sticks(youmonst.data) && u.ustuck && !u.uswallow,
was_blind = !!Blind, dochange = FALSE;
+ boolean could_pass_walls = Passes_walls;
int mlvl;
if (mvitals[mntmp].mvflags & G_GENOD) { /* allow G_EXTINCT */
else
u.uundetected = 0;
+ if (u.utraptype == TT_PIT) {
+ if (could_pass_walls && !Passes_walls) {
+ u.utrap = rn1(6,2);
+ } else if (!could_pass_walls && Passes_walls) {
+ u.utrap = 0;
+ }
+ }
if (was_blind && !Blind) { /* previous form was eyeless */
Blinded = 1L;
make_blinded(0L, TRUE); /* remove blindness */