Commit Graph

16354 Commits

Author SHA1 Message Date
PatR
e5ddf400c6 'O' tweaks
Reformat most of optlist.h.  In the process, fix a couple of
conditionally included items which were mis-classified as set_in_game
when excluded.  Add "permablind" as an alias for the "blind" option.
[I don't understand the size value of 70 for #if BACKWARD_COMPAT
{curses,DEC,IBM,Mac}_graphics but didn't alter that.]

Include 'pickup_types' in the behavior section; it's useful from
turn 1 and does get adjusted from time to time during play.

Include 'color' in the map section, but hide it for wc_tiled_map.

Include 'showscore' and 'statuslines=2|3' in the status section.
I didn't rebuild with SCORE_ON_BOTL enabled so the showscore part
hasn't been tested.
2022-08-04 16:53:31 -07:00
PatR
908a8a132f m_digweapon_check()
Some streamlining that I left out of the recent commit for maybe
avoiding exclamation mark when a monster wields a tool or weapon
to dig or chop.
2022-08-04 14:26:12 -07:00
PatR
672ef846fa condition mask option's menu
Not related to changes to 'O' but noticed because of those.  The menu
for selecting which status conditions to include on the status line
starts with a special entry for sorting that shouldn't be selected by
the select all and toggle all actions.
2022-08-04 14:09:19 -07:00
Pasi Kallinen
c8bd39c748 Simple options: guard against boolean being null 2022-08-04 20:08:19 +03:00
Pasi Kallinen
b3822cd94d Fix roguesymset substitution in options 2022-08-04 17:05:26 +03:00
Pasi Kallinen
4ff9537b0d Rudimentary key rebinding in game options
Currently shown only in the full options list, as it's not
quite complete. (For example, it doesn't handle movement commands,
or the getpos keys)
2022-08-04 14:42:45 +03:00
Pasi Kallinen
b5acfc5c3f New options: swap symset to roguesymset on rogue level 2022-08-04 09:48:58 +03:00
Pasi Kallinen
dd28f8b405 Minor tweaks to post-option screen refresh 2022-08-04 09:39:21 +03:00
Michael Meyer
fec7c724a3 More Guidebook formatting 2022-08-04 09:01:19 +03:00
Pasi Kallinen
691c727d0a Flush screen when toggling map-related option 2022-08-03 19:57:57 +03:00
Pasi Kallinen
bfd262ebe8 Add optionsfull extended command
This is the previous, full options list. Adding it as
an extended command, so users can do

BIND=O:optionsfull

to go back to the old behaviour.
2022-08-03 19:18:44 +03:00
Michael Meyer
adf451e421 Guidebook fixes/formatting 2022-08-03 16:42:11 +03:00
Pasi Kallinen
f3591ea07d User-friendly options menu
Make the default options menu only show the most important
options, split into categories. The full, traditional menu
can be accessed by using the m-prefix.
2022-08-03 14:08:31 +03:00
PatR
c7a467701f fix github issue #832 - "nethack --nethackrc=file"
Issue reported by schauveau:  when the command line specifies the
'--nethackrc=file' option (Unix, including linux and OSX, only) the
value of 'file' was set in pointer g.cmdline_rcfile and the options
parsing made a copy of that pointer rather than of what it pointed
to, then freed g.cmdline_rcfile before using the copy.  So it ended
up using a pointer to freed memory.

Stick with copying the pointer but defer freeing the original until
after its copy is no longer needed.

Fixes #832
2022-08-02 15:07:20 -07:00
Pasi Kallinen
f4d0e99fad Reset map x/y start/size in single place 2022-08-02 17:02:25 +03:00
Pasi Kallinen
24e94b70d4 Windows: Default boulder symbol to 0
Set the boulder symbol to 0 in the Windows config template file.
2022-08-02 13:09:25 +03:00
Pasi Kallinen
fd3b4384c3 Prevent walking into water or lava by default
Make paranoid_confirmation:swim the default, because it is far more
beginner friendly.
2022-08-02 09:15:32 +03:00
Pasi Kallinen
09cf464816 Potions of healing, extra healing, and lifesaved heal amount
Make potions of healing and extra healing more useful in the early
game, by upping the average amount of health restored.

Make amulet of life saving restore between 60 and 170 health,
depending on constitution. Previously life saving was the best way
to heal back up to full, even if you had thousands of hp.
2022-08-02 01:11:14 +03:00
Pasi Kallinen
e5b8fc86eb Make explosions burn monster armor 2022-08-01 22:30:43 +03:00
nhmall
cf352377a9 Windows stubs.c follow-up 2022-08-01 02:03:38 -04:00
nhmall
174a7e5e78 Windows stubs.c fix 2022-08-01 01:52:55 -04:00
PatR
8a9dc00cde don't negate new moon with a lizard corpse
The only effect of a new moon was to make hearing a cockatrice's
hissing (whichs happens with 1 in 3 chance) always start the turn to
stone sequence instead just having a 1 in 10 chance to do so, but
that was negated by carrying a lizard corpse.

Keep the hiss-always-starts-petficiation part and remove the
carrying-a-lizard-corpse-negates-that part.  So the effect of a new
moon no longer gets controlled by the contents of hero's inventory.
2022-07-31 16:12:40 -07:00
PatR
2e983f354d monster eating stalker corpse
Extend 8d2407f1f2
"Monsters can gain resistances by eating corpses"
to include invisibility from stalker corpses.
2022-07-30 18:30:16 -07:00
PatR
a6d85f9d36 dwarf + pick-axe feedback
When you see a dwarf wield a pick-axe,
|The dwarf wields a pick-axe!
avoid the exclamation point if that dwarf just intends to dig.
|The dwarf wields a pick-axe.
2022-07-29 16:11:35 -07:00
PatR
34db0b0dd3 \#wizkill tweak
If wizard mode player targets 'I' with #wizkill and there is no
monster there, remove that 'I'.
2022-07-29 15:55:53 -07:00
PatR
23e6a054ee fixes entry for PR #796 - MUSE digging
Pull request from entrez:  nothing happened--except spending a wand
charge--if a monster zapped a wand of digging down at a spot where
holes can't be dug.  If a pit can be dug there, dig one and then trap
the monster in it.  No-op if a pit or other trap is already present.

Closes #796
2022-07-29 15:08:27 -07:00
Michael Meyer
a18859ddb5 Let fleeing monsters dig pits in undiggable floor
When the hero zaps a wand of digging down in an undiggable level, it
creates a pit.  When a fleeing monster did the same thing, it had no
effect.  Bring this closer to the behavior experienced by the hero: if a
monster tries to use a wand of digging to create a hole in an undiggable
floor, a pit will be made (and the monster will fall into it, if not a
flyer).
2022-07-29 15:05:55 -07:00
Pasi Kallinen
ac5b92d348 Greased saddle is slippery 2022-07-29 12:27:08 +03:00
PatR
a9fec4e0ae github issue #828 - confuse monster effect when \
hero is invisible without being able to see invisible

Issue reported by EndHack:  you could see your hands glow red when
reading a scroll of confuse monster or casting the spell of confuse
monster even if you were unable to see yourself.

Switch to the blind feedback (tingling instead of glowing red) if
invisible without see invisible.

Also, have uncursed scroll or low skilled spell confer 1..2 turns
of glowing hands instead of always just 1.  (Blessed/highly skilled
stays at 2..9 turns.)

Fixes #828
2022-07-28 13:42:35 -07:00
Pasi Kallinen
cb9044c23f Make failed polearming or jumping return correct value 2022-07-28 22:10:08 +03:00
PatR
f0705526d4 update 'mydogs' comment 2022-07-28 08:16:23 -07:00
Pasi Kallinen
bae221d0c3 Grappling location feedback 2022-07-28 13:50:57 +03:00
Pasi Kallinen
0517974b6d Spell location feedback
Casting some spells at high enough skill allows picking for
the spell location. Say which locations are out of range
when picking the location.
2022-07-28 13:15:41 +03:00
PatR
e13e514556 fix broken migrating monster arrival
If the first monster on the migrating_mons list couldn't arrive and
was put back on the list to try again later, 'later' would happen
immediately and the program looped forever trying and failing to
bring that monster to the level.

Defer repeat attempts at migration until losedogs() has been through
the whole migrating_mons list.  mon_arrive() now populates a new
list called failed_arrivals and losedog() moves its contents, if any,
to migrating_mons prior to returning.
2022-07-28 00:51:18 -07:00
PatR
1a367c7ff5 \#migratemons
Extend the wizard mode #migratemons command.  Instead of just asking
for how many random new monsters to be sent to the next level, first
describe how many migrating monsters there already are, then if that's
non-zero ask whether to show them.  Choices are 'c' for ones scheduled
to arrive at the current level if hero leaves and returns, 'n' for
ones aimed at the next level, 'o' for ones that aren't in either of
those two categories, 'a' for all migrating monsters, and 'q' to skip.
After that, ask how many to make for the next level.  The default for
that is still zero.

For the 'o' and 'a' cases, they're displayed in the reverse order of
when they went onto migrating_mons, not sorted by destination level.
2022-07-28 00:34:31 -07:00
Pasi Kallinen
05761bada6 Holes and trapdoors have predetermined exit level
Same hole/trapdoor will always take you to the same level.
2022-07-27 22:51:17 +03:00
Pasi Kallinen
543a3c1b9a comment typofix 2022-07-27 13:14:00 +03:00
Pasi Kallinen
0da356c540 Enable migrating mons debugging 2022-07-27 12:21:07 +03:00
Pasi Kallinen
810744a27d Fix knockbacked monster migrating or killed
Fix a case where a monster knocked back another monster into a trap,
and the trap either killed or migrated the monster, then the actual
damage dealing later could try to detach the already detached monster.

If the monster migrated, the monster is gone before the damage from
the hit is dealt to the monster.
2022-07-26 23:20:54 +03:00
Pasi Kallinen
f0774e0da4 Fix monster hiding under consumed candle 2022-07-26 22:53:57 +03:00
Pasi Kallinen
f07f065f7d Allow cutting a known spider web by force-fighting it
Original code from xNetHack by copperwater <aosdict@gmail.com>.
2022-07-25 18:06:10 +03:00
Pasi Kallinen
63997a6fe5 Call it "danger sense" when warning finds a monster 2022-07-24 19:14:41 +03:00
PatR
75abc65bab pull request #817 - merge scimitar skill w/ saber
Pull request from Kufat:  combine a pair of single item skills into
one skill by changing scimitar to use saber skill and removing no
longer used scimitar skill.

I don't think skill values end up in save files but decided to
increment EDITLEVEL to be safe.

Closes #817
2022-07-23 23:14:12 -07:00
Kufat
296a3ac246 Merge scimitar skill into saber skill
Deleted scimitar skill, changed scimitar to use saber skill.
Adjusted Barbarian's max saber mastery basic->skilled for consistency
with former scimitar skill.
2022-07-23 23:11:13 -07:00
PatR
d3f0a1fcde pull request #823 - getpos confusion
Pull request from entrez:  typing map symbols during a getpos
operation was using incorrect values and might end up moving the
cursor to walls or other terrain that it classifies as uninteresting
and intends to ignore.

Fixes #823
2022-07-23 17:05:48 -07:00
Michael Meyer
47a35ba8a7 Another getpos cmap followup
Hot on the heels of my previous commit, here's a way to do it without
any assumptions about the order of defsyms.
2022-07-23 17:04:12 -07:00
Michael Meyer
e9fb226dbf getpos cmap vs glyph followup
This is a bit more efficient, since everything up to S_hcdoor is
skipped anyway, but it's a little harder to understand so needs more
comments.  Not sure if it's worth it or not...
2022-07-23 17:04:12 -07:00
Michael Meyer
8fe02be5ae Fix: getpos cmap vs typ/glyph confusion
When some parts of getpos were rearranged in 7404597, tests of terrain
types and glyphs were moved to a loop which iterated through the defsyms
array without being updated to handle cmap values instead.  Consequently
they weren't excluding certain terrain types from being 'jumped to' as
intended.  (Though it seems as though they actually worked by chance to
some extent, just because there's some overlap between terrain types and
defsyms in terms of where the 'walls/doors' blocks start and end.)

I also noticed that cmap_to_type was missing S_darkroom (it fell through
to the default case so that the function returned STONE), so I added it.
2022-07-23 17:04:12 -07:00
PatR
c1e22b9e75 fixes entry for PR #821 - engulfer vs closed door
Pull request from entrez:  don't allow an amorphous engulfer who
has swallowed the hero to move to a closed door location.  If some
hypothetical amorphous holder existed, it could move to such a spot
while holding the hero adjacent.

Closes #821
2022-07-22 15:30:14 -07:00
Michael Meyer
ac0d6a98ce Prevent amorphous mon from carrying hero into door
An amorphous engulfer like a fog cloud could engulf the hero, then carry
him into a closed door.  If it was killed or decided to spit out the
hero, he would be left occupying the same spot as a closed/locked door.
Make an amorphous monster unable to move into a door if currently
engulfing the hero.

Something more complicated could be done along the lines of allowing the
move if the hero is himself in an amorphous polyform, but that verges on
being a little too silly, maybe.

I also included fixes to a couple miscellaneous, unrelated formatting
issues that I noticed recently.
2022-07-22 14:38:14 -07:00