Commit Graph

5523 Commits

Author SHA1 Message Date
nhmall
1e0c03b3f6 incremental improvements to cross-compiling support in NetHack 3.7
Some support of new code #defines to faciliate cross-compiling:

    OPTIONS_AT_RUNTIME    If this is defined, code to support obtaining
                          the compile time options and features is
                          included. If you define this, you'll also have
                          to compile sys/mdlib.c and link the resulting
                          object file into your game binary/executable.

    CROSSCOMPILE          Flags that this is a cross-compiled NetHack build,
                          where there are two stages:
                          1. makedefs and some other utilities are compiled
                          on the host platform and executed there to generate
                          some output files and header files needed by the
                          game.
                          2. the NetHack game files are compiled by a
                          cross-compiler to generate binary/executables for
                          a different platform than the one the build is
                          being run on. The executables produced for the
                          target platform may not be able to execute on the
                          build platform, except perhaps via a software
                          emulator.

                          The 2-stage process (1. host, 2.target) can be done
                          on the same platform to test the cross-compile
                          process. In that case, the host and target platforms
                          would be the same.

    CROSSCOMPILE_HOST     Separates/identifies code paths that should only be
                          be included in the compile on the host side, for
                          utilities that will be run on the host as part of
                          stage 1 to produce output files needed to build the
                          game. Examples are the code for makedefs, tile
                          conversion utilities, uudecode, dlb, etc.

    CROSSCOMPILE_TARGET   Separates/identifies code paths that should be
                          included on the build for the target platform
                          during stage 2, the cross-compiler stage. That
                          includes most of the pieces of the game itself
                          but the code is only flagged as such if it must
                          not execute on the host.

If you don't define any of those, things should build as before.
One follow-on change that is likely required is setting the new dependency
makedefs has on src/mdlib.c in Makefiles etc.

More information about the changes:

    makedefs

    - splinter off some of makedefs functionality into a separate file
      called src/mdlib.c.
        - src/mdlib.c, while included during the compile of makedefs.c
          for producing the makedefs utility, can also be compiled
          as a stand-alone object file for inclusion in the link step
          of your NetHack game build. The src/mdlib.c code can then
          deliver the same functionality that it provided to makedefs
          right to your NetHack game code at run-time.
          For example, do_runtime_info() will provide the caller with
          the features and options that were built into the game.
          Previously, that information was produced at build time on the
          host and stored in a dat file. Under a cross-compile situation,
          those values are highly suspect and might not even reflect the
          correct options and setting for the cross-compiled target
          platform's binary/executable. The compile of those values and
          the functionality to obtain them needs to move to the target
          cross-compiler stage of the build (stage 2).
        - date information on the target-side binary is produced from
          the cross-compiler preprocessor pre-defined macros __DATE__
          and __TIME__, as they reflect the actual compile time of the
          cross-compiled target and not host-side execution of a utility
          to produce them. The cross-compiler itself, through those
          pre-defined preprocessor macros, provides them to the target
          platform binary/executable. They reflect the actual build
          time of the target binary/executable (not values produced
          at the time the makefiles utility was built and the
          appropriate option selected to store them in a text file.)
        - most Makefiles should not require adding the new file
          src/mdlib.c because util/makedefs.c has a preprocessor
          include "../src/mdlib.c" to draw in its contents. As previously
          stated though, the Makefile dependency may be required:
		makedefs.o: ../util/makedefs.c ../src/mdlib.c
                                               ^^^^^^^^^^^^^^^
2019-11-22 22:35:48 -05:00
nhmall
fa4552e09e Merge branch 'NetHack-3.6' 2019-11-22 07:41:53 -05:00
PatR
d4df876a6f docall fix
Noticed while testing something:  hero drank a potion of see invisible
and nearby invisible monster could now be seen--in theory--but I was
asked what to call the potion while the updated map was buffered.  So
I didn't see the invisible monster until after naming the potion.

pline() flushes buffered map updates, but getlin() doesn't.  I didn't
change that, but I've made docall() do so since the updated map may
make a difference in what the player can tell about whatever is being
'called'.
2019-11-22 02:46:28 -08:00
nhmall
39bc7e9bb9 Merge branch 'NetHack-3.6' 2019-11-21 23:50:01 -05:00
nhmall
3545374e9c internal self-recover fix and bones name buffers 2019-11-21 23:41:11 -05:00
PatR
a62d6145bd fix part of #H9397 - hallucinatory mon names
Fix the issue where a hallucinatory monster name which begins with
a slash is having that stripped off as if it was a gendor and/or
personal-name flag.

The main issue was pronouns ignoring hallucination and this doesn't
attempt to address that.

Also, add new hallucinatory name "leathery-winged avian" which has
been lurking for a while.
2019-11-21 17:43:55 -08:00
Pasi Kallinen
cb4d350424 Fix unnecessary string copy 2019-11-20 21:20:35 +02:00
Pasi Kallinen
a338f8bd88 Fix wizmakemap calling mklev twice 2019-11-20 21:08:35 +02:00
Pasi Kallinen
791657f4e6 Fix memory leaks in lua integration 2019-11-20 20:09:16 +02:00
Pasi Kallinen
786a90415e Fix some memory leaks 2019-11-19 17:31:50 +02:00
nhmall
f7cb969e2d Merge branch 'NetHack-3.6' 2019-11-18 19:19:12 -05:00
PatR
fc2886efb4 yet more --showpaths (dumplog)
Provide a little more information when dumplog is unavailable.
While testing various permutations, I encountered a couple of
problems with conditionally declared variables.
2019-11-18 14:28:25 -08:00
nhmall
d132093595 Merge branch 'NetHack-3.6' 2019-11-18 15:15:37 -05:00
nhmall
41299d44ae Merge branch 'k-sound' into NetHack-3.6 2019-11-18 15:14:55 -05:00
nhmall
fbd10e4b0e some further refinements to --showpaths
The Windows data file path has to be constructed because
Windows defines VERSION_IN_DLB_FILENAME.

Keep the personal configuration file details as the last
information displayed.
2019-11-18 15:12:38 -05:00
nhmall
450957bfe9 further refine k-sound pluralization 2019-11-18 13:23:13 -05:00
nhmall
bb2185203f Merge branch 'NetHack-3.6' 2019-11-17 20:31:56 -05:00
nhmall
f4cbd4e538 Merge branch 'NetHack-3.6' of https://rodney.nethack.org:20040/git/NHsource into NetHack-3.6 2019-11-17 19:57:18 -05:00
nhmall
f75939e27e re-enable ifdef'd out code during code sleuthing a while back 2019-11-17 19:55:50 -05:00
PatR
1301e3bd76 '--showpaths' dlb vs non-dlbb
Have the --showpaths feedback mention whether dlb is in use or not,
and show the container file name(s) when it is.  Users of prebuilt
binaries or who build with a hints file instead of picking and
choosing things in config.h might not know, and vms (if it ever
catches up with --showpaths) uses a different container name from
everybody else ("nh-data.dlb" instead of "nhdat").
2019-11-17 16:45:10 -08:00
nhmall
856b4db789 Merge branch 'NetHack-3.6' 2019-11-17 14:39:58 -05:00
PatR
9ea7b074fe pager warning fix and formatting
The mapglyph() change made a variable obsolete but it got left in
(idx = SYM_PET_OVERRIDE...).  Take it out and fix up the formatting
for the block of code that had it.
2019-11-17 09:25:26 -08:00
nhmall
5f3398347c Merge branch 'NetHack-3.6' 2019-11-16 23:14:34 -05:00
nhmall
88127e2b8c Merge branch 'NetHack-3.6' of https://rodney.nethack.org:20040/git/NHsource into NetHack-3.6 2019-11-16 22:53:53 -05:00
nhmall
a364348098 add an mgflags parameter to mapglyph() to alter how it behaves internally
avoid a recent save-value,call,restore-value kludge by adding
an mgflags parameter to mapglyph() to control its behavior

 Changes to be committed:
	modified:   doc/window.doc
	modified:   include/extern.h
	modified:   include/hack.h
	modified:   src/detect.c
	modified:   src/mapglyph.c
	modified:   src/pager.c
	modified:   sys/amiga/winfuncs.c
	modified:   sys/wince/mhmap.c
	modified:   win/Qt/qt_win.cpp
	modified:   win/Qt4/qt4map.cpp
	modified:   win/X11/winmap.c
	modified:   win/curses/cursdial.c
	modified:   win/curses/cursinvt.c
	modified:   win/curses/cursmain.c
	modified:   win/gem/wingem.c
	modified:   win/tty/wintty.c
	modified:   win/win32/mhmap.c
	modified:   win/win32/mswproc.c
2019-11-16 22:49:36 -05:00
PatR
22980d8171 gas cloud fix
remove_region() calls newsym() when removing gas clouds, but when
newsym() checked whether it was updating a gas cloud location it
always got a false 'yes' because the region hadn't been removed yet.
Fixing this didn't seem to make any observable difference so it must
be followed fairly rapidly by a full vision recalc.
2019-11-16 18:31:30 -08:00
nhmall
18f6af1466 Merge branch 'NetHack-3.6' 2019-11-16 18:27:50 -05:00
nhmall
0bc2cd281c bad merge fix 2019-11-16 17:33:37 -05:00
PatR
2a07924063 rename S_player_override to S_hero_override 2019-11-16 14:31:57 -08:00
nhmall
6aef1f13a1 Merge branch 'NetHack-3.6' 2019-11-16 17:09:44 -05:00
nhmall
db52f15101 Merge branch 'NetHack-3.6' 2019-11-16 17:01:49 -05:00
PatR
145ba8ec12 ball&chain reformatting
This has been sitting around for a while.
2019-11-16 13:47:21 -08:00
PatR
2a50fb1845 place_monster() debugging
Show more information if place_monster() detects something wrong.
I don't know whether it will actually be useful.
2019-11-16 13:42:25 -08:00
nhmall
21a1dcd86c Merge branch 'NetHack-3.6' of https://rodney.nethack.org:20040/git/NHsource into NetHack-3.6 2019-11-16 16:40:40 -05:00
PatR
43e4100dd8 partial fix for #H9430 - gas clouds vs monsters
Don't show the gas cloud glyph at locations where monsters can be
sensed (telepathy, warning, extended detection).  It will work
better when/if vision of gas cloud locations gets fixed.  (Such
clouds behave as the hero can see into them, so warning doesn't
have any unseen monsters to show unless they're unseen for some
reason other than the gas cloud.)
2019-11-16 12:05:05 -08:00
PatR
020825bc73 monsters entering regions
Region processing does a lot of looping--when there are actually
regions present--and calls functions in those loops which do more
looping of their own.  This moves some of the simpler tests so that
they get done sooner and can avoid some of those function calls.
I was hoping that it would speed up the turn cycle on the Plane of
Fire where the spontaneous irregularly shaped fumaroles are composed
of a lot of small regions but I don't think there's any noticeable
difference.

In process of doing that, I discovered a bug (no doubt copy+paste
which escaped an intended update) with monster handling.  The check
for whether a monster is entering a region depends upon whether the
hero is in that same region rather than whether the monster is
already inside.  So a monster can enter a region--or have a moving
one enclose it--with impunity if the hero is already in that region.
Once the hero moves out of it, the monster will finally enter it.
2019-11-16 11:46:50 -08:00
nhmall
d74718fc2b likely final pluralization change for today 2019-11-16 14:17:11 -05:00
nhmall
5b7940ecb5 Merge branch 'NetHack-3.6' 2019-11-16 10:22:52 -05:00
nhmall
cdbad827fe reinstate bit - gak! 2019-11-16 10:15:55 -05:00
nhmall
340851ecf5 Revert "more pluralization"
This reverts commit 6a3dcc6a38.
2019-11-16 10:13:49 -05:00
nhmall
6a3dcc6a38 more pluralization 2019-11-16 10:08:21 -05:00
nhmall
8b1c6148f6 improve pluralization on some words ending with a k-sound
fixes #245
2019-11-16 08:27:07 -05:00
nhmall
bfb278fd38 Merge branch 'NetHack-3.7' 2019-11-15 22:23:55 -05:00
nhmall
29d378116e fix unplanned perm change 2019-11-15 22:22:19 -05:00
nhmall
4e05c874bf Merge branch 'NetHack-3.7' 2019-11-15 22:13:00 -05:00
nhmall
b0d8e86c8c Merge branch 'NetHack-3.6' 2019-11-15 22:12:12 -05:00
nhmall
298af2294f quiet some macosx warnings 2019-11-15 21:20:38 -05:00
PatR
ae415589e9 have --showpaths show DUMPLOG file
While not a path exactly, the dumplog file isn't placed somewhere
fixed so being able to see where it is placed could be useful.

This cascaded a bit during testing.  Fix one of the warnings from
hardfought (fqn_prefix_names[]).  And a few more that came up with
SYSCF disabled (panictrace_gdb, two unused variables if files.c).
2019-11-15 17:51:20 -08:00
PatR
8d154121ca fix #H9420 - dipping while blind
Fix several feedback anomalies for dipping into potions.
2019-11-15 12:09:45 -08:00
nhmall
78b0e5c804 Merge branch 'NetHack-3.7' into paxed-lua-v2-merged 2019-11-14 19:54:51 -05:00