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

@@ -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 */