Commit Graph

17385 Commits

Author SHA1 Message Date
nhmall
ce8cef7906 get rid of spurious warning on Microsoft compiler 2024-12-09 23:29:38 -05:00
nhmall
c897f3a950 a comment for the obj side of discard_migrations() 2024-12-09 22:59:56 -05:00
nhmall
d99a24843b deal with light sources in discard_migrations()
Otherwise, when discard_migrations() purges monsters,
their stale monster pointers can be left inside the light source data
structure.
2024-12-09 21:41:26 -05:00
nhmall
64d41e10de update #migratemons for debugging purposes
For the wizard-mode command #migratemons at the
"How many random monsters to migrate to next level? [0]" prompt,
allow a negative number to cause it to use existing monsters
already on the level for the forced migration, up until the
absolute value of the number, instead of random new monsters
as it does for a positive number.

For example, specify -20 to force-migrate 20 existing monsters
already on the map.
2024-12-09 21:14:14 -05:00
nhmall
1f8b75b8c6 different ls content values, so bump EDITLEVEL 2024-12-09 16:21:31 -05:00
nhmall
b744ad41d9 follow-up correct ordering of impossible() fmt 2024-12-09 16:07:27 -05:00
nhmall
02259dd1d0 light source troubleshooting
I don't think this solves the recent light source reports,
but it changes a couple of things in an attempt to get more
information.

1. Having gy.youmonst.m_id field always be zero makes it tough
to distinguish it from uninitialized memory, or a random memory
value. This changes the m_id for the hero's gy.youmonst.m_id
to always hold the identifier 1, instead of 0.

2. write_ls was taking the stashed pointer in the light source,
and using it to immediately extract the m_id field and search
for that m_id. This changes the approach slightly, to actually
try and locate the stashed pointer itself in one of the monster
chains. Only if the monster pointer is located, do we dereference
it to obtain the m_id field.

3. For the interim, mark the saved ls with another set bit when
there has been a failure to locate the monst. At this time,
no code is acting on that bit, but it can be seen in a debug
session.

Hopefully, the next report will provide enough information to
understand the scenario a little better.
2024-12-09 15:52:29 -05:00
Pasi Kallinen
cbb0f9079d Wand of striking strikes the ground
... if dropped while levitating/flying.
2024-12-09 14:36:14 +02:00
Pasi Kallinen
57abae29e8 Don't switch away from polearm if monster in range
Using 'f', if hero is wielding a polearm, and a monster is in range,
don't switch away even if we do have ammo in quiver and a launcher
in the inventory.
2024-12-08 22:19:36 +02:00
Pasi Kallinen
dafd854993 Gelatinous cubes eat organic objects inside them 2024-12-08 17:57:59 +02:00
Pasi Kallinen
78289a7f83 Archeologists' fedora is lucky 2024-12-08 16:17:35 +02:00
PatR
13b8725ac2 combine taming of already tame monsters
Merge the recent change in the effect of blessed scroll of taming on
already tame monsters with the earlier change of any taming on already
tame monsters.  Non-blessed has a chance of boosting monst->mtame by 1
when it is less than 10, more likely the lower the current value is.
For blessed, boost by 2 after that, so possibly by 3 if it is very low.

Make spell of charm monster when skilled or expert in enchantment
spells behave the same as blessed scroll of taming.  [I'm not too sure
about this; it may make the spell too powerful.]
2024-12-07 19:38:01 -08:00
Pasi Kallinen
a3f0b54aea Healers gain experience by healing pets 2024-12-07 12:50:59 +02:00
Pasi Kallinen
9d68d171fb Typofix 2024-12-07 11:37:15 +02:00
Pasi Kallinen
863d455e1d Tourists gain experience by using camera flash on monsters
This counts as seeing the monster up close, so the tourist
doesn't need to get next to the monster
2024-12-07 11:24:30 +02:00
Pasi Kallinen
12228cac49 Tourists gain experience by going to new dungeon levels 2024-12-06 22:10:17 +02:00
Pasi Kallinen
89c4c3a722 Tourists gain experience by seeing new types of creatures up close
Experience equivalent to killing a monster is gained when starting a turn
adjacent to and being able to see the monster.

Breaks saves.

Idea and parts of code via dNetHack
2024-12-06 21:30:23 +02:00
Pasi Kallinen
5eb7566eba Prevent two possible ways to die in the tutorial 2024-12-06 17:36:34 +02:00
Pasi Kallinen
d318d2a489 Code formatting nit 2024-12-06 16:58:01 +02:00
Pasi Kallinen
e23e6ef235 Blessed scroll of destroy armor asks which armor to destroy
via xNetHack with some slight modifications.
2024-12-06 11:09:27 +02:00
Pasi Kallinen
9b4f38eebe Blessed scroll of taming increases tameness of pets 2024-12-05 16:44:05 +02:00
Pasi Kallinen
4b15085bb1 Avoid naming Vlad's entourage if vampires are genocided 2024-12-05 16:16:55 +02:00
Pasi Kallinen
b73581b745 Looking around the map in tutorial 2024-12-05 15:42:15 +02:00
Pasi Kallinen
08be1bafdd Explain ctrl-key combos in tutorial
When tutorializing a command that uses a ^X notation, show Ctrl-X
instead.  Also show an explanation of the ^X nearby.

The only ctrl-key combination that can currently happen in the tutorial,
without rebinding keys, is the kick-command.

Fixes #1327
2024-12-05 15:36:30 +02:00
nhmall
bdeddbe63b update sys/msdos/Install.dos 2024-12-04 15:12:27 -05:00
nhmall
0409ce01a3 cross compile to msdos in CI - fix 3 2024-12-04 15:01:30 -05:00
nhmall
f7cff6c0eb cross compile to msdos in CI - fix 2 2024-12-04 14:55:35 -05:00
nhmall
b33369fc22 cross compile to msdos in CI - fix 1 2024-12-04 14:47:04 -05:00
nhmall
3a044c56a9 more CI cross compile to msdos - compiler bit 2024-12-04 14:31:42 -05:00
nhmall
2d38d05c6b correct bad edit in CI yml file 2024-12-04 14:17:04 -05:00
nhmall
e120abe696 switch msdos cross-compile in CI to Ubuntu 24.04 2024-12-04 14:13:44 -05:00
Pasi Kallinen
b96c59e9b1 Angry god may remove an intrinsic 2024-12-04 20:54:47 +02:00
nhmall
6813e51945 Use newer mingw-w64 UCRT build in CI 2024-12-04 09:51:51 -05:00
Pasi Kallinen
c868119a33 Add missing full stop 2024-12-04 16:46:05 +02:00
nhmall
7c28fa1828 test newer software versions in CI 2024-12-04 09:25:12 -05:00
Pasi Kallinen
53f43ab00b Qt: show main window normally instead of maximized
Sidenote: The main window size calculations are getting stupid.
It would be better to find out the widget sizes and shift
the splitter up, instead of letting it just take up half of the main window.

Idea and part of the code by Richard Henschel
2024-12-03 19:52:30 +02:00
nhmall
c434b73e94 fix a comment typo 2024-12-02 19:43:56 -05:00
nhw_cron
dd66009cc1 This is cron-daily v1-Apr-1-2024. 000files updated: Files 2024-12-02 19:28:16 -05:00
nhmall
fec6320e68 rename sys/windows/Makefile.mingw32 to GNUmakefile
GNU make looks first for a file called GNUmakefile, ahead of
looking for Makefile and then makefile.

Renaming sys/windows/Makefile.mingw32 to sys/windows/GNUmakefile
allows:

o src/GNUmakefile (for use by GNU make) and src/Makefile (for use
  Microsoft nmake) to both reside in the src folder during build.

o src/GNUmakefile will be used by GNU make, without having to
  explicitly specify "-f GNUmakefile" on the GNU make command line.

o src/Makefile will be used by Microsoft nmake, without having to
  explicitly specify "-f Makefile" on the Microsoft nmake command line.

For the gcc build, the movemement of sys/windows/GNUmakefile needs
to be copied to src/GNUmakefile as part of the build process (see
sys/windows/build-msys2.txt).

For the Microsoft Visual Studio command line build with nmake,
sys/windows/Makefile.nmake needs to be copied to src/Makefile as
part of the build process (see sys/windows/build-nmake.txt).

They are both copied to the src folder from their respective
repository source file names when the nhsetup.bat file is used.
2024-12-02 19:04:08 -05:00
PatR
1301234039 mimic feedback tuning
When a mimic in door form is hit by a wand of locking or wand of
opening or corresponding spell, bring it out of concealment like
was recently done for being zapped while in chest form.  And give
some feedback rather than just changing the mimic's form to 'm'.

Give more detailed feedback when bumping into a mimic while moving.
2024-12-02 11:37:04 -08:00
nhmall
86679ebddb typo in englightenment for stealth when mounted
reported as internal#K4306: typo in englightenment for stealth when mounted
2024-12-02 11:11:48 -05:00
Keni
d0d179efcb Merge branch 'NetHack-3.7' of https://rodney.nethack.org:20040/git/NHsource into NetHack-3.7 2024-12-01 11:45:21 -08:00
Keni
9777e7785a rename local ctxp -> contextp to avoid global ctxp 2024-12-01 11:25:16 -08:00
nhmall
8b08244c9b Cross-compile build fixes
recover was not being built correctly under cross compilation
2024-12-01 13:24:30 -05:00
nhmall
dda5d03d91 update Cross-compiling documentation 2024-12-01 2024-12-01 09:13:21 -05:00
nhmall
c81af23c8c place MIPS cross-compile game in targets subfolder 2024-12-01 09:10:33 -05:00
nhmall
763ed61af7 a pair of analyzer bits 2024-11-30 22:07:18 -05:00
nhmall
211178d084 fixes3-7-0.txt entry: WASM pull request 1331
The pull request was:
    https://github.com/NetHack/NetHack/pull/1331
by @guillaumebrunerie

The text by @guillaumebrunerie that accompanied the pull request was:

I have been working on a browser/mobile port of NetHack 3.7 using
cross-compilation to WebAssembly (it is very playable already, you can
try it at https://guillaumebrunerie.github.io/nethack/).

[screen shot]

The existing code for compiling to WebAssembly was a great help, although
it wasn't fully up to date and was missing a number of things in order
to be able to create a proper window port (for instance there was no way
to set 'iflags.window_inited' to true, 'print_glyph' was not working
properly as its signature changed, and various other things).

This pull request contains various fixes and additions that I found were
needed/helpful.

Changes:

 * export more constants/pointers/globals.
 * fix various types that are incorrect.
 * disable compression of save files, as it uses fork which isn't supported
   in WebAssembly.
 * include 'genl_player_setup' when 'SHIM_GRAPHICS' is defined, in order to
   make it possible to reuse the existing player selection code.
 * move initialization of JavaScript global constants up, as I was running
   in some issue when 'raw_print' was being called before initialization.
 * change various compilation options for Emscripten, in particular it now
   generates an ES6 module (easier to use in a modern Javascript project)
   and exports more methods from Emscripten (for instance to be able to use
   the virtual file system when saving).
 * simplify the implementation of the main loop to avoid 'setTimeout' which
   can be pretty slow in the browser when called many times.
 * change the way pointer arguments are being sent to JavaScript in 'getArg'
   (they were being sent as a pointer to the pointer itself on the stack,
   which doesn't really make sense, now the pointer itself is sent).
2024-11-30 21:06:16 -05:00
nhmall
9f33d1cf7a Merge branch 'newsym_worm' of https://github.com/entrez/NetHack into NetHack-3.7 2024-11-30 20:14:40 -05:00
nhmall
079da0fcba update Files 2024-11-30 19:38:44 -05:00