fix #H6928 - monster vs closed door messaging

Report from roughly two and half years ago was about "<monster>
opens the door" without displaying <monster>.

Monster movement first decides whether a monster can pass closed
door.  If so, the monster is placed at the door spot, a message
is given about that movement (unlock, open, smash down, &c), and
finally the map is updated.

Changing the sequence to update the map before issuing the door
message was not sufficient to fix this.  In the corridor plus
closed door plus lit room map fragment shown here, when 'O' moved
to '+', you would see it there if the hero is at '1' or '2', but
not if at '3', '4', or '5'; open door was shown instead.  But the
message described 'O' accurately rather than as "it" for all those
hero locations.
:   -----
: #O+1...
:   |2...
:   |3...
:   |4...
:   |5...
:   -----

For 3,4,5 the #vision command shows the closed door as 3 before
the O move, but blank (0) after.  In other words, the closed door
is within line of sight but once opened, the doorway spot isn't.
It makes sense that the closed door behaves like a wall but I'm
not sure whether the behavior for an open door's breach does too.

I had an awful workaround that successfully displayed the monster,
but it wouldn't show the same thing if the door was already open,
so I've changed the situation to yield "You see a door open."
This commit is contained in:
PatR
2021-03-21 02:33:20 -07:00
parent fb7b7d5721
commit f209cac5f6
3 changed files with 34 additions and 33 deletions

View File

@@ -420,6 +420,8 @@ quivering a partial stack of gold succeeded and put the partial stack in an
if player managed to get multiple $ items, all but the last could be moved to
normal letter slots via #adjust and then subsequent #adjust with a
count could split them into even more slots
when a monster on the far side of a closed door opens it, sometimes the hero
was told about the monster without it being displayed on the map
Fixes to 3.7.0-x Problems that Were Exposed Via git Repository