Commit Graph

8337 Commits

Author SHA1 Message Date
nhmall
b367b4e868 Merge branch 'NetHack-3.6.2' 2019-01-29 17:23:22 -05:00
nhmall
dec463d2f5 Merge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2 2019-01-29 17:23:03 -05:00
nhmall
ccc14a038b more window port code uses of obj_to_glyph() 2019-01-29 17:21:55 -05:00
nhmall
f935331285 try fix for Qt4 using a core macro
../win/Qt4/qt4inv.cpp:41:26: error: macro "obj_to_glyph" requires 2 arguments, but only 1 given
  glyph=obj_to_glyph(nhobj);
                          ^
../win/Qt4/qt4inv.cpp: In member function ‘void nethack_qt4::NetHackQtInvUsageWindow::drawWorn(QPainter&, obj*, int, int, bool)’:
../win/Qt4/qt4inv.cpp:41:8: error: ‘obj_to_glyph’ was not declared in this scope
  glyph=obj_to_glyph(nhobj);
        ^
2019-01-29 17:07:00 -05:00
nhmall
97fdc3f3e4 build bits - mostly for Windows
Allow sys/share/random.c to be included in the build
always, even if USE_ISAAC64 is defined, by making most
of its contents conditional in that case.

That avoids Makefile tinkering when going back and
forth between USE_ISAAC64 and not during testing.
2019-01-29 11:31:41 -05:00
nhmall
f80223cdb4 Merge branch 'NetHack-3.6.2' 2019-01-29 09:27:46 -05:00
nhmall
9d2764b795 Merge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2 2019-01-29 09:27:17 -05:00
Patric Mueller
b7edc7f8e8 Workaround for including stdint.h on older GCC versions
GCC doesn't set __STDC_VERSION__ for older versions. It is verified to
be set by default on 5.3.0.

Older versions set __INT64_MAX__ though (oldest version tested is
4.5.4).

If compilation with older GCC versions is required, set -std=c99. Even
3.4.6 is supported with this setting.
2019-01-29 15:10:01 +01:00
nhmall
af42273b02 fixes36.2 update for added isaac64 prng 2019-01-29 07:38:57 -05:00
nhmall
fd410148c5 Merge branch 'NetHack-3.6.2' 2019-01-29 07:27:56 -05:00
nhmall
d9a2c572f5 Merge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2 2019-01-29 07:22:23 -05:00
nhmall
57f03eca1b Merge branch 'alex-and-isaac' into NetHack-3.6.2-beta01 2019-01-29 07:20:17 -05:00
Alex Smith
0c96dd6a22 Consistently use rn2 in trap detection
It's a gameplay-affecting action (it updates the character's
memory of the map), and there's no way to spam it without using
resources, so rn2 is safe.
2019-01-29 03:37:08 +00:00
nhmall
54062e0ad6 include the rnd.c bits 2019-01-28 19:54:18 -05:00
nhmall
457e4b68aa merge Alex's dual rng proposal with the isaac64 rng code and adjust
This is branched from Alex's hallu-rng-stability branch,
with two build corrections (detect.c, zap.c), and merged
with  the isaac64 branch that we have ready to go.

Alex's dual rng is supported by setting up the array
of multiple isaac64 contexts.

I stuck with Alex's approach of passing the rng function
name around as the parameter (rng or rn2_on_display_rng)
for the new additional parameter needed for
set_random(), init_random(), reseed_random(),
and init_isaac64().
2019-01-28 19:43:55 -05:00
nhmall
819ee796f2 Merge branch 'countermeasures' into alex-and-isaac 2019-01-28 18:37:50 -05:00
nhmall
b84ff772cc Merge branch 'NetHack-3.6.2' 2019-01-28 16:36:46 -05:00
nhmall
542019d31e Merge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2 2019-01-28 16:36:23 -05:00
PatR
30237c73ec fix #H8072 - failing wish segfaults
Having an artifact wish be refused uses zeroobj and code which
followed was attempting to update its weight, triggering a segfault
now that zeroobj is 'const'.
2019-01-28 09:10:52 -08:00
nhmall
3108b18ea5 Merge branch 'countermeasures' of https://rodney.nethack.org:20040/git/NHsource into countermeasures 2019-01-28 09:45:31 -05:00
nhmall
f53d02f0bb Windows build bit 2019-01-28 09:44:35 -05:00
Patric Mueller
bd730dbcaa workaround for C89 not supporting inline 2019-01-28 15:00:04 +01:00
nhmall
22f8d864e2 ntconf.h ensure Rand is always something
order of preference:
USE_ISAAC64
RANDOM
C routine
2019-01-28 10:32:57 +01:00
nhmall
c1327142b5 detect DEV_RANDOM fopen failure and fall back, noting it in paniclog 2019-01-28 10:32:57 +01:00
nhmall
0aa4d62a2c detect rng seed strength at runtime based on algorithm not compile time based on platform features 2019-01-28 10:32:57 +01:00
nhmall
0a430cab11 every platform provides sys_random_seed() and SYS_RANDOM_SEED goes away 2019-01-28 10:32:57 +01:00
Patric Mueller
97b8d0a50b Don't define Rand() if isaac64 is used 2019-01-28 10:02:09 +01:00
nhmall
3f609bf9ad define Rand() in isaac4 config
Rand() was typically defined to random() or to rand().

gcc seems to provide a random() to link to on linux
when sys/share/random.c is linked in, but other platforms
such as Windows got an undefined refence to random()
when RANDOM wasn't defined.

The only direct use seems to be in get_rnd_txt() these
days, in rumors.c

Under the USE_ISAAC64 config, neither srandom()
nor srand() are being invoked to seed those routines,
and it really should be using isaac64 when USE_ISAAC64
is defined anyway.
2019-01-28 10:02:09 +01:00
nhmall
6c114640f5 some system-specific adjustments for RNG routines
move some system-specific seed-related stuff from hacklib.c to
a system-specific source file and #define SYS_RANDOM_SEED to
utilize it during build.

Windows changes for random seed generation using
crypto next gen (CNG) api routines.

Corresponding vms changes due to disentangling of VMS and
unix when the unix seed bits got moved (untested).
2019-01-28 10:02:08 +01:00
Patric Mueller
f9433b2a87 integrate isaac64 into nethack
Also removed the float code from isaac64 as they are not used in
NetHack.
2019-01-28 10:02:08 +01:00
Patric Mueller
c81db872fd add file for the isaac64 random number generator
This is the version from the Comprehensive C Archive Network, licensed
under the CC0 "No Rights Reserved" Creative Common License.
http://ccodearchive.net/info/isaac.html
2019-01-28 10:02:08 +01:00
Patric Mueller
b3fde3eb41 fix check for stdc version in include/integer.h 2019-01-28 10:02:08 +01:00
Patric Mueller
52d4b1a1aa reseed during level change to prevent deduction of rng state
For platforms that read from the system's random number generator,
reseed during level change, before the map of a new level is created and
after level creation has finished.
2019-01-28 10:02:00 +01:00
Patric Mueller
86d694c61b read rng seed from random number source device
Linux and BSD system have random number source devices that can be used
as source for a unguessable seed source.

Other platforms fall back to generate the seed with gettime().
2019-01-28 10:01:45 +01:00
Alex Smith
ce5184c3da Don't advance the main RNG during hallucination
This is based on the multiple-RNGs code fron NetHack4, but using
only the parts relevant to the display RNG (and with substantial
changes, both because of post-3.4.3 changes, and because Nethack4's
display code is based on Slash'EM's rather than NetHack's).
2019-01-28 04:45:26 +00:00
nhmall
1083971228 Merge branch 'NetHack-3.6.2-beta01' of https://rodney.nethack.org:20040/git/NHsource into NetHack-3.6.2-beta01 2019-01-27 19:22:28 -05:00
nhmall
f57693a47e simplify and correctly locate fixes entry 2019-01-27 19:16:55 -05:00
PatR
23fba68012 Wine Cellar tweak
User-contributed fix; bypassed the contact form so no #Hnnnn number.

On the Gnome King's Wine Cellar version of Mines' End, a couple of
wall stubs in the lower far right were diggable, unlike all other
walls on the level.  One single-spot wall stub was leftmost of three
undiggable spots, wall+floor+stone.  The floor spot wasn't noticeably
different from normal (not sure whether digging a pit was prohibited)
but the stone one was.
2019-01-27 15:28:31 -08:00
nhmall
d9b11e791c domove_ variables did not need to be in saved context 2019-01-27 15:12:55 -05:00
nhmall
96f1d0e207 Merge branch 'NetHack-3.6.2' 2019-01-27 12:39:52 -05:00
nhmall
fd92ecf74a Merge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2 2019-01-27 12:08:05 -05:00
nhmall
55fdfb9200 domove_core() out of domove(); assess domove_core() results
new domove_core() assessment results

potentially smudge engravings

Proceed to wipe engraving after domove_core() now, but only under
all of the following conditions:
    - you can reach the floor
    - preceding domove_core() move attempt was marked as
      having succeeded in domove_core()
    - there is actually an engraving there to impact at
      your original spot, or your new spot, or both
2019-01-27 11:55:23 -05:00
nhmall
befa1d94e9 Merge branch 'NetHack-3.6.2' 2019-01-25 21:08:03 -05:00
nhmall
5e165df44e Merge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2 2019-01-25 21:07:40 -05:00
PatR
d63c9d866c band-aid for #H4041 - build warning: has_colors()
Since no one has come up with a better fix for has_colors() being
implicitly declared, add a hack for suppressing a compiler complaint
about has_colors() on linux and/or sco unix that use sufficiently old
<curses.h>.

Report was right after release of 3.6.0 but my fix at the time broke
compile when using more recent <curses.h>.
2019-01-24 15:25:50 -08:00
nhmall
e3365c21d4 Merge branch 'NetHack-3.6.2' 2019-01-24 07:55:47 -05:00
nhmall
186ed77d40 Merge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2 2019-01-24 07:55:27 -05:00
Pasi Kallinen
749fb2e222 Fix make tileutils failure
OALLOC was used twice
2019-01-23 18:17:52 +02:00
nhmall
314ae68c2b merge NetHack-3.6.2 into master part 2 2019-01-23 00:53:35 -05:00
nhmall
66a5010070 Merge branch 'NetHack-3.6.2' 2019-01-23 00:42:41 -05:00