Commit Graph

34 Commits

Author SHA1 Message Date
PatR
8eca3a99ab giant {spider,beetle} fixes entry 2019-12-23 16:35:12 -08:00
nhmall
11e003cb47 add a requested interface adjustment for menu invert operations
Originally requested by one of the hardfought admins

Adjust all active window ports (tty, curses, win32, Qt, X11) to store
the itemflags that they receive with each item.

Also, make those active window ports understand the new
MENU_ITEMFLAGS_SKIPINVERT flag by skipping any menu items with that
setting during invert_all and invert_page operations.

Build testing and rudimentary functionality testing was carried out
on each of the window ports listed above.

The code was also modified on some non-active window ports (Qt3, gem,
gnome) but it was not tested for build or function there.

The desired functionality expressed was to be able to select a
single object category, and use the @ "invert all" function to
exclude that one and select all the others.

The "invert all" function's behavior of also including things
like "select all" and BUCX menu items made the feature unuseful
for that purpose.
2019-12-23 10:44:07 -05:00
PatR
e0c67f49fc fix mysterious force bug
Subtracting one dungeon depth value from another had the subtraction
backwards and that yielded a negative value where a positive one is
expected.  If NH_RELEASE_STATUS were to be set to NH_STATUS_RELEASED
then this was at risk of crashing (if the bad subtraction yields -2,
rn2(diff+2) would divide by 0) since rn2()'s argument isn't validated
for released version.

fixes37.0 was confused, listing a couple of things that aren't bugs
in 3.6 as general fixes.  I suspect that the DLB one was fixed before
being exposed via git, so shouldn't be there at all.
2019-12-22 17:22:07 -08: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
Pasi Kallinen
2c3be8ebe1 Prevent accessing outside the mons array 2019-12-20 15:19:14 +02:00
nhmall
7c359f9dc8 remove fixes entry from 3.7 fixes for recent change back-ported to 3.6 lineage 2019-12-17 12:19:27 -05:00
nhmall
edd9d5b810 flying hero should be able to pass through a hole using '>' 2019-12-16 00:25:20 -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
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
nhmall
2bf55a6ec7 mapglyph level-related function calls are done once per level 2019-12-07 22:03:43 -05:00
PatR
708773c514 color altars
Something I noticed in the hardfought diff what looked interesting.
Unfortunately the most interesting bit turns out to be unuseable.

Display high altars (Moloch's Sanctum and the Astral Plane) in
bright-magenta and unaligned altars (aside from the Sanctum one) in
red.  Hardfought's code also uses white for lawful, gray for neutral,
and black for chaotic, matching the unicorn colors associated with
the alignments.  But those colors don't render in a reliable fashion
(see the comment in mapglyph.c) and become confusing about why they're
used for altars of particular alignments.
2019-12-07 13:44:46 -08:00
nhmall
fe9ed530b1 Qt code rearranging fixes entry 2019-12-07 11:50:24 -05:00
PatR
565e020573 kinda/sorta fix github issue #246
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-05 02:33:47 -08:00
nhmall
94f251cf2a fixes catch-up bit 2019-11-25 11:30:21 -05:00
nhmall
cab3eabfc4 lua quest texts 2019-11-25 00:50:16 -05:00
nhmall
7de2a0d515 Merge branch 'NetHack-3.7' part 2 2019-11-22 23:41:21 -05:00
nhmall
3545374e9c internal self-recover fix and bones name buffers 2019-11-21 23:41:11 -05:00
nhmall
b15e4782c5 add a fixes37.0 entry for the lua changes in branch 2019-11-08 16:12:35 -05:00
nhmall
817efa4381 updates to README and doc/fixes37.0 2019-11-08 16:09:18 -05:00
nhmall
e933882eb8 fixes entry 2019-07-14 18:20:17 -04:00
PatR
9125b5943e 3.7: automatic annotation for vibrating square
Add "Gateway to Moloch's Sanctum" to the vibrating square level if you
step on the square or detect/magic map it as a pseudo-trap, an extra
hint for players who manage to get that far but then don't know what
to do next.  (I think I may also add a randomly placed floor engraving
along the lines of "For a good time, consult the Oracle of Delphi."
as a gag variant of "For a good time, call <name> at <phone number>."
Not very thematic for Gehennom but could conceivably nudge someone in
the right direction.  But it could give away the level for experienced
players who haven't located the vibrating square yet.)

The annotation sticks until the one for "Moloch's Sanctum" gets added.
That happens when the temple on the sanctum level is entered or the
altar there has become mapped (in view or via magic mapping).

Could break existing 3.7.0- save files (but probably won't, since
at least two bits were available unless using an ancient 'Bitfield()
allocates whole bytes' configuration).  That's the reason I didn't
put this into 3.6.2+.
2019-06-11 09:29:14 -07:00
nhmall
2d4e292de6 fixes37.0 section header bit 2019-05-12 08:16:01 -04:00
nhmall
cdcc93fec2 catch up on fixes37.0 entries 2019-05-12 08:10:21 -04:00
PatR
4159dd985a fix #2468 - killer bees without a queen
Seven year old suggestion was to have a killer bee eat royal jelly if
there was no queen around, then after a short delay it would become a
queen.  This does that, with "no queen around" being "no queen bee on
current dungeon level" and the transformation happening immediately
with the "short delay" taking place after.

Pet killer bees will target nearby royal jelly if there's no queen,
hostile killer bees will only eat it if they happen to walk on the
same spot as one.  Both types accept either tame or hostile queen bee
as an existing queen.

Killer bees eating royal jelly will drop dead if queen bees have been
genocided, and aren't smart enough to avoid the instinct to eat such
if/when that happens to be the situation.
2018-12-21 16:59:01 -08:00
nhmall
786034131f remove some out-of-date fixes entries 2018-12-15 18:47:56 -05:00
nhmall
5d410a3457 remove entry from fixes37.0 cherry picked into minor dev branch
this display-support for a 3.6.1 feature was originally committed
to master but it might as well accompany the 3.6 line changes
that are already there.
2018-05-15 06:32:54 -04:00
nhmall
3fe8325f14 integrate aklys feature introduced in 3.6.1 into display 2018-04-29 10:40:11 -04:00
nhmall
cf73c4bf26 windows build fix
preprocess bigroom.des
	$(U)makedefs --input bigroom.des --output - --grep | $(U)levcomp

insert a missing tile (placeholder only - it needs future fixing!)
2018-04-28 16:04:45 -04:00
nhmall
c8afcdb795 correct an overwrite 2018-04-28 12:22:44 -04:00
nhmall
f4e70044be prepare repository for new major version 2018-04-28 12:17:48 -04:00