]> granicus.if.org Git - nethack/log
nethack
6 years agofix github issue #134 - display of migrated objects
PatR [Sat, 22 Sep 2018 22:18:38 +0000 (15:18 -0700)]
fix github issue #134 - display of migrated objects

Fixes #134

An invisible hero (who can't see invisible and doesn't have autopickup
enabled) going down stairs to an object which fell down those stairs
will see the stairs instead of the object on them.  Missing newsym()
in obj_delivery() when objects aren't being passed through scatter().

6 years agoshiny object probabilities
PatR [Sat, 22 Sep 2018 21:57:55 +0000 (14:57 -0700)]
shiny object probabilities

The wishing code uses 'oc_prob + 1' so that probability 0 (never
random) objects are eligible to be selected if their name matches
a wish; collecting 'shiny' objects shouldn't do that.  (No effect
on play since there aren't any shiny objects with 0% random chance.)

rn2() takes int, and total oc_prob for entire objects[] array is
15000, so don't accumulate the target probability in a long.

6 years agosunsword vs gremlin
nhmall [Sat, 22 Sep 2018 18:08:28 +0000 (14:08 -0400)]
sunsword vs gremlin

The original report complained that gremlins seemed impervious to
Sunsword's light yet a flash from a camera caused them to cry out in pain
despite "The long sword named Sunsword begins to shine brilliantly!"

This commit does two things:
1. A dmg bonus is applied against gremlins using a lit Sunsword.
2. Gremlins will generally avoid the light emitted by Sunsword.
There's a few minor flavor bits thrown in also.

It is understood that this effectively makes Sunsword provide
"gremlin-proofing", but the gremlin myth and Sunsword's characteristic
feature pretty much demand it.

bug 42

6 years agoX11 exposed a genl_status_update negative index issue
nhmall [Sat, 22 Sep 2018 14:20:08 +0000 (10:20 -0400)]
X11 exposed a genl_status_update negative index issue

6 years agofollow-up bit
nhmall [Sat, 22 Sep 2018 13:24:20 +0000 (09:24 -0400)]
follow-up bit

6 years agoanother BL_CHARACTERISTICS fix
nhmall [Sat, 22 Sep 2018 13:11:51 +0000 (09:11 -0400)]
another BL_CHARACTERISTICS fix

With the code as it stood, receipt of BL_CHARACTERISTICS would
trigger a flush of output which may not have been the
intention.

Ensure the flush code is only on BL_FLUSH (or BL_RESET).

6 years agoMerge branch 'NetHack-3.6.2-beta01' of https://rodney.nethack.org:20040/git/NHsource...
nhmall [Sat, 22 Sep 2018 13:01:37 +0000 (09:01 -0400)]
Merge branch 'NetHack-3.6.2-beta01' of https://rodney.nethack.org:20040/git/NHsource into NetHack-3.6.2-beta01

6 years agoavoid illegal array indexes now that the enum treads beyond BL_FLUSH
nhmall [Sat, 22 Sep 2018 12:58:38 +0000 (08:58 -0400)]
avoid illegal array indexes now that the enum treads beyond BL_FLUSH

6 years agoPrevent leash showing unseen monster as "it"
Pasi Kallinen [Sat, 22 Sep 2018 12:55:26 +0000 (15:55 +0300)]
Prevent leash showing unseen monster as "it"

6 years agofix C343-331 mirrors & sleeping mon
nhmall [Sat, 22 Sep 2018 03:34:00 +0000 (23:34 -0400)]
fix C343-331 mirrors & sleeping mon

This outstanding bug was complicated slightly because the same
code was used for a sleeping mon as for a paralyzed mon so
message phrasing was called into question.

Just flip the phrasing to be about what you are able to discern
under those circumstances, which is very little, and don't have
the sleeping or paralyzed monster react to the mirror.

6 years agofixes fixes
PatR [Sat, 22 Sep 2018 01:12:42 +0000 (18:12 -0700)]
fixes fixes

Scrub a bunch of full email addresses even though they're probably
all long defunct.

6 years agotranscription bit
nhmall [Fri, 21 Sep 2018 20:36:38 +0000 (16:36 -0400)]
transcription bit

6 years agomore historical fixes info
nhmall [Fri, 21 Sep 2018 20:33:48 +0000 (16:33 -0400)]
more historical fixes info

6 years agoinclude some fixes files from older versions in the distribution
nhmall [Fri, 21 Sep 2018 18:57:12 +0000 (14:57 -0400)]
include some fixes files from older versions in the distribution
new file:   doc/fixes23.e
new file:   doc/fixes30.pl01
new file:   doc/fixes30.pl02
new file:   doc/fixes30.pl03
new file:   doc/fixes30.pl04
new file:   doc/fixes30.pl05
new file:   doc/fixes30.pl06
new file:   doc/fixes30.pl07
new file:   doc/fixes30.pl08
new file:   doc/fixes30.pl09
new file:   doc/fixes30.pl10

6 years agoanother orctown follow-up tuning bit
nhmall [Fri, 21 Sep 2018 15:54:43 +0000 (11:54 -0400)]
another orctown follow-up tuning bit

6 years agofixes bit
nhmall [Fri, 21 Sep 2018 15:42:16 +0000 (11:42 -0400)]
fixes bit

6 years agosome orctown follow-up bits, fix Bad fruit #0 and some minor tuning
nhmall [Fri, 21 Sep 2018 15:31:01 +0000 (11:31 -0400)]
some orctown follow-up bits, fix Bad fruit #0 and some minor tuning

6 years agodo_name.c cleanup
PatR [Thu, 20 Sep 2018 23:16:58 +0000 (16:16 -0700)]
do_name.c cleanup

Some formatting and several things that warrant being 'static'.

6 years agospecial levels 'grow selection'
PatR [Thu, 20 Sep 2018 22:19:50 +0000 (15:19 -0700)]
special levels 'grow selection'

Fixes #132

This is based on the commit for github pull request #132, which
indicates that the 'grow' pattern is reversed from what the .des
file specifies.  I don't understand how this is really supposed
to work and the only place nethack uses it is on the Valkyrie Home
level, which seems to be created roughly the same both before and
after this change.

6 years agoMerge branch 'mogigoma-fix-grammar-and-punctuation' into NetHack-3.6.2-beta01
nhmall [Thu, 20 Sep 2018 22:03:42 +0000 (18:03 -0400)]
Merge branch 'mogigoma-fix-grammar-and-punctuation' into NetHack-3.6.2-beta01

6 years agocannot alter doc/tmac.n
nhmall [Thu, 20 Sep 2018 22:02:48 +0000 (18:02 -0400)]
cannot alter doc/tmac.n

6 years agoMerge branch 'fix-grammar-and-punctuation' of https://github.com/mogigoma/NetHack...
nhmall [Thu, 20 Sep 2018 22:01:32 +0000 (18:01 -0400)]
Merge branch 'fix-grammar-and-punctuation' of https://github.com/mogigoma/NetHack into mogigoma-fix-grammar-and-punctuation

6 years agoinitialize a supplement buffer
nhmall [Thu, 20 Sep 2018 21:58:10 +0000 (17:58 -0400)]
initialize a supplement buffer

6 years agomissile launching traps
PatR [Thu, 20 Sep 2018 21:18:30 +0000 (14:18 -0700)]
missile launching traps

Factor some common code for missile launching traps into a seprate
routine.

Reorder the prototypes for static routines in trap.c into the same
order as theose functions appear in the file.

6 years agogrow-up of unnamed pet
PatR [Thu, 20 Sep 2018 21:09:25 +0000 (14:09 -0700)]
grow-up of unnamed pet

Change the phrasing when a pet grows up into another monster type:
(old) "The pony grows up into a horse."
(new) "Your pony grows up into a horse."
No effect if it has been assigned a name:
(before and after) "Foo grows up into a horse."

6 years agobuild bits
PatR [Thu, 20 Sep 2018 21:06:17 +0000 (14:06 -0700)]
build bits

Eliminate a few warnings:  array name used as boolean is always true,
parameter 'flags' shadows (blocks access to) global struct 'flags',
initializer discards 'const' (assigning string literal to 'char *').
Plus a couple of simplifications.

6 years agoGrammar and punctuation fixes.
Mak Kolybabi [Thu, 20 Sep 2018 03:48:43 +0000 (22:48 -0500)]
Grammar and punctuation fixes.

6 years agoMerge branch 'winX-comment-typo' of https://github.com/nikolas/NetHack into nikolas
nhmall [Thu, 20 Sep 2018 03:40:31 +0000 (23:40 -0400)]
Merge branch 'winX-comment-typo' of https://github.com/nikolas/NetHack into nikolas

6 years agosome data.base bits
nhmall [Thu, 20 Sep 2018 03:30:19 +0000 (23:30 -0400)]
some data.base bits

Take some of the entries from the github pull request.

resolves #35

6 years agoMerge branch 'fix-other-spelling-issues' of https://github.com/mogigoma/NetHack into...
nhmall [Thu, 20 Sep 2018 03:02:14 +0000 (23:02 -0400)]
Merge branch 'fix-other-spelling-issues' of https://github.com/mogigoma/NetHack into mogigoma-fix-other-spelling-issues

6 years agoFix other spelling issues.
Mak Kolybabi [Thu, 20 Sep 2018 02:46:07 +0000 (21:46 -0500)]
Fix other spelling issues.

6 years agoMerge branch 'mogigoma' into NetHack-3.6.2-beta01
nhmall [Thu, 20 Sep 2018 00:46:25 +0000 (20:46 -0400)]
Merge branch 'mogigoma' into NetHack-3.6.2-beta01

6 years agoMerge branch 'fix-dat-and-devel' of https://github.com/mogigoma/NetHack into mogigoma
nhmall [Thu, 20 Sep 2018 00:45:17 +0000 (20:45 -0400)]
Merge branch 'fix-dat-and-devel' of https://github.com/mogigoma/NetHack into mogigoma

6 years agoFix spelling and capitalization issues in `dat` and `DEVEL`.
Mak Kolybabi [Wed, 19 Sep 2018 21:55:43 +0000 (16:55 -0500)]
Fix spelling and capitalization issues in `dat` and `DEVEL`.

6 years agoFix spelling mistake in README.
Mak Kolybabi [Wed, 19 Sep 2018 20:49:07 +0000 (15:49 -0500)]
Fix spelling mistake in README.

6 years agofixes36.2 entry for the orctown changes
nhmall [Wed, 19 Sep 2018 00:19:06 +0000 (20:19 -0400)]
fixes36.2 entry for the orctown changes

6 years agoMerge branch 'NetHack-3.6.2-beta01' of https://rodney.nethack.org:20040/git/NHsource...
nhmall [Wed, 19 Sep 2018 00:16:45 +0000 (20:16 -0400)]
Merge branch 'NetHack-3.6.2-beta01' of https://rodney.nethack.org:20040/git/NHsource into NetHack-3.6.2-beta01

6 years agosome orctown tuning bits
nhmall [Wed, 19 Sep 2018 00:15:13 +0000 (20:15 -0400)]
some orctown tuning bits

6 years agofix #H7396 - wishing for "orange"
PatR [Tue, 18 Sep 2018 23:30:58 +0000 (16:30 -0700)]
fix #H7396 - wishing for "orange"

Wishing for "orange" might grant an orange, but it might give an
orange gem, orange potion, or orange spellbook instead (but never
orange dragon scales or orange dragon scale mail).  Force the food
object to be an exact match so wishing always produces an orange.

6 years agoGnomish Mines changes involving "Orctown" level variant
nhmall [Tue, 18 Sep 2018 22:35:13 +0000 (18:35 -0400)]
Gnomish Mines changes involving "Orctown" level variant
 Changes to be committed:
modified:   include/decl.h
modified:   include/dungeon.h
modified:   include/extern.h
modified:   include/hack.h
modified:   src/decl.c
modified:   src/do_name.c
modified:   src/dog.c
modified:   src/dokick.c
modified:   src/makemon.c
modified:   src/mkmaze.c
modified:   src/mkobj.c
modified:   src/pager.c

This commit is an attempt to address the complaints about
the orc town variation taking away lots of stuff that is
normally available in mine town. The statement in the level
description says "A tragic accident has occurred in Frontier
Town...It has been overrun by orcs."

The changes in this commit attempt to uphold that premise,
while making things a bit more interesting and perhaps
more palatable for the player.

This update does the following in keeping with the mythos:
- While many of the orcs still remain to wander about the
  level, many of the orcs took off deeper into the mines with
  some of the stuff that they plundered. You may now be
  able to hunt some of it down.

- Adds some appearance of this particular horde of marauding
  orcs working as part of a larger collective.

- This evolves the Orc Town mine town variation into a
  a feature over multiple levels of The Gnomish Mines,
  rather than just the single-level "feature" that it was
  previously.

- You may have to work longer and a bit harder for some
  things than other mine town variations, but at least with
  these changes, there is hope that some of it may be found
  elsewhere.

Game mechanics notes (maybe spoily?)

- Add mechanism to place objects into limbo (okay, really
  place them onto the migrating_objs list for transferring
  between levels etc.) and destine them
  to become part of the monster inventory of a particular
  species. In this particular usage case, it's using the
  M2_ORC flag setting to identify the recipients.

- At present, there is no mechanism in the level compiler
  for placing objects onto the migrating objects, nor
  with more sophisticated landing logic, so a somewhat
  kludgy hard-coded fixup and supporting routines were used.
  Some day the need for that might change if additional
  capabilities move to the level compiler.

This is a NetHack-3.6.2-beta01 update. Please give it a workout.

Fixes #127

6 years agofix #H7060 - polymorph zap vs long worm
PatR [Tue, 18 Sep 2018 01:28:49 +0000 (18:28 -0700)]
fix #H7060 - polymorph zap vs long worm

A polymoprh zap which creates a long worm can hit and transform the
same monster again depending upon tail segment placement.  Similar
behavior occurs if monpolycontrol is set in wizard mode and player
chooses 'long worm' for what to transform an existing one into (in
which case polymorph fails and zap might hit that same worm again
in another segment, prompting player to choose its new shape again).

Simplest fix would be to make tail segments be immune to polymorph,
but that would prevent players from deliberately attacking the tail
(for polymorph attacks only).  Next simplest would be to make long
worms M2_NOPOLY so that polymorph can't create them, then just live
with multiple promptings when monpolycontrol is set.  This fix
tracks whether a long worm has just been created via polymorph (or
explicitly retained its shape via monpolycontrol) and makes further
hits on same creature on same zap have no effect.  It does so by
setting mon->mextra->mcorpsenm to PM_LONG_WORM when a long worm is
result of polymorph, and setting context.bypasses to get end-of-zap
cleanup.  (It doesn't bother discarding mon->mextra if reset of
mcorpsenm leaves mextra empty.)

6 years agotry to coax an error code for display on tile_file failure
nhmall [Mon, 17 Sep 2018 19:46:47 +0000 (15:46 -0400)]
try to coax an error code for display on tile_file failure

If the underlying error is that Windows LoadImage() just
wasn't happy with the format of the image file, you'll just
get a 0x0 result, which won't help much.

If, however, it shows a 0x2 result that means it couldn't
find the file to load it.

6 years agofix #H7157 - cancel self as clay golem
PatR [Sun, 16 Sep 2018 02:23:29 +0000 (19:23 -0700)]
fix #H7157 - cancel self as clay golem

The report was "doesn't kill even if unchanging", but it does cause
rehumanize() when not Unchanging, the same thing that happens when
you die due to loss of hit points.  But losing the activating word(s)
and then having Unchanging retain the clay golem shape does seem
wrong, so make losing the word(s) while being unable to revert to
normal form be fatal.

Poly'd hero (without Unchanging) reverts to normal when cancelled,
so make monsters behave that way.  Previously, only werecritters in
beast form were forced to human form.  This changes cancellation to
make shapechangers and hiding mimics take on normal form too.

Cancelled shapechangers now behave as if the hero has the
Protection_from_shape_changes attribute and will be unable to change
their shape (after having been forced into normal form).  Getting
polymorphed in any fashion uncancels them prior to giving new shape.
[There may be some newcham() situations that should be disallowed
when cancelled rather proceeding and consequently uncancelling.]

6 years agoUse is_hole macro to check for trapdoors and holes
Pasi Kallinen [Sat, 15 Sep 2018 14:57:57 +0000 (17:57 +0300)]
Use is_hole macro to check for trapdoors and holes

6 years agoUse is_pit macro to check for (spiked) pit
Pasi Kallinen [Sat, 15 Sep 2018 14:19:26 +0000 (17:19 +0300)]
Use is_pit macro to check for (spiked) pit

6 years agoUpdate commented out perm_invent stuff
Pasi Kallinen [Sat, 15 Sep 2018 08:29:13 +0000 (11:29 +0300)]
Update commented out perm_invent stuff

6 years agofix #H7156 - perm_invent
PatR [Sat, 15 Sep 2018 00:34:33 +0000 (17:34 -0700)]
fix #H7156 - perm_invent

Bug report #H7156 listed three items, all relating to perm_invent:
1) it shouldn't persist across save/restore since restore might be
   on a system which doesn't have enough room to display it (report
   actually complained that config file setting was ignored when
   restoring old games, which is an expected side-effect for options
   that persist across save/restore);
2) permanent inventory wasn't updated when using scroll of charging;
3) attempts to update permanent inventory during restore could lead
   to crash if it tries to access shop cost for unpaid items.
Items (2) and (3) have already been fixed.  This fixes (1).

Replace 'flags.perm_invent' with a dummy flag, preserving save files
while removing it from flags.  Add 'iflags.perm_invent' to hold the
value of the perm_invent option.

The win32 files that are updated here haven't been tested.  Whichever
branch contains the curses interface needs to be updated; ditto for
any other pending/potential interfaces which support perm_invent.

6 years agogit pull request #133 - reassess worn equipment
PatR [Fri, 14 Sep 2018 22:08:22 +0000 (15:08 -0700)]
git pull request #133 - reassess worn equipment

Fixes #133

Monsters who lost an amulet of life saving while having their life
saved wouldn't attempt to put on another amulet unless/until they
picked up some object.  Likewise if they had a worn item stolen.
(There are probably other events which should re-check worn gear.)

The suggested commit had a life-saved monster re-check equipment
during life-saving which might have led to reports about them
effectively getting extra moves, especially if two-weapon fighting
or zap rebound with sequence of kill/life-save/kill-again allowed
the target to put on a replacement amulet of life-saving prior to
the second kill.  It also wasn't amenable to dealing with stolen
equipment.  This alternate fix sets a flag to have monster check
its equipment on its next move.

6 years agoHandle monsters inside the invocation area
Pasi Kallinen [Fri, 14 Sep 2018 18:49:02 +0000 (21:49 +0300)]
Handle monsters inside the invocation area

6 years agoMimics created by #wizgenesis blocked vision incorrectly
Pasi Kallinen [Fri, 14 Sep 2018 18:07:08 +0000 (21:07 +0300)]
Mimics created by #wizgenesis blocked vision incorrectly

6 years agofix #H7385 - double trap activation when jumping
PatR [Fri, 14 Sep 2018 00:10:25 +0000 (17:10 -0700)]
fix #H7385 - double trap activation when jumping

Jumping performs the placement of the last step after using hurtle()
to move to the destination, so if hurtle() triggered a trap then it
would happen twice.  Report was for a Sokoban pit but it would happen
for fire traps too.  Other traps would yield "you pass over <trap>"
while hurtling and then trigger the trap when landing.  Have
hurtle_step() ignore a trap for the last step of a jump, leaving it
to the jump's landing to handle.

Also, give feedback when hurtling over water or lava, similar to what
happens when passing over a previously seen trap which doesn't
activate.

6 years agotty column placement of BL_HUNGER and BL_CAP could collide
nhmall [Wed, 12 Sep 2018 23:42:45 +0000 (19:42 -0400)]
tty column placement of BL_HUNGER and BL_CAP could collide

Change the placement of the code that makes a replica of the
current status fields for later comparison.

A loop shortcut was causing it to be skipped under some
circumstances and that was negatively impacting the placement
of status field values that were further to the right.

6 years agoQt: Remember the tile and font size
Pasi Kallinen [Wed, 12 Sep 2018 15:42:29 +0000 (18:42 +0300)]
Qt: Remember the tile and font size

The QT_TILEWIDTH and QT_TILEHEIGHT read from NetHack config file
override the remembered settings.
Also set the smallest tile size to 6x6

6 years agoRemove unnecessary spaces from couple messages
Pasi Kallinen [Tue, 11 Sep 2018 12:39:13 +0000 (15:39 +0300)]
Remove unnecessary spaces from couple messages

6 years agoheed OPTIONS=symset:default in config file in windows and msdos
nhmall [Mon, 10 Sep 2018 19:27:05 +0000 (15:27 -0400)]
heed OPTIONS=symset:default in config file in windows and msdos

6 years agofixes update
Pasi Kallinen [Mon, 10 Sep 2018 18:32:30 +0000 (21:32 +0300)]
fixes update

6 years agoQt4: Hide buttons not matching typed command
Ray Chason [Mon, 28 May 2018 03:32:49 +0000 (23:32 -0400)]
Qt4: Hide buttons not matching typed command

There are way too many buttons on the extended command window.
Let the user type a letter or two, and hide the buttons that don't
match.

6 years ago-ansi -pedantic can't come after -std=c++11
Ray Chason [Thu, 24 May 2018 03:38:11 +0000 (23:38 -0400)]
-ansi -pedantic can't come after -std=c++11

6 years agoQt on Win32: changes needed for Win32
Ray Chason [Thu, 24 May 2018 03:20:47 +0000 (23:20 -0400)]
Qt on Win32: changes needed for Win32

* Fix an include directory
* Use strchr instead of index
* play_usersound conflicts with another function

6 years agoQt on Win32: add stub for Qt window_procs
Ray Chason [Thu, 24 May 2018 03:20:21 +0000 (23:20 -0400)]
Qt on Win32: add stub for Qt window_procs

6 years agoQt on Win32: resolve conflict over boolean type
Ray Chason [Thu, 24 May 2018 03:19:54 +0000 (23:19 -0400)]
Qt on Win32: resolve conflict over boolean type

6 years agoIgnore Win32 build products
Ray Chason [Thu, 24 May 2018 03:19:35 +0000 (23:19 -0400)]
Ignore Win32 build products

6 years agoAdd build configuration for Qt 4 and 5
Ray Chason [Thu, 24 May 2018 03:18:55 +0000 (23:18 -0400)]
Add build configuration for Qt 4 and 5

6 years agoWin32: delete the o directory only if it exists
Ray Chason [Thu, 24 May 2018 03:16:12 +0000 (23:16 -0400)]
Win32: delete the o directory only if it exists

6 years agoAdd -lgdi32 to conlibs, needed to link
Ray Chason [Thu, 24 May 2018 03:15:22 +0000 (23:15 -0400)]
Add -lgdi32 to conlibs, needed to link

6 years agoLinux and Mac: ignore .moc files created in src
Ray Chason [Thu, 24 May 2018 03:14:14 +0000 (23:14 -0400)]
Linux and Mac: ignore .moc files created in src

6 years agoAdd build products to make spotless
Ray Chason [Thu, 24 May 2018 03:12:28 +0000 (23:12 -0400)]
Add build products to make spotless

Win32 Makefile.gcc now cleans up all build products except the binary
directory.

6 years agoNew hints file for Qt 5 on Mac OS X
Ray Chason [Thu, 24 May 2018 03:02:06 +0000 (23:02 -0400)]
New hints file for Qt 5 on Mac OS X

6 years agoQt4: Fix compile warning
Pasi Kallinen [Mon, 10 Sep 2018 18:09:58 +0000 (21:09 +0300)]
Qt4: Fix compile warning

6 years agoQt4 moc is moc-qt4
Pasi Kallinen [Mon, 10 Sep 2018 18:06:34 +0000 (21:06 +0300)]
Qt4 moc is moc-qt4

At least on my Debian, the Qt4 MOC is now called moc-qt4,
when it used to be just moc - probably due to Qt5 being moc-qt5

6 years agoProvide Qt 5 configuration on Linux
Ray Chason [Thu, 24 May 2018 02:59:47 +0000 (22:59 -0400)]
Provide Qt 5 configuration on Linux

* CXX specifies -std=gnu++11
* WINQT5LIB variable added
* Hints file can specify CXX and MOC

6 years agowin32 gui bits
nhmall [Sat, 8 Sep 2018 12:54:35 +0000 (08:54 -0400)]
win32 gui bits

fix an index out-of-bounds
status hitpoint bar behavior at zero hp to match tty

6 years agoweb spinning
PatR [Sat, 8 Sep 2018 01:12:03 +0000 (18:12 -0700)]
web spinning

This started as some formatting cleanup but I've added a couple of
additional terrain features which can act as web support (stairs up
and ladder up).

The message "<Spider> spins a web" was given if you could detect or
sense <spider> rather than see it.  I've changed that to only happen
if you see the new web appear rather than the critter spinning it
(it only becomes an unseen trap if you don't watch it appear).

After spinning a web, a spider can't spin another one until 4d4 moves
have elapsed.  That seems suitable when the spider can be seen but
isn't really adequate throttling when the spider is far away--it can
end up spinning a lot of webs by the time you get to its vicinity.
Perhaps it shouldn't be able to spin a new web if there is already
one with N steps of its location?

6 years agoSpiders will occasionally spin webs
Pasi Kallinen [Fri, 7 Sep 2018 17:26:14 +0000 (20:26 +0300)]
Spiders will occasionally spin webs

Idea and code inspired by aosdict

6 years agoarg type mismatch
PatR [Thu, 6 Sep 2018 23:28:42 +0000 (16:28 -0700)]
arg type mismatch

This was right in 3.4.3 but got changed way back in 2004.
No effect on play and unlikely to be complained about by any
compiler.

6 years agohilite_status type 'up' or 'down' vs strings
PatR [Thu, 6 Sep 2018 12:26:21 +0000 (05:26 -0700)]
hilite_status type 'up' or 'down' vs strings

The temporary highlight types 'goes-up' and 'goes-down' aren't useful
for the three string status fields (title, dungeon-level, alignment)
since the string values might go up when the underlying value goes up
or might go down instead (and similarly for down, down, up).  The code
involved can compare strings but the values are effectively arbitrary
so the comparison is only really useful for same vs changed.  This
treats types 'up' and 'down' for strings as 'changed' when coming from
config file and no longer offers them as choices when using 'O'.

Config file parsing perhaps ought to treat them as errors instead.

6 years agohitpointbar bit for prior commit
nhmall [Thu, 6 Sep 2018 00:47:16 +0000 (20:47 -0400)]
hitpointbar bit for prior commit

6 years agostop tty hitpointbar from jumping to 100% health at zero hit points
nhmall [Thu, 6 Sep 2018 00:21:59 +0000 (20:21 -0400)]
stop tty hitpointbar from jumping to 100% health at zero hit points

6 years agoanother mswproc bit - remove enum values from comments
nhmall [Mon, 3 Sep 2018 12:52:16 +0000 (08:52 -0400)]
another mswproc bit - remove enum values from comments

6 years agomswproc.c bit
nhmall [Mon, 3 Sep 2018 12:49:47 +0000 (08:49 -0400)]
mswproc.c bit

6 years agostatus_update distinguish new BL_RESET from BL_FLUSH
nhmall [Mon, 3 Sep 2018 12:18:18 +0000 (08:18 -0400)]
status_update distinguish new BL_RESET from BL_FLUSH

This adds BL_RESET to status_update to send a flag to a window
port that every field should be updated because something has
happened in the core to make current values shown to be
untrustworthy or potentially obliterated.

That is now distinguished from BL_FLUSH, which now has no
bearing on whether every field needs to be redone, and instead
can be used by a window port indicator that it is time to render
any buffered status field changes to the display.

tty port now sets WC2_FLUSH_STATUS indicator for BL_FLUSH support
and now does one rendering per bot() call, instead of up to 22.

Side note: The tty hitpoint bar code was relying on the old
behavior of redrawing everything upon BL_FLUSH apparently, so it
initially had some color change lag issues, corrected by marking
BL_STATUS as dirty (in need of updating) in tty_status_update()
whenever BL_HP was marked as dirty.

6 years agoensure BL_FLUSH always sent when context.botlx is set
nhmall [Sun, 2 Sep 2018 22:26:42 +0000 (18:26 -0400)]
ensure BL_FLUSH always sent when context.botlx is set

ensure BL_FLUSH always gets sent down to the window port whenever bot() is
called with context.botlx set so that status updates work as
expected after full screen clear after a level change

Fixes #107

6 years agotransformation message when you apply a figurine
nhmall [Sun, 2 Sep 2018 22:20:40 +0000 (18:20 -0400)]
transformation message when you apply a figurine

make the transformation message of a deliberate apply of a figurine seem
a bit less definite when blind. Put 'I' unseen monster marker at the spot
you expect it to be.

6 years agoRevert "transformation message when you apply a figurine"
nhmall [Sun, 2 Sep 2018 22:11:03 +0000 (18:11 -0400)]
Revert "transformation message when you apply a figurine"

This reverts commit e2b187f2f1e38987ece327f43ae6500ce5cd5567.

6 years agoRevert "ensure BL_FLUSH always gets sent down to the window port whenever bot() is"
nhmall [Sun, 2 Sep 2018 22:10:40 +0000 (18:10 -0400)]
Revert "ensure BL_FLUSH always gets sent down to the window port whenever bot() is"

This reverts commit ee4c12b2388981926577d8095c314ab3490aff93.

6 years agoensure BL_FLUSH always gets sent down to the window port whenever bot() is
nhmall [Sun, 2 Sep 2018 22:05:16 +0000 (18:05 -0400)]
ensure BL_FLUSH always gets sent down to the window port whenever bot() is
called with context.botlx set so that status updates work as
expected after full screen clear after a level change

Fixes #107

6 years agotransformation message when you apply a figurine
nhmall [Sun, 2 Sep 2018 21:54:00 +0000 (17:54 -0400)]
transformation message when you apply a figurine

make transformation message of a deliberate apply of a figurine seem a bit
less definite when blind. Put 'I' unseen monster marker at the spot you
expect it to be.

6 years agoquiet a new visual studio compiler complaint from recent code change
nhmall [Sat, 1 Sep 2018 19:07:19 +0000 (15:07 -0400)]
quiet a new visual studio compiler complaint from recent code change

..\src\hack.c(2553): warning C4113: 'int (__cdecl *)()' differs in parameter lists from 'int (__cdecl *)(void)'

6 years agoMerge branch 'NetHack-3.6.2-beta01' of https://rodney.nethack.org:20040/git/NHsource...
nhmall [Sat, 1 Sep 2018 18:54:36 +0000 (14:54 -0400)]
Merge branch 'NetHack-3.6.2-beta01' of https://rodney.nethack.org:20040/git/NHsource into NetHack-3.6.2-beta01

6 years agoreports on windows of partial status lines after level change
nhmall [Sat, 1 Sep 2018 18:52:47 +0000 (14:52 -0400)]
reports on windows of partial status lines after level change

tty: turn off an optimization that is the suspected cause of Windows reported
partial status lines following level changes. It was turned on for
        non-unix platforms only

6 years agoSplit pickup checks out of dopickup
Pasi Kallinen [Sat, 1 Sep 2018 17:45:51 +0000 (20:45 +0300)]
Split pickup checks out of dopickup

6 years agoFix pickup awful hack
Pasi Kallinen [Sat, 1 Sep 2018 16:42:23 +0000 (19:42 +0300)]
Fix pickup awful hack

If pickup has been bound to some other key than ',', the awful hack
did not work correctly. Testing, I couldn't notice the difference,
but probably just not doing the right thing...

6 years agoadjust wizidentify title and prompt
nhmall [Sat, 1 Sep 2018 15:16:08 +0000 (11:16 -0400)]
adjust wizidentify title and prompt

6 years agowizidentify suppress unnecessary prompt; allow individual items for perm ID
nhmall [Sat, 1 Sep 2018 14:43:26 +0000 (10:43 -0400)]
wizidentify suppress unnecessary prompt; allow individual items for perm ID

Don't display the selection to identify all items if there are none.

Complete an item marked ToDo in cmd.c: allow selection of one or more
particular items to permanently identify rather than just all or nothing.

6 years agoGuidebook update
PatR [Thu, 30 Aug 2018 22:42:06 +0000 (15:42 -0700)]
Guidebook update

I noticed that the description of ^O still referred to the 3.6.0
behavior (either #wizwhere or #overview depending upon play mode)
rather than the 3.6.1 behavior (unconditional #overview).

While updating that I changed a bunch of "Wizard-mode" references
to "Debug mode" which is the proper end-user name.

I slightly expanded the descriptions of #wizdetect, #wizgenesis,
\#wizintrinsic, WIZKIT, and Debug mode, and removed at least one
out of date reference to debug mode being a conditional feature.

And for most of the stuff I was looking at, I changed the nroff
source to honor the roff guideline of having each sentence start
on its own line (and also the latex source to use those same line
breaks even though they don't need it).

Not done:  a lot of quoted single characters use 'c' instead of `c'
(pair of ticks rather than back-tick and normal tick).  One form
or the other should be changed so that they're all consistent.
I'm pretty this was mentioned the last time it was formatted for
the web site.

Guidebook.mn has been tested, Guidebook.tex has not.

6 years agoUse DEADMONSTER instead of checking mhp
Pasi Kallinen [Thu, 30 Aug 2018 17:05:18 +0000 (20:05 +0300)]
Use DEADMONSTER instead of checking mhp

6 years agofix wiz identify bugs
PatR [Thu, 30 Aug 2018 02:19:49 +0000 (19:19 -0700)]
fix wiz identify bugs

Fixes #124

Fix github pull request #124 which was also reported directly (but not
through the contact form so #Hxxx number).  Using ^I or #wizidentify
displays inventory with everything ID'd for that command only and adds
a menu entry "_ - use '^I' to identify" that can be chosen to make
those ID's persistent.  Picking underscore would work but picking the
alternate '^I' wouldn't work if the platform had unsigned characters
for plain 'char'.  Switch the return value from magic number -1 to
magic number ^I which isn't a valid inventory letter and isn't subject
to sign conversion.  Casting -1 to '(char) -1' would have worked too
despite some confusion expressed in discussion of the pull request.

If ^I has been bound to some other command and #wizidentify hasn't
been bound to any keystroke, temporary ID didn't disclose any extra
information (ie, acted like ordinary inventory display) and the extra
menu entry to make temporary ID become persistent wasn't available.
This fixes that too.

6 years agoDocument windowcolors option
Pasi Kallinen [Wed, 29 Aug 2018 16:39:30 +0000 (19:39 +0300)]
Document windowcolors option

6 years agoSplit string parsing and monster creation out of create_particular
Pasi Kallinen [Tue, 28 Aug 2018 16:52:15 +0000 (19:52 +0300)]
Split string parsing and monster creation out of create_particular

6 years agoFix monsters not wielding digging implements
Pasi Kallinen [Tue, 28 Aug 2018 14:41:18 +0000 (17:41 +0300)]
Fix monsters not wielding digging implements

My change to unify the pet and monster digging weapon choosing
made monsters not actually wield the chosen weapon, even though
they could still dig as if they did. Pets behaved properly.

Also add an explicit check for IS_STWALL so they won't keep
switching away from their current weapon until needed.