Commit Graph

12118 Commits

Author SHA1 Message Date
PatR
fc62610ee3 a uke
Fix a copy+paste blunder.
2021-07-17 12:16:03 -07:00
Pasi Kallinen
8ff2badf51 Use define for wand wresting chance 2021-07-17 20:59:40 +03:00
PatR
bb74aeef03 fix github issue #552 - "an ukulele"
Add "ukulele" to the exceptions that yield "a u<something>" in case
someone names their fruit that.  Add the shortened form "uke" too.

While in there, generalize "one" handling to accept "one", "one<space>
<anything>" and "one<underscore><anything>" as exceptions in addition
to existing "one<dash><anything>", and "eu<anything>" to replace
existing "eucalyptus".

Fixes #552
2021-07-17 08:32:07 -07:00
Patric Mueller
4c1f2ffa48 Fix heap-use-after-free when attacking monster with potion
Attacking a monster which has a passive attack (e.g. a red mold) with a
wielded potion that breaks during the attack, the variable weapon would
not be correctly reset and passive() would be called with the pointer to the
freed object.
2021-07-17 13:20:14 +02:00
PatR
35a6939b5e tribute update: The Truth
Add page citations to passages 1 and 2 and missing italics to #1.

Add five new pssages, bringing total to 13.
2021-07-16 19:08:53 -07:00
Patric Mueller
1fbcef304f Merge branch 'hoa-aloha' into NetHack-3.7 2021-07-16 18:07:19 +02:00
Patric Mueller
f6632e7ce6 Document "readable" Hawaiian shirt designs in fixes37.0
Closes #407
2021-07-16 18:05:48 +02:00
Michael Meyer
d8dc16e393 Add 'readable' Hawaiian shirt designs
Functionally similar to reading a T-shirt or apron, but rather than
actual text printed on the shirt being displayed, the design of the
Hawaiian shirt is described: for example, "hula dancers on an orange
background" or "tropical fish on an abstract background".  Much like
T-shirts have their text included in the game-end inventory list ('a
blessed +2 T-shirt with text "foo"'), Hawaiian shirts now have a brief
description of their design appended to their item name under the same
circumstances.

Because 'reading' a Hawaiian shirt doesn't actually involve reading
text, using the 'r' command in this way doesn't break illiterate
conduct.
2021-07-16 18:05:21 +02:00
Patric Mueller
71084bbf61 Fix format-overflow warnings in botl.c 2021-07-16 18:04:28 +02:00
PatR
e9c813b6ba fix issue #510, pull request #519 - vomit effects
Add some vomiting effects:

Trigger divine wrath if hero vomits at an altar's location.  (What
about adding throne and maybe sink special effects too?)

If poly'd into a yellow dragon, breathe (acid) on self.  (I'm not
sure why.)

If on ice and poly'd into an acidic form, melt the ice.  Also,
change melt_ice() to give its message when melting happens at the
hero's location even if hero can't see.

Fixes #519
Fixes #510
2021-07-15 16:10:34 -07:00
PatR
475648bd02 fix github issue #423, pull request #549
Zapping at an object with teleportation resulted in scrambled zap
targetting as soon as any object was hit.

flooreffects() got changed to set bhitpos for handling erosion damage,
but bhitpos is used by wand/spell zap handling to pick the next target
spot.  So a zap that teleported an object resumed one step beyond the
object's destination rather than one step beyond where it was hit.
The rest of the zap could hit things (monsters as well as other
objects) which weren't in line with the original zap.  Reported case
was one of the Riders on Astral, coming from beyond multiple walls to
arrive adjacent to hero (usual position when a Rider gets teleported).

Fixes #549
Fixes #423
2021-07-14 19:21:18 -07:00
PatR
91248a2b7e fix pull request #548 - encumbrance feedback
when polymorphing into "new man".  Characteristic stats are shuffled
if turning into new man, but when already polymorphed those get
overridden by the old pre-polymorph characteristics, resulting in
another encumbrance check which might contradict the one that just
happened.  Skip the encumbrance check done when shuffling stats so
that there's only one and it comes after all changes are finished.

Fixes #548
2021-07-14 18:29:03 -07:00
PatR
938b51c76b tribute update: The Fifth Elephant
Add three new passages, bringing total to 12.

Also, fix a typo in Thief of Time #2:  had "starts" where "stars"
was intended.
2021-07-12 19:12:40 -07:00
PatR
f7436fd02d fix pull request #540 - don't autoquiver aklys
If player throws a wielded aklys and it fails to return, and quiver
is empty when picking it back up, don't put it into that slot because
it needs to be wielded to achieve best throwing effect.  A player who
had wielded it and was using 'f' to throw it might not notice that
it isn't returning until it hasn't returned several times.  Moot if
quiver already has some missile readied.  Don't autoquiver even if
some other weapon is wielded because that might have been done just
to go retrieve the aklys.

The game doesn't keep track of whether a previously thrown item was
wielded at the time, and shouldn't be changed to auto-wield in such
situation.  Leaving quiver empty so that player is prompted for what
to throw is sufficient.

Fixes #540
2021-07-10 19:09:17 -07:00
PatR
683b78068f gold kicking bit
One of the gold kicking changes I had pending.  The "Thwwpingg"
message is obviously intended as a sound effect so shouldn't be
given if the hero is Deaf.
2021-07-10 17:37:38 -07:00
PatR
f441ef11f6 wishing fixes
Changes in wish parsing included with figurine gender implementation
3 or so weeks ago accidentally broke asking for "large box" and
possibly other stuff.

Re-do "paperback book" handling to accept "paperback" and "paperback
book" but to reject previously accepted "paperback spellbook" when
wishing for a novel by description.
2021-07-10 17:13:46 -07:00
nhmall
60f30b3fcb fixes37.0 update for gold scatter() 2021-07-10 19:46:38 -04:00
nhmall
ed9647310a deal with gold leaving shop via scatter()
fixes #538
2021-07-10 19:41:55 -04:00
nhmall
a4711739c0 get rid of some recent signed/unsigned mismatches
src/mkroom.c(529): warning C4389: '!=': signed/unsigned mismatch
src/sp_lev.c(981): warning C4389: '==': signed/unsigned mismatch
src/sp_lev.c(983): warning C4389: '==': signed/unsigned mismatch
src/sp_lev.c(985): warning C4389: '==': signed/unsigned mismatch
src/sp_lev.c(987): warning C4389: '==': signed/unsigned mismatch
src/sp_lev.c(989): warning C4389: '==': signed/unsigned mismatch
2021-07-10 07:42:27 -04:00
nhmall
82526315f1 index out of bounds eating standard eggs
Closes #547
2021-07-10 07:25:12 -04:00
nhmall
ce2d56ef58 Merge branch 'pr547' into NetHack-3.7 2021-07-10 07:20:49 -04:00
janne-hmp
74a64b1647 Fixed two index out of bounds errors when eating standard eggs. Their corpsenm is -1, resulting in index being out of bounds in mons array. 2021-07-10 11:47:22 +03:00
PatR
563cb33d67 novel named Thud!
Accept "Thud" as an alternate spelling for "Thud!" when parsing novel
titles.
2021-07-09 19:56:10 -07:00
PatR
2c3b9d1d2d wishing for "paperback book"
Something I noticed recently:  a wish request for "paperback book"
yielded "Nothing fitting that description exists in the game."
Asking for "paperback spellbook" worked though.

I'm not sure whether this is the best way to handle this particular
exception but wishing for "paperback book" now works.
2021-07-09 19:40:52 -07:00
nhw_cron
4567457ec5 This is cron-daily v1-Jan-20-2020. files updated: Files 2021-07-09 17:12:21 -04:00
Pasi Kallinen
2261f998a6 Fix des.room doors
Fix special level des.room shop doors broken by my recent commit.
Mark the shopdoor error as impossible, so the fuzzer stops there.
2021-07-09 20:32:00 +03:00
Pasi Kallinen
50b22449d1 Keep swamp within the room boundaries
If a swamp special room was generated in an irregular room, it could
go outside the boundaries of that room.

Fixes #546
2021-07-09 18:34:46 +03:00
Pasi Kallinen
29a8153170 Add a new bigroom variant "boulder maze" 2021-07-09 18:18:31 +03:00
PatR
f8c20800c7 fix pull request #544 - fire vortex engulf
of hero carrying burning objects shouldn't cause those to be
extinguished.  Ditto when fire vortex or poly'd hero engulfs
monsters.

Fixes #544
2021-07-09 06:51:10 -07:00
Pasi Kallinen
4050ec1670 Improve special level shop and door linking
When creating a shop via des.region, allow creating the shop door
either with a map character in a des.map, or with des.door
before or after the shop region.

Also allow a shop door to open directly into another shop.
2021-07-09 13:58:49 +03:00
PatR
c4ec1e9ada tribute update: Carpe Jugulum
Add four new passages to Carpe Jugulum, bringing total to 12.

A couple of fixes for the Fifth Elephant are mixed in:  page reference
and italics for passage #1, correct the spelling of "doublet" in #9.
2021-07-08 19:13:26 -07:00
Pasi Kallinen
491adc6a69 Mark some extended commands as no-fuzzer
... instead of checking the fuzzer being on in the commands themselves.
2021-07-08 11:35:43 +03:00
Pasi Kallinen
57cfcd9ed0 Fix error marking scroll as used up
Forgot to change this when reorganizing the scroll effects
into separate functions.
2021-07-08 10:22:13 +03:00
Pasi Kallinen
5abf948116 Fix movecmd always returning a direction
My recent commit broke the 'm' (menu request) -prefix, because
a thinko in movecmd made it always return a direction.
2021-07-08 07:52:45 +03:00
Pasi Kallinen
2f1b3a34ad Split can-engrave checks out of engraving function 2021-07-07 16:41:58 +03:00
nhmall
216c26aaef do vs2017 warnings.h a little differently than vs2019
fixes #545
2021-07-07 09:05:22 -04:00
Pasi Kallinen
caee59b131 Split potion effects into separate functions 2021-07-07 12:54:35 +03:00
Pasi Kallinen
4b54f4f18a Split scroll effects into separate functions 2021-07-07 12:02:59 +03:00
PatR
ee13fb36ac fix github issue #542 - clumsy "it" message
when encountering a hiding monster that's still unseen after being
revealed (so most likely invisible when hero lacks see invisible).
Change
|Wait!  There's an it hiding under <an object>!
to
!Wait!  There's something hiding under <an object>!
when hero tries to move onto the object.

Also, when a hidden monster reveals itself by attacking, change
|It was hidden under <an object>!
usually followed by "It hits." or "It misses."
to
|Something was hidden under <an object>!
without changing whatever follows.

Fixes #542
2021-07-04 17:47:04 -07:00
Pasi Kallinen
581f12797f Allow using rush/run prefix to fastmove in getloc 2021-07-03 18:22:24 +03:00
Pasi Kallinen
db68395d69 Movement key reworking
Put the rush and run movement keys into g.Cmd instead of bit twiddling
the normal walk keys in multiple places to get the run and rush keys.

Allow meta keys in getpos. Use the normal running keys to fast-move
in getpos, instead of explicit HJKL - I polled couple places online,
and number_pad users did not use the HJKL keys in getpos.

Make meta keys work even after a prefix key.
2021-07-03 18:20:24 +03:00
PatR
0ba7ff46b9 fix pull request #541 - itemized shop billing
when perm_invent is displayed.  The persistent inventory window
showed unpaid items with their prices, but when using itemized
billing those prices went away when an item was purchased.

The prices and item-by-item prompting continued correctly with
remaining unpaid items; only the perm_invent display was affected.

Fixes #541
2021-07-02 18:52:17 -07:00
Pasi Kallinen
552431e966 Split coord truncate-to-map into separate function 2021-07-01 14:29:04 +03:00
PatR
4c7734ebbd fix #K3378 - quaffing lit potion of oil
should cure sliming.  Implement the suggestion that quaffing a
burning potion of oil while turning into green slime will cure the
latter.

It's somewhat iffy since the slime is on the outside moving in and
the burning oil ends up on the inside, but the message sequence is
|You burn your face.
|The slime that covers you is burned away!
and it could be that igniting part of the slime quickly spreads to
the rest.

Implemented for monsters as well as for the hero.  They will light
and drink the oil in a single turn in the extremely rare situation
where they actually have a potion of oil and need to use it.
2021-06-30 17:33:18 -07:00
Pasi Kallinen
183e31ef14 Fix swapped DIR_UP and DIR_DOWN
I don't think this had any effect on gameplay, but it was still wrong.
2021-06-28 23:34:54 +03:00
Pasi Kallinen
efae7c7c47 Missed couple direction enum places 2021-06-28 17:41:04 +03:00
Pasi Kallinen
f25a6e26ee Use enums and defines for directions 2021-06-27 15:46:56 +03:00
PatR
dad804e118 web spinning tweak for Sokoban
When spiders try to spin webs, don't let them do so in Sokoban
unless the level has already been solved or the spider can see the
stairs up (which was the simplest way I could achieve something
close to "is in the same room as the stairs up") where it can't
interfere with solving the level.
2021-06-26 17:06:37 -07:00
Pasi Kallinen
5ea652e0c6 Explicitly check for not STONE in corridor join
... instead of relying STONE being 0
2021-06-26 16:59:11 +03:00
Pasi Kallinen
c019968997 Clear all room data
Restoring a level cleared residence pointer from those subrooms
which were in the restored level, but if the previous level had
more subrooms, those pointers weren't cleared.
This caused weird problems when a shopkeeper data was looked
up based on the subroom number.

Just to be safe, clear all the room data when freeing the level.
2021-06-26 15:10:43 +03:00