Commit Graph

12341 Commits

Author SHA1 Message Date
nhmall
bdfd41d203 missed a couple 2021-09-26 16:12:50 -04:00
nhmall
9919bd2ed9 other.txt updates
altar tile differentiation
- contributed by Michael Meyer
2021-09-26 15:59:26 -04:00
nhmall
94ddf4329c update fixes37.0 and doc/Guidebook.txt
make format of pull request entries consistent
2021-09-26 15:48:59 -04:00
nhw_cron
756d38776d This is cron-daily v1-Jan-20-2020. guidebook updated: doc/Guidebook.txt 2021-09-26 15:47:15 -04:00
nhmall
feed225e37 Merge branch 'several-pr' into NetHack-3.7 2021-09-26 08:59:41 -04:00
nhmall
b1da4dea70 Merge branch 'supply-missing-changes' of https://github.com/argrath/NetHack into several-pr 2021-09-26 08:56:30 -04:00
nhmall
b2920ab728 Merge branch 'delete-extra-lines' of https://github.com/argrath/NetHack into several-pr 2021-09-26 08:56:08 -04:00
nhmall
d3acd8aa07 Merge branch 'ice-running' of https://github.com/copperwater/NetHack into several-pr 2021-09-26 08:54:47 -04:00
nhmall
026aec1086 Merge branch 'fix-travel' of https://github.com/entrez/NetHack into several-pr 2021-09-26 08:54:10 -04:00
Patric Mueller
92bff67a5d Fix compilation with TTY_TILES_ESCCODES for expanded-glyphs 2021-09-26 00:02:58 +02:00
SHIRAKATA Kentaro
96679152ef Supply missing changes
Some changes applied to Guidebook.mn were not applied to Guidebook.tex.
This commit supplies them.
2021-09-25 23:28:16 +09:00
PatR
eaaeb81a9f recalc_mapseen vs rooms
Reported and diagnosed by entrez:
recalc_mapseen() has been looking at all slots in u.urooms[] rather
than stopping at the first \0.  Since the whole array doesn't get
zeroed out when the value changes, stale room indices might follow
that first \0 and any rooms those referred to would erroneously get
flagged as having been visited by overview updates.  Wouldn't matter
for the level where the stale indices got set, since you'd have to
have been in those rooms for it to happen, but would matter once you
moved on to other levels.
2021-09-24 12:01:54 -07:00
nhmall
c760911f2e move enums in display.h ahead of macro definitions
move up the enums in display.h so that the enum values can be used
in place of mysterious magic numbers in some of the macro
definitions.
2021-09-22 21:46:30 -04:00
nhmall
47df95d8b8 remove unneeded per level flag
this is now taken care of in back_to_glyph (via altar_to_glyph)
2021-09-22 21:17:21 -04:00
PatR
6c2a34ef94 warning fix 2021-09-22 14:09:46 -07:00
nhmall
39260880ef yet more expanded-glyphs altar follow-up
The 5 glyphs are now unaligned_altar, chaotic_altar, neutral_altar,
lawful_altar, and high_altar. The latter is only mapped if you are
on astral or sanctum levels.
2021-09-22 15:47:17 -04:00
SHIRAKATA Kentaro
83c626b707 delete extra lines 2021-09-23 03:30:57 +09:00
nhmall
c8c08a6aec more expanded-glyphs follow-up
relocate reset_glyphmap() call to more appropriate location
valley and mines unaligned altars are included in the level-specfic
colorization
2021-09-22 14:20:41 -04:00
nhmall
fb37493f4a another expanded-glyphs follow-up for altars 2021-09-22 12:58:06 -04:00
nhmall
6c54158180 expanded-glyphs follow-up: altars 2021-09-22 12:01:21 -04:00
PatR
7a7550f538 silence compiler warning in droppables()
Reported by entrez as a github issue for evilhack, 'gcc -2' issued
warnings about droppables() possibly returning the address of a local
variable (&dummy).  It is mistaken; that never gets returned because
of various checks being performed.  But making 'dummy' be static adds
negligible cost and should shut it up (not verified but no doubt
about viability...).
2021-09-22 07:59:36 -07:00
nhmall
36601cf35c fix build when TEXTCOLOR is not defined
This was picked-up by the CI minimal build which #undefine's
several things before attempting the build.
2021-09-21 08:38:56 -04:00
PatR
f0204d1c26 formatting bit: display_self() 2021-09-21 01:02:52 -07:00
nhmall
f034f8ae86 Windows Makefile.gcc update
tilemap needs to link with tilemap.o monst.o objects.o drawing.o
2021-09-21 03:40:17 -04:00
nhmall
57644e1f33 bump editlevel 2021-09-20 21:19:39 -04:00
nhmall
9e46366a5e add fixes37.0 entries for the expanded-glyphs 2021-09-20 10:15:05 -04:00
nhmall
c67783dfd5 trailing whitespace 2021-09-20 09:32:40 -04:00
nhmall
0a2dc67e75 build warning
sp_lev.c: In function ‘lspo_altar’:
sp_lev.c:3962:9: warning: declaration of ‘shrine’ shadows a global
declaration [-Wshadow]
 3962 |     int shrine;
       |         ^~~~~~
       In file included from ../include/hack.h:217,
                        from sp_lev.c:14:
			../include/display.h:959:5: note: shadowed
			declaration is here
			  959 |     shrine
			        |     ^~~~~~
2021-09-19 15:15:11 -04:00
nhmall
085b04fd87 Merge branch 'NetHack-3.7' into expanded-glyphs 2021-09-19 14:45:02 -04:00
Pasi Kallinen
176d5b8463 Bones piles can be ransacked by adjacent monsters
If a bones file is created, any object-liking monster next to
where hero died has a chance of grabbing objects from hero's
inventory.

This comes from xNetHack by copperwater <aosdict@gmail.com>.
2021-09-19 21:20:32 +03:00
Pasi Kallinen
5d3e237ffc Izchak occasionally stocks wands/scrolls/spellbooks of light
This comes from xNetHack by copperwater <aosdict@gmail.com>
2021-09-19 20:52:19 +03:00
Pasi Kallinen
b23ff20c6a Gas clouds expand around terrain rather than being rhomboid
The gas will expand from its chosen center point via breadth-first
search instead of hardcoding a diagonal shape. The search is performed
with a randomized list of directions, and has 50% chance of not spreading
to a space it otherwise would have spread to. This has the effect of fuzzing
the cloud edges in open areas, helping the clouds on, for instance,
the Plane of Fire not be big rhombuses.

Also some other code refactoring related to stinking clouds in read.c

This comes from xNetHack by copperwater <aosdict@gmail.com>
2021-09-19 13:57:47 +03: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
Pasi Kallinen
12800bf84b Walking near buried zombifying corpses wakes them up
Moving without stealth will reduce the zombifying timeout
of buried corpses under and around hero's location.
2021-09-18 21:24:52 +03:00
Pasi Kallinen
2dce29e965 Move Pw regen into separate routine 2021-09-18 20:23:20 +03:00
nhw_cron
74a0ede6d9 This is cron-daily v1-Jan-20-2020. guidebook updated: doc/Guidebook.txt 2021-09-18 11:02:33 -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
nhmall
22b2ef8f2b Guidebook.tex update from cron daily 2021-09-18 07:32:25 -04:00
nhmall
b6e882d79d fix error in Guidebook.tex and Guidebook date bump 2021-09-17 22:44:16 -04:00
nhmall
0973743e83 build warning compiling with visual studio 2019 2021-09-17 22:32:06 -04:00
Pasi Kallinen
b30061b5ad Allow dropping just picked up items
When using a menu to drop or put in items into a container,
allow putting in the item (or items) you picked up previously,
by selecting the 'P' entry from the item class menu

Inspired by the itemcat patch by Stanislav Traykov.

Invalidates saves and bones.
2021-09-17 21:00:06 +03:00
PatR
e43ec0cef1 fix odd messages caused by buffer re-use
Reported and diagnosed by entrez:
"The <mon> yanks <two-handed weapon> from your corpses!"

It became unwielded and that triggered a perm_invent update and
such updates reformat entire inventory, so if that contains a dozen
or more items it will use all the obuf[] static buffers as least
once.  In this case, the bullwhip code had plural of "hand" in one
of those buffers and by the time it delivered the message which
used that, the value had been clobbered.

As the diagnosis mentioned, it can be tricky to reproduce since
either &obuf[0] or &obuf[PREFIX] might be used and if the value
being clobbered didn't overlap, the effect wasn't noticeable.

Instead of fixing the bullwhip message, this changes inventory
display so that it should no longer churn through all the buffers.

It also adds a fixes entry for #K3401, which was already fixed for
3.7 but I hadn't been able to reproduce it for 3.6.x (which I now
blame on the PREFIX trickiness).
2021-09-15 20:56:06 -07:00
nhmall
fde51720f4 Windows Makefile.msc updates
Recognize latest version of Visual Studio Community 2017 version 15.9.39
Recognize latest version of Visual Studio Community 2019 version 16.11.3
The removal of the generated $(SRC)\tile.c file moved from
    nmake spotless
to
    nmake clean
2021-09-15 21:45:50 -04:00
nhmall
8ca0ce4b12 Makefile.gcc follow-up
Errors in the CI after dependency update
2021-09-14 23:39:22 -04:00
nhmall
3a5ba5a81a msdos Makefile.gcc dependency update
Copy the recently updated dependencies from sys/unix/Makefile.src
over to sys/msdos/Makefile.gcc.
2021-09-14 12:48:42 -04:00
nhmall
db9059f735 Windows Makefile.gcc dependency update
Copy the recently updated dependencies from sys/unix/Makefile.src
over to sys/windows/Makefile.gcc.
2021-09-14 12:36:29 -04:00
nhmall
ef1af7c951 Windows Makefile.msc dependency update
Copy the recently updated dependencies from sys/unix/Makefile.src
over to sys/windows/Makefile.msc.
2021-09-14 10:25:49 -04:00
PatR
84b4eb9888 Unix 'make depend'
I recently changed a comment in objclass.h and that should have
triggered a full or nearly full rebuild but only resulted in a
couple of files being recompiled.  Instead of trying to figure out
why, I just ran Makefile.src through 'make depend' to force it to
be up to date.

A side-effect is that version.c won't be unnecessarily recompiled
every time nethack gets relinked.  The reason for that (date.h
being regenerated with new data) is handled by date.c now.
2021-09-14 02:06:14 -07:00
nhmall
15ec24a524 windows visual studio project build tweaks 2021-09-13 11:32:59 -04:00
Pasi Kallinen
408aa4b3cb remove sp_lev execute bits 2021-09-12 22:34:19 +03:00