Commit Graph

674 Commits

Author SHA1 Message Date
PatR
9d3425917f more user help
A couple of additional things witnessed in between the frequent adds
shown by youtube (top prize goes to the recurring popup ad advertising
popup blocking).

He knew that ^D meant a control character but thought that he had to
type Ctrl+Shift+d instead of just being able to type Ctrl+d.  And he
had no idea what "meta key" meant.  (I don't think I've ever seen a
key labeled that myself.)
2022-01-13 16:32:37 -08:00
Pasi Kallinen
711a12afc3 Add a false rumor 2022-01-04 11:14:12 +02:00
Pasi Kallinen
03b55a6fa0 Make the adventurer ghost asleep 2022-01-04 10:55:09 +02:00
Pasi Kallinen
76381815f3 Add theme room: Ghost of an Adventurer 2022-01-02 19:51:32 +02:00
RojjaCebolla
381ed08366 Correct the genders of DCSS bogusmons
Reference: https://github.com/crawl/crawl/blob/master/crawl-ref/source/mon-data.h
2021-12-30 20:38:15 +02:00
Pasi Kallinen
4b525374d0 Make vrocks emit a poison cloud when they flee 2021-12-25 10:51:20 +02:00
PatR
ec5f7bce16 tribute update: Monstrous Regiment and A Hat Full
of Sky

Add a page citation for Monstrous Regiment passage 1 and add four new
passages, bringing its total to 12.

Add two new passages to A Hat Full of Sky, bringing its total to 13.
2021-11-27 17:40:48 -08:00
PatR
341d1dff13 add a Harry Potter reference
Add three new hallucinatory monsters:  dementor, flying monkey, and
plaid unicorn.
2021-11-24 01:14:08 -08:00
PatR
1f31f1ff81 tribute update: Night Watch and The Wee Free Men
Add a page citation to passage #1 of Night Watch, and add five new
passages, briging the total to 12.

Add four new passages to The Wee Free Men, bringing the total to 13.
2021-10-30 19:16:35 -07:00
nhmall
0c80ef0526 more imp 2021-10-29 13:39:27 -04:00
HMM
e2be44f2dd variation of imp's pr 602 period-speak
This pr is not merged word-for-word from the original pull request
by Vivit-R

Closes #602
2021-10-16 10:36:13 -04:00
nhmall
1f6c1d0f42 expand the glyphs
The walls for the mines, gehennom, knox, and sokoban had been
changed at the "tile"-level, with no awareness of the core game,
or non-tile interfaces.
- Expand the glyphs to include a set of walls for the main level
as well as each of those mentioned above.

Altars had been adjusted at the map_glyphinfo() level to substitute
some color variations on-the-fly for unaligned, chaotic, neutral,
lawful altars, and shrines. The tile interface had no awareness of
the feature.
- Expand the glyphs to include each of the altar variations that
had been implemented in the display code for tty-only. This required
the addition of four placeholder tiles in other.txt. Someone with
artistic skill will hopefully alter the additional tiles to better
reflect their intended purpose.

Explosions had unique tiles in the tile window port, and the display
code for tty tinkered with the colors, but the game had very little
awareness of the different types of explosions.
- Expand the glyphs to include each of the explosion types: dark,
noxious, muddy, wet, magical, fiery and frosty.

Pile-markers to represent a pile had been introduced at the
display-level, without little to no awareness by the core game.
- Expand the glyphs to include piletops, including objects,
bodys, and statues.

Recently male and female variations of tiles and monsters had been
had been introduced, but the mechanics had been mostly done at the
display-level through a marker flag. The window port interface then
had to increment the tile mapped to the glyph to get the female version
of the tile.
- Expand the glyphs to include the male and female versions of the
monsters, and their corresponding pet versions, ridden, detected
versions and statues of them.

Direct references to GLYPH_BODY_OFF and GLYPH_STATUE_OFF
in object_from_map() in pager.c were getting incomplete results.
- Add macros glyph_to_body_corpsenm(glyph) and
glyph_to_statue_corpsenm(glyph) macros for obtaining the corpsenm
value after passing the glyph_is_body() or glyph_is_statue() test.

Other relevant notes:

- The tile ordering in the win/share/*.txt tile files has been altered,
other.txt in particular.

- tilemap.c has had a lot of alterations to accommodate the expanded
glyphs. Output that is useful for troubleshooting will end up in
tilemappings.lst if OBTAIN_TILEMAP is defined during build.
It lists all of the glyphs and which tile it gets mapped to, and also
lists each tile and some of the references to it by various glyphs.

- An array glyphmap[MAXGLYPH] is now used. It has an entry for each
glyph, ordered by glyph, and once reset_glyphs(glyph) has been run, it
contains the mapped symindex, default color, glyphflags, and tile
index.
If USE_TILES is defined during build, the tile.c produced from the
tilemap utility populates the tileidx field of each array element with
a glyph-to-tile mapping for the glyph. Later on, when reset_glyphmap()
is run, the other fields of each element will get populated.

- The glyph-to-tile mapping is an added field available to a window
port via the glyphinfo struct passed in the documented interface. The
old glyph2tile[] array is gone. The various active window ports that
had been using glyph2tile[] have been updated to use the new interface
mechanism. Disclaimer: There may be some bug fixing or tidying
required in the window port code.

- reset_glyphmap() is called after config file options parsing
has finished, because some config file settings can impact the results
produced by reset_glyphmap().

- Everything that passes the glyph_is_cmap(glyph) test must
return a valid cmap value from glyph_to_cmap(glyph).

- An 'extern glyph_info glyphmap[MAX_GLYPH];' is inserted into the
top of only the files which need awareness of it, not inserted into
display.h. Presently, the only files that actually need to directly
reference the glyphmap[] array are display.c, o_init.c (for shuffling
the tiles), and the generated tile.c (if USE_TILES is defined).

- Added an MG_MALE glyphflag to complement the MG_FEMALE glyphflag.

- Provide an array for wall colorizations. reset_glyphmap() will draw
the colors from this array: int array wallcolors[sokoban_walls + 1];
The indices of the wallcolors array are main_walls (0), mines_walls
(1), gehennom_walls (2), knox_walls (3), and sokoban_walls (4).
In future, a config file option for adjusting the wall colors and/or
an 'O' option menu to do the same could be added. Right now, the
initializaton of the wallcolors[] array entries in display.c leaves the
walls at CLR_GRAY, matching the defsym color.

- Most of the display-level kludges for some of the on-the-fly
interface features have been removed from map_glyphinfo() as they
aren't needed any longer. These glyph expansions adhere more closely to
the original glyph mechanics of the game.

- Because the glyphs are re-ordered and expanded, an update to
editlevel will be required upon merge of these changes.
2021-09-18 19:51:04 -04:00
nhmall
9b57784348 rename explosion symbols
Use a slightly more meaningful name for each one rather than
a sequential numerical name.

S_explode1 to S_expl_tl
S_explode2 to S_expl_tc
S_explode3 to S_expl_tr
S_explode4 to S_expl_ml
S_explode5 to S_expl_mc
S_explode6 to S_expl_mr
S_explode7 to S_expl_bl
S_explode8 to S_expl_bc
S_explode9 to S_expl_br
2021-09-18 10:04:25 -04:00
PatR
828cbcf4ab tribute update: The Amazing Maurice
Add four new passages to The Amazing Maurice and His Educated Rodents,
bringing total to 14.

When wishing, accept truncated title "The Amazing Maurice" as well as
the full title.
2021-08-05 17:44:04 -07:00
PatR
ef17c0fa82 tribute update: The Last Hero
Add six passages, bringing total to 13.
2021-07-30 17:28:00 -07:00
Pasi Kallinen
b16c3732cb Add branch stairs to symbols 2021-07-28 07:57:16 +03:00
PatR
8e2f168544 tribute update: Thief of Time
Add a page citation to passage #1; add six new passages (bringing
total to 14).
2021-07-22 17:02:06 -07:00
Pasi Kallinen
043cd7e108 Lua: lit="random" is not allowed anymore
Random is the default lit state, so leave it out.
2021-07-22 19:38:04 +03: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
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
Pasi Kallinen
29a8153170 Add a new bigroom variant "boulder maze" 2021-07-09 18:18:31 +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
PatR
4aceb467ce tribute update: The Last Continent
Add page citation to passage 2.

Add four new passages, bringing total to 14.
2021-06-25 14:29:07 -07:00
PatR
7552a52daa tribute: Jingo
Add two new passages to Jingo, bringing the total to 14.
2021-06-18 14:51:21 -07:00
PatR
38d2b3afc2 tribute update: Hogfather
Add three new passages for Hogfather, bringing total to 13.
2021-06-09 16:45:37 -07:00
PatR
6fb8434ec9 Tribute: Feet of Clay
Add a page citation for passage #1 and change the wording of that
passage to match the book:  the second "does not need" should be
"doesn't even need".

Also make the comments about various added passages (for other
books) be more consistent.
2021-05-31 07:59:12 -07:00
PatR
7f2620b98c fix pull request #523 - lighting on baalz level
Details for baalz level are different from other levels and that
unintentionally gave it a chance to be lit.  Force it to be unlit.

Fixes #523
2021-05-29 13:33:15 -07:00
PatR
825314c040 tribute update: Maskerade
Accept "novel named Masquerade" when wishing for Maskerade.

Add four new passages, bringing total to 13.
2021-05-26 13:19:36 -07:00
Pasi Kallinen
20cbadcf85 Unlock your quest by killing your quest leader
Allow killing your quest leader, just to make games winnable if you
converted before doing the quest.
Boost the quest leaders and give them some equipment. King Arthur
gets Excalibur. Killing quest leader gives really bad luck and
makes your god angry at you, and killing quest guardians gives
smaller penalties.

This is based on both the EvilHack implementation by
k21971 <keith.simpson1971@gmail.com>, and xNetHack
implementation by copperwater <aosdict@gmail.com>.
2021-05-23 11:11:58 +03:00
Pasi Kallinen
29868036f1 Lua: nhcore script with function callbacks
Adds possible callbacks for "start_new_game", "restore_old_game",
"moveloop_turn", and "game_exit" which when defined, will be called
from core code at the appropriate time.

Adds lua hooks for dump_fmtstr (only if DUMPLOG), dnum_name, u.moves,
u.uhave_amulet, and u.depth.
2021-05-21 21:24:59 +03:00
PatR
2c92049821 tribute: Interesting Times
Add missing italics to several words in passage 1.

Add three new passages, bringing the total to 13.

The third one ended up being fairly long.  I made note of it
intending just the bacon joke but when transcribing I backed up
quite a ways.  The context is fairly unusual for a Discworld story.
2021-05-20 03:04:31 -07:00
PatR
b4967c817a more tribute: Soul Music
Add page citations for first two passages and some missing italics
to the first one.  Fix spelling of "fossil" in passage 8.

Add two short, new passages bringing total to 13.
2021-05-10 15:16:21 -07:00
Pasi Kallinen
1e1d580336 Allow webs to be placed without a giant spider on them
Allow creating webs without spiders in the lua level scripts:

des.trap({ type = "web", spider_on_web = 0 });

Based on xNetHack commit by copperwater <aosdict@gmail.com>.

Also changes the Spider nest themed room to generate without
spiders when the level difficulty is 8 or less.
2021-05-10 17:48:51 +03:00
Pasi Kallinen
d2b331abf7 Accept "waiting" on special level des.monster() specifications
Allow specifying "waiting" for monsters created via lua level scripts.
This sets the monster strategy to make it wait for the hero
to be in visual range before allowing the monster to move.

Also makes the monster inside the Mausoleum themed room use this feature,
to prevent out of depth liches bothering the player unprovoked.

For example:

des.monster({ class = "D", waiting = 1 });
2021-05-09 12:24:27 +03:00
PatR
e8765fb2b8 tribute update: Lords and Ladies, Men at Arms
For Lords and Ladies, add a new, 13th passage.

For Men at Arms, include a page citation for the first passage
and add some missing italics to that one.  Add a missing word to
the second passage.
2021-05-03 14:18:21 -07:00
PatR
3aacb38006 tribute: Small Gods
Add page number citations for the first two passages and add three
new passages.  That brings the total for Small Gods up to 15 which
is a bit on the high side, but they all seemed worthy.

While in there, fix a transcription mistake in Lords and Ladies #7:
"to" should be "be".

And two fixes for Jingo #11's footnote, change "genious" to "genius",
remove second "was" from "was, oddly enough, was one [...]".

Also, add a comment about the Amazing Maurice.

I've tried to bring the fixes37.0 entries about tribute fixes up to
date.  They're mostly minor and mostly neglected to include updates
for that.
2021-04-20 14:53:42 -07:00
PatR
7aa62b27de data.base novel titles
Reduce the extra indentation of the Discworld titles from 4 spaces to 2.
2021-04-08 11:49:10 -07:00
PatR
097e746bc3 data.base for role ranks and for discworld novels
Requesting a lookup of "arc ranks" or "wizard ranks" will show a
list of the rank titles and the experience levels that use them
for the specified role.  Looking up a specific rank title such
as "curator" works for many of them, but some such as "wizard"
already match existing entries and continue to do so.  There is
just a bare list of the titles with the levels they apply to, no
attempt at flavor text.

Also, add a lookup key for "novel" and "paperback book" which
have been yielding the "no match" result.  It lists all 41 of
the Discworld titles.  Again, just a bare list, no added flavor.

These all look ok on tty, curses, Qt (which watches for any line
containing four consecutive spaces while collecting the text to
be displayed and switches to fixed-width font if it is sees that),
and X11 (which specifies fixed-width font for popup text windows
in default NetHack.ad file).  It might not look good on Windows
GUI if that is using a proportional font.
2021-04-03 19:04:16 -07:00
PatR
18b28b3355 two new tribute passages (commented out)
Add a pair of commented out new passages for Moving Pictures.
2021-03-30 17:29:40 -07:00
PatR
ada4174321 tribute typos: Moving Pictures pasgs 10, 14
Passage 10: single quote at start of paragraph should be a double.

Passage 14: second instance of "megalomaniac" was misspelled.

Add a couple of comments about some deliberately misspelled words.
2021-03-26 18:07:13 -07:00
PatR
e3fbf76b39 more data.base
Add some missing monster types for the recent male/female/neuter
name split.  "vampire lady" was missing but getting false hit on
"*lady, offler" entry for Discworld's Lady Luck, aka The Lady,
goddess, god.  "{dwarf,gnome,kobold} lady" got the corresponding
"{dwarf,gnome,kobold}" entry but "ogre lady" got "Lady Luck"; all
wildcard matches that are affected by their ordering in the file.

The pull request adopted yesterday added "battle axe" but it was
missing a hyphen so didn't match.  I've fixed that and moved it
from the generic "weapon" entry to the more specific "axe" one.

I accidentally omitted the addition of "luckstone" but since the
luck quote is about bad luck, having it match that would be too
misleading for novice players so am now intentionally omitting it.
2021-03-17 08:22:32 -07:00
PatR
d1c9f004f6 pull request #472 - data.base enhancements
Improves the consistency of quote citations.  Mostly by adding
missing commas but there are a handful or more substantial
corrections.

Pull request changed one "G.K. Chesterton" to "G. K. Chesterton"
but I went the other way.  There are roughly 60 citations with
two or three initials, and about 50 omit the space, only 10-ish
included it.  I changed those to match the rest.  It's slightly
less visual clutter when reading an entry.

Also adds some new keys that previously had no entry to now match
some existing entries.

I added various comments and also inserted a few blank lines to
separate paragraphs but made no attempt to be thorough about that.

Fixes #472
2021-03-17 01:44:16 -07:00
PatR
946df19ea2 \#perminv, 2 of 2: implementation
Add new '|' command, aka #perminv, which allows the player to
send menu scrolling keystrokes to the persistent inventory window.

Implemented for X11, where its usefulness is limited, and for
curses, where it is more needed and also more fully functional.
The interface can either prompt for one keystroke, act upon it,
and return to normal play, or it can loop for multiple keystrokes
until player types <return> or <escape>.  X11 does the former if
the 'slow' application resource is False so that prompting uses
popups, and the latter when 'slow' is True where prompting is in
a fixed spot and doesn't end up causing the persistent inventory
window to be stacked behind the map window.  curses always does
the loop-until-done approach.  It also accepts up and down arrow
keys to scroll one line at a time.

Also adds two new menu scrolling commands, menu_shift_right (key
'}' by default) and menu_shift_left ('{') if wincap2 flags contain
WC2_MENU_SHIFT.  Shifting allows different substrings of too-long
lines to be seen.

For X11, neither works because their handling requires a horizontal
scrollbar and for some reason that escapes me our menus don't have
one of those.  If they did, shifts could work for all menus but a
shifted window would hide the selection letters.  So shifting would
be most usefully done as:  pan right, read more of any long lines,
immediately pan back to the left.

For curses, they only apply to the persistent inventory window.
Shift right redraws it with class headers and inventory letters
shown normally but the item descriptions omit their leftmost
portion, showing more text towards the end.  Shift left reverses
that and does nothing if the beginning is already in view.  Forward
and backward scrolling while shifted leave the shift in place.
2021-03-13 18:18:53 -08:00
PatR
dd49431296 \#perminv, 1 of 2: groundwork
Give the window-port side of *_update_inventory() an argument.
Calls in the core still omit that; invent.c's update_inventory()
is the only place that cares.
2021-03-13 18:17:00 -08:00
PatR
d7be7031a1 Discworld: Sourcery
Include the page number for Sourcery's second passage.  While
in there, add another passage.

For wishing, recognize "sorcery" as an alternate spelling.
2021-03-03 16:38:49 -08:00
PatR
9870399435 tribute bit: Sourcery passage 4
Fix a mistake that led to a bad fix for a perceived mistake that
wasn't really there.

I think having a comma after "moment" would make things clearer,
but style-wise that's optional and leaving it out restores the
book's original wording.
2021-02-24 14:41:51 -08:00
copperwater
18dc88505d Convert room 'joined' and 'needjoining' into booleans
des.region() accepted booleans for the joined field, whereas des.room
accepted xchars. These were only being used as truth values, so this
converts the room ones into booleans for consistency. I don't think
accidentally using an int or a boolean wrongly would actually crash the
level generator, but consistency is good.

This converts an schar field in struct mkroom into a boolean; on most
systems these are probably 1-byte types and save files won't be broken,
but it might be best to treat this as a save breaker anyway.
2021-02-19 17:09:41 +02:00
Patric Mueller
8d7d159be1 Fix spelling error in Samurai quest 2021-02-03 20:31:01 +01:00
PatR
d86f22d81f another tribute typo: A Hat Full of Sky #9 2021-01-08 16:43:27 -08:00
nhmall
985cffbfed Merge branch 'patch-1' of https://github.com/actual-nh/NetHack into actual-nh-patch-1 2020-12-31 22:57:33 -05:00