Commit Graph
9577 Commits
Author SHA1 Message Date
Bart House 5d2872dd4f 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.
2019-07-13 16:08:47 -07:00
Bart House 1d0b8b4680 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.
2019-07-13 16:08:27 -07:00
Bart House e665d3b850 Adding ptr_array data structure. 2019-07-13 16:08:08 -07:00
Bart House c44ad5645d 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.
2019-07-13 10:53:53 -07:00
Bart House 90f5aa91b7 Fix compiler warnings. 2019-07-13 09:53:42 -07:00
Bart House eb055c5152 Fix build break due to introduction of nhassert(). 2019-07-13 09:34:58 -07:00
nhmall 781b32173c Merge branch 'master' into NetHack-3.7 2019-07-13 01:07:05 -04:00
nhmall d187955838 another merge bit 2019-07-13 01:05:53 -04:00
nhmall 73bd584940 Merge branch 'master' into NetHack-3.7 2019-07-13 01:02:16 -04:00
nhmall f3ada84137 merge bit 2019-07-13 01:00:40 -04:00
nhmall 505c1e4b02 Merge branch 'master' into NetHack-3.7 2019-07-13 00:38:40 -04:00
nhmall 77fd719e05 Merge branch 'NetHack-3.6' 2019-07-13 00:38:10 -04:00
nhmall 64cc11d9b4 makedefs doesn't use STATIC_OVL macro 2019-07-13 00:28:51 -04:00
nhmall 638d9f9363 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
2019-07-13 00:17:23 -04:00
Bart House 2f3da35c68 Tweaks to nhassert implementation. Change to warnings on MSC build. 2019-07-12 18:40:34 -07:00
Bart House 0e8e5aac93 Fixed sign/unsigned comparisions. 2019-07-12 18:37:33 -07:00
Bart House 0ca299acb3 Added nhassert to core. 2019-07-11 22:01:39 -07:00
Bart House 45a9c5eb14 Comment out nhassert() calls. 2019-07-11 21:23:12 -07:00
Bart House 1db45c8016 Added assertions to check toplin state. 2019-07-11 21:18:57 -07:00
Bart House 0f57f0e48c 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.
2019-07-11 21:17:46 -07:00
Bart House 3e4a0759a3 Modified nhassert_failed to call impossoible. 2019-07-11 21:13:02 -07:00
Bart House 9801635f56 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.
2019-07-11 21:11:43 -07:00
Bart House 7bb41c797f Moved declaration of topline state to wintty.h. 2019-07-11 16:34:25 -07:00
nhmall 1469ccbd06 Merge branch 'master' into NetHack-3.7 2019-07-11 16:47:35 -04:00
nhmall b7a4a8b202 Merge branch 'NetHack-3.6' 2019-07-11 16:47:19 -04:00
PatR 524f5642d5 poly'd hero theft fix
I moved some stuff around after testing the changes in
58583cacf8 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).
2019-07-11 13:29:33 -07:00
nhmall 9755a86737 Merge branch 'master' into NetHack-3.7 2019-07-11 08:47:07 -04:00
nhmall d4693d19bb Merge branch 'NetHack-3.6' 2019-07-11 08:46:50 -04:00
PatR bfbe4e71ce make #panic honor paranoid_confirmatin:quit
If 'paranoid_confirmation:quit' is set, require "yes" instead of 'y'
to execute the wizard mode #panic command.
2019-07-11 02:54:02 -07:00
PatR 188eedc654 curses: #extended command vs erase/kill chars
Support erase char and kill char when getting an extended command.

Also, show the cursor so that it's obvious where input focus is.
2019-07-11 01:02:34 -07:00
Bart House 08a1910867 Improved readability of topline state management. 2019-07-10 22:16:08 -07:00
nhmall 394fad32eb Merge branch 'master' into NetHack-3.7 2019-07-10 22:02:22 -04:00
nhmall 7dfffbb712 Merge branch 'NetHack-3.6' 2019-07-10 21:58:58 -04:00
PatR 58583cacf8 hero-as-nymph: steal items vs steal gold
Nymphs won't steal gold from the hero (so that their steal-item damage
isn't a superset of lerprechaun's steal-gold damage; straightforward
back when gold wasn't kept in inventory), but hero poly'd into a nymph
would steal gold from monsters.
2019-07-10 17:56:33 -07:00
PatR 094a9d8161 fix github issue #204 - theft while in nymph form
Fixes #204

3.6.2's attempts to fix turning off SEDUCE in 'sysconf' introduced
an unintentional change in behavior for hero poly'd into nymph form:
theft attack always angered the target.  The actual change was
intentional but its ramifications were unexpected.
2019-07-10 16:15:11 -07:00
Bart House bc65112ce0 Added experimental feature NEW_KEYBOARD_HIT. 2019-07-09 22:30:34 -07:00
PatR 0e8163e341 curses: ncurses vs Ctrl+Click
Asking curses to report whether the Ctrl key was being pressed during
a mouse click was sending mouse position reports--even those aren't
being requested--and actual Ctrl+Left_click was reporting a pair of
duplicate Ctrl+Mouse_position_report events when a click was actually
performed.  So turn off Ctrl key reporting.

Mac with one-button mouse can be configured to send "secondary click"
for Ctrl+Click.  A laptop trackpad handles that differently (press the
button while two fingers are on the touchpad to send secondary click)
and doesn't support Ctrl+Click as an alternate way to do that.  If this
would work within curses then they could operate the same regardless
of how the user set the mouse or trackpad configuraiton.  But I wasn't
able to make it work right.
2019-07-09 18:55:10 -07:00
PatR 9eefeef5d2 fix github issue #200 - docs for 'strange object'
Fixes #200

The Guidebook claims that there's no symbol for 'S_strange_object'
which is literally true, but there is one for S_strange_obj.  It has
been in place longer than the paragraph claiming that there's no way
to customize that symbol.  I'm not sure why variant spelling was used.

Also, files.c doesn't use loadsyms[], it calls a routine which returns
a pointer to a specific element in that array.
2019-07-09 17:42:32 -07:00
nhmall 0fdb19d07f Merge branch 'master' into NetHack-3.7 2019-07-09 11:01:13 -04:00
nhmall e7c66af5f5 Merge branch 'NetHack-3.6' 2019-07-09 10:43:18 -04:00
PatR 77aa61a59b looking at a trapped monster
would describe it as trapped if you could see its location, but if
the trap was unseen that trap would remain unseen, at least in some
circumstances.  Mark the trap as seen.
2019-07-08 17:38:00 -07:00
PatR cfca15d02c finding hidden monsters
Wizard mode ^E and any mode spell of detect unseen or wand of secret
door detection failed to find mon->mundetected monsters if they were
hiding under objects, and failed to find those or other hiders or
mimics when the hidden monster was at a trap location.  The fix for
the latter initially only worked if the trap was known, so took two
tries when a monster hid at the location of an unseen trap.  So this
makes the additional change to find both things at the same time; it
isn't manual searching that stops as soon as something is found.
2019-07-08 16:57:52 -07:00
nhmall 01667d3a2e Merge branch 'master' into NetHack-3.7 2019-07-07 22:01:44 -04:00
nhmall ae33500409 Merge branch 'NetHack-3.6' 2019-07-07 21:58:25 -04:00
PatR ceb2d51426 ^X/disclosure of night, moon, Friday 13th
For ^X and final disclosure, report external issues that affect game
play:  midnight, other night, new or full moon, and Friday the 13th.

The 'new feature' entry in the fixes file rambles a bit but if it
heads off even one spurious bug report, it'll have been worth it.
2019-07-07 13:52:24 -07:00
nhmall 10db5da6aa Merge branch 'master' into NetHack-3.7 2019-07-07 07:18:57 -04:00
nhmall c92889b5a4 Merge branch 'NetHack-3.6' 2019-07-07 07:14:45 -04:00
PatR bac3a75174 fix #H8164 - kicking altar: injury vs wrath
When kicking an altar, trigger divine wrath (minor: luck or alignment
loss) before deciding whether hero has hurt himself in the process.

Add some variation to the wrath penalty so that it can't be used to
precisely control Luck.
2019-07-06 18:14:30 -07:00
PatR e84a0625dc curses moving left with ^H
Typing ^H actually passed a 16-bit value back to the core which got
interpreted as ^G after the extra bits were discarded.  I don't think
any previous changes to the curses interface caused this.  It's
astonishing that no one ever noticed; the world must be full of numpad
users.
2019-07-06 16:41:04 -07:00
PatR bf672f7f47 Xstairs_room followup
Add a comment to explain why upstairs_room, dnstairs_room, and
sstiars_room aren't handled the same way has other level data.
2019-07-06 16:18:23 -07:00