more engraving sanity feedback

Delete engravings made in a breach of a shop's wall or of a vault's
wall or in the guard's temporary corridor when the wall is repaired
or the corridor removed.  If 'sanity_check' was On, those would
trigger impossible warning "engraving sanity: illegal surface (x)"
where x was the terrain type code for solid rock or relevant walls.

Adding del_engr_at() calls to the shop code was straightforward.
The vault code is very complicated and I'm not sure that all the
calls I added were actually necessary.
This commit is contained in:
PatR
2023-05-04 06:02:23 -07:00
parent c0441126b8
commit 180042434e
7 changed files with 39 additions and 18 deletions

View File

@@ -6,7 +6,12 @@
#ifndef ENGRAVE_H
#define ENGRAVE_H
enum engraving_texts { actual_text, remembered_text, pristine_text, text_states };
enum engraving_texts {
actual_text,
remembered_text,
pristine_text,
text_states
};
struct engr {
struct engr *nxt_engr;
@@ -37,9 +42,9 @@ struct engr {
#define dealloc_engr(engr) free((genericptr_t) (engr))
#define engraving_to_defsym(ep) \
(levl[(ep)->engr_x][(ep)->engr_y].typ == CORR ? S_engrcorr : S_engroom)
((levl[(ep)->engr_x][(ep)->engr_y].typ == CORR) ? S_engrcorr : S_engroom)
#define spot_shows_engravings(x,y) \
#define spot_shows_engravings(x,y) \
(levl[(x)][(y)].typ == CORR \
|| levl[(x)][(y)].typ == SCORR \
|| levl[(x)][(y)].typ == ICE \

View File

@@ -823,7 +823,7 @@ extern struct engr *sengr_at(const char *, coordxy, coordxy, boolean);
extern void u_wipe_engr(int);
extern void wipe_engr_at(coordxy, coordxy, xint16, boolean);
extern void read_engr_at(coordxy, coordxy);
extern void make_engr_at(coordxy, coordxy, const char *, long, xint16);
extern void make_engr_at(coordxy, coordxy, const char *, long, int);
extern void del_engr_at(coordxy, coordxy);
extern int freehand(void);
extern int doengrave(void);