When you were asked for a name and teleported out of the vault without
any gold on you, the vault guard says "Well, begone" - which could be
heard from anywhere on the level.
Limit that verbalization to 10 tiles away.
Move the caitiff check into thitmonst, the code responsible
for object hitting a monster, intead of checking the caitiff
in multiple places before calling that.
Previously there were some cases where caitiff was not checked,
eg. samurai could fire arrows at a peaceful monster without
the dishonourable behaviour check.
Now you will get the check even if you miss with the projectile.
This may need to be adjusted for throwing beneficial potions
at monsters...
This is a follow-up to commit 9114a33 that was intended to fix a "killed by a died" situation.
In that commit, the generic case could be encountered with variable str set to "explosion",
but that never got copied to svk.killer.name, and svk.killer.name remained set to "died"
during testing.
svk.killer.format = KILLED_BY_AN; is done whether the generic case, or not.
Close#1676
"This plugs into the same code that provides support for BMP and GIF tiles for MS-DOS, and also populates the stub to read PNG tiles.
PNG is a compile-time option, and depends on libpng."
pull request #1666 by chasonr
It is difficult, but possible, to exceed 1024 widgets. One way is to
set a very large Unicode symbol set, and then use #wizcustom. As there
is no limit to how many objects can occupy a square, this limit is a
possible hazard even to a normal game.
In 3.6.x, zombie corpses were always aged an extra 100:
NetHack/src/mon.c
Line 375 in 23d331a
obj->age -= 100; /* this is an *OLD* corpse */
in 5.0.x, zombie corpses are always aged TAINT_AGE, which is only 50:
NetHack/src/mon.c
Line 648 in 97a6c13
obj->age -= (TAINT_AGE + 1); /* this is an *OLD* corpse */
This is the result of commit 408321b.
The accompanying comment states that the purpose of that patch was meant to
just replace hard-coded numbers with symbolic values, but the commit set
two differing numeric values to the same symbol name, thus causing the
regression reported in:
https://github.com/NetHack/NetHack/issues/1664
Revert the values to match those of 3.6, and add the additional symbolic value.
Closes#1664
Fix#576
Reported initially by @copperwater for polymorphed monsters:
"observe how the [polymorphed-monster] hovers placidly above the water for
several turns like Wile E. Coyote before it gets a move, realizes it's
above water, and drowns. Ditto for lava."
A comment in the GitHub issue thread by @Tomsod pointed out that a
revived corpse could do the same.
This should set things up for other terrain fallout if discovered or
implemented in the future.
- consume an additional bit in enum mon_terrain_effects (hack.h)
- include the additional bit in TERRAIN_FALLOUT_MASK (monst.h)
- add detection to maybe_set_terrain_effects (mon.c)
- add action to terrain_effects (mon.c)
Implemented by stealing some upper unused mstate bits to avoid
invalidating existing save and bones.
If a line in the menu has fewer columns than the others, the last one
is deemed to extend to the right margin, and does not count toward the
maximum width of that column.
Also, revert the change to NetHack.font_menu.
../sys/unix/unixmain.c: In function ‘process_options’:
../sys/unix/unixmain.c:458:9: warning: use of uninitialized value ‘origarg’ [CWE-457] [-Wanalyzer-use-of-uninitialized-value]
458 | config_error_add("Unknown option: %.60s", origarg);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~