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:
@@ -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
|
||||
|
||||
@@ -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 */
|
||||
|
||||
Reference in New Issue
Block a user