inconsistency going down a hole/trapdoor accidentally vs deliberately

Noted on rgrn, after being told that you don't fit upon discovery
of a hole or trap door you could then immediately use '>' to
proceed down.

The deliberate situation remains possible and has some
inherent risk.
This commit is contained in:
nhmall
2018-08-12 08:40:55 -04:00
parent baf9c706b4
commit a105df7320
2 changed files with 23 additions and 3 deletions

View File

@@ -80,6 +80,7 @@ succubus/incubus seduction might result in loss of levitation which in turn
could drop the hero onto a trap that transports him/her elsewhere;
seduction was proceeding as if nothing unusual had happened
#turn command which aggravated monsters did so without using a turn (not a pun)
fix hole/trapdoor passage inconsistency when polymorphed into a giant
Fixes to Post-3.6.1 Problems that Were Exposed Via git Repository

View File

@@ -988,10 +988,29 @@ dodown()
return 0;
}
if (trap)
You("%s %s.", Flying ? "fly" : locomotion(youmonst.data, "jump"),
trap->ttyp == HOLE ? "down the hole" : "through the trap door");
if (trap) {
const char *down_or_thru = trap->ttyp == HOLE ? "down" : "through";
const char *actn = Flying ? "fly" : locomotion(youmonst.data, "jump");
if (youmonst.data->msize >= MZ_HUGE) {
char qbuf[QBUFSZ];
You("don't fit %s easily.", down_or_thru);
Sprintf(qbuf, "Try to squeeze %s?", down_or_thru);
if (yn(qbuf) == 'y') {
if (!rn2(3)) {
actn = "manage to squeeze";
losehp(Maybe_Half_Phys(rnd(4)),
"contusion from a small passage", KILLED_BY);
} else {
You("were unable to fit %s.", down_or_thru);
return 0;
}
}
}
You("%s %s the %s.", actn, down_or_thru,
trap->ttyp == HOLE ? "hole" : "trap door");
}
if (trap && Is_stronghold(&u.uz)) {
goto_hell(FALSE, TRUE);
} else {