Add vision sanity checking, fix more vision

- Add a vision sanity checking routine

- Recalc block point when digging a door for temporary clouds

- Add recalc_block_point after cvt_sdoor_to_door, because doorways
  on the Rogue level have no doors, and otherwise the sanity checking
  would complain.  This doesn't actually change how the Rogue level
  vision works, as it uses a different vision system

- Monster using a trap in a secret corridor revealed the corridor,
  but didn't unblock the vision unless you saw the location
This commit is contained in:
Pasi Kallinen
2025-01-09 17:26:58 +02:00
parent 83c0d430c9
commit 843b02ec1d
9 changed files with 40 additions and 4 deletions

View File

@@ -1651,6 +1651,7 @@ findone(coordxy zx, coordxy zy, genericptr_t whatfound)
flash_glyph_at(zx, zy, cmap_to_glyph(sym), FOUND_FLASH_COUNT);
cvt_sdoor_to_door(lev); /* set lev->typ = DOOR */
recalc_block_point(zx, zy);
magic_map_background(zx, zy, 0);
foundone(zx, zy, back_to_glyph(zx, zy));
found_p->num_sdoors++;
@@ -2040,6 +2041,7 @@ dosearch0(int aflag) /* intrinsic autosearch vs explicit searching */
if (rnl(7 - fund))
continue;
cvt_sdoor_to_door(&levl[x][y]); /* .typ = DOOR */
recalc_block_point(x, y);
exercise(A_WIS, TRUE);
nomul(0);
feel_location(x, y); /* make sure it shows up */