Commit Graph
100 Commits
Author SHA1 Message Date
nhmall 0eb7f109e0 follow-up, program_state 2024-07-13 16:31:35 -04:00
nhmall 6c0ae092c6 distinguish global variables that get written to savefile
The g? structs had a mix of variables that were written to
the savefile, and those that were not.

For better clarity and to distinguish those that end up in
the savefile, relocate some g? variables that get written
directly to the savefile into different structs.

This updates EDITLEVEL, although technically it probably
didn't need to, since savefile contents are not changing.

Details:

    gb.bases            -> svb.bases
    gb.bbubbles         -> svb.bbubbles
    gb.branches         -> svb.branches
    gc.context          -> svc.context
    gd.disco            -> svd.disco
    gd.dndest           -> svd.dndest
    gd.doors            -> svd.doors
    gd.doors_alloc      -> svd.doors_alloc
    gd.dungeon_topology -> svd.dungeon_topology
    gd.dungeons         -> svd.dungeons
    ge.exclusion_zones  -> sve.exclusion_zones
    gh.hackpid          -> svh.hackpid
    gi.inv_pos          -> svi.inv_pos
    gk.killer           -> svk.killer
    gl.lastseentyp      -> svl.lastseentyp
    gl.level            -> svl.level
    gl.level_info       -> svl.level_info
    gm.mapseenchn       -> svm.mapseenchn
    gm.moves            -> svm.moves
    gm.mvitals          -> svm.mvitals
    gn.n_dgns           -> svn.n_dgns
    gn.n_regions        -> svn.n_regions
    gn.nroom            -> svn.nroom
    go.oracle_cnt       -> svo.oracle_cnt
    gp.pl_character     -> svp.pl_character
    gp.pl_fruit         -> svp.pl_fruit
    gp.plname           -> svp.plname
    gp.program_state    -> svp.program_state
    gq.quest_status     -> svq.quest_status
    gr.rooms            -> svr.rooms
    gs.sp_levchn        -> svs.sp_levchn
    gs.spl_book         -> svs.spl_book
    gt.timer_id         -> svt.timer_id
    gt.tune             -> svt.tune
    gu.updest           -> svu.updest
    gx.xmax             -> svx.xmax
    gx.xmin             -> svx.xmin
    gy.ymax             -> svy.ymax
    gy.ymin             -> svy.ymin

Related note:
There are some pointer variables that are heads of chains that were not
moved from 'g?' to 'sv?', because they are not actually written to the
savefile directly, but the objects/monst/trap/lightsource/timer in the
chains they point to are. That can be changed, if desired.
Examples: gi.invent, gm.migrating_objs, gb.billobjs, gm.migrating_mons,
          gf.ftrap, gl.light_base, gt.timer_base
2024-07-13 14:57:50 -04:00
nhmall fbda1183d7 comment bit 2024-07-07 10:40:03 -04:00
nhmall a86b9e6899 update tested versions of Visual Studio 2024-06-13 2024-06-13 09:05:01 -04:00
nhmall d04c0f00ed follow-up bit (from leading tab replacements) 2024-06-10 11:02:52 -04:00
nhmall 588b3ae92f replace some leading tabs that had crept in 2024-06-10 10:57:59 -04:00
nhmall 16ac21297a update tested versions of Visual Studio 2024-05-04 2024-06-04 07:45:23 -04:00
nhmall 8b0ea3f204 remove inappropriate PDCURSES use of stdin,stdout
Use of stdout and stdin was inappropriate for general curses.
Windows GUI links with PDCURSES wingui code.
2024-06-04 06:46:25 -04:00
nhmall 26b12f83fe update tested versions of Visual Studio 2024-05-16 2024-05-16 12:27:56 -04:00
nhmall 38d2294257 revert 184c9e3b and re-commit partial
Reason: The following concern was raised:
"The trademark indicators were not out of sync.  The Guidebook
uses footnotes for that, 'history' uses "(tm)" in the text which
works better when nethack displays the text."
2024-05-13 14:12:38 -04:00
nhmall 5e765679c8 Revert "Merge branch 'update-history' of https://github.com/argrath/NetHack into"
This reverts commit 184c9e3b92, reversing
changes made to 8e6f3ccc7d.
2024-05-13 14:09:01 -04:00
nhmall 86bb71ef76 merge pr #1213
@Umbire wrote:
Very simple change code-wise - if he's gonna use a yumi a hunter of his expertise should presumably have the projectiles match.

Closes #1213.
2024-05-13 12:58:02 -04:00
nhmall 184c9e3b92 Merge branch 'update-history' of https://github.com/argrath/NetHack into
NetHack-3.7

@argrath reported that some of the text had fallen out of sync.

Closes #1225.
2024-05-13 12:52:07 -04:00
nhmall 68169708dc follow-up
replace dependency that was removed but should not have been
2024-05-13 08:54:56 -04:00
nhmall 29bf3646e0 add makedefs options for producing individual files
This may be useful for some build environments to avoid parallel make
issues, and artificially-concocted order dependencies, leaving the ordering
up to that specified in the Makefile.

The related makedefs options are now:

       ‐s     Generate the bogusmon , engrave and epitaph files.

       ‐1     Generate the epitaph file.

       ‐2     Generate the engrave file.

       ‐3     Generate the bogusmon file.

Also resolves an existing issue encountered in doc/makedefs.6 where "and epitaphfiles"
was being produced in the result.
2024-05-13 08:45:11 -04:00
nhmall 97916007ef restrict font fallback to legacy Windows console
It was misbehaving with ENHANCED_SYMBOLS so restrict the font fallback
to the legacy Windows console for now.
2024-05-12 08:12:30 -04:00
nhmall 329ffae7df simple O menu requires clear screen for symset 2024-05-12 08:10:36 -04:00
nhmall 38e8e99565 Windows symbols copying
Avoid leaving outdated symbols file in place when there is a newer one.
2024-05-12 08:06:41 -04:00
nhmall 389a17bf02 Merge branch 'hardware-shop-string' of https://github.com/nethackathon/NetHack into NetHack-3.7 2024-05-07 12:30:08 -04:00
nhmall 93a44c05d1 let the compiler -Wswitch catch unhandled shop_string types 2024-05-07 12:24:57 -04:00
nhmall fce82ac0f3 Merge branch 'patch-4' of https://github.com/nikolas/NetHack into NetHack-3.7 2024-05-07 10:15:17 -04:00
nhmall 1d7abb0b58 cross-compile requires two distinct hacklib.a libraries
One to link with the stuff that needs to be built and executed on
the build host during the build, such as makedefs.

One to link with the stuff that will run on the target platform.
2024-04-27 17:24:47 -04:00
nhmall 9ae6f4e77e warning fix if SYSCF is not defined 2024-04-27 10:00:28 -04:00
nhmall 1e6d5317e5 warning bit report.c 2024-04-27 09:08:08 -04:00
nhmall 59bd1ce687 update tested versions of Visual Studio 2024-04-19 2024-04-19 14:17:47 -04:00
nhmall e20774e16f updated workaround for vs conflict 2024-04-15 12:52:08 -04:00
nhmall 7e6dab38c5 work around a conflict with visual studio build 2024-04-15 12:45:49 -04:00
nhmall 2ce6df8be5 yet another follow-up 2024-04-15 12:28:00 -04:00
nhmall 8b48032e74 follow-up for Makefile.mingw32 2024-04-15 12:24:59 -04:00
nhmall 53e4e2e12a update Makefile.mingw32 res file dependencies 2024-04-15 12:12:47 -04:00
nhmall 453eacdcb6 include the manifest in NetHackW res 2024-04-15 12:09:23 -04:00
nhmall 141dc9e52e Merge branch 'NetHack-3.7' of https://github.com/RainRat/NetHack into NetHack-3.7 2024-04-14 06:37:30 -04:00
nhmall f2d0dbcc09 revise alt_color_spec() so digit count limits work 2024-04-13 13:06:38 -04:00
nhmall 86cb8dba60 use COLORVAL macro in change_palette() 2024-04-13 12:09:45 -04:00
nhmall c30dbb2caa alt_color_spec follow-up 2024-04-13 12:00:37 -04:00
nhmall 936096d5e3 Windows build fix
consoletty.o : error LNK2005: _tty_change_color already defined in wintty.o
consoletty.o : error LNK2005: _tty_get_color_string already defined in wintty.o
2024-04-13 09:11:27 -04:00
nhmall 3364ac7cdb CHANGE_COLOR:allow #rrggbb hex color specification 2024-04-13 09:08:14 -04:00
nhmall ebd200ecc2 follow-up: preprocessor conditional 2024-04-12 21:59:59 -04:00
nhmall 15db874f71 CHANGE_COLOR palette option adjustments
It was too early to call the windowport change_color() routine
while processing the config file. The windowport was not yet
fully operational.

Now the palette option processing will just place the rgb
value into the appropriate ga.altpalette[CLR_MAX] entry.

init_sound_disp_gamewindows(void) [allmain.c] calls
change_palette() [coloratt.c] and it will call the windowport
change_color() function for each ga.altpalette[] entry that
has been set.

Notes:
The rgb values stored in ga.altpalette[] have the NH_ALTPALETTE bit set
so that the rgb value of 0 can be stored and be distinguishable from
a "not set" entry.

The NH_ALTPALETTE bit is cleared from the rgb value in change_palette()
prior to calling the windowport change_color() function.

The syntax for palette is colorname/r-g-b.
For example: palette:black/12-12-12

colorname must be one of the NH_BASIC_COLOR names or a suitable
alias for one of those 16 entries.

Some of the windowport CHANGE_COLOR functions had the wrong parameters,
perhaps due to bitrot. Those have been corrected to match the prototype.
2024-04-12 21:57:27 -04:00
nhmall 8bbbe38fb5 fix garbled message on symset change from O menu 2024-04-11 20:24:38 -04:00
nhmall 16c693eedf fix lingering error on Windows nmake command line build
src\cmd.c(3453) : warning C4701: potentially uninitialized local variable 'func' used
src\cmd.c(3453) : error C4703: potentially uninitialized local pointer variable 'func' used
2024-04-11 12:23:56 -04:00
nhmall 46370fc124 another follow-up: move values that can't be indexes
Move the values that are not legal mons indexes out of the default
handling case in make_corpse().
2024-04-10 11:34:41 -04:00
nhmall 125208d30b follow-up bit to explit mon entries in make_corpse() 2024-04-10 11:29:31 -04:00
nhmall a85cd7d5c8 let compiler catch missing additions during development
Take advantage of the ability of some compilers to warn if
not all values are covered in a switch statement, to draw
attention to the need to update make_corpse() when new
monsters are added to NetHack.

This adds explicit entries for the current "default" handling
in make_corpse().

It might be a good idea to review the explicit entries to see
if any of them represent others that are not being handled,
but should be.

To test this, I temporarily reverted 85c86444, and I did receive the
following warning:

mon.c:545:13: warning: enumeration value 'PM_GOLD_DRAGON' not handled in switch [-Wswitch]
  545 |     switch (mndx) {
      |             ^~~~
1 warning generated.
2024-04-10 11:07:40 -04:00
nhmall 5294b0a320 follow-up comment wording 2024-04-07 17:22:03 -04:00
nhmall b573538253 fix reported segfault during configfile processing 2024-04-07 13:14:12 -04:00
nhmall 080c6747fd follow-up bit
minor, but inner loop assignments to glyph and mapsym
are only needed when corr_next2u is TRUE
2024-04-04 16:51:51 -04:00
nhmall 1487d05c92 resolve 3 warnings during DOS cross-compile
wizcmds.c: In function 'wiz_custom':
wizcmds.c:1845:40: warning: format '%d' expects argument of type 'int', but argument 4 has type 'uint32_t' {aka 'long unsigned int'} [-Wformat=]
 1845 |         Sprintf(bufa, "%s: colorcount=%d %s", wizcustom, iflags.colorcount,
      |                                       ~^                 ~~~~~~~~~~~~~~~~~
      |                                        |                       |
      |                                        int                     uint32_t {aka long unsigned int}
      |                                       %ld
wizcmds.c: In function 'wizcustom_callback':
wizcmds.c:1895:32: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'uint32' {aka 'long unsigned int'} [-Wformat=]
 1895 |             Sprintf(bufc, "%011x", cgm->customcolor);
      |                            ~~~~^   ~~~~~~~~~~~~~~~~
      |                                |      |
      |                                |      uint32 {aka long unsigned int}
      |                                unsigned int
      |                            %011lx
wizcmds.c:1899:37: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'uint32' {aka 'long unsigned int'} [-Wformat=]
 1899 |                 Sprintf(bufu, "U+%04x", cgm->u->utf32ch);
      |                                  ~~~^   ~~~~~~~~~~~~~~~
      |                                     |         |
      |                                     |         uint32 {aka long unsigned int}
      |                                     unsigned int
      |                                  %04lx
2024-04-03 12:15:51 -04:00
nhmall 40e3b3b64a doc update VIEWDEPRECATIONS=1 2024-04-01 15:12:28 -04:00
nhmall d0c543748e follow-up: use VIEWDEPRECATIONS instead of KEEPDEPRECATIONS 2024-04-01 15:04:07 -04:00
nhmall 61252f5c02 allow KEEPDEPRECATIONS=1 on make command line to see what's deprecated 2024-04-01 14:59:41 -04:00
nhmall 459f5f77c1 pass NETHACK_VERSION to package subproject 2024-04-01 09:24:09 -04:00
nhmall 69ecd69871 follow-up re: vs2017 2024-03-31 21:38:57 -04:00
nhmall 410c1b6cbd stop support & testing of nearly 7 year old vs2017 2024-03-31 21:31:34 -04:00
nhmall 0a4f9de695 follow-up: remove explicit Windows SDK reference 2024-03-31 20:43:15 -04:00
nhmall 1d4aeb4f15 add some zip file packaging to visual studio proj 2024-03-31 20:37:56 -04:00
nhmall 6f3a54367e follow-up to fix the git mv done earlier 2024-03-31 14:06:05 -04:00
nhmall e00e423262 remove leading period from Windows template file 2024-03-31 13:53:48 -04:00
nhmall 5ee813091a remove specific Windows 10 sdk reference 2024-03-31 12:01:05 -04:00
nhmall f71b0caecd visual studio project updates 2024-03-31 10:21:08 -04:00
nhmall 8262eb2fe4 add fetch 2024-03-31 09:09:31 -04:00
nhmall a3e9c7db2d follow-up: shorten some lines; add an assert 2024-03-31 08:28:50 -04:00
nhmall 8ccd8b8937 fix reported segfault in add_custom_nhcolor_entry()
Program terminated with signal SIGSEGV, Segmentation fault.
77      ../sysdeps/x86_64/multiarch/strlen-evex.S: No such file or directory.
(gdb) bt
    at glyphs.c:419
    at glyphs.c:173
    op=0x5a34af30a574 "DECgraphics") at options.c:3418
2024-03-31 08:06:42 -04:00
nhmall a1a1049890 follow-up for an apparent conflict in Qt5 2024-03-29 16:10:33 -04:00
nhmall af3a0db083 onefile fix 2024-03-29 07:02:04 -04:00
nhmall b4cd1d6ee0 remove unnecessary paragraph 2024-03-28 10:09:59 -04:00
nhmall c80bb1990d some Windows build doc updates and typo fixes 2024-03-28 10:06:08 -04:00
nhmall 9955b2364b update sys/windows/Install.windows 2024-03-27 16:44:40 -04:00
nhmall 5355ee67e2 follow-up: fix copy-and-paste error 2024-03-27 16:25:33 -04:00
nhmall bb2fef0f7d rework Windows build instructions 2024-03-27 16:20:06 -04:00
nhmall 1864480522 get rid of a [-Wformat-overflow=] warning 2024-03-26 08:25:32 -04:00
nhmall 66f92ad182 startup sequence and iflags values
early_init() calls decl_globals_init() which zeros out
a number structures:
    ZERO(flags);
    ZERO(iflags);
    ZERO(a11y);
    ZERO(disp);
    ZERO(u);
    ZERO(ubirthday);
    ZERO(urealtime);

Setting values in any of those during startup prior to
the early_init() call was futile, and the values would
get overwritten.

Such was the case with the setting of iflags.colorcount
during Windows startup, so do it after early_init() has
been called.
2024-03-25 22:30:08 -04:00
nhmall 875c83cc2c fix build when ENHANCED_SYMBOLS is not defined 2024-03-25 21:25:27 -04:00
nhmall 80fb1b5f54 provide way for developer to verify custom colors and symbols in effect
' #wizcustom
2024-03-25 20:42:48 -04:00
nhmall 652b94ab41 another fix reinstatement 2024-03-25 09:57:53 -04:00
nhmall 2b6d1fa942 reinstate a warning fix 2024-03-25 09:53:52 -04:00
nhmall 7f2af9698f put wintty.c and termcap.c logic to previous 2024-03-25 09:38:54 -04:00
nhmall dc7df7c407 deal with added field in shuffle_customizations() 2024-03-25 00:15:06 -04:00
nhmall e3409fd4af reinstate 256 color 2024-03-24 23:47:24 -04:00
nhmall 4d453193cf wintty.c double-check ordering of color on/off 2024-03-24 21:41:32 -04:00
nhmall 29495f77f7 runtime toggle of ENHANCED_SYMBOLS customsymbols 2024-03-24 19:39:36 -04:00
nhmall 780d0912ee indent bit 2024-03-24 17:01:41 -04:00
nhmall 0b35079acc add customcolors option
customcolors (default) and !customcolors toggle whether the
custom colors get applied to the glyphmap.
2024-03-24 16:55:23 -04:00
nhmall f5c3445e80 a couple of level color tweaks 2024-03-24 15:56:45 -04:00
nhmall d15ab932e7 more code moves
move an ENHANCED_SYMBOLS function from glyphs.c to utf8map.c
2024-03-24 15:36:19 -04:00
nhmall 17578590ea tidy up glyphs.c a little bit 2024-03-24 15:25:57 -04:00
nhmall 7eecddfdea follow-up to field name change 2024-03-24 11:18:25 -04:00
nhmall 750cf7f619 rename glyphmap nhcolor field to customcolor 2024-03-24 11:04:31 -04:00
nhmall ec8f237960 config.h comment update 2024-03-24 10:27:42 -04:00
nhmall e2121ecfab take another stab at shuffle_customizations() 2024-03-24 10:21:19 -04:00
nhmall 8abbb2bca1 unused variable warning fix 2024-03-24 07:22:50 -04:00
nhmall 0b3a0f1b72 follow-up: fix a wintty.c text substitution error 2024-03-24 07:17:40 -04:00
nhmall 71c78449e5 Windows mswin follow-up 2024-03-23 17:21:18 -04:00
nhmall 8efc329db2 DOS stubs for unfilled functionality 2024-03-23 16:55:56 -04:00
nhmall 340588e907 follow-up fix a regression on color naming 2024-03-23 16:51:51 -04:00
nhmall 5c43c81018 attempt to fix DOS cross-compile 2024-03-23 15:56:04 -04:00
nhmall d610d16863 visual studio project file updates for glyphs.c 2024-03-23 15:51:06 -04:00
nhmall 19f1036672 add some custom color glyph definitions to a few symsets
Exercise the previous commit a little.

FIQ's suggested wildcard syntax would make this easier
and a lot less verbose, but that isn't available yet.

This updates (adds some colored walls on specific levels) to the following:

IBMgraphics
IBMgraphics_1
IBMgraphics_2
curses
DECgraphics
2024-03-23 15:41:48 -04:00
nhmall ba00dc9066 sever extracolors from utf8map and ENHANCED_SYMBOLS
move the custom color data into its own field in the glyphmap
and disassociate it from the unicode/utf8 stuff.

move the glyphcache stuff during options processing and parsing
into new file glyphs.c and out of utf8map.c, and make it
general, and not part of ENHANCED_SYMBOLS.

Do the groundwork for allowing glyph color customizations to
work when any symset is loaded and not restrict it only to
the enhanced1 H_UTF8 symsets.

The customizations in effect are still affiliated with a particular
symset.

Also closes #1224, but the PR itself references a data structure
made obsolete by this commit. The curses comment from the PR was
added into the code.

The PR also made several suggestions, but only the first
one has been included in this commit (and no longer based on
the handler), that being:
"allow defining colors if other symbol handling modes are used
(possibly limited to the standard 16 colors)."

FredrIQ also wrote the following suggestions in PR#1224:

Something I was also contemplating, unrelated to implementation of this
support in curses, would be the ability for the following:

allow defining colors if other symbol handling modes are used (possibly limited to the standard 16 colors)
allow defining attributes (for example: glyph:G_pet_female_kitten:U+0066/red/underline)
allow specifying glyphs as wildcards for defining global color/attribute changes

Something I also want to see are keywords for "don't change the current defined data". If this
were to be added, you could for example do this:
OPTIONS=glyph:G_*_fox:U+0064/blue
OPTIONS=glyph:G_statue_*:basechar/gray/underline
for "make all foxes use a blue color, make all statues gray with underline" without needing
to specify the relevant character for every statue. This ("basechar", "basefg", etc)
should perhaps also be added for MENUCOLORS and statushilites, so that you can, for
example, underline all items being worn without needing to specify a bunch of
near-duplicate rules for combining BUC colors + underline worn items
as per #1064
2024-03-23 15:36:22 -04:00
nhmall 058e0cf18c update tested versions of Visual Studio 2024-03-21 2024-03-21 11:24:40 -04:00