fix #K3912 - engraving sanity: closed doors

Engraving in an empty doorway and then using locking magic to create
a door there resulted in an impossible warning: "engraving sanity:
illegal surface (23)" if the 'sanity_check' option was On (wizard
mode only).  Engraving in an open doorway and then simply closing
the existing door produced the same effect.

Accept engravings at closed doors.  Presumably hero will be using
Passes_walls to attempt that so treat closed doors same as open ones.
Update the engraving sanity check to deal with that.

Bonus fix: engraving sanity checking stopped after the first problem
instead of checking every engraving.  Have it continue instead.

Not fixed:  vault wall repair and temporary corridor removal does
not delete engravings and can trigger the illegal surface warning if
player engraves before the repairs.  I didn't test shop wall repair
but it doesn't have any engr references so probably has the same bug.
This commit is contained in:
PatR
2023-05-03 14:29:03 -07:00
parent 53adba6602
commit c0441126b8
5 changed files with 47 additions and 28 deletions

View File

@@ -1164,6 +1164,9 @@ avoid "wall_angle: unknown hwall mode 4" when using #terrain command to
has been transformed into an open door while not in sight
it was possible to produce a web at a water or lava location; it would not be
visible but could trap the hero, resulting in drowning or incineration
engraving in an open doorway was allowed, engraving in closed one (presumably
via Passes_walls) was not, but closing the door on an engraving was;
change to allow engraving at closed door location
Fixes to 3.7.0-x General Problems Exposed Via git Repository
@@ -1555,6 +1558,7 @@ throttle the difficulty of the monsters in theme room "buried zombies"
buried troll whose auto-revive timer expired might triger panic with
"revive default case 6"
throwing a helm of brilliance could yield "breaking odd object?"
sanity checking of engravings was stopping after first problem found
Fixes to 3.7.0-x Platform and/or Interface Problems Exposed Via git Repository