Commit Graph

13479 Commits

Author SHA1 Message Date
nhmall
95da0beffa fix MSDOS cross-compile
After some Make variables and additional override for CROSS_TO_MSDOS
is required.
2022-05-19 19:53:48 -04:00
nhmall
29236fc22d don't force manual edit of config.h for Lua 5.3.6 and earlier 2022-05-19 19:22:43 -04:00
nhmall
629b5d67a9 fix 'make all' from src directory 2022-05-19 19:00:47 -04:00
PatR
46e34b0826 lua 'index'
Having the preprocessor rename a variable called 'index' to one
called 'strchr' is not the source of any bugs (in execution; it can
cause pain when trying to ask a debugger to display the value and
then be told no such thing exists).  Change the name to 'indx' to
avoid any confusion.

If we switch to strchr() we should still avoid using 'index' as a
variable name.
2022-05-19 14:40:27 -07:00
Pasi Kallinen
c6a3ae5c6c Curses: Obey timed_delay option 2022-05-19 18:40:15 +03:00
nhmall
27119907a7 use updated lua library name in make spotless 2022-05-19 08:18:52 -04:00
nhmall
f57555ae6b differentiate lua object library names by Lua ver 2022-05-19 07:44:29 -04:00
nhkeni
8a6c3d8de5 5.3.5 is not currently compatible with NHL_SANDBOX, but make it compile
with 5.3.5 and !NHL_SANDBOX
2022-05-18 14:11:00 -04:00
nhkeni
c81dcf6713 Don't sanity check LUA_VERSION for sandbox if no sandbox. 2022-05-18 13:24:13 -04:00
nhmall
fafe54869d tested newer versions of visual studio
Also fixes a missing ')' typo in Makefile.nmake
2022-05-18 12:17:00 -04:00
Pasi Kallinen
8532b8d990 Add missing void 2022-05-18 18:59:01 +03:00
PatR
2ef0291d15 context-sensitive inventory item-action split
When picking an item from inventory and then picking 'I - adjust
inventory by splitting this stack' in the item-action menu,
yn_function("Split off how many?") is used to start getting the
count without needing to wait for <return>.  It includes the response
in message history (so review of history will see that first digit).
The code then uses get_count() to obtain any additional digits.  Tell
the latter to store "Count: N" in message history if N is different
from the first digit.

That's not as good as updating message history to replace the entry
showing the prompt with the first digit with one that shows the full
count but at least it's accurate when the count is 10 or more.
2022-05-18 01:17:14 -07:00
PatR
cab613a3a9 restoring in Gehennom
When a game is restored while hero is Gehennom, give the "It is hot
here.  You smell smoke..." message after the welcome back message.

For both entering Gehennom and restoring there, switch from "smell" to
"sense" in the second part of that message if poly'd into a form that
doesn't have sense of smell.

Some unrelated stuff that got caught up in this diff:
1) move welcome()'s call to l_nhcore_call() to the start of the routine
   instead of placing that after a potential early return;
2) remove a redundant glyphmap flags reset line; the routine being
   called starts by setting its flags field to 0 for level change so
   caller doesn't need to do that;
3) look_here() is just a formatting bit.
2022-05-17 16:52:06 -07:00
PatR
03c264f93c some quest message delivery cleanup
Construct a synoposis line if a message flagged for delivery by pline
gets changed to delivery by window and doesn't already have one.

deliver_by_pline(), deliver_by_window(), and deliver_splev_message()
were doing more work than necessary.
2022-05-17 15:52:50 -07:00
PatR
93b972c158 cmap_walls_to_glyph() and a couple of others
I wasted a bunch of time yesterday trying to figure out why a maze
level in Gehennom wasn't being shown with orange walls and ended up
reformatting a few glyph handling macros while hunting for the problem.
It turned out that the wall color choosing was working as intended.
I was looking at a maze bordered by solid stone (pale blue with Qt's
tiles, unlike tty's blank space) rather than by walls.

Anyway, a couple of the macros have had a little bit of common code
factored out rather than just be reformatted so I'm putting this in.

[For future, maybe stone should be given branch-specific coloring
similar to walls?]
2022-05-16 09:46:36 -07:00
PatR
b562c8ac89 fix segfault with #therecmdmenu
The change to add a menu choice for naming an adjacent monster via
\#therecmdmenu was unintentionally requiring that the monster have
monst->mextra.  So it worked on pets (regardless of whether they
were already named) because they have mextra for 'edog' extension,
but not on the majority of monsters.  And when it failed the program
would crash with a 'segmentation fault' error.

Fix the check for whether a target monster already had a name when
deciding to use "name <mon>" or "rename <mon>" in the menu entry.
2022-05-16 09:41:21 -07:00
PatR
6af5555215 fix github issue #764 - misplaced corpses
Reported by jeremyhetzler and confirmed by k2:  dead monsters weren't
leaving corpses at the spot they died.

Don't set a monster's mx,my coordinates to 0,0 when taking it off the
map (unless it is migrating to another level; mx==0 is the bit of data
used to indicate that).  Corpse drop happens after that and expects
the dead monster's former map coordinates to be intact.

Fixes #764
2022-05-16 01:30:00 -07:00
PatR
c8ceeac24e pull request #763 - noxious nemeses
Pull request from vultur-cadens:  some of the quest nemeses death
messages mention releasing noxious gas or noxious fumes so create
a poison gas cloud for them.

Closes #763
2022-05-15 12:20:10 -07:00
vultur-cadens
a18b7ebad9 Make some quest nemeses leave poison clouds when they die.
The Archeologist, Caveman, and Priest quest texts describe the
nemesis's body producing a cloud of noxious fumes/gas when killed.
2022-05-15 12:19:46 -07:00
PatR
4d9c568a8e \#therecmdmenu #name monster
Implement naming an adjacent monster with #therecmdmenu.

Also plug a memory leak using item-action name or call on objects.
2022-05-15 11:01:44 -07:00
PatR
3a0a92764a more wormgone
When wormgone() takes a long worm off the map, clear its stale mx,my
coordinates.  None of its callers need those anymore.

Also a bit of potential long worm clean up that occurred to me when
I looked at object bypass handling.  Expected to be a no-op here.
2022-05-14 18:10:42 -07:00
PatR
ef08773f2b migrating monster fix
The change to zero out a monster's map coordinates when it is taken
off the map yesterday messed up migration between levels inside the
Wizard's tower.  (Didn't apply when accompanying the hero between
levels, so probably unlikely to be noticed.)

Noticed while moving some replicated code into its own routine.
2022-05-14 03:30:45 -07:00
PatR
87749392b0 more writing novels
Instead of always retaining a blank spellbook when failing to write a
novel, make 2/3 chance to retain and 1/3 chance to destroy.  Same odds
(but separate chance) to attempt to write the Great Yendorian Novel
versus awful fan fiction.
2022-05-13 16:47:00 -07:00
PatR
a1bf4c2786 pull request #761 - writing novels
Pull request by entrez:  don't create a Pratchett novel by writing
"novel" or "paperback book" on a known blank spellbook with a magic
marker.

Blanking a novel produces a blank spellbook; there isn't any blank
novel.  That's intentional.  Writing "novel" on a blank spellbook
and getting a randomly chosen Pratchett one wasn't intentional.

Closes #761
2022-05-13 16:04:02 -07:00
Michael Meyer
92999914c8 Prevent hero from writing Pratchett books
The hero's ability to channel Pratchett and write his books with a magic
marker once she had read or IDed at least one of them seemed strange,
especially cases like an illiterate hero doing it as her first
introduction to the written word.  Block the hero from writing random
novels with a marker.

The image of the hero sitting down in the dungeon to write a novel is
funny, so it feels like a good spot for a funny message.  I'm not
sure if what I have there is perfect, but it can always be changed.
2022-05-13 16:01:04 -07:00
PatR
bb2c1bd115 pull request #760 - kickobjnam
Add pull request by argrath:  only one of the calls to new kick_ouch()
needs to pass 'kickobjnam'.

Closes #760
2022-05-13 15:57:03 -07:00
SHIRAKATA Kentaro
0b00f97766 kickobjnam on dokick() is assigned only kicking object 2022-05-13 15:51:08 -07:00
PatR
1ce457f801 display former possessions of dead monster
Reported directly to devteam by a hardfought player and also by
entrez.  The recent mon_leaving_level() change resulted in objects
dropped by a dying monster not being displayed immediately.

It justed needed the relobj(mon, 0, FALSE) to relobj(mon, 1, FALSE)
change in m_detach() but this does some related cleanup in
mon_leaving_level()'s callers.  wormgone() takes a long worm off the
map but leaves its stale coordinates set because some code relied on
that.  This takes away the need for that but still doesn't actually
clear them.

This adds redundant 'return' statements at the end of a few void
functions that are longer than fits within a typical screen display.
They make searching for the end of the current routine in an editor
or pager easier without resorting to regular expressions and can
also be used to search for the beginning if/when preceding routine
ends in 'return' too.
2022-05-13 14:46:02 -07:00
nhmall
44c225a11e yet more version buf 2022-05-12 20:10:27 -04:00
nhmall
f8b8495144 more version buf 2022-05-12 19:56:16 -04:00
nhmall
fe5cb1011f buf sizes in version.c
there were some 'sizeof buf' on a passed pointer variable buf.
pass the actual buffer size in a second argument.
2022-05-12 19:38:50 -04:00
PatR
0e83e15d6b un-macro some of display.h
I recently captured preprocessor output for a file and the amount of
code being expanded--and subsequently compiled--for canspotmon() was
quite an eye opener.  This converts most of the macros it uses into
function calls.  The resulting executable generated for OSX (built
for x86_64 and containing four interfaces) is about 5.5% smaller! and
there wasn't any difference in speed that I could notice.

The knowninvisible() macro has been in error for as far back as the
git logs go (which include those for the second cvs repository, so
over 20 years now).
2022-05-12 14:42:20 -07:00
nhmall
66e965f878 Don't include /fsanitize=address in vs 2017
Closes #759
2022-05-12 08:05:28 -04:00
PatR
9f1b738d1d recharging
Make "recharging" and "scroll of recharging" be aliases for "scroll
of charging" when wishing.

I thought this had been put in place years ago.
2022-05-11 22:11:42 -07:00
nhmall
c5ec3fc248 Xcode project update 2022-05-11 16:38:27 -04:00
PatR
ebf8396444 redundant "shopkeeper disappears" message
Reported directly to devteam by entrez, the rloc() monst vanishes/
appears nearby/&c message was being given before "satisified, <shk>
suddenly disappears" making the latter redundant.  As discussed, the
fix isn't as simple as suppressing one message or the other because
both are given conditionally.

This seems to solve it but has only been lightly tested.
2022-05-11 13:12:25 -07:00
nhmall
c38e5cba5c correct the qt5 package instructions for ubuntu 2022-05-11 09:47:00 -04:00
nhmall
d486270ec9 warning fix 2022-05-10 21:10:02 -04:00
PatR
97d884585c redo magic whistle feedback
Give more information when magic whistle is already discovered and
applying it affects multiple pets, without much increase in verbosity.
For each of the three categories
 1) was already in view and moves to another spot still in view,
 2) was out of view and arrives at a spot within view,
 3) was in view but gets sent to a spot out of view,
show the pet by name (which might be "your <monst>" if it hasn't been
named) when there is just one, or "two creatures", "three...", "four...",
"several...", or "many..." when there are more than one.  The first
category with more than 1 says "creatures".  When there are additional
categories with more than 1, their part of the message says "others" if
prior part(s) already mention "creatures", or it says "other creatures"
if the prior part(s) only list pets by name.

For example
|Three creatures appear.
|Fido shifts location and Fang appears.
|Your pony shifts location and two other creatures appear.
|Many creatures shift locations, several others appear, and two others
disappear.
|Two creatures appear and two others disappear.
2022-05-10 15:53:24 -07:00
nhmall
6d15142250 fix one more lua file header 2022-05-10 11:30:30 -04:00
nhmall
0602a3b89f update lua file headers 2022-05-10 11:26:52 -04:00
nhkeni
e5648584b3 update headers on Lua files 2022-05-10 07:44:26 -04:00
nhmall
6c12b85a0e missed a reference in README 2022-05-09 17:58:26 -04:00
nhmall
4f851e0165 update README to reflect a recent file name change 2022-05-09 17:55:49 -04:00
nhmall
718365cf03 Merge branch 'pr758' into NetHack-3.7 2022-05-09 17:16:30 -04:00
nhmall
c87f779755 split getting kick damages into separate function
Closes #758 by argrath
2022-05-09 17:15:31 -04:00
SHIRAKATA Kentaro
4da4584633 split getting damages with a kick into separate function 2022-05-10 05:45:39 +09:00
nhmall
b53e76813d bump patchlevel 2022-05-09 09:15:17 -04:00
nhmall
4951cca84e Merge branch 'pr757' into NetHack-3.7 2022-05-09 09:06:50 -04:00
nhmall
a01a26f0a7 split adjusting attributes into separate function
Closes #757 by argrath
2022-05-09 09:05:58 -04:00