Commit Graph

6176 Commits

Author SHA1 Message Date
Pasi Kallinen
e7d65a44cd TTY: Add compile-time option for tile data hinting
Several people have asked if 3.6.0 supports playing with tiles on
a public server. Because there's no way for the user's end to know
what that white @ is, this adds special console escape codes for
tile hinting.

The idea was originally a patch called TelnetTiles by Justin Hiltscher,
but this expanded version comes via NAO, where it's been in use for years.

This is basically an interim hack, which should go away when/if
we support actual client-server model.
2016-01-10 10:53:15 +02:00
Pasi Kallinen
653f75edc1 Add missing variable init 2016-01-10 10:09:56 +02:00
PatR
e1f8deb63f tribute: Mort 2016-01-09 18:17:15 -08:00
PatR
3a8ce3ff98 fix #H4083 - globs preID'd as "uncursed"
I think there was also a report about this during beta testing.
Killing an ooze, slime, or pudding left a glob of same which had its
bknown flag pre-set so was immediately shown as "uncursed" even to
non-priests.  Use another way to maximize glob mergability:  allow
globs to merge even when one has bknown set and the other doesn't.
2016-01-09 15:28:25 -08:00
PatR
7e3f82ed3c fix #H4187 - doppelgangers posing as Riders...
... never transform and can leave Rider corpses

Riders can't be polymorphed, and the code to prevent that was also
preventing doppelgangers in Rider form from changing shape.

Using ring of protection from shape changers effectively turned such
doppelgangers into actual Riders which would leave self-reviving
corpses.  That didn't prevent Riders from appearing on the Astral
Plane though.
2016-01-09 13:57:15 -08:00
Pasi Kallinen
1e1557ed46 Add extended command #kick
I've seen some complaints about not being able to kick with ^d
so add kick as an extended command.

Also add the missing #exploremode command to the Guidebook.
2016-01-09 13:39:47 +02:00
Pasi Kallinen
7e4e9f263a Update fixes 2016-01-09 13:16:43 +02:00
Pasi Kallinen
ff4a59ef23 Fix bz258: Covetous monsters malfunction when there are no upstairs
Make the monsters pick downstairs/ladders if the branch builds up
(like Sokoban), otherwise try upstairs/ladders.
2016-01-09 12:07:35 +02:00
Pasi Kallinen
a2a1027be1 Fix bz62: Pets walk into poison clouds
Makes monsters who would be damaged by the poison cloud
not walk into it
2016-01-09 02:25:52 +02:00
Pasi Kallinen
befc6a65b5 TTY: Add menu_overlay option
This was a request from a blind player.  It's hard to find
the left edge of the menu when it's drawn on the map, so
clear the screen and align menus to the left edge of the screen
when this option is turned off.

Originally this was called the window edge patch.
2016-01-08 22:17:40 +02:00
PatR
db234f743d integrate 'msgtype' option and Norep()
Allow 'msgtype=show' for messages that nethack uses Norep() for.
I don't know whether anyone will ever want to do that, but if felt
strange to have two different message suppression mechanisms that
were completely disconnected from each other.

For a user with no msgtype filter, there'll be no difference in
behavior.
2016-01-08 00:38:34 -08:00
Pasi Kallinen
f16e9a8890 Use plain ASCII for the database 2016-01-08 07:55:56 +02:00
Pasi Kallinen
0f5809c924 Add some new database entries 2016-01-07 22:38:33 +02:00
nhmall
8aa0d9e2cc typo spotted 2016-01-07 07:46:20 -05:00
PatR
9fae621778 fix #H4181 - strange death messages
"Petrified by <foo>, while getting stoned." -- multi_reason "while
getting stoned" explains why no last-second recovery could be made,
but doesn't explain how the petrification happened, so suppress it.

"Died of starvation, while fainted from lack of food." -- nethack
does not display this; presumeably the IRC death notices for NAO are
generated from xlogfile entries.  Change 'while fainted from lack of
food' to 'while fainted' at time of death if reason for death is
starvation.  The longer version is accurate but sounds fairly silly.

When starvation is set in motion, set it up before checking whether
the initial faint triggers falling on a wielded cockatrice corpse, so
that fainting isn't applied after recovery in case of life-saving.
2016-01-07 01:53:06 -08:00
nhmall
89a1db6480 Merge branch 'NetHack-3.6.0' of https://rodney.nethack.org:20040/git/NHsource into NetHack-3.6.0 2016-01-06 21:04:37 -05:00
nhmall
b48673425e vault Deaf bits 2016-01-06 21:04:05 -05:00
nhmall
3516f1b8db Merge branch 'NetHack-3.6.0' into win32-guitty 2016-01-06 20:59:50 -05:00
PatR
d8591be858 fix #4138 - 'text bug' for freezing moat
Freezing a moat--unlike other types of water--substitutes the type
of water (because that isn't "moat" for Medusa's level) in the freeze
message but was doing so after changing the affected terrain to ICE,
yielding "The ice is bridged with ice."
2016-01-06 17:57:39 -08:00
nhmall
a2e16cd9e6 Merge branch 'NetHack-3.6.0' of https://rodney.nethack.org:20040/git/NHsource into NetHack-3.6.0 2016-01-06 20:21:29 -05:00
PatR
22685763d1 getpos() for objects
Extend the 'm' and 'M' functionality (move cursor to nearest monster
or farthest monster, respectively, then to next nearest/next farthest
when used successively) to 'o' and 'O' for objects.

'M' was picking the wrong monster (nearest) on first use; now fixed.
Hero is now included in the monster list, and will be the last one
reached if you cycle all the way through in either direction.  (Makes
it easier to tell that you have actually been all the way through.
Unfortunately, objects don't have any seen-'em-all indicator.  Perhaps
the hero's coordinates should go on that list too?)
2016-01-06 16:47:30 -08:00
PatR
c8cd550a5a get_count() cleanup
Fix several warnings.  Accept ASCII RUBOUT (aka DELETE) in addition
to backspace.  [Should use erase_char (and add support for kill_char)
but that means pushing get_count() into the interface code.]  Guard
against user causing the count to wrap if someone ever adds a call to
get_count() which doesn't specifying a maximum value.
2016-01-06 15:37:46 -08:00
Pasi Kallinen
5d1281c9ac Make getpos monster targeting use glyph lookup 2016-01-06 21:42:45 +02:00
Pasi Kallinen
50359a3552 Fix possible lev_comp segfault when map was too tall 2016-01-06 19:49:38 +02:00
Pasi Kallinen
c8d0b04c74 Make the raven medusa level shortsighted
This prevents all of the ravens mobbing the player immediately.

Change via Dynahack by Tung Nguyen
2016-01-06 18:54:56 +02:00
Pasi Kallinen
caf872be05 Allow knife and stiletto as possible tin opening tools
Via Dynahack, original idea from K-mod by Karadoc.
2016-01-06 18:41:13 +02:00
Pasi Kallinen
0a25502593 Fix weight of containers in lev_comp 2016-01-06 18:25:50 +02:00
Pasi Kallinen
785aba242a Fix the mtrack memset 2016-01-06 18:15:04 +02:00
Pasi Kallinen
c2ceb88d3c Make vault guard accept names starting with number
Fix via Dynahack by Tung Nguyen
2016-01-06 17:28:45 +02:00
Pasi Kallinen
c740425a90 Use define for iron ball weight increment 2016-01-06 16:23:48 +02:00
Pasi Kallinen
da0e660110 Poison breath leaves a trail of poison gas clouds
Original patch by L
2016-01-06 16:05:43 +02:00
Pasi Kallinen
237c4a2787 Allow dissolving iron bars with potion of acid
Force-fight iron bars with wielded potion of acid to dissolve them

This change comes via UnNetHack by Patric Mueller.
2016-01-06 15:49:06 +02:00
Pasi Kallinen
72f55fedb5 Zapping wand of opening at yourself, unlock carried boxes 2016-01-06 14:17:11 +02:00
Pasi Kallinen
5ccfd34328 Allow picking a used inventory letter from menu when #adjusting 2016-01-06 14:05:24 +02:00
Pasi Kallinen
4c016853d4 Unify getting a count into single function 2016-01-06 13:54:09 +02:00
Pasi Kallinen
1bc05714b5 Fix bz66: Count number cannot be backspaced
... or at least partially fix it - ^H does now backspace.
I can't be bothered to dive into the (n)curses raw-mode stuff.
2016-01-06 11:50:10 +02:00
PatR
fbdeaae286 tribute: Equal Rites revisited
The number of passages felt a little light, so split one of the
long-ish ones into two.  The punchline that now ends the first one was
being watered down by continuing the text, and an interesting bit that
was left out can be added to finish the second part.  They both lose
some context but I think they work ok separately.
2016-01-06 00:45:46 -08:00
PatR
e6fa0ce809 provisional fix for bz239 - '[tty] Enter key...'
'... inconsistency in character creation menus'.

During role selection, the final 'is this ok?' menu has 'yes'
preselected so accepted <return> or <enter> to answer yes.  The
pick-role, pick-race, &c menus prior to getting to that stage didn't
have a default, so using <enter> meant nothing was chosen, and choosing
nothing was treated as a request to quit.  This changes that so it's a
request for 'random' instead.

'Provisional fix' because it ought to do this by making 'random' be a
pre-selected menu entry so that the default choice is visible.  But
that takes more effort than I'm inclined to expend on this.
2016-01-06 00:07:54 -08:00
PatR
cb4bb72631 fix getpos() m,M to move to next monster
Fixing a couple of warnings led to discovery of a couple of real bugs.
Warnings:
1) -Wshadow warning for 'dist2' variable blocking access to dist2()
   function.
2) Declaration not at top of block not allowed for C89/C90 (let alone
   for pre-ANSI).
Bugs:
3) there might be 0 visible monsters, in which case the code prior to
   qsort will call alloc(0).  I think ANSI requires malloc(0) to return
   a unique pointer which can be freed, but pre-ANSI malloc might
   return Null to satisfy it, leading to panic from nethack's alloc().
4) visible monsters in direct line with hero horizontally or vertically
   were unintentionally skipped when collecting monster locations.

I think looking at monsters is the wrong way to implement this.  It
should be scanning the map for monster glyphs instead.  (Coin toss as
to whether it should also treat statues-shown-as-monsters as if they
were monsters while doing this.  I'm leaning towards yes.  And what
about warning glyphs and instances of the remembered-invisible monster
glyph?  They aren't interesting to look at but they might provide a
shortcut to positioning the cursor near something else.)

Using '^' to move to next trap moves from hero's position to end of
hero's line, then columns 1 to N of next line, and so on to bottom
right, then top left columns 1 to N, second line 1 to N, on down to
hero's line.  Having 'm' traverse monsters from nearest to farthest
feels like a noticeable inconsistency between the two.  Especially if
you move the cursor with direction or topology keystrokes prior to 'm'.
2016-01-05 23:19:14 -08:00
Pasi Kallinen
4aeb2913cf Only requiver pickup_thrown ammo and throwing weapons 2016-01-06 04:58:37 +02:00
Pasi Kallinen
6b559d06f0 Redraw map when hilite_pile is toggled 2016-01-06 04:41:57 +02:00
Pasi Kallinen
4d919b4d1f Update fixes entries 2016-01-06 03:37:35 +02:00
Pasi Kallinen
f314fe87bd Fix unmapped branch stairs on premapped levels
This happens when levelporting to the first Sokoban level in wizard mode
before visiting the level, causing the branch stairs to not appear until
the space it is in comes in sight of the player.

The issue was that levels flagged premapped would cause the special
level coder to call sokoban_detect() before fixup_special() had a chance
to place the branch stairs properly.

Fix from Dynahack by Tung Nguyen.
2016-01-06 03:35:58 +02:00
PatR
de5ed30cd7 fix #H4179 - death reason for rotted globs
'Poisoned by a rotted gray ooze corpse' should have been
'Poisoned by a rotted glob of gray ooze'.

eatcorpse() is called for non-corpse globs and then corpse_xname()
is called for them too to set up death reason for make_sick(), but
it didn't know anything about globs.  Now it does.  Blob size is
ignored since it's not relevant for cause of death.
2016-01-05 17:29:36 -08:00
Pasi Kallinen
ed1c592a9a Remove double defines of hunger states 2016-01-06 03:23:24 +02:00
Pasi Kallinen
31f883da0d Use appropriate place description for drum of earthquake shake
Fix via Dynahack by Tung Nguyen
2016-01-06 03:17:36 +02:00
Pasi Kallinen
2c9ae20c5a Allow quickly moving cursor on monsters
Original patch was mine, but this implementation took
ideas from Dynahack by Tung Nguyen
2016-01-06 03:05:50 +02:00
PatR
d598cf536b fix #H4179 - lava vs boots
Stepping onto lava destroyed water walking boots if they weren't
fireproof but didn't do that for other types of boots unless hero
was not fire resistant and got killed by the lava.  Burn up all
non-fireproof leather boots when stepping onto lava.
2016-01-05 16:17:38 -08:00
Pasi Kallinen
fd709d6840 Clear mimic vision blocking after genocide
Fix via Dynahack by Tung Nguyen
2016-01-06 01:55:39 +02:00
Pasi Kallinen
db4120012d Make mimics mimicing walls or trees also block light 2016-01-06 01:44:18 +02:00