Commit Graph

6176 Commits

Author SHA1 Message Date
PatR
ea35773192 more getpos() help
Explain the what-is response types in the help provided when typing '?'
during getpos operation.
2016-01-19 02:19:33 -08:00
PatR
a968765a4f status conditions in Guidebook
Update the Guidebook to reflect the recently added conditions displayed
on the status lines.
2016-01-19 01:46:13 -08:00
PatR
83a4234292 whatis_coord - rename 'getpos_coord' option
Rename the option for adding coordinates to autodescribe feedback for
the '/' and ';' commands from 'getpos_coord' to 'whatis_coord', after
the '/' command that uses it instead of after the internal routine
that implements it.  The 'whatis' name was only in dat/hh as far as I
could find, so this changes it to 'what-is' and also updates dat/help
and the Guidebook to mention the name too.

Add a 'screen' choice to the option to show coordinates as row,column
rather than x,y or compass direction(s).  Revise the /m, /M, /o, /O
operations of 'what-is' to honor the whatis_coord option (mostly; a
value of 'none' gets overridden by 'map' to force coordinates).

Also, update the description of the functionality of the '/' command
in the Guidebook.  The .mn version is tested, the .tex one isn't.
2016-01-18 19:27:53 -08:00
PatR
8cd65daf39 Death misquotes 2016-01-17 15:05:34 -08:00
Pasi Kallinen
d06450817b X11: autoscroll extended command menu
When you type in the extended command menu to select a command,
scroll the window so that the selected command is always in view.
2016-01-17 13:55:13 +02:00
PatR
350dcf067b tribute streamlining
Chatting with Death doesn't always deliver a tribute Death Quote but
when it does, it wasn't giving each of them once before reusing them
even though they should have been treated the same as passage
selections from a novel.  I'm still not sure why it wasn't working
as intended, but after some revision to the tribute parsing code, now
it is.  If you #chat with Death enough times to get 20 tribute quotes,
you will see each of the 20 quotes once (in random order), then
further chatting will give them again (in different random order).
2016-01-16 17:36:48 -08:00
Pasi Kallinen
06aedee513 X11: Match new extcmd immediately if no match was found
When entering an extended command, allow the user just type
and match a new command immediately, if no match was found,
instead of needing to wait the 2.5 seconds.
2016-01-16 19:05:30 +02:00
nhmall
eee6a87b85 fixes bit 2016-01-16 06:27:05 -05:00
Pasi Kallinen
665bdebcf4 Add fixes entries 2016-01-16 12:20:25 +02:00
PatR
a32b9af88b tribute: Sourcery 2016-01-16 01:59:58 -08:00
Pasi Kallinen
04bc048073 Limit aggravate to inside or outside of the Wizard's tower
There have been several comments on IRC how the Wizard is a very
light sleeper now; aggravate cast by monsters makes him wake up
and come out of the tower.  So, lets limit aggravate to either
outside or inside of the tower, depending on which side the player is.
2016-01-16 09:45:12 +02:00
PatR
cd2f4ac225 another status bit
Accept four digits for spell power rather than hide the amount
exceeding 999.
2016-01-15 21:05:58 -08:00
PatR
6d53aaa6ff more new status - X11 'fancy' status
Update X11's status display to include the expanded set of status
conditions.  This time the order is
 Petrifying   <hunger>       Blind
 Slimed       <encumbrance>  Deaf
 Strangled    Levitating     Stunned
 Food Pois    Flying         Confused
 Term Ill     Riding         Hallucinating
with the application defaults file specifying red text for the first
column and black for the other two.  Previously it was all one column
with seven entries.  [Slimed was missing along with the six new ones
(deaf, stone, strngl, lev, fly, ride) and both types of sickness were
shown as 'FoodPois' or 'Ill' or 'FoodPois Ill' on one line.]

So now basic bot2, #if STATUS_VIA_WINDOWPORT genl_status_update, and
#if !STATUS_VIA_WINDOWPORT X11 fancy status have three different
orderings.  genl_status_update has hunger and encumbrance first
because all the other status conditions are grouped together as one
bitmask item.  bot2 has 'lev', 'fly', 'ride' last so that they're
the first things to be sacrificed if the string of status conditions
ends up being truncated.  (genl_status_update also has those last.)

In addition to updating status conditions, I reordered the Hp, Pw, &c
section too so that it's closer to tty in organization.
 Hit points    Maximum HP
 Power         Maximum Power
 Armor Class   Alignment
 Exp.Level     Exp.Points      (if 'showexp')
 Gold          Moves           (if 'time')
 Score                         (if 'showscore')
I didn't have SCORE_OR_BOTL set so haven't seen the last one, but
it's in the same position as it was before.
2016-01-15 20:56:12 -08:00
David Cohrs
7ce5225501 fix whitespace of previous commit 2016-01-15 20:50:46 -08:00
David Cohrs
4d2c82e482 Only print giant snatching boulder message when cansee pos.
Reported by a couple times directly to devteam, no bz.
2016-01-15 20:35:15 -08:00
Pasi Kallinen
9b4d52397c Fix bz51: Revived unique inherits corpse name 2016-01-15 22:02:46 +02:00
Pasi Kallinen
8efec0a547 Allow crawling out of water on Plane of Water after hurtling 2016-01-15 15:40:29 +02:00
Pasi Kallinen
c038522b9d Fix bz65: Water behaves strangely when hurtling out of air bubble
When levitating on the plane of water, get an unattached iron ball,
and throw it. You'll hurtle in the opposite direction, out of the air
bubble and into water, but don't drown.
2016-01-15 13:47:19 +02:00
PatR
60b166aad8 more new status - update genl_status_update
Make genl_status_update behave approximately the same as basic bot2
when processing the second status line.  Preferred order:
Dlvl  Gold  Hp(HpMax) Pw(PwMax) AC  Xp  Time  Conditions
Alternate orders if above exceeds COLNO (note several extra spaces
get sequeezed out).  First one is used if everything except time fits,
second one is used if everything except experience (which can be wide
if 'showexp' option is on) and time fits, third is last resort:
Dlvl Gold Hp(HpMax) Pw(PwMax) AC Xp Conditions Time
Dlvl Gold Hp(HpMax) Pw(PwMax) AC Conditions Xp Time
Hp(HpMax) Pw(PwMax) AC Conditions Dlvl Gold Xp Time

Basic bot2 currently has Conditions as
Stone Slime Strngl FoodPois TermIll <hunger> <encumbrance> Blind Deaf
 Stun Conf Hallu Lev Fly Ride
genl_status_update has
<hunger> <encumbrance> Stone Slime Strngl FoodPois TermIll Blind Deaf
 Stun Conf Hallu Lev Fly Ride
which is as close as it can get with the current field organization.

Tested by temporarily changing tty_procs.status_init and .status_update
to use genl_* instead of tty_*.
2016-01-15 03:30:40 -08:00
Pasi Kallinen
4d866a2217 bz24: Wrong floor descriptions on Planes when levitating and going down 2016-01-15 13:15:13 +02:00
Pasi Kallinen
17a4fc4492 Minor formatting fix 2016-01-15 13:02:42 +02:00
Pasi Kallinen
9f4d8d9301 Warning glyph description is wrong when trap symbol is same
This fixes bz23: Warning glyph info wrong with TRAPS=50, even
though you don't set the trap symbols via TRAPS anymore, the
bug still existed. To trigger it, use SYMBOL=S_arrow_trap:2
and look at monster that appears as warning '2'.
2016-01-15 12:38:02 +02:00
nhmall
2a0c69700f win32gui menu color attribute fix
from Alex Kompel...
2016-01-14 23:02:09 -05:00
nhmall
52b8139a4b Merge branch 'win32-guitty' into NetHack-3.6.0 2016-01-14 19:07:48 -05:00
Alex Kompel
f83e09e4ab win32_gui: fix inventory window visibility when perm_invent is set in game 2016-01-14 08:15:56 -08:00
nhmall
c756e8beb7 Merge branch 'NetHack-3.6.0' 2016-01-14 06:43:42 -05:00
PatR
fa20ef382d status line update
Adding deafness to the status line spurred me on to something I've
wanted to do for a long time.  This adds 'Stone' and 'Strngl' as
new status conditions, and moves the five fatal ones: "Stone Slime
Strngl FoodPois TermIll" to the front of the status list since
information about them is more important than any of the others.
"Ill" has been renamed "TermIll"; "Df" has been renamed "Deaf";
"Lev", "Fly", and "Ride" are three additional new conditions, with
Lev and Fly being mutually exclusive.  After the fatal ones, the
order of the rest is now
<hunger> <encumbrance> Blind Deaf Stun Conf Hallu Lev Fly Ride

To handle the longer potential status line, the basic bot2() is now
smarter.  If the line is wider than the map, 'T:moves' is moved from
the middle to the end.  If the line without time is still wider than
the map, then experience (HD if polyd, Xp:M/nnnnnn is showexp is on,
or Exp:M) is moved in front of time at the end.  If the line without
experience and time is still wider than the map, dungeon level plus
gold is moved from the beginning to be in front of experience.  The
fields are just reordered, not truncated, so if the interface code
can display lines wider than the map they'll retain the extra info.
The gist is than health and associated fields (Hp, Pw, Ac) get first
priority, status conditions get second priority, then the rest.  In
the usual case where there aren't many conditions, status display is
the same as it has been in the past.

STATUS_VIA_WINDOWPORT has been updated too, and it builds for tty
and X11.  But the bot2() revision to reorder sections has not been
implemented for that.

win/win32/mswproc.c has been updated but not tested.

STATUS_VIA_WINDOWPORT without STATUS_HILITES had several compile
problems; now fixed for core and tty.  STATUS_VIA_WINDOWPORT with
STATUS_HILITES has not been tested.
2016-01-13 19:13:10 -08:00
Pasi Kallinen
5acb659076 Add more color aliases for menucolors and statushilites 2016-01-13 20:35:06 +02:00
Pasi Kallinen
1dd37b7fca Make status hilites use same color string matching as menucolors 2016-01-13 20:27:21 +02:00
Pasi Kallinen
c49490dfd4 Rename getpos_coord values to "compass" and "map" 2016-01-13 12:21:27 +02:00
Pasi Kallinen
ef3ce49dd4 Make getpos monster/object coord picker deterministic
...and make it pick coordinates top-left to bottom-right.
2016-01-13 10:22:44 +02:00
PatR
5f6c0bd04a getpos autodescribe
Move the details of autodescribe out of getpos into a separate
routine.

I think 'cartesian' mode should be renamed 'compass' mode, and
'absolute' mode perhaps should be 'map' mode.  And we should have
a new 'screen' mode which shows rows,columns (1..N rather than
0..N-1).  For tty, row is line+2; message and prompting "window"
is row 1, line 0 of map is row 2.  Columns are straightforward
since column 0 of the map isn't used for map display:  column 1
of map is column 1 of screen.  Non-tty mostly shouldn't care and
might as well use the same conversion.
2016-01-12 23:10:31 -08:00
nhmall
fc9cf8cf89 update fixes36.1 2016-01-13 00:12:31 -05:00
nhmall
32a4859e5b show deafness indicator on status line
May as well show a deafness indicator.
2016-01-12 23:43:28 -05:00
PatR
04c39f9e91 silly thing bit
Simplify some conditionally excluded, obsolete but not yet
discarded code.

This is something else I thought I'd checked in a long time ago.
I must have clobbered pending changes to invent.c at some point.
2016-01-12 18:00:43 -08:00
PatR
7e01237dce getobj() magic marker candidate items
When applying a magic marker, only list known blank scrolls and known
blank spellbooks as likely candidates to write on.  Accepts any scroll
or book (but non-blank ones will get rejected by the writing code).
Attempting to choose some other class of item yields "that is a silly
thing to write on", same as before.

This was requested during beta testing and I'd swear that I checked it
in a long time ago, but it wasn't here.
2016-01-12 17:50:32 -08:00
PatR
a34d327159 bit of X11 reformating
Cleanup up the copyright notice in dialogs.c, and replace some tabs.
2016-01-12 02:20:43 -08:00
PatR
c5db7f57a3 X11 extended command menu
Restore the ability to select extended commands by keystroke.
The key translation stuff had gotten attached to the wrong widget.

When using keys to highlight an entry in the extended command menu,
don't reset the key-by-key handling so quickly.  (On second and
subsequent keystrokes, if you waited more than 0.5 second, the new
key started picking an extended command from scratch rather than
continuing the current one, making it pretty hard to disambiguate
commands which have the same initial letter.  Now the delay
threshold is 2.5 seconds.  In theory that should become a user-
preference resource but I don't think it's worth the effort.)

Display the help choice in response to '?'.

Clean up the formatting of the top two buttons (dismiss + help).

Start with a scroll bar if the menu is too big to fit on the screen.
Prior to this, on OSX, the full menu would be constructed but any
of it that was 'displayed' beneath the bottom of the screen was
inaccessible because it couldn't be dragged higher and couldn't be
resized to get a scroll bar (since the way to resize on OSX is by
dragging the bottom right corner--which was off the screen).

The problems I mentioned recently are still present:  when scroll
bar is present, I can click beneath it and it moves down, but
neither dragging it up nor clicking above it will move it back up.
Fortunately the recently implemented up and down arrows both work,
even after clicking/dragging starts failing.

There was a lot of trial and error involved here.  Most of it
eventually got phased out, but the mystery of 'defaultDistance'
(which is reported to be 0 but is actually 4) remains.  The screen
height stuff at the end ought to be fixed up if someone can figure
out how to get the width of a horizontal scroll bar or the height
of a title bar.  (I'm sure I used to know how to do the latter,
but that was 25 or so years ago, and in Fortran with Xlib rather
than Xt or Xaw....)
2016-01-12 02:15:35 -08:00
Pasi Kallinen
99ee354637 Fix get_count: ^H should go left instead of backspacing a count 2016-01-12 08:20:13 +02:00
Alex Kompel
da95cccc44 win32_gui: cycle accelerator letters on large menues 2016-01-11 20:54:59 -08:00
nhmall
7e52c605a9 Merge branch 'NetHack-3.6.0' into win32-guitty 2016-01-11 18:35:50 -05:00
Pasi Kallinen
6dd6584e21 Add getpos_coord to fixes file 2016-01-11 21:12:52 +02:00
Pasi Kallinen
0ee5d8ce47 Add getpos_coord option
Allows showing the coordinate when picking a position on the
map with '/' and autodescribe is on.

This is another blind player request
2016-01-11 21:10:51 +02:00
PatR
9cfc0ac5d7 getpos() 'm','M' and 'o','O'
Always include the hero's location in the set of spots for 'm',&c to
cycle through.  This way the set will never be empty so checks for that
can be dropped, and choosing initial index becomes trivial (set to 0,
then increment to reach nearest spot of interest or decrement to reach
farthest).  Also, it makes it easier for player to see when successive
'm's,&c have been through all the interesting locations if there are
multiple monsters or objects clumped near the last one in the cycle.
2016-01-10 14:42:06 -08:00
Pasi Kallinen
c902b44b5b Document fixes 2016-01-10 18:54:35 +02:00
Pasi Kallinen
854fe40609 Fix bz175: Pile mark is shown when potion is destroyed
Original bug report:

> When killing something that's carrying a potion, or death-drops a potion,
> or stands on top of a potion, with a force bolt or a wand of striking,
> "you hear something shatter" or "a potion of foo shatters" but the corpse
> is inverse as if it's (still) a pile.

Unfortunately the newsym() checks for already existing glyph, and
the gbuf doesn't distinguish between object piles and single items,
so newsym doesn't mark the location for update.

This is a dirty hack to force the newsym to update the glyph.
The glyph buffering should be revisited in a future version.
2016-01-10 18:33:41 +02:00
Pasi Kallinen
a8172e1208 Fix unreferenced variable 2016-01-10 18:24:38 +02:00
Pasi Kallinen
fe01018d90 Enable TIMED_DELAY for linux hints files
runmode is completely useless in TTY without this
2016-01-10 15:09:03 +02:00
Pasi Kallinen
c6bf49f647 Small code cleanup 2016-01-10 14:47:06 +02:00
Pasi Kallinen
65d780dc3d Add compile-time option MSGHANDLER
This was a feature request from a blind player; he wanted to
play a sound whenever a pline message was given.
2016-01-10 13:08:20 +02:00