]> granicus.if.org Git - nethack/log
nethack
4 years agoUnify statue traps
Pasi Kallinen [Thu, 10 Dec 2020 15:35:14 +0000 (17:35 +0200)]
Unify statue traps

4 years agoUnify webs
Pasi Kallinen [Thu, 10 Dec 2020 15:17:22 +0000 (17:17 +0200)]
Unify webs

4 years agoUnify holes, level teleport and teleport traps
Pasi Kallinen [Thu, 10 Dec 2020 15:09:15 +0000 (17:09 +0200)]
Unify holes, level teleport and teleport traps

4 years agoUnify pits
Pasi Kallinen [Wed, 9 Dec 2020 17:36:52 +0000 (19:36 +0200)]
Unify pits

4 years agoUnify fire trap
Pasi Kallinen [Wed, 9 Dec 2020 17:10:46 +0000 (19:10 +0200)]
Unify fire trap

4 years agoUnify rust trap
Pasi Kallinen [Wed, 9 Dec 2020 17:06:10 +0000 (19:06 +0200)]
Unify rust trap

4 years agoUnify sleeping gas trap
Pasi Kallinen [Wed, 9 Dec 2020 17:01:15 +0000 (19:01 +0200)]
Unify sleeping gas trap

4 years agoUnify bear trap
Pasi Kallinen [Wed, 9 Dec 2020 16:57:51 +0000 (18:57 +0200)]
Unify bear trap

4 years agoUnify squeaky board
Pasi Kallinen [Wed, 9 Dec 2020 16:50:55 +0000 (18:50 +0200)]
Unify squeaky board

4 years agoUnify rocktrap
Pasi Kallinen [Wed, 9 Dec 2020 16:47:54 +0000 (18:47 +0200)]
Unify rocktrap

4 years agoUnify dart trap
Pasi Kallinen [Wed, 9 Dec 2020 16:31:25 +0000 (18:31 +0200)]
Unify dart trap

4 years agoUnify arrow trap
Pasi Kallinen [Wed, 9 Dec 2020 16:27:31 +0000 (18:27 +0200)]
Unify arrow trap

4 years agoSplit trap effects out of dotrap
Pasi Kallinen [Wed, 9 Dec 2020 16:02:31 +0000 (18:02 +0200)]
Split trap effects out of dotrap

4 years agoThis is cron-daily v1-Jan-20-2020. guidebook updated: doc/Guidebook.txt
nhw_cron [Thu, 10 Dec 2020 09:24:07 +0000 (04:24 -0500)]
This is cron-daily v1-Jan-20-2020.  guidebook updated: doc/Guidebook.txt

4 years agoyet more key bindings - lack of same...
PatR [Thu, 10 Dec 2020 09:07:07 +0000 (01:07 -0800)]
yet more key bindings - lack of same...

When ?i shows key bindings, at the end of each group (movement,
prefixes, general, game, debug) report any commands for that
group which don't have any key assigned.  Movement and prefixes
all have keys; they'd be pretty useless without and key bindings
won't override movement commands. For general, the "keyless" are
|#exploremode
|#herecmdmenu
|#therecmdmenu
after this adds the relevant flag to their command definitions;
for game, "#terrain" is the only one; the debug section has 20.

There is a known problem that I've going to pretend that I didn't
notice:  if I use BIND=D:takeoffall then 'A' becomes unassigned,
'D' invokes #takeoffall, "#droptype" becomes keyless, and ?i
reports those correctly.  But if I use BIND=M:takeoffall, 'A'
becomes unassigned, 'M' continues to be its usual prefix, and
the "#takeoffall" command is nowhere to be seen.  The code that
tracks assignments is letting that case fall through the cracks.
'M' ends up assigned to both and the ?i code deliberately only
shows the first.

4 years agoGuidebook catchup
PatR [Thu, 10 Dec 2020 09:01:04 +0000 (01:01 -0800)]
Guidebook catchup

The command rename "#seegold" to "#showgold" that also revised
a few of the short command desctipions didn't include a Guidebook
update.  So here one is.

4 years agotxt2key() - parsing key binding specifications
PatR [Thu, 10 Dec 2020 00:52:54 +0000 (16:52 -0800)]
txt2key() - parsing key binding specifications

While testing some addtional ?i (list of key assignments)
changes, I wanted to give every key a binding.  When I tried
BIND=M-^A:exploremode
the text to key conversion didn't like that.  This adds support
for M-^x and M-C-x plus variations where dashes are omitted.

This adds support for ^? even though that isn't really a
control character.  I bound #terrain to it and surprising--to
me at least--the <delete> key worked to invoke that command.

Also changes 'char txt2key(...)' to be 'uchar txt2key(...)'.

4 years agokeylist help (? i) fixes
PatR [Tue, 8 Dec 2020 23:58:02 +0000 (15:58 -0800)]
keylist help (? i) fixes

I was implementing a routine to show all the key bindings
when I discovered that we already have one.  This fixes a few
small problems:  'n' prefix for number entry was missing for
number_pad mode.  Meta+<direction> for running in number_pad
mode was missing too.  ^A was present but being suppressed by
lack of #define for obsolete #if REDO.  And ^C was shown as ^c
while all other ^ characters appear in upper case.  Once ^A
appeared as the line before it, the inconsistency stood out.

I also changed the slightly verbose "Shift-<direction>" and
"Ctrl-<direction>" entries below the direction grid to use plus
instead of minus signs.  Plus emphasizes that two things are
combined so seems more intuitive.  (I left "M-c" alone.)

4 years agoNOSUSPEND
PatR [Tue, 8 Dec 2020 20:58:36 +0000 (12:58 -0800)]
NOSUSPEND

Provide a hook to inhibit unixconf.h from defining SUSPEND
without the need to modify it:  #define NOSUSPEND in config.h
or add -DNOSUSPEND to CFLAGS.  Similar to long-standing NOSHELL
for inhibiting SHELL.

4 years agoUpdate to azure pipeline.
Bart House [Tue, 8 Dec 2020 18:27:30 +0000 (10:27 -0800)]
Update to azure pipeline.

4 years agoDetection map redisplay routine code deduplication
Pasi Kallinen [Tue, 8 Dec 2020 15:08:57 +0000 (17:08 +0200)]
Detection map redisplay routine code deduplication

4 years agoFix: genetic engineers dropping Schroedinger's cat box.
k21971 [Mon, 7 Dec 2020 20:53:01 +0000 (20:53 +0000)]
Fix: genetic engineers dropping Schroedinger's cat box.

Only quantum mechanics are supposed to have a chance of death-dropping the
Schroedinger's cat box.

Slash'Em already had this but it was missed when Genetic engineers were ported
over.

4 years agofix #3120,#3122 - dwarf pass_wall without digging
PatR [Mon, 7 Dec 2020 20:46:46 +0000 (12:46 -0800)]
fix #3120,#3122 - dwarf pass_wall without digging

I couldn't reproduce this so can't confirm that this fix works,
but inspection of the code reveals that something was missing
in the unified mon movement flags code.  I think what has been
happening is that a dwarf without a pick-axe might not bother
wielding that but movement behaved as if it had, then digging
decided it wasn't.

4 years agominor corrections to Cross-compiling doc
nhmall [Mon, 7 Dec 2020 13:00:30 +0000 (08:00 -0500)]
minor corrections to Cross-compiling doc

4 years agoextended command help
PatR [Mon, 7 Dec 2020 11:08:32 +0000 (03:08 -0800)]
extended command help

The two or three (wizard mode) menu choices at the start of
the '# ?' help menu look enough like headers that it can be
confusing.  They're asking about changing the view of commands
to what those entries describe, but if considered as headers
they're describing the opposite of what is currently displayed.
Make them more verbose to try to clarify the situation.

This also moves the 'm' flag in front of the 'A' in the middle
column (of name, flag(s), description) when they both apply.

4 years agoQt extended commands: menu teardown and rebuild
PatR [Mon, 7 Dec 2020 09:05:37 +0000 (01:05 -0800)]
Qt extended commands: menu teardown and rebuild

Change qt_get_ext_cmd() to handle calling the extended command
selection menu again after player clicks on Filter/Layout/Reset
instead of relying on the core to do that.  (In order to change
the menu, instead of attempting to reconfigure that on the fly
it returns to caller and then puts up a new menu with different
settings when called back.  Initial checkin relied on the core
for the call back; this maintains full control for that within
the Qt interface code.)

4 years agoRemove duplicate wallify_map code
Pasi Kallinen [Sun, 6 Dec 2020 16:36:37 +0000 (18:36 +0200)]
Remove duplicate wallify_map code

4 years agoThis is cron-daily v1-Jan-20-2020. files updated: Files
nhw_cron [Sun, 6 Dec 2020 02:24:07 +0000 (21:24 -0500)]
This is cron-daily v1-Jan-20-2020.  files updated: Files

4 years agoUnify spitmu and spitmm
Pasi Kallinen [Sun, 6 Dec 2020 11:57:50 +0000 (13:57 +0200)]
Unify spitmu and spitmm

4 years agoQt extended commands enhancement
PatR [Sun, 6 Dec 2020 10:58:05 +0000 (02:58 -0800)]
Qt extended commands enhancement

For Qt's pick-an-exetended-command dialog, allow a player to
toggle the grid layout from column-oriented to row-oriented
and vice versa and when in wizard mode to cycle the set of
shown (and typable) commands from 'all' to 'normal mode-only'
to 'wizard mode-only' back to 'all'.  The most recent values
are saved by Qt along with tile size, font size, and some other
stuff.  The extended command dialog has a Reset button to force
them (the two extended command values) back to their defaults.

The dialog layout has a slight change to conserve screen space
as well as three additional control buttons:
Was                                  Now
| [             Cancel            ]  | [Cancel] [Filter][Layout][Reset ]
|#                                   |#            Grid Title
|             Grid title             | [cmd 1] [cmd R+1] [cmd 2*R+1] ...
| [cmd 1] [cmd R+1] [cmd 2*R+1] ...  | [cmd 2] [cmd R+2]
| [cmd 2] [cmd R+2]                  |...
|...                                 | [cmd R] [cmd 2*R]
| [cmd R] [cmd 2*R]
'#' is the prompt where typed text gets echoed and 'R' is the
number of rows in the grid and varies by the set of commands
from the current filter.  Grid dimensions have been adjusted:
'all' is 13x9, 'normal' is 13x7, and 'wizard' is 7x4 or 4x7
depending on layout orientation.

The wizard mode-only filter setting probably isn't very useful
because you can only type--or click on--commands which are
visible.  So when set to wizard mode-only, you can't #quit for
instance.  (Via extended command; there are still menu choices
for that particular action.  And it's trivial to change filter.)

4 years agoQt's window menus
PatR [Sun, 6 Dec 2020 03:37:03 +0000 (19:37 -0800)]
Qt's window menus

Qt on OSX is inserting "Search [_____]" as the first entry in
the Help dropdown menu (the one in the toolbar at the top of the
desttop).  While trying--and failing--to figure out how to get
rid of that, I cleaned up a little bit of the old menu hackery
(that tries to workaround the fact that Qt on OSX insists that
some menu actions--based solely on their names--should go into
the appication menu rather than whichever menu the program is
trying to insert them into).  The only observeable difference
is that 'About NetHack-Qt' will be at the top (actually second
because of that Search one) of the Help dropdown, where it is on
non-OSX builds, rather than last.

This tries to make the program name consistent too, changing
several instances of "Qt NetHack" to be "NetHack-Qt".  The latter
is the name being set up as ApplicationName in qt_bind.cpp that
gets used when Qt stashes the Qt-specific settings wherever it
stashes them.

It also makes another tweak in formatting of 'About NetHack-Qt',
inserting one explicit line break to avoid some poor looking line
wrapping.  I still haven't figured out how to control that popup's
size.

4 years agoMerge branch 'NetHack-3.7' of https://rodney.nethack.org:20040/git/NHsource into...
Bart House [Sun, 6 Dec 2020 01:32:17 +0000 (17:32 -0800)]
Merge branch 'NetHack-3.7' of https://rodney.nethack.org:20040/git/NHsource into NetHack-3.7

4 years agoAdding Azure pipeline YAML.
Bart House [Sun, 6 Dec 2020 01:31:59 +0000 (17:31 -0800)]
Adding Azure pipeline YAML.

4 years agoTypo in impossible message in spitmm
Patric Mueller [Sat, 5 Dec 2020 23:27:56 +0000 (00:27 +0100)]
Typo in impossible message in spitmm

4 years agoconflicting 'bullets'
PatR [Sat, 5 Dec 2020 20:32:52 +0000 (12:32 -0800)]
conflicting 'bullets'

This was pointed out several years ago.  Since tho different
'static bullets[]' contain different values, give them distinct
names.

4 years agoreadable conical hats
PatR [Sat, 5 Dec 2020 20:29:38 +0000 (12:29 -0800)]
readable conical hats

Let tourists read cornuthaum ("WIZZARD") and dunce cap ("DUNCE").
One out of three will have those words, the other two will yield
"you can't find anything to read on this ___" where ___ is either
"conical hat" or "cornuthaum" or "dunce cap" depending upon hat
type and discovery status.

Even when a dunce cap says "DUNCE" it won't become discovered,
just offer the player an opportunity to apply a name.

Other roles still fall through to the "That's a silly thing to
read" feedback.

Not intended to be logical...

4 years agoIncrement EDITLEVEL
Pasi Kallinen [Sat, 5 Dec 2020 17:38:16 +0000 (19:38 +0200)]
Increment EDITLEVEL

Forgot to increment EDITLEVEL when I did the stairs change,
and again after fixing the Oracle bones stairs. Lets do it now.

4 years agoRemove duplicate lines
Pasi Kallinen [Sat, 5 Dec 2020 17:00:19 +0000 (19:00 +0200)]
Remove duplicate lines

4 years agoFix AD_DCAY mhitm armor erosion type
Pasi Kallinen [Fri, 4 Dec 2020 17:00:16 +0000 (19:00 +0200)]
Fix AD_DCAY mhitm armor erosion type

4 years agoa couple of space-indents to tabs-indents in sys/winnt/Makefile.msc
nhmall [Fri, 4 Dec 2020 13:25:52 +0000 (08:25 -0500)]
a couple of space-indents to tabs-indents in sys/winnt/Makefile.msc

4 years agoadd a couple of optional fetching targets to sys/winnt/Makefile.msc
nhmall [Fri, 4 Dec 2020 13:21:53 +0000 (08:21 -0500)]
add a couple of optional fetching targets to sys/winnt/Makefile.msc

4 years agocouple more command tweaks
PatR [Fri, 4 Dec 2020 10:58:03 +0000 (02:58 -0800)]
couple more command tweaks

Rename "seegold" to "showgold".  The character to invoke it ('$')
is similar to those for the various "seeXYZ" commands ('[','=',&c)
but unlike them, it isn't part of "seeall" ('*').

Expand or replace the one-line description of several commands
(shell, showgold, showtrap, suspend, versionshort).

4 years agoXhitX unification - unused function parameters
PatR [Fri, 4 Dec 2020 10:11:53 +0000 (02:11 -0800)]
XhitX unification - unused function parameters

4 years agoFixes bit for mhitm/uhitm/mhitu unification
Pasi Kallinen [Fri, 4 Dec 2020 07:49:24 +0000 (09:49 +0200)]
Fixes bit for mhitm/uhitm/mhitu unification

4 years agoInit the done variable to false
Pasi Kallinen [Tue, 1 Dec 2020 17:36:19 +0000 (19:36 +0200)]
Init the done variable to false

4 years agoRemove unused variables
Pasi Kallinen [Tue, 1 Dec 2020 17:32:06 +0000 (19:32 +0200)]
Remove unused variables

4 years agoMake return values use defines
Pasi Kallinen [Tue, 1 Dec 2020 17:17:26 +0000 (19:17 +0200)]
Make return values use defines

4 years agoUnify the ad type switches
Pasi Kallinen [Tue, 1 Dec 2020 14:28:28 +0000 (16:28 +0200)]
Unify the ad type switches

4 years agoUnify ad_ssex
Pasi Kallinen [Tue, 1 Dec 2020 14:05:25 +0000 (16:05 +0200)]
Unify ad_ssex

4 years agoUnify ad_sedu
Pasi Kallinen [Tue, 1 Dec 2020 13:56:32 +0000 (15:56 +0200)]
Unify ad_sedu

4 years agoUnify ad_dise
Pasi Kallinen [Tue, 1 Dec 2020 09:41:35 +0000 (11:41 +0200)]
Unify ad_dise

4 years agoUnify ad_samu
Pasi Kallinen [Tue, 1 Dec 2020 09:28:41 +0000 (11:28 +0200)]
Unify ad_samu

4 years agoUnify ad_dgst
Pasi Kallinen [Tue, 1 Dec 2020 09:24:52 +0000 (11:24 +0200)]
Unify ad_dgst

4 years agoRemove unused goto label
Pasi Kallinen [Tue, 1 Dec 2020 09:12:43 +0000 (11:12 +0200)]
Remove unused goto label

4 years agoUnify ad_legs
Pasi Kallinen [Tue, 1 Dec 2020 09:10:54 +0000 (11:10 +0200)]
Unify ad_legs

4 years agoUnify ad_stun
Pasi Kallinen [Tue, 1 Dec 2020 09:05:14 +0000 (11:05 +0200)]
Unify ad_stun

4 years agoUnify ad_heal
Pasi Kallinen [Tue, 1 Dec 2020 08:58:51 +0000 (10:58 +0200)]
Unify ad_heal

4 years agoUnify ad_were
Pasi Kallinen [Tue, 1 Dec 2020 08:51:19 +0000 (10:51 +0200)]
Unify ad_were

4 years agoUnify ad_ston
Pasi Kallinen [Tue, 1 Dec 2020 08:44:15 +0000 (10:44 +0200)]
Unify ad_ston

4 years agoUnify ad_phys
Pasi Kallinen [Tue, 1 Dec 2020 07:07:44 +0000 (09:07 +0200)]
Unify ad_phys

4 years agoUnify ad_halu
Pasi Kallinen [Mon, 30 Nov 2020 21:28:13 +0000 (23:28 +0200)]
Unify ad_halu

4 years agoUnify ad_deth
Pasi Kallinen [Mon, 30 Nov 2020 21:20:09 +0000 (23:20 +0200)]
Unify ad_deth

4 years agoUnify ad_pest
Pasi Kallinen [Mon, 30 Nov 2020 21:09:05 +0000 (23:09 +0200)]
Unify ad_pest

4 years agoUnify ad_famn
Pasi Kallinen [Mon, 30 Nov 2020 21:05:01 +0000 (23:05 +0200)]
Unify ad_famn

4 years agoUnify ad_poly
Pasi Kallinen [Mon, 30 Nov 2020 20:59:06 +0000 (22:59 +0200)]
Unify ad_poly

4 years agoUnify ad_conf
Pasi Kallinen [Mon, 30 Nov 2020 20:55:26 +0000 (22:55 +0200)]
Unify ad_conf

4 years agoUnify ad_slow
Pasi Kallinen [Mon, 30 Nov 2020 20:50:56 +0000 (22:50 +0200)]
Unify ad_slow

4 years agoUnify ad_ench
Pasi Kallinen [Mon, 30 Nov 2020 20:46:59 +0000 (22:46 +0200)]
Unify ad_ench

4 years agoUnify ad_slim
Pasi Kallinen [Mon, 30 Nov 2020 20:40:38 +0000 (22:40 +0200)]
Unify ad_slim

4 years agoUnify ad_slee
Pasi Kallinen [Mon, 30 Nov 2020 20:32:50 +0000 (22:32 +0200)]
Unify ad_slee

4 years agoUnify ad_plys
Pasi Kallinen [Mon, 30 Nov 2020 20:25:37 +0000 (22:25 +0200)]
Unify ad_plys

4 years agoUnify ad_wrap
Pasi Kallinen [Mon, 30 Nov 2020 20:06:53 +0000 (22:06 +0200)]
Unify ad_wrap

4 years agoUnify ad_stck
Pasi Kallinen [Mon, 30 Nov 2020 20:00:35 +0000 (22:00 +0200)]
Unify ad_stck

4 years agoUnify ad_drin
Pasi Kallinen [Mon, 30 Nov 2020 19:50:27 +0000 (21:50 +0200)]
Unify ad_drin

4 years agoUnify ad_drst
Pasi Kallinen [Mon, 30 Nov 2020 19:41:28 +0000 (21:41 +0200)]
Unify ad_drst

4 years agoUnify ad_curs
Pasi Kallinen [Mon, 30 Nov 2020 19:22:58 +0000 (21:22 +0200)]
Unify ad_curs

4 years agoUnify ad_blnd
Pasi Kallinen [Mon, 30 Nov 2020 19:12:18 +0000 (21:12 +0200)]
Unify ad_blnd

4 years agoUnify ad_tlpt
Pasi Kallinen [Mon, 30 Nov 2020 18:42:39 +0000 (20:42 +0200)]
Unify ad_tlpt

4 years agoUnify ad_sgld
Pasi Kallinen [Mon, 30 Nov 2020 18:32:38 +0000 (20:32 +0200)]
Unify ad_sgld

4 years agoUnify ad_acid
Pasi Kallinen [Mon, 30 Nov 2020 18:19:49 +0000 (20:19 +0200)]
Unify ad_acid

4 years agoUnify ad_elec
Pasi Kallinen [Mon, 30 Nov 2020 18:15:13 +0000 (20:15 +0200)]
Unify ad_elec

4 years agoUnify ad_cold
Pasi Kallinen [Mon, 30 Nov 2020 18:10:13 +0000 (20:10 +0200)]
Unify ad_cold

4 years agoUnify ad_fire
Pasi Kallinen [Mon, 30 Nov 2020 17:56:52 +0000 (19:56 +0200)]
Unify ad_fire

4 years agoUnify ad_drli
Pasi Kallinen [Mon, 30 Nov 2020 17:43:16 +0000 (19:43 +0200)]
Unify ad_drli

4 years agoUnify ad_dren
Pasi Kallinen [Mon, 30 Nov 2020 17:32:53 +0000 (19:32 +0200)]
Unify ad_dren

4 years agoUnify ad_dcay
Pasi Kallinen [Mon, 30 Nov 2020 17:18:42 +0000 (19:18 +0200)]
Unify ad_dcay

4 years agoUnify monster-hits-monster
Pasi Kallinen [Mon, 30 Nov 2020 17:08:59 +0000 (19:08 +0200)]
Unify monster-hits-monster

4 years agostairway save/restore bit
nhmall [Thu, 3 Dec 2020 15:05:31 +0000 (10:05 -0500)]
stairway save/restore bit

The logic surrounding stairway saves and restores should not be within
a block reserved for deliminating external file structure.

4 years agoFix stairs on oracle level bones
Pasi Kallinen [Thu, 3 Dec 2020 14:38:17 +0000 (16:38 +0200)]
Fix stairs on oracle level bones

Recent change to the stairs structure now lets each stair keep
the destination level number and dungeon where the stairs go to.

When a level that can be on different depth (such as the Oracle)
became a bones level, and it was loaded in another game at different
depth, the stairs were still pointing to the old level number.

Save it as relative to the current level instead of absolute.

4 years agoMerge branch 'NetHack-3.7' of https://rodney.nethack.org:20040/git/NHsource into...
nhmall [Thu, 3 Dec 2020 03:02:30 +0000 (22:02 -0500)]
Merge branch 'NetHack-3.7' of https://rodney.nethack.org:20040/git/NHsource into NetHack-3.7

4 years agocorrect coding typo: nx instead of ny
nhmall [Thu, 3 Dec 2020 02:59:26 +0000 (21:59 -0500)]
correct coding typo: nx instead of ny

Prevented proper migration of obj dropped down the stairs.

Also, don't include your attached chain when counting drop impacts.

4 years agoQt fix for typing "#version"
PatR [Thu, 3 Dec 2020 00:11:53 +0000 (16:11 -0800)]
Qt fix for typing "#version"

The #version command is a leading substring of the #versionshort
command and for Qt, it couldn't be executed by typing, only via
mouse click or one of the Qt-specific menus.  #version<return>
or #version<space> now works for that.

The #versionshort command ought to be renamed to something else.

4 years agosaving followup
PatR [Wed, 2 Dec 2020 22:49:09 +0000 (14:49 -0800)]
saving followup

If attempting to checkpoint when changing levels discovered that
the alock.0 or 123wizard.0 file was missing and the game was
running in wizard mode, play continued after reporting trickery
but screen updating was left disabled.  An early return in
savegamestateinlock() wasn't resetting the program_state.saving
flag to revert to normal screen updates.

I added a few return statements at the ends of void routines,
where they're optional, because it makes searching for early
returns easier.  (Without these then when no early return is
present between current point and end of routine, the search
would move past the routine looking for 'return' later in the
file.)

save_stairs() was placed in between saveobj() and saveobjchn()
so I've moved it.  (Has no effect on the recently reported stair
anomalies.)  It was also accumulating the total stairway data
size in 'len' and never using that for anything, so I got rid
of it.  (Ditto about anomalies.)

4 years agosaving vs ball&chain
PatR [Wed, 2 Dec 2020 14:29:58 +0000 (06:29 -0800)]
saving vs ball&chain

I started activating new program_state.saving and discovered that
saving of ball and chain could access freed memory.  The change
for the former and fix for the latter are mixed together here (but
easily distinguishable).

The saving flag inhibits status updating and perm_invent updating,
also map updating that goes through flush_screen().  That should
fix the exception triggered after an impossible warning was issued
during a save operation.  impossible() goes through pline() which
tries to bring the screen up to date before issuing a message.
During save, data for that update can be in an inconsistent state.

The code to save ball and/or chain when not on floor or in invent
(I think swallowed is the only expected case) was examining the
memory pointed to by uball and uchain even if saving the level had
just freed floor objects and saving invent had just freed carried
objects.  So for the usual cases, stale pointer values for uball
and uchain would be present and checking their obj->where field
was not reliable.

4 years agoFix build issue when building project for the first time.
Bart House [Wed, 2 Dec 2020 05:32:52 +0000 (21:32 -0800)]
Fix build issue when building project for the first time.

4 years agoRemove dealloc_obj b&c sanity checking
Pasi Kallinen [Tue, 1 Dec 2020 20:18:44 +0000 (22:18 +0200)]
Remove dealloc_obj b&c sanity checking

4 years agodaily cron update doc/Guidebook.txt
nhmall [Tue, 1 Dec 2020 01:22:18 +0000 (20:22 -0500)]
daily cron update doc/Guidebook.txt

4 years agoreduce the number of #seeXYZ commands
PatR [Tue, 1 Dec 2020 00:16:14 +0000 (16:16 -0800)]
reduce the number of #seeXYZ commands

Noticed while working on Qt's extended command handling, there
are an awful lot of "seeXYZ" commands.  Keep the inventory display
ones (named versions of ')' to show wielded weapon(s), '[' for
worn armor, '"' for worn amulet, &c) and rename the others:
| #seenv     -> #wizseenv     debugging command
| #seespells -> #showspells   '+' command
| #seetrap   -> #showtrap     '^' command

Also, expand the descriptions of #shell and #suspend a bit in
the Guidebook.  LaTeX version is untested.

4 years agomove 'g.restoring' to 'g.program_state.restoring'
PatR [Mon, 30 Nov 2020 19:40:21 +0000 (11:40 -0800)]
move 'g.restoring' to 'g.program_state.restoring'

Move the core's global restoring flag (not the same as main()'s
local resuming flag) to a more logical place.  Add a saving flag
in the process, but it isn't being set or cleared anywhere yet.
(Once in use it will probably fix the exception during save that
was just reported, but before that it would be useful to figure
out what specifically caused the event.)

The program_state struct really ought to be standalone rather
than part of struct g but I haven't made that change.

Removing an unused variable for wishing and some reformatting
that whent along with it got mixed in.  Removes some trailing
whitespace in sfstruct.c too.

Only lightly tested...

4 years agoMore wish tests
Pasi Kallinen [Mon, 30 Nov 2020 12:42:48 +0000 (14:42 +0200)]
More wish tests