]> granicus.if.org Git - nethack/log
nethack
5 years agofix a Guidebook.tex bit just noticed
nhmall [Wed, 2 Oct 2019 13:46:30 +0000 (09:46 -0400)]
fix a Guidebook.tex bit just noticed

5 years agoallow orctown booty items to be initialized in mksobj
nhmall [Wed, 2 Oct 2019 01:06:07 +0000 (21:06 -0400)]
allow orctown booty items to be initialized in mksobj

5 years agoupdate guidebook
nhmall [Tue, 1 Oct 2019 23:57:04 +0000 (19:57 -0400)]
update guidebook

5 years agofollow-on bits
nhmall [Tue, 1 Oct 2019 21:47:45 +0000 (17:47 -0400)]
follow-on bits

5 years agoautopickup exception priority in pull request 226
nhmall [Mon, 30 Sep 2019 14:54:03 +0000 (10:54 -0400)]
autopickup exception priority in pull request 226

The pull request #226 commentary follows:

One major limitation of the autopickup exception system is that you can't
define an exception from an exception, despite both menucolors and msgtypes
prioritizing rules based on the order they are defined in .nethackrc. This
is because the "always pickup" and "never pickup" exceptions are tracked in
different lists, and at runtime, when the player steps over an object, the
game checks these lists seperately, with "never pickup" taking precedence.
This means that if you want to pick up some but not all items matching a
given expression, you may need to write a long and kludgy list of regexes
to get the behavior you want.

I've edited the autopickup exception code to remove this necessity: now
the exceptions are stored in one list, and conflicts between them are
resolved based on their relative position in that list. Whether an
exception was inclusive or exclusive was already tracked individually;
I don't know why they were stored separately in the first place. This
edit makes the system both more convenient and more consistent with the
semantics of menucolors and msgtypes.

With these changes, the 33 autopickup exception rules in the wiki article
linked above may be replaced with the following 7 much simpler rules for
the exact same effect:

AUTOPICKUP_EXCEPTION=">.* corpse.*"
AUTOPICKUP_EXCEPTION="<.* newt corpse.*"
AUTOPICKUP_EXCEPTION="<.* lichen corpse.*"
AUTOPICKUP_EXCEPTION="<.* lizard corpse.*"
AUTOPICKUP_EXCEPTION="<.* floating eye corpse.*"
AUTOPICKUP_EXCEPTION="<.* wraith corpse.*
AUTOPICKUP_EXCEPTION=">.*\>.*"

closes #226

5 years agoMerge https://github.com/Vivit-R/NetHack into Vivit-autopickup-exceptions-3.6
nhmall [Mon, 30 Sep 2019 14:48:18 +0000 (10:48 -0400)]
Merge https://github.com/Vivit-R/NetHack into Vivit-autopickup-exceptions-3.6

5 years agoRemove redundant function "count_ape_maps"
HMM [Mon, 30 Sep 2019 06:12:06 +0000 (02:12 -0400)]
Remove redundant function "count_ape_maps"

5 years agoDelete unusued local variable
HMM [Fri, 27 Sep 2019 19:42:50 +0000 (15:42 -0400)]
Delete unusued local variable

5 years agoFix check_autopickup_exceptions to return null pointer if no exception is found
HMM [Fri, 27 Sep 2019 19:17:53 +0000 (15:17 -0400)]
Fix check_autopickup_exceptions to return null pointer if no exception is found

5 years agofix errant verb tense in some messages if pet or mon name ends in 's'
nhmall [Thu, 26 Sep 2019 15:49:15 +0000 (11:49 -0400)]
fix errant verb tense in some messages if pet or mon name ends in 's'

Report stated:
"Poes deliberately slither onto a polymorph trap!" ... it's only one cat, er,
black naga. Why does the parser treat the name as plural? There are lots of
singular words and names that end in -s or -es!

H9249 1780

5 years agoClean up stray comments
HMM [Wed, 25 Sep 2019 00:05:37 +0000 (20:05 -0400)]
Clean up stray comments

5 years agoMerging in autopickup exception rework
HMM [Tue, 24 Sep 2019 23:12:54 +0000 (19:12 -0400)]
Merging in autopickup exception rework

5 years agoRework autopickup exceptions to override one another like menucolors
HMM [Tue, 24 Sep 2019 22:20:49 +0000 (18:20 -0400)]
Rework autopickup exceptions to override one another like menucolors

5 years agofix uarmh null pointer dereference
nhmall [Tue, 24 Sep 2019 16:32:58 +0000 (12:32 -0400)]
fix uarmh null pointer dereference

uarmh null pointer dereference if a helm of opposite alignment came off due
to being polymorphed

fixes #225

5 years agofix add_to_minv panic when aklys kills enfulger
PatR [Mon, 23 Sep 2019 22:16:39 +0000 (15:16 -0700)]
fix add_to_minv panic when aklys kills enfulger

Reported directly to devteam rather than via the web contact form:
throwing wielded aklys while swallowed would hit the engulfer and
return to the hero's hand but leave a stale 'thrownobj' pointer if
the monster survived.  Under usual circumstances, throwing anything
else or throwing the aklys again when not engulfed would clear that
pointer, putting things back to normal.  However, killing any engulfer
with the same weapon would try to add it to engulfer's inventory to
be dropped as it died.  If the killing blow was via melee rather than
another throw, the object in question would still be in hero's
inventory instead of free, hence panic.

The initial returning-aklys implementation shared Mjollnir's code
which doesn't have this issue.  This reverts from having attached
aklys always returning successfully when thrown while swallowed to
Mjollnir's 99% chance of return and 99% to be caught when it does
come back.  (That was already the case if the engulfer was killed by
the throw, where hero wasn't swallowed anymore after the damage was
inflicted.)

5 years agocorrect spelling mistake on stupefied
nhmall [Mon, 23 Sep 2019 18:19:15 +0000 (14:19 -0400)]
correct spelling mistake on stupefied

As reported in github issue 224

Fixes #224

5 years agofix #H9232 - message phrasing for openholdingtrap
PatR [Sun, 22 Sep 2019 22:03:52 +0000 (15:03 -0700)]
fix #H9232 - message phrasing for openholdingtrap

Zapping wand of opening or spell of knock at self while trapped:
"You are released from pit."
ought to be
"You are released from the pit."
Likewise for most of the other held-in-place situations.

Also, when released like that vision wasn't being recalculated right
away to update line of sight to reach beyond the edge of the pit.

5 years agofix github issue 223 - rubbing ring on touchstone
PatR [Thu, 19 Sep 2019 19:48:41 +0000 (12:48 -0700)]
fix github issue 223 - rubbing ring on touchstone

Fixes #223

The touchstone code treated all rings as if they had gemstones, but
quite a few don't and feedback could be unexpected.  Cited case was
an iron ring yielding a cyan (hi_metal) streak instead of the normal
iron result ("scritch, scritch").  A gold ring yielded a yellow
streak rather than a golden scratch.  I didn't test silver ring but
suspect it yielded a silver streak rather than a silvery scratch.

This changes touchstones to treat non-gemstone rings like other
classes of objects instead of like gems.  I made mineral rings keep
acting like gemstone rings--I'm not sure whether that's right.

5 years agofix github issue 221 - unfixable troubles
PatR [Wed, 18 Sep 2019 18:37:11 +0000 (11:37 -0700)]
fix github issue 221 - unfixable troubles

Fixes #221

Routine unfixeable_trouble_count() is used for both applying a unicorn
horn (possibly internally via #monster if poly'd into a unicorn) and
drinking a blessed potion of restore ability.  For the latter case, it
always gave the wrong answer (unless the hero happened to be all of
Sick and Stunned and Confused and Hallucinating and Vomiting and Deaf).
Since the actual count wasn't used to decide whether hero felt "great"
or just "good", having any of those conditions would hide the problem.

5 years agogithub pull request - man page typo
PatR [Sun, 15 Sep 2019 01:04:33 +0000 (18:04 -0700)]
github pull request - man page typo

Fixes #205

"at last" should be "at least".  doc/nethack.txt is now out of date.

5 years agogithub pull request - "You are <a foo>[.]"
PatR [Sun, 15 Sep 2019 01:00:39 +0000 (18:00 -0700)]
github pull request - "You are <a foo>[.]"

Fixes #215

A post-3.6.2 change added a message for life-saving which lack its end
of sentence punctuation.

5 years agogithub pull request - fake mail
PatR [Sun, 15 Sep 2019 00:52:02 +0000 (17:52 -0700)]
github pull request - fake mail

Fixes #216

A github pull request changed one of the fake mail messages so that
our web site's URL is added at compile time instead of being hard-
coded.  However, it wouldn't compile with a pre-ANSI compiler since
it relied on concatenating adjacent string literals.  This is more
complex but achieves the same result, and also makes the existing
run-time subsitution be a bit clearer.

Testing was a hassle but eventually successful.

5 years agouse faster method to write characters to VGA in msdos port
nhmall [Fri, 13 Sep 2019 04:38:04 +0000 (00:38 -0400)]
use faster method to write characters to VGA in msdos port

chasonr's comments in github pull request #220:
It was necessary, when updating the MS-DOS port for 3.6, to revise the
screen-clearing and character-drawing functions, because the background
color is no longer zero. But the 3.6.1 method is rather slow, using
write mode 2 and a lot more calls to outportb.

outportb is expensive when running under a virtual machine, the typical
use case for the MS-DOS port these days, because it traps to the
hypervisor rather than actually writing to hardware.

This change restores the speed of the 3.4.3 version. The adapter is left
in write mode 0. Clearing is accomplished by writing zero to planes where
the background color has a zero bit, and 0xFF where the background color
has a one bit. Characters are drawn by writing 0x00, 0xFF, the font data,
or the inverse of the font data, as appropriate, to each plane.

When testing, be sure to use OPTIONS=videomode:vga, because autodetect
will go to VESA mode if it can.

closes #220

5 years agoMerge branch 'chasonr-msdos-vga' into NetHack-3.6
nhmall [Fri, 13 Sep 2019 04:36:32 +0000 (00:36 -0400)]
Merge branch 'chasonr-msdos-vga' into NetHack-3.6

5 years agoUse faster method to write to VGA
Ray Chason [Fri, 13 Sep 2019 03:04:15 +0000 (23:04 -0400)]
Use faster method to write to VGA

5 years agofix github issue 218 = hallu vs passive gaze
PatR [Fri, 6 Sep 2019 21:39:25 +0000 (14:39 -0700)]
fix github issue 218 = hallu vs passive gaze

Fixes #218

Hallucinating hero has 75% to be unaffected by a gaze counterattack
that paralyzes.  Check for that before checking free action (100%
chance to be unaffected).  The only change is that player might get
different feedback when both forms of protection against the gaze.

5 years agofix github issue 210 - dead code in sp_lev.c
PatR [Fri, 6 Sep 2019 21:27:40 +0000 (14:27 -0700)]
fix github issue 210 - dead code in sp_lev.c

Fixes #210

Subject was 'Bad loop condition in sp_lev.c'.  Some object creation
code had handling for something that couldn't happen due to the logic
leading up to it.  I couldn't figure out any way to make it useful so
just remove the dead code.

5 years agoPrevent a possible impossible when guard relocated a monster
Pasi Kallinen [Fri, 6 Sep 2019 19:09:03 +0000 (22:09 +0300)]
Prevent a possible impossible when guard relocated a monster

5 years agofix github issue 217 - monster spellcasting feedback
PatR [Mon, 2 Sep 2019 09:59:09 +0000 (02:59 -0700)]
fix github issue 217 - monster spellcasting feedback

Fixes #217

Feedback when spellcasting monster aimed at the wrong spot due to not
being able to see an invisible hero only gave the intended message if
hero couldn't see self.  The code was using 'if (Invisible)' which
checks whether the hero is invisible and can't see invisible, when it
should have been using 'if (Invis)' which just tests whether the hero
is invisible.

It wouldn't surprise if the same problem occurs elsewhere.  Those
macros are rather error prone.

The issue report mentions that one of the affected messages might be
unreachable.  I didn't investigate that.

5 years agocurses menu coloring
PatR [Sun, 1 Sep 2019 06:51:59 +0000 (23:51 -0700)]
curses menu coloring

Have the 'menucolors' option control menu color pattern matching
(instead of curses-specific 'guicolor') for all menus, not just for
the persistent inventory window.

5 years agofix #H9164 - menu colors for curses perm_invent
PatR [Sat, 31 Aug 2019 17:46:35 +0000 (10:46 -0700)]
fix #H9164 - menu colors for curses perm_invent

Commit e3af33c9db313d288f6b86a35b8ee705376aebfb in June changed
curses handling for perm_invent to strip off doname()'s "a ", "an ",
or "the " prefix in order to shorten inventory entries and get a
couple of significant extra characters before end-of-line truncation.
That had an unintended impact on menu colors pattern matching for
patterns which expected the article prefix.  Do the matching before
stripping off the prefix instead of after so that the matching gives
the same results as when used on a normal inventory menu (even though
this means that from the user's perspective most perm_invent entries
will have invisible text at the start).

Also for menu colors, don't require curses-specific 'guicolor' option
be enabled when the general, more-specific 'menucolors' option exists
to control menu coloring.  (curses was requiring that both be True.)

5 years ago'O' vs perm_invent (mostly)
PatR [Sat, 31 Aug 2019 08:38:19 +0000 (01:38 -0700)]
'O' vs perm_invent (mostly)

Update persistent inventory window if 'implicit_uncursed', 'menucolors',
or 'guicolor' is toggled.  (curses should be changed to use menucolors
instead of guicolor to decide whether menu coloring is used.  Right now
it requires that both be On.)

Also, EDIT_GETLIN was providing junk default response when message type
or menu color looped and prompted for another entry after handling one.

Mixed in with this is a fix for easily induced buffer overflow which
has security ramifications....

5 years agofix #H9164 - crash during restore when swallowed
PatR [Sat, 31 Aug 2019 01:11:43 +0000 (18:11 -0700)]
fix #H9164 - crash during restore when swallowed

Subject was "display crash while in curses mode".  Restoring with
perm_invent set in config file or NETHACKOPTIONS when the save was
made while swallowed (regardless of perm_invent at that time) resulted
in a crash when invalid u.ustuck was referenced before restoration had
done its pointer fixups.

init_nhwindows() is called with perm_invent On;
restgamestate() temporarily turns it Off (3.6.2 restore hack);
if/when update_inventory() gets called, curses notices that the
persistent window has been disabled so it tears down all its windows
in order to redraw the screen without that one;
docrt() sees non-Null u.ustuck and calls swallowed();
swallowed() tries to use the value of that pointer rather than just
Null/non-Null but the value is from the previous game session, not
valid for the current session;
crash.

Make yet another attempt to prevent update_inventory() from being
called during restore.  curses won't try to redraw and the crash
won't happen.  But the invalid pointer is still lurking (until an
eventual fixup later during restore).

An earlier fix for update_inventory() during restore actually handled
this problem (for the most common trigger, setworn(), but not in
general), so the 3.6.2 behavior is a regression.

5 years agosys/unix/hints/*: mkfontdir and cp -n
PatR [Wed, 21 Aug 2019 00:16:57 +0000 (17:16 -0700)]
sys/unix/hints/*: mkfontdir and cp -n

Change all the POSTINSTALL 'mkfontdir' to 'mkfontdir -x .lev' although
the mkfontdir version on my system didn't think $(HACKDIR)/*.lev were
font files when I built without dlb.

Also change the PREINSTALL 'cp -n win/X11/nethack.rc ~/.nethackrc' to
keep going if it fails.  The linux hints use 'cp -n' for sysconf but
since it is doing so for the playground directory and 'make install'
starts out by clearing away everything in that directory, it shouldn't
fail.  But some extra bullet proofing there may be warranted.  Only
the initial cp is protected against clobbering an existing file; the
ownership+permission fixups that are applied to the copy of original
file still get applied to an existing one.

5 years agoquite some Xcode warnings
nhmall [Sat, 17 Aug 2019 16:55:48 +0000 (12:55 -0400)]
quite some Xcode warnings

5 years agocopy-paste error bit
nhmall [Sat, 17 Aug 2019 01:47:37 +0000 (21:47 -0400)]
copy-paste error bit

5 years agotravis build update and mkfontdir argument for linux
nhmall [Fri, 16 Aug 2019 17:50:41 +0000 (13:50 -0400)]
travis build update and mkfontdir argument for linux

travis recently changed linux default dist from trusty to xenial, and bionic is next

include an additional travis linux build under bionic to eliminate surprises there

add a parameter to mkfontdir under linux to prevent it form going after .lev files

5 years agoadd X11 packages to couple of travis builds
nhmall [Fri, 16 Aug 2019 00:41:50 +0000 (20:41 -0400)]
add X11 packages to couple of travis builds

5 years agofix #H9118 - stoning a sandestin
PatR [Thu, 15 Aug 2019 01:49:16 +0000 (18:49 -0700)]
fix #H9118 - stoning a sandestin

causes "dmonsfree: N removed doesn't match N+1 pending" warning.  The
sandestin monster definition flags it as MR_STONE, immune to being
turned to stone.  If the hero hit it with a cockatrice while it was
shape-changed into something which isn't MR_STONE, it had its mon->mhp
set to 0, so died, and its form (mon->data) was set back to sandestin.
known_hitum() decided that it didn't turn to stone because of MR_STONE
for that form so proceeded to kill it off due to lack of hit points,
causing it to die twice.

I started to change that so that it didn't kill off the critter a
second time, bit it really shouldn't be able to kill it by stoning in
the first place.  So sandestin how shares some vampire code to revert
to innate form and not turn to stone when "killed" by stoning.  It
only yields the normal visible polymorph message:  "the <foo> turns
into a <bar>" without any attempt to explain why.  Once in sandestin
form, smacking it with a cockatrice corpse doesn't do anything special
(due to MR_STONE now being unambiguously in effect).  It will soon
shape-change to some other form and then become subject to being
forced back to innate shape by stoning again.

5 years agofix #H9117 - bookeeping for fatal status condition
PatR [Mon, 12 Aug 2019 01:56:43 +0000 (18:56 -0700)]
fix #H9117 - bookeeping for fatal status condition

When Stoned, Slimed, Strangled, Sick (TermIll or FoodPois or both)
counts down to 0 without being cured, keep it listed as an active
condition while killing off the hero.  It will show in the status
section when disclosing final attributes and in both that section
and map's status lines when producing a dumplog.

5 years agofix github issue #211 - wrong parentheses
PatR [Thu, 8 Aug 2019 18:25:36 +0000 (11:25 -0700)]
fix github issue #211 - wrong parentheses

Fixes #211

dopickup() was getting the wrong value from pickup_checks() due
to misplaced closing parenthesis.  But it didn't actually impact
play; picking things up from engulfer's minvent while swallowed
worked even though the special check for that was failing.  The
code which was accidentally being skipped can probably go away but
I haven't gone that far.

5 years agofix github issue #209 - typo in end_of_input()
PatR [Thu, 8 Aug 2019 18:01:56 +0000 (11:01 -0700)]
fix github issue #209 - typo in end_of_input()

Fixes #209

Fix typo:  program_statue should be program_state.  Apparently
NOSAVEONHANGUP+INSURANCE isn't used by anyone since it wouldn't
compile.

5 years agofix #H9100 - typo in Mort #4
PatR [Tue, 6 Aug 2019 11:24:21 +0000 (04:24 -0700)]
fix #H9100 - typo in Mort #4

For "They look at you but the don't see you", "the" should be a second
"they".  Simple transcription typo rather than a mistake in the book.

5 years agofix #H9084 - teleported boulder left stale screen
PatR [Fri, 2 Aug 2019 18:51:26 +0000 (11:51 -0700)]
fix #H9084 - teleported boulder left stale screen

Report was for Sokoban but it applied anywhere:  if a teleported
boulder landed in a pit or trap door or hole and flooreffects() used
it up (so returned True), rloco() didn't update the location it was
teleported from and it appeared not to have moved.  (Line of sight was
updated to reflect its absence but map spot wasn't redrawn without it.)

5 years agofix #H9082 - post-3.6.2 monster throwing crash
PatR [Fri, 2 Aug 2019 17:42:26 +0000 (10:42 -0700)]
fix #H9082 - post-3.6.2 monster throwing crash

Changing
  if (ammo_and_launcher(otmp, uwep) && mwep->otyp == ELVEN_BOW)
(with 'uwep' typo) to
  if (mwep->otyp == ELVEN_BOW && ammo_and_launcher(otmp, mwep))
(with fixed 'mwep') moved ammo_and_launcher()'s hidden non-null
test to after 'mwep->otyp'.  If mwep was Null (so monster must be
throwing non-ammo such as darts or daggers rather than shooting
with a launcher), a crash occurred.  (Throwing such things while
the monster is wielding any weapon doesn't have this problem.)

I don't think 3.6.2 can crash here.  If hero's uwep is a bow, otmp
must be arrows to get past pre-3.6.3's incorrect ammo_and_launcher()
check.  And a monster won't shoot arrows unless wielding a bow, so
monster's mwep would be non-Null regardless of what uwep is.

I tested a kobold with darts and an elven bow.  But I also gave it
one elven arrow to provoke it into wielding the bow and my test
didn't throw darts with nothing wielded....

5 years agobad weapon check for monster multi-shot shooting
PatR [Wed, 31 Jul 2019 21:22:09 +0000 (14:22 -0700)]
bad weapon check for monster multi-shot shooting

A typo caused the bow and arrow check when a monster was wielding an
elven box to test the hero's weapon with monster's ammo.  [I looked
at the old slash'em code where I think this came from and it doesn't
have the typo but does have a different bug.  A monster could get a
multi-shot volley by wielding an elven bow when throwing darts or
spears.  The extra bow and arrow check is intended to prevent that.
The typo was probably by me but I have no memory of that code....]

Elves with bows (or other monsters who manage to pick up and wield an
elven bow) will shoot bigger volleys after this fix.  That will make
them more dangerous but also cause them to run out of arrows more
quickly.

5 years agoGlory of Arioch vs spellbook
PatR [Wed, 31 Jul 2019 00:24:33 +0000 (17:24 -0700)]
Glory of Arioch vs spellbook

From the newsgroup (reported for slash'em but applies to nethack too):
a chaotic monk was crowned and told he or she had been "chosen to
steal souls for My Glory!" while being given a spellbook of restore
ability which has nothing whatever to do with soul stealing.  There's
alternate wording for when Stormbringer can't be given because it
already exists; also use that for when it's not going to be given
because the character is discouraged against wielding weapons.

5 years agoMjollnir comment in artilist[]
PatR [Sun, 28 Jul 2019 22:06:02 +0000 (15:06 -0700)]
Mjollnir comment in artilist[]

The description of Mjollnir's behavior when thrown was incomplete and
slightly inaccurate.

5 years agotimer validations
PatR [Sat, 27 Jul 2019 23:12:24 +0000 (16:12 -0700)]
timer validations

Add the contributed code that checks for attempting to start a
duplicate timer.  It's based on a comment which must have been there
at least 25 years and doesn't solve any known problems, but it is
conceptually similar to the large amount of sanity checking which has
gone into 3.6.x.

It didn't work as is because it was comparing two unions with '=='.
I don't know offhand whether C++ supports that but C doesn't (through
C11 at least; don't know about C17).  The union ('anything') is simple
enough that two instances can be compared without jumping through hoops.

I've also added another check for timer 'kind' (level, object, monster,
or global).

5 years agoRevert "When fuzzing, use the number of moves as a proxy for the hour."
Bart House [Mon, 15 Jul 2019 04:29:41 +0000 (21:29 -0700)]
Revert "When fuzzing, use the number of moves as a proxy for the hour."

This reverts commit f75deae0bcca5bdd4afddb40291e5e2bb0ecd846.

5 years agoRevert "Added experimental feature NEW_KEYBOARD_HIT."
Bart House [Mon, 15 Jul 2019 04:28:55 +0000 (21:28 -0700)]
Revert "Added experimental feature NEW_KEYBOARD_HIT."

This reverts commit bc65112ce07c6e2056ed28b5e93954679fb36acd.

5 years agoRevert "Improved readability of topline state management."
Bart House [Mon, 15 Jul 2019 04:28:40 +0000 (21:28 -0700)]
Revert "Improved readability of topline state management."

This reverts commit 08a19108678e772ab52ee195be74101b2792accb.

5 years agoRevert "Moved declaration of topline state to wintty.h."
Bart House [Mon, 15 Jul 2019 04:28:03 +0000 (21:28 -0700)]
Revert "Moved declaration of topline state to wintty.h."

This reverts commit 7bb41c797fb2491dc39102ddd4f1d31bd74c10c8.

5 years agoRevert "Remove the remapping of snprintf to _snprintf when compiling with MSC."
Bart House [Mon, 15 Jul 2019 04:18:03 +0000 (21:18 -0700)]
Revert "Remove the remapping of snprintf to _snprintf when compiling with MSC."

This reverts commit 9801635f56804a195c2b1f5c6bec0e239c9c4935.

5 years agoRevert "Modified nhassert_failed to call impossoible."
Bart House [Mon, 15 Jul 2019 04:17:39 +0000 (21:17 -0700)]
Revert "Modified nhassert_failed to call impossoible."

This reverts commit 3e4a0759a37ec6fe62d026cdd02dadd0ec6f682d.

5 years agoRevert "Fixed bug with inmore and toplin state management."
Bart House [Mon, 15 Jul 2019 04:17:19 +0000 (21:17 -0700)]
Revert "Fixed bug with inmore and toplin state management."

This reverts commit 0f57f0e48ca6e6823fb238566d5faddd3cf0726b.

5 years agoRevert "Added assertions to check toplin state."
Bart House [Mon, 15 Jul 2019 04:16:59 +0000 (21:16 -0700)]
Revert "Added assertions to check toplin state."

This reverts commit 1db45c8016484114841f39ffe70c8d9cdd1ad92c.

5 years agoRevert "Comment out nhassert() calls."
Bart House [Mon, 15 Jul 2019 04:16:27 +0000 (21:16 -0700)]
Revert "Comment out nhassert() calls."

This reverts commit 45a9c5eb14326521188457fe87a9d853b44a64ce.

5 years agoRevert "Added nhassert to core."
Bart House [Mon, 15 Jul 2019 04:15:54 +0000 (21:15 -0700)]
Revert "Added nhassert to core."

This reverts commit 0ca299acb3b52c90e65ad3ca3eb69ccfa8cceb97.

5 years agoRevert "Fixed sign/unsigned comparisions."
Bart House [Mon, 15 Jul 2019 04:15:31 +0000 (21:15 -0700)]
Revert "Fixed sign/unsigned comparisions."

This reverts commit 0e8e5aac93e660a001dccb66df7320023aaa36de.

5 years agoRevert "Tweaks to nhassert implementation. Change to warnings on MSC build."
Bart House [Mon, 15 Jul 2019 04:15:01 +0000 (21:15 -0700)]
Revert "Tweaks to nhassert implementation.  Change to warnings on MSC build."

This reverts commit 2f3da35c6893d2a44e8281ae209f00d54eefa2f2.

5 years agoRevert "Fix compiler warnings."
Bart House [Mon, 15 Jul 2019 04:13:43 +0000 (21:13 -0700)]
Revert "Fix compiler warnings."

This reverts commit 90f5aa91b794ad333fc04693677d0a7a9d8ca18e.

5 years agoRevert "Removing assertion that does not hold under all scenarios."
Bart House [Mon, 15 Jul 2019 04:13:18 +0000 (21:13 -0700)]
Revert "Removing assertion that does not hold under all scenarios."

This reverts commit c44ad5645d90267e7ed1d1a6c57acc1437dca10e.

5 years agoRevert "Adding ptr_array data structure."
Bart House [Mon, 15 Jul 2019 04:12:59 +0000 (21:12 -0700)]
Revert "Adding ptr_array data structure."

This reverts commit e665d3b85024e3a7580e80888a70b47d5ae9384c.

5 years agoRevert "Re-worked tty_putmsgistory and tty_getmsghistory."
Bart House [Mon, 15 Jul 2019 04:12:21 +0000 (21:12 -0700)]
Revert "Re-worked tty_putmsgistory and tty_getmsghistory."

This reverts commit 1d0b8b4680512a85a045006b3adf7fe65100f1bd.

5 years agoRevert "Add stopping in the debugger when nhassert() is hit in the windows port."
Bart House [Mon, 15 Jul 2019 04:11:41 +0000 (21:11 -0700)]
Revert "Add stopping in the debugger when nhassert() is hit in the windows port."

This reverts commit 5d2872dd4f24fb76f29bf34f6f950394910d6d33.

5 years agoRevert "Removed the older version of tty_putmsghistory and tty_getmsghistory."
Bart House [Mon, 15 Jul 2019 04:10:51 +0000 (21:10 -0700)]
Revert "Removed the older version of tty_putmsghistory and tty_getmsghistory."

This reverts commit aa95e20ca7cbb2a90f8076f04410886c0733dc74.

5 years agoRevert "Fuzzer improvements."
Bart House [Mon, 15 Jul 2019 04:10:39 +0000 (21:10 -0700)]
Revert "Fuzzer improvements."

This reverts commit 435f1c46267a194e44f0b75c7348be5a900d8ede.

5 years agoRevert "Fix build issue on linux."
Bart House [Mon, 15 Jul 2019 04:10:27 +0000 (21:10 -0700)]
Revert "Fix build issue on linux."

This reverts commit d33160d069c00e26de902e48c2bfda2de2eeeb3d.

5 years agoRevert "Tweaks to fuzzer scripts."
Bart House [Mon, 15 Jul 2019 04:10:07 +0000 (21:10 -0700)]
Revert "Tweaks to fuzzer scripts."

This reverts commit cd375064ddbf70770a934820e37b796c4623a145.

5 years agoRevert "Revert type change of lit which would break code."
Bart House [Mon, 15 Jul 2019 04:09:38 +0000 (21:09 -0700)]
Revert "Revert type change of lit which would break code."

This reverts commit cc1219b5a8bae222a6ba6a0c755419c9ca200a79.

5 years agoRevert "Move fuzzer_start, fuzzer_stop and fuzzer_log to pline.c"
Bart House [Mon, 15 Jul 2019 04:09:29 +0000 (21:09 -0700)]
Revert "Move fuzzer_start, fuzzer_stop and fuzzer_log to pline.c"

This reverts commit d9da488c35de801fd651c3dd0ee8f152d5309337.

5 years agoRevert "Remove dead code."
Bart House [Mon, 15 Jul 2019 04:09:16 +0000 (21:09 -0700)]
Revert "Remove dead code."

This reverts commit 5428d73287d3e808f4480b04dc9733165dd32e83.

5 years agoRevert "Fix typo in formatting string."
Bart House [Mon, 15 Jul 2019 04:09:07 +0000 (21:09 -0700)]
Revert "Fix typo in formatting string."

This reverts commit fa5c499268f4f6b687a25a3004c47e5f5dc0a546.

5 years agoFix typo in formatting string.
Bart House [Sun, 14 Jul 2019 21:31:30 +0000 (14:31 -0700)]
Fix typo in formatting string.

5 years agoRemove dead code.
Bart House [Sun, 14 Jul 2019 21:31:00 +0000 (14:31 -0700)]
Remove dead code.

5 years agoMove fuzzer_start, fuzzer_stop and fuzzer_log to pline.c
Bart House [Sun, 14 Jul 2019 21:30:38 +0000 (14:30 -0700)]
Move fuzzer_start, fuzzer_stop and fuzzer_log to pline.c

5 years agoRevert type change of lit which would break code.
Bart House [Sun, 14 Jul 2019 21:02:05 +0000 (14:02 -0700)]
Revert type change of lit which would break code.

Cast lit (which will be 1) to unsigned int to remove warning.

5 years agoTweaks to fuzzer scripts.
Bart House [Sun, 14 Jul 2019 19:13:19 +0000 (12:13 -0700)]
Tweaks to fuzzer scripts.

5 years agoFix build issue on linux.
Bart House [Sun, 14 Jul 2019 09:00:21 +0000 (02:00 -0700)]
Fix build issue on linux.

5 years agoFuzzer improvements.
Bart House [Sun, 14 Jul 2019 07:20:09 +0000 (00:20 -0700)]
Fuzzer improvements.

phase_of_moon and friday_13th determined using rn2() instead of local
time if fuzzing.  Don't reseed using init_random() if fuzzing.  Allow
set_random to be called outside of hacklib.  rn2_on_display_rng uses
rn2 if fuzzing so that we have a single source of random that we can
ensure is reproducible.  Implement rul() that returns a random unsigned
long.  Fix bug in fuzzer handling of ntposkey which would cause us to use
unitialized values for x and y.  Added command line arguments to allow
auto starting and stopping of fuzzer.  Add a logging facility for the
fuzzer to use to record activity.  Added some scripts used to automate
fuzzer testing on windows.

5 years agoRemoved the older version of tty_putmsghistory and tty_getmsghistory.
Bart House [Sat, 13 Jul 2019 23:23:37 +0000 (16:23 -0700)]
Removed the older version of tty_putmsghistory and tty_getmsghistory.

5 years agoAdd stopping in the debugger when nhassert() is hit in the windows port.
Bart House [Sat, 13 Jul 2019 23:00:14 +0000 (16:00 -0700)]
Add stopping in the debugger when nhassert() is hit in the windows port.

When stopping in the debugger after having called impossible, the windowing
state will have been modified since the assertion was hit.  This made
examining state that caused the nhassert to fire no longer possible.
To avoid this issue, we now detect the debugger and stop in the debugger
prior to impossible.

5 years agoRe-worked tty_putmsgistory and tty_getmsghistory.
Bart House [Sat, 13 Jul 2019 22:57:06 +0000 (15:57 -0700)]
Re-worked tty_putmsgistory and tty_getmsghistory.

When we were saving message history as part of a game save for insurance,
we were calling remember_topl() and thus inappropriately changing topline
state.  This would cause us to mis-manage the topline in subsequent calls
to update the topline.

The code has been re-worked to fix the issue, reduce complexity and make
the code clearer.

5 years agoAdding ptr_array data structure.
Bart House [Sat, 13 Jul 2019 23:08:08 +0000 (16:08 -0700)]
Adding ptr_array data structure.

5 years agoRemoving assertion that does not hold under all scenarios.
Bart House [Sat, 13 Jul 2019 17:53:53 +0000 (10:53 -0700)]
Removing assertion that does not hold under all scenarios.

When we save gamestate as part of making an insurance snapshot, we will
save message history which will clear toplines but leaving window state
in tack including the need for more.

5 years agoFix compiler warnings.
Bart House [Sat, 13 Jul 2019 16:52:56 +0000 (09:52 -0700)]
Fix compiler warnings.

5 years agomakedefs doesn't use STATIC_OVL macro
nhmall [Sat, 13 Jul 2019 04:28:51 +0000 (00:28 -0400)]
makedefs doesn't use STATIC_OVL macro

5 years agoif prototype is declared static make function static to match
nhmall [Sat, 13 Jul 2019 04:17:23 +0000 (00:17 -0400)]
if prototype is declared static make function static to match

Today, a compiler was encountered that considered it an error
to have the prototype declared static and the function body
not

5 years agoTweaks to nhassert implementation. Change to warnings on MSC build.
Bart House [Sat, 13 Jul 2019 01:40:34 +0000 (18:40 -0700)]
Tweaks to nhassert implementation.  Change to warnings on MSC build.

5 years agoFixed sign/unsigned comparisions.
Bart House [Sat, 13 Jul 2019 01:37:33 +0000 (18:37 -0700)]
Fixed sign/unsigned comparisions.

5 years agoAdded nhassert to core.
Bart House [Fri, 12 Jul 2019 05:01:39 +0000 (22:01 -0700)]
Added nhassert to core.

5 years agoComment out nhassert() calls.
Bart House [Fri, 12 Jul 2019 04:23:12 +0000 (21:23 -0700)]
Comment out nhassert() calls.

5 years agoAdded assertions to check toplin state.
Bart House [Fri, 12 Jul 2019 03:58:20 +0000 (20:58 -0700)]
Added assertions to check toplin state.

5 years agoFixed bug with inmore and toplin state management.
Bart House [Fri, 12 Jul 2019 04:04:29 +0000 (21:04 -0700)]
Fixed bug with inmore and toplin state management.

When fuzzing, we would increment ttyDisplay->inmore but then prematurely
exit more() leaving ttyDisplay->inmore set.

Under various conditions, we can request to remember the topline when
the topline had not yet been acknowledged leaving toplin state in an
inappropriate state.

5 years agoModified nhassert_failed to call impossoible.
Bart House [Fri, 12 Jul 2019 03:55:27 +0000 (20:55 -0700)]
Modified nhassert_failed to call impossoible.

5 years agoRemove the remapping of snprintf to _snprintf when compiling with MSC.
Bart House [Fri, 12 Jul 2019 03:46:19 +0000 (20:46 -0700)]
Remove the remapping of snprintf to _snprintf when compiling with MSC.

_snprintf and snprintf have one very important semantic difference.
_snprintf does NOT add terminating null character when the buffer limit
is reached while snprintf guarantees a terminating null character.  It
was a mistake to make this naming change hiding the fact that the
semantics don't match what the developer might expect.

5 years agoMoved declaration of topline state to wintty.h.
Bart House [Thu, 11 Jul 2019 23:34:25 +0000 (16:34 -0700)]
Moved declaration of topline state to wintty.h.

5 years agopoly'd hero theft fix
PatR [Thu, 11 Jul 2019 20:29:33 +0000 (13:29 -0700)]
poly'd hero theft fix

I moved some stuff around after testing the changes in
58583cacf8511625fd805ecbb050481f28de9411 before committing it.  It
accidentally ended up with 'gold' always being Null at the first
place it gets used (to vary the feedback when stealing everything
except gold).

5 years agomake #panic honor paranoid_confirmatin:quit
PatR [Thu, 11 Jul 2019 09:54:02 +0000 (02:54 -0700)]
make #panic honor paranoid_confirmatin:quit

If 'paranoid_confirmation:quit' is set, require "yes" instead of 'y'
to execute the wizard mode #panic command.