Issue reported by Ryton: a sleeping orc caught a thrown gold piece.
Throwing one at some other sleeping monster woke it up.
That is actually intentional. Sleeping monsters with the 'greedy'
attribute will wake up without becoming angry and catch thrown or
kicked gold that is aimed at hit them. The fix here is to augment
the catch message to say so. Non-greedy monsters wake up and treat
it as an attack, but the gold always misses.
Both cases only happen for monsters who are asleep for an indefinite
period of time. Any monster that is asleep (or paralyzed, or busy
putting on armor) for N turns effectively doesn't notice. If it can
be seen, the gold "harmlessly hits" (if it can't be seen, the gold
misses), and the target continues doing--or not doing--whatever it
is doing. That's suboptimal; another case where lumping multiple
can't-move situations into a single monst->mfrozen countdown timer
causes timed sleep to be indistinguishable from timed paralysis.
Closes#1230
The curses colorpair rework I did changed the pile hilite background
color from blue to red. Change it back to blue, and use a function
to get the color pair instead of hardcoding the value.
Normally the 'O' menu covers the status display, but not always.
Toggling 'time' or 'showexp' via the "simple 'O'" menu should update
the status lines.
Toggling 'hitpointbar' already does so so. I didn't try to figure out
why. Presumeably it triggers a different bot() call somewhere and the
code here sees 'disp.bot' as reset to False.
I didn't check the behavior when adding or removing a status highlight
but those can change the current status display.
A couple of predicates in sym.h didn't cover all the relevant map
symbols.
is_cmap_stairs() only affects the MS-DOS position-bar. It appears
that it would have been overlooking the extra stairs to the mines
and to sokoban but I have no way to verify that.
is_cmap_lava() affects getpos() and #lookaround. lava-wall wasn't
being treated as lava.
When you attempt #offer at a non-altar location, the feedback
"you are not standing on an altar" made it sound as if you wouldn't
be able to #offer if you were levitating. Since that is possible,
change the feedback.
wizcmds.c: In function 'wiz_custom':
wizcmds.c:1845:40: warning: format '%d' expects argument of type 'int', but argument 4 has type 'uint32_t' {aka 'long unsigned int'} [-Wformat=]
1845 | Sprintf(bufa, "%s: colorcount=%d %s", wizcustom, iflags.colorcount,
| ~^ ~~~~~~~~~~~~~~~~~
| | |
| int uint32_t {aka long unsigned int}
| %ld
wizcmds.c: In function 'wizcustom_callback':
wizcmds.c:1895:32: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'uint32' {aka 'long unsigned int'} [-Wformat=]
1895 | Sprintf(bufc, "%011x", cgm->customcolor);
| ~~~~^ ~~~~~~~~~~~~~~~~
| | |
| | uint32 {aka long unsigned int}
| unsigned int
| %011lx
wizcmds.c:1899:37: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'uint32' {aka 'long unsigned int'} [-Wformat=]
1899 | Sprintf(bufu, "U+%04x", cgm->u->utf32ch);
| ~~~^ ~~~~~~~~~~~~~~~
| | |
| | uint32 {aka long unsigned int}
| unsigned int
| %04lx
In 3.6.2 parts of the wakeup code were merged together, and this
caused pets consider any noise made by the hero - such as hitting
iron bars or digging - as whistling for them to come to the hero.
Change it to only consider actual whistling and ringing a bell.
Support aiming at self (to become blinded) and aiming up/down (to
light the hero's current map spot only, persistently rather than
temporarily). Also, recognize cancel at the "direction?" prompt to
not leave the #invoke cooldown count set when aborted.
Aiming at self was a little trickier than expected to test because
you're blindness-resistant when wielding Sunsword. But it doesn't
have to be wielded to be invoked.
Use vi (cursor_invisible) and ve (cursor_normal) to hide and show
cursor, if the terminal supports those. This way on a slower
connection the cursor doesn't jump all over the place when doing
map or menu updates.
Unresolved display issues with rxvt-unicode after the optimizations
dealing with switching between DECgraphics line-drawing character set
and normal character set.
Effectively comment them out rather than revert the commits.
The code doesn't handle zapping blinding ray at yourself;
maybe it should be changed to handle it, but for now just
prevent Sunsword blinding the hero.
Program terminated with signal SIGSEGV, Segmentation fault.
77 ../sysdeps/x86_64/multiarch/strlen-evex.S: No such file or directory.
(gdb) bt
at glyphs.c:419
at glyphs.c:173
op=0x5a34af30a574 "DECgraphics") at options.c:3418
This doesn't directly affect nethack, but it should prevent HTML
dumplog for variants that include that from showing T-shirt and
apron slogan text in tooltips for the 'gameover' map. And it makes
end-of-game attribute disclosure slightly less susceptible to being
unintentionally reverted.
Code in pull request #300 shows that it uses do_screen_description()
for tooltips and do_screen_description() uses distant_name() for
objects so that's where I added this change that will trigger the
code from commit c6992777f5.