Commit Graph

8852 Commits

Author SHA1 Message Date
PatR
cc3152dc9a ignore 3.7 file if present 2019-11-27 09:53:40 -08:00
PatR
3130676077 alignment of mimicked or polymorphed altars
A reddit thread about an unaligned altar in an aligned temple was
a tipoff that mimics posing as altars didn't have any particular
alignment.  The look-at code was misusing an operloaded field of the
underlying terrain.  Pick an alignment at random when taking on the
appearance of an altar, store it in the mimic's mon->mextra->mcorpsenm
field, and have look-at use that.

Also, dropping a ring of polymorph into a sink can transform it, and
one possible outcome is an altar.  In this case, the alignment is
part of the location's topology, but code setting that up was using
Align2amask(rn2(foo)).  That's a macro which evaluates its argument
more than once.  The first evaluation was effectively a no-op.  If
the second evaluation picked lawful then the result was lawful as
intended.  But if the second picked non-lawful and the third picked
lawful, the result would end up as none-of-the-above (a value of 3
when it needs to be a single-bit mask of 1, 2, or 4).
2019-11-25 15:01:40 -08:00
PatR
2288b94ae4 fix #H9462 - segfault with levitation boots
This is similar to the helm of opposite alignment case fixed some
time ago.  Deferring the setting of foo->known until an item is fully
worn (because it used to get set earlier but gave away information if
the wear operation was interrupted) didn't take into account that foo
might end up Null in various circumstances.  So Boots_on() needs to
validate uarmf before setting uarmf->known in case putting on boots
of levitation while on a sink caused them to come right back off.

I put similar validation into all foo_on() just in case (as far as
I'm aware, only Boots_on() and Helmet_on() actually need that).
2019-11-24 15:33:16 -08:00
PatR
fe2826c856 more #H9375 - Rider bargethrough
I think the previous expression would allow moving (via swapping
places) from a pool to solid rock or closed door which was not what
was intended (but moot since there aren't any pools on the Astral
level).  This revised expression does what is intended:  can only
swap to a pool location if already located in/over (the Riders fly?
they should probably be non-breathing) another pool.
2019-11-23 09:28:08 -08:00
PatR
ce46c97e6e fix #H9375 - unintended Rider corpse suppression
Don't let Riders swap places with something (fog or ooze, perhaps)
located at a closed door spot because if it gets killed there, there
won't be any corpse and it will stop auto-reviving.

Just avoid moving to spots where mondied() won't place a corpse
instead of worrying about whether a bargethrough creature (if there
ever are any besides the Riders) might be able to survive at the
destination (so ignore pass-walls, door-opening, swimming, &c).
2019-11-22 18:16:59 -08:00
nhmall
c8af8e23c1 slash vs backslash Makefile bit 2019-11-22 07:45:43 -05:00
nhmall
7af4797671 when decl.h changes, ensure windmain is rebuilt 2019-11-22 07:40:17 -05:00
PatR
d4df876a6f docall fix
Noticed while testing something:  hero drank a potion of see invisible
and nearby invisible monster could now be seen--in theory--but I was
asked what to call the potion while the updated map was buffered.  So
I didn't see the invisible monster until after naming the potion.

pline() flushes buffered map updates, but getlin() doesn't.  I didn't
change that, but I've made docall() do so since the updated map may
make a difference in what the player can tell about whatever is being
'called'.
2019-11-22 02:46:28 -08:00
Pasi Kallinen
5cad6a15dc More hallu monsters 2019-11-22 09:24:19 +02:00
PatR
a62d6145bd fix part of #H9397 - hallucinatory mon names
Fix the issue where a hallucinatory monster name which begins with
a slash is having that stripped off as if it was a gendor and/or
personal-name flag.

The main issue was pronouns ignoring hallucination and this doesn't
attempt to address that.

Also, add new hallucinatory name "leathery-winged avian" which has
been lurking for a while.
2019-11-21 17:43:55 -08:00
nhmall
893fa4efa8 update nhusage output on Windows 2019-11-18 19:20:03 -05:00
PatR
fc2886efb4 yet more --showpaths (dumplog)
Provide a little more information when dumplog is unavailable.
While testing various permutations, I encountered a couple of
problems with conditionally declared variables.
2019-11-18 14:28:25 -08:00
nhmall
22180fc523 typo in fixes36.3 2019-11-18 16:58:43 -05:00
nhmall
a763b99afd catch up on some post-beta1 corrections 2019-11-18 16:56:52 -05:00
nhmall
41299d44ae Merge branch 'k-sound' into NetHack-3.6 2019-11-18 15:14:55 -05:00
nhmall
fbd10e4b0e some further refinements to --showpaths
The Windows data file path has to be constructed because
Windows defines VERSION_IN_DLB_FILENAME.

Keep the personal configuration file details as the last
information displayed.
2019-11-18 15:12:38 -05:00
PatR
040c13f6aa more tribute: Eric #3, Witches Abroad #10 2019-11-18 11:56:45 -08:00
PatR
516761b9bb another tribute typo: The Light Fantastic #11
Another transciption mistake ("to"; the book has "do").
2019-11-18 11:01:26 -08:00
nhmall
450957bfe9 further refine k-sound pluralization 2019-11-18 13:23:13 -05:00
Pasi Kallinen
65ccd1d89e Fix double DLB definition in linux hints file 2019-11-18 09:16:51 +02:00
nhw_cron
32e61f7dd2 This is cron-daily v1-Oct-31-2019. guidebook updated: doc/Guidebook.txt 2019-11-17 20:48:40 -05:00
nhw_cron
8a6ce7d7ef This is cron-daily v1-Oct-31-2019. files updated: Files 2019-11-17 20:34:27 -05:00
nhmall
a045763f56 date bump 2019-11-17 20:19:41 -05:00
nhmall
e85646816c mark source tree as beta, previously marked work-in-progress 2019-11-17 20:06:21 -05:00
nhmall
f4cbd4e538 Merge branch 'NetHack-3.6' of https://rodney.nethack.org:20040/git/NHsource into NetHack-3.6 2019-11-17 19:57:18 -05:00
nhmall
f75939e27e re-enable ifdef'd out code during code sleuthing a while back 2019-11-17 19:55:50 -05:00
PatR
1301e3bd76 '--showpaths' dlb vs non-dlbb
Have the --showpaths feedback mention whether dlb is in use or not,
and show the container file name(s) when it is.  Users of prebuilt
binaries or who build with a hints file instead of picking and
choosing things in config.h might not know, and vms (if it ever
catches up with --showpaths) uses a different container name from
everybody else ("nh-data.dlb" instead of "nhdat").
2019-11-17 16:45:10 -08:00
nhmall
689775024c Merge branch 'NetHack-3.6' of https://rodney.nethack.org:20040/git/NHsource into NetHack-3.6 2019-11-17 19:15:02 -05:00
nhmall
57584a22d7 add some guard code to the Is_*_level macros in dungeon.h
All Is_*_level tests during early startup would test as true until
dungeon_topology was initialized in a new game or restored from
a save file. That could result in some unexpected code paths being
taken.
2019-11-17 19:13:23 -05:00
keni
e32a132a7c grammar tid 2019-11-17 18:41:03 -05:00
PatR
9ea7b074fe pager warning fix and formatting
The mapglyph() change made a variable obsolete but it got left in
(idx = SYM_PET_OVERRIDE...).  Take it out and fix up the formatting
for the block of code that had it.
2019-11-17 09:25:26 -08:00
nhmall
21e4595127 sysconf template for windows 2019-11-17 00:16:02 -05:00
nhmall
88127e2b8c Merge branch 'NetHack-3.6' of https://rodney.nethack.org:20040/git/NHsource into NetHack-3.6 2019-11-16 22:53:53 -05:00
nhmall
a364348098 add an mgflags parameter to mapglyph() to alter how it behaves internally
avoid a recent save-value,call,restore-value kludge by adding
an mgflags parameter to mapglyph() to control its behavior

 Changes to be committed:
	modified:   doc/window.doc
	modified:   include/extern.h
	modified:   include/hack.h
	modified:   src/detect.c
	modified:   src/mapglyph.c
	modified:   src/pager.c
	modified:   sys/amiga/winfuncs.c
	modified:   sys/wince/mhmap.c
	modified:   win/Qt/qt_win.cpp
	modified:   win/Qt4/qt4map.cpp
	modified:   win/X11/winmap.c
	modified:   win/curses/cursdial.c
	modified:   win/curses/cursinvt.c
	modified:   win/curses/cursmain.c
	modified:   win/gem/wingem.c
	modified:   win/tty/wintty.c
	modified:   win/win32/mhmap.c
	modified:   win/win32/mswproc.c
2019-11-16 22:49:36 -05:00
PatR
22980d8171 gas cloud fix
remove_region() calls newsym() when removing gas clouds, but when
newsym() checked whether it was updating a gas cloud location it
always got a false 'yes' because the region hadn't been removed yet.
Fixing this didn't seem to make any observable difference so it must
be followed fairly rapidly by a full vision recalc.
2019-11-16 18:31:30 -08:00
PatR
2a07924063 rename S_player_override to S_hero_override 2019-11-16 14:31:57 -08:00
PatR
145ba8ec12 ball&chain reformatting
This has been sitting around for a while.
2019-11-16 13:47:21 -08:00
PatR
2a50fb1845 place_monster() debugging
Show more information if place_monster() detects something wrong.
I don't know whether it will actually be useful.
2019-11-16 13:42:25 -08:00
nhmall
21a1dcd86c Merge branch 'NetHack-3.6' of https://rodney.nethack.org:20040/git/NHsource into NetHack-3.6 2019-11-16 16:40:40 -05:00
PatR
43e4100dd8 partial fix for #H9430 - gas clouds vs monsters
Don't show the gas cloud glyph at locations where monsters can be
sensed (telepathy, warning, extended detection).  It will work
better when/if vision of gas cloud locations gets fixed.  (Such
clouds behave as the hero can see into them, so warning doesn't
have any unseen monsters to show unless they're unseen for some
reason other than the gas cloud.)
2019-11-16 12:05:05 -08:00
PatR
020825bc73 monsters entering regions
Region processing does a lot of looping--when there are actually
regions present--and calls functions in those loops which do more
looping of their own.  This moves some of the simpler tests so that
they get done sooner and can avoid some of those function calls.
I was hoping that it would speed up the turn cycle on the Plane of
Fire where the spontaneous irregularly shaped fumaroles are composed
of a lot of small regions but I don't think there's any noticeable
difference.

In process of doing that, I discovered a bug (no doubt copy+paste
which escaped an intended update) with monster handling.  The check
for whether a monster is entering a region depends upon whether the
hero is in that same region rather than whether the monster is
already inside.  So a monster can enter a region--or have a moving
one enclose it--with impunity if the hero is already in that region.
Once the hero moves out of it, the monster will finally enter it.
2019-11-16 11:46:50 -08:00
nhmall
d74718fc2b likely final pluralization change for today 2019-11-16 14:17:11 -05:00
PatR
4d3828f6ec curses lint
'orient' is the name of an enum defined in wincurs.h so don't use it
as a variable name in cursstat.c.  My compiler didn't complain using
'-Wshadow' but apparently some other one does.

Make the same change in the dead code located in the second half of
that file, plus a couple of formatting tweaks.
2019-11-16 10:03:57 -08:00
nhmall
cdbad827fe reinstate bit - gak! 2019-11-16 10:15:55 -05:00
nhmall
340851ecf5 Revert "more pluralization"
This reverts commit 6a3dcc6a38.
2019-11-16 10:13:49 -05:00
nhmall
6a3dcc6a38 more pluralization 2019-11-16 10:08:21 -05:00
nhmall
8b1c6148f6 improve pluralization on some words ending with a k-sound
fixes #245
2019-11-16 08:27:07 -05:00
PatR
8a7169eda9 fix curses compile warning
From hardfought; latest gcc complains that /* fall through other stuff */
doesn't match its pattern for /* fall through */ comment indicating
that omitted 'break' statement is intentional and one switch case is
deliberately continuing into the code for another.
2019-11-15 19:03:11 -08:00
PatR
ae415589e9 have --showpaths show DUMPLOG file
While not a path exactly, the dumplog file isn't placed somewhere
fixed so being able to see where it is placed could be useful.

This cascaded a bit during testing.  Fix one of the warnings from
hardfought (fqn_prefix_names[]).  And a few more that came up with
SYSCF disabled (panictrace_gdb, two unused variables if files.c).
2019-11-15 17:51:20 -08:00
PatR
8d154121ca fix #H9420 - dipping while blind
Fix several feedback anomalies for dipping into potions.
2019-11-15 12:09:45 -08:00