Commit Graph

5660 Commits

Author SHA1 Message Date
nhmall
e323a68dc7 unintended change fix 2019-12-22 18:53:39 -05:00
nhmall
308943aea4 groundwork for window port interface change to add_menu
groundwork only - window port interface change

This changes the last parameter for add_menu() from a boolean
to an unsigned int, to allow additional itemflags in future
beyond just the "preselected" that the original boolean offered.

There shouldn't be any functionality changes with this groundwork-only
change, and if there are it is unintentional and should be reported.
2019-12-22 18:28:24 -05:00
PatR
0f1284f068 wielding partial stack
If you're wielding a stack of N items, issuing the command to quiver
them asks whether you want to quiver N-1 of them (implicitly leaving
one wielded).  If you answer no then you're asked whether to quiver
all of them.  You could also give a count when picking the item to be
quivered and the stack would be split based on that.

However, if you have a stack of N items quivered, issuing the command
to wield them just did so, leaving the quiver empty.  And picking an
item ignored any count, so even explicitly asking for 1 (out of N)
wielded the whole stack.  Change 'w' to parallel 'Q'; if you try to
wield a quivered stack, you'll be asked whether to wield just 1 of
them.  For no, ask whether to wield the whole stack.  Or you can give
an explicit count when picking any stack in inventory to wield.

Both 'w' and 'Q' probably ought to handle the alternate/secondary
weapon similarly when it contains a stack.  This doesn't address that.
2019-12-22 14:51:05 -08:00
nhmall
9c0e8190eb urealtime.realtime was being calculated incorrectly
Looks like a merge gone awry perhaps.

Fixes #270
2019-12-22 17:23:18 -05:00
nhmall
4079c50cb3 urealtime.realtime was being incorrectly calculated
Looks like a branch merge gone awry perhaps.

fixes #270
2019-12-22 17:21:02 -05:00
PatR
c3fb94104b 'quick_farsight' option
Bite the bullet and add a special purpose boolean option to control
game behavior for random clairvoyance.  When objects or monsters are
discovered, it normally issues "you sense your surroundings" and
performs a getpos() operation which allows the player to browse the
map by moving the cursor around and getting 'autodescribe' feedback.
But there have been complaints that once the hero has the Amulet
(which triggers random clairvoyance even though hero isn't flagged
as having that attribute) the message and pause-to-browse become too
intrusive.

This was initially combined with the 'timed clairvoyance' fix because
they both bump EDITLEVEL to invalidate existing save files, but their
details don't interact so I separated them.
2019-12-22 13:40:59 -08:00
PatR
48a82fea8c fix github issue #266 - timed clairvoyance
When the hero has random clairvoyance, the code used
| (moves % 15) == 0 && rn2(2) != 0
(where 'moves' is actually the turn number) to decide when it would
kick in and show a portion of the map.  If the hero was fast enough
to get an extra move when the turn value met the (moves % 15) == 0
condition then clairvoyance could happen twice (or more if poly'd)
on the same turn.

The changes (one new field, reordering a few others) in 'struct
context' invalidate existing 3.7.0-x save files.

Fixes #266
2019-12-22 13:30:25 -08:00
nhmall
0bcebf7343 compiler warnings 2019-12-20 20:56:01 -05:00
Pasi Kallinen
2c3be8ebe1 Prevent accessing outside the mons array 2019-12-20 15:19:14 +02:00
Pasi Kallinen
98cb3ff161 Prevent fuzzer using wizloadlua and wizloaddes
Otherwise the fuzzer will enter a nonexistent file name, and stop.
2019-12-20 13:48:39 +02:00
nhmall
98976b3141 Merge branch 'NetHack-3.6' 2019-12-18 07:38:59 -05:00
nhmall
9815cceae6 Merge branch 'NetHack-3.6' of https://rodney.nethack.org:20040/git/NHsource into NetHack-3.6 2019-12-17 23:18:06 -05:00
nhmall
5f0d06fb80 update and simplify the windows portable_device_paths sysconf option
Requires a sysconf file in the windows executable directory in order to work
2019-12-17 23:16:44 -05:00
PatR
8349d95992 ceiling hiders vs '>'
Poly'd hero hiding on the ceiling was told "you can't go down here"
if using '>' at a spot that didn't have down stairs, trap door, hole,
or pit.  Let '>' bring a ceiling hider out of hiding; lurker above
resumes flying, piercer falls to floor or whatever is underneath it.
2019-12-17 19:08:26 -08:00
PatR
512f886ca6 wizard mode wishing for terrain
Fix some issues noticed when experimenting with ceiling hiders.
They're all blind (at least without the monks' Eyes) and some of
the behavior while blind seemed to be incorrect (though some that
I thought was wrong turned out to be ok; feel_newsym() won't update
the map if the hero can't reach the floor).  Fixing that made me
notice that some terrain side-effects (being underwater or stuck in
lava) weren't getting disabled when the underlying terrain wasn't
the corresponding type anymore.
2019-12-17 18:14:08 -08:00
PatR
f001de7954 parse_conf_file fix fix 2019-12-17 15:41:58 -08:00
nhmall
17feb01d8f Merge branch 'NetHack-3.6' 2019-12-17 14:39:15 -05:00
nhmall
853a4608f0 Merge branch 'housekeeping-to-merge-at-3.6.4-release' into NetHack-3.6 2019-12-17 14:19:20 -05:00
PatR
f4a840a48f fix potential buffer overflow loading config file 2019-12-17 14:17:55 -05:00
nhmall
74a5339a5e housekeeping updates for 3.6.4
typos

README update
2019-12-17 14:11:52 -05:00
nhmall
5d4208cd15 Merge branch 'NetHack-3.6' 2019-12-17 12:01:49 -05:00
nhmall
2cff164c42 clinger messaging 2019-12-17 11:47:25 -05:00
nhmall
90e4ffc0a0 flying hero should be able to pass through a hole using '>' 2019-12-17 11:32:25 -05:00
nhmall
51b02a7584 correct revision of one file on the commit 2019-12-17 01:07:53 -05:00
nhmall
ac6e13fd7a allow run-from-removable-device configuration on Windows
Allow a way to configure NetHack to run entirely from a USB stick
or other removable device in a way that allows everything to
reside entirely on the USB stick, and nothing on the computer's
hard drive. That could be done in versions prior to 3.6.3.

Sample:

i: is a USB stick

i:\nhdist contains the NetHack Windows distribution and a sysconf
file dropped into that distribution with the following entry in it:
	portable_device_top = nethack

No device is included in the portable_device_top entry, the device
is always the device that the nethack exe resides on. If you try
to specify a device in the portable_device_top path, the device
portion will be ignored.

portable_device_top specifies the folder on the device that is writable
by NetHack and as such it cannot be the same folder that the executable
resides in.

i:\nhdist\nethack --showpaths
Variable playground locations:
    [hackdir   ]="i:\nethack\"
    [leveldir  ]="i:\nethack\"
    [savedir   ]="i:\nethack\"
    [bonesdir  ]="i:\nethack\"
    [datadir   ]="i:\nhdist\"
    [scoredir  ]="i:\nethack\"
    [lockdir   ]="i:\nethack\"
    [sysconfdir]="i:\nhdist\"
    [configdir ]="i:\nethack\"
    [troubledir]="i:\nethack\"
NetHack's system configuration file (in sysconfdir):
    "i:\nhdist\sysconf"
The loadable symbols file (in sysconfdir):
    "i:\nhdist\symbols"
Basic data files (in datadir) are collected inside:
    "i:\nhdist\nhdat363"
No end-of-game disclosure file (disabled).
Writable folder for portable device config (sysconf portable_device_top):
    "i:\nethack\"
Your personal configuration file (in configdir):
    "i:\nethack\.nethackrc"

Without that sysconf file in the NetHack distribution folder on the
USB stick with the 'portable_device_top = '  entry, the paths
return to the default locations for 3.6.3 on Windows:

i:\nhdist\nethack --showpaths
Variable playground locations:
    [hackdir   ]="C:\Users\JaneDoe\NetHack\3.6\"
    [leveldir  ]="C:\Users\JaneDoe\AppData\Local\NetHack\3.6\"
    [savedir   ]="C:\Users\JaneDoe\AppData\Local\NetHack\3.6\"
    [bonesdir  ]="C:\ProgramData\NetHack\3.6\"
    [datadir   ]="i:\nhdist\"
    [scoredir  ]="C:\ProgramData\NetHack\3.6\"
    [lockdir   ]="C:\ProgramData\NetHack\3.6\"
    [sysconfdir]="C:\ProgramData\NetHack\3.6\"
    [configdir ]="C:\Users\JaneDoe\NetHack\"
    [troubledir]="C:\Users\JaneDoe\NetHack\3.6\"
NetHack's system configuration file (in sysconfdir):
    "C:\ProgramData\NetHack\3.6\sysconf"
The loadable symbols file (in sysconfdir):
    "C:\ProgramData\NetHack\3.6\symbols"
Basic data files (in datadir) are collected inside:
    "i:\nhdist\nhdat363"
No end-of-game disclosure file (disabled).
Your personal configuration file (in configdir):
    "C:\Users\JaneDoe\NetHack\.nethackrc"
2019-12-17 00:41:55 -05:00
nhmall
edd9d5b810 flying hero should be able to pass through a hole using '>' 2019-12-16 00:25:20 -05:00
nhmall
b956e1a205 silence some compiler warnings that showed up recently 2019-12-15 14:03:25 -05:00
Pasi Kallinen
b24f4c5929 Expose traps to lua 2019-12-15 18:16:41 +02:00
nhmall
480c3eb6e0 include/lev.h is an empty header file so just get rid of it 2019-12-14 17:18:48 -05:00
nhmall
f4720edfbf include/qtext.h is an empty header so just get rid of it 2019-12-14 12:31:29 -05:00
nhmall
2dad98d55e Xcode updates 2019-12-14 10:53:12 -05:00
PatR
80f52d5d53 finish moving a couple of short patches to 3.6.4
And make the revised teleport portion match.
2019-12-13 17:54:00 -08:00
nhmall
057fff6b7c Merge branch 'NetHack-3.6' 2019-12-13 20:03:47 -05:00
PatR
84bdff6976 kinda/sorta fix github issue #246
Cherry-pick 3.7.0's 565e020573.  Again,
conflict because the fixes entry goes into a different file.

When picking up from floor or removing from container fails because
there aren't any inventory slots available, pickup/take-out stops.
But the message
|Your knapsack can't accomodate any more items.
is inaccurate if there is gold beyond the stopping point.  Actually
continuing in order to pickup/take-out gold would require substantial
changes, but varying the message to be
|Your knapsack can't accomodate any more items (except gold).
when stopping is a one line fix.  The parenthesized remark is only
added if there is actually some gold after the current object and is
given regardless of whether autopickup happens to be targetting it.

Fixes #246
2019-12-13 16:15:37 -08:00
PatR
f8fbe4e989 allow teleport onto the vibrating square
Cherry-pick 3.7.0's 4a3d5f95d9
(github pull request #252).  Slightly tricky because the fix entry
nowgoes into a different file.  fixes37.0 will need fixing up.
2019-12-13 15:58:56 -08:00
nhmall
2592db64e3 Merge branch 'NetHack-3.7' 2019-12-13 17:41:03 -05:00
nhmall
f48ac58561 Merge branch 'NetHack-3.6' 2019-12-13 17:37:46 -05:00
PatR
62c271f21b polymorphed steed phrasing
When you ride your steed into a polymorph trap and it changes into a
creature that can still wear the saddle, the message is
|You have to adjust youself in the saddle on <foo>.
which sounds as if the game is telling the player that he or she needs
to do something.  Simplify it to
|You adjust yourself in the saddle on <foo>.
2019-12-13 14:01:28 -08:00
PatR
a619ae2879 EDIT_GETLIN vs #wizload*
For #wizloadlua and #wizloaddes, getlin() was using garbage for
default answer.
2019-12-12 17:49:32 -08:00
PatR
49fdd32d4f comment typo 2019-12-12 12:16:50 -08:00
Pasi Kallinen
1d9ba3e212 Expose objects array to lua 2019-12-12 13:39:20 +02:00
Pasi Kallinen
027024d27f More wish parser tests 2019-12-12 07:58:06 +02:00
PatR
a28b8e85a2 fix a couple of nhlobj.c warnings
unused: 'buf[]'
plain char subscript: [obj->oclass]
2019-12-11 12:48:31 -08:00
PatR
f0559065ff set_savefile_name typo fix
The one typo or spelling fix submitted for to-be-3.7.0 that didn't
also apply to 3.6.3.
2019-12-11 12:43:32 -08:00
PatR
8a57029503 spelling and typo fixes
Submitted for 3.7.0; all but one also apply to 3.6.3.

I rewrote the curses terminal-too-small message instead of just
fixing the spelling of "minumum".
2019-12-11 12:35:45 -08:00
Pasi Kallinen
7043e2134a Lua NetHack obj bindings 2019-12-11 20:10:59 +02:00
copperwater
4a3d5f95d9 Allow teleportation onto the Vibrating Square
It's a minor annoyance when you forget you can't do this in vanilla and
then get relocated somewhere random on the level. Since it's not a
harmful "trap", just allow the adventurer to teleport directly onto it.
2019-12-08 19:57:35 +01:00
PatR
d43f8f6f9e altar color revisited
The issue of mimics masquerading as altars just came up two weeks
ago but never entered my mind when I worked on this yesterday.
2019-12-08 10:36:52 -08:00
PatR
625bfd1efd questpgr memory bug
Pointed out by heaputil:  attempt to free null pointer.  ANSI C
allows that, so no crash, but it still indicates a mistake.
2019-12-08 10:33:38 -08:00
nhmall
8a47f13935 more files 2019-12-08 07:35:43 -05:00