B03001 - trapdoors while blind and levitating

The seetrap() was done for trapdoors & holes independent of whether a
message was printed.  Move the seetrap call into fall_through where
the message logic lives (Sokoban holes always activate).
This commit is contained in:
cohrs
2002-07-04 17:29:42 +00:00
parent 8a44a437e5
commit ff68892016
2 changed files with 3 additions and 1 deletions

View File

@@ -139,6 +139,7 @@ dropping gold on an altar printed no message and didn't change gnostic conduct
don't allow cursed daggers thrown by monsters to go thru closed doors
hero polymorphed into an exploding monster should explode when attacking
thin air, just like the monster itself
don't mark holes/trapdoors as seen if you levitate over them while blind
Platform- and/or Interface-Specific Fixes

View File

@@ -331,6 +331,7 @@ boolean td; /* td == TRUE : trap door or hole */
if(td) {
struct trap *t=t_at(u.ux,u.uy);
seetrap(t);
if (!In_sokoban(&u.uz)) {
if (t->ttyp == TRAPDOOR)
pline("A trap door opens up under you!");
@@ -823,8 +824,8 @@ glovecheck: (void) rust_dmg(uarmg, "gauntlets", 1, TRUE, &youmonst);
break;
case HOLE:
case TRAPDOOR:
seetrap(trap);
if (!Can_fall_thru(&u.uz)) {
seetrap(trap); /* normally done in fall_through */
impossible("dotrap: %ss cannot exist on this level.",
defsyms[trap_to_defsym(ttype)].explanation);
break; /* don't activate it after all */