'O' vs bouldersym

The 'O' handling for bouldersym was updating the display value for
boulder even if the value had been rejected, and if it still had the
default of '\0', the map would end up with <NUL> characters.  (When
examined via '//' or ';', those matched dummy monster class #0 and
led to the impossible "Alphabet soup: 'an("")'" that was suppressed
yesterday.)

Attempting to set bouldersym to ^@ or \0 would also be rejected as
duplicating a monster symbol.  That is now accepted and used to reset
the boulder symbol to default.  However, other control characters are
also accepted--not due to this patch, they already are, and from a
config file in addition to via 'O'--so bouldersym can still disrupt
the map.  But that's no different from putting control characters
into a symbol set or setting them from config file via S_foo:^C.
This commit is contained in:
PatR
2018-12-30 15:30:38 -08:00
parent 83e8033f72
commit da40f55a9f
4 changed files with 31 additions and 18 deletions

View File

@@ -1,4 +1,4 @@
$NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.218 $ $NHDT-Date: 1546144745 2018/12/30 04:39:05 $
$NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.219 $ $NHDT-Date: 1546212616 2018/12/30 23:30:16 $
This fixes36.2 file is here to capture information about updates in the 3.6.x
lineage following the release of 3.6.1 in April 2018. Please note, however,
@@ -319,6 +319,9 @@ when merging a stack where internal ID is used to adjust shop prices, always
from shop, not when selling; doesn't affect items already on bill)
since knives became stackable in 3.6.0, fake player monsters could be given
multi-quantity stacks for weapons (scalpel, athame) they never throw
using 'O' to attempt to set bouldersym to a monster letter or warning digit
while it still had its default value would override the display value
for it to be <NUL> ('\0') after 'badoption' feedback
Fixes to Post-3.6.1 Problems that Were Exposed Via git Repository