nethack.allison [Sun, 25 Aug 2002 12:29:35 +0000 (12:29 +0000)]
(from <Someone>)
> Questions are being appended in the message window, some showing
> up on the same line. This is really noticeable with the
> end-of-game disclosure questions. Questions should always be
> presented on a new line.
At end of game is probably the only place, since then more than one
question is asked in the same turn. Anyhow, here's the patch, in
mswproc.c [...]
- No checkboxes in menu if menu is PICK_NONE. mhmenu.c
- About box changed to splash screen. This last thing is open
for discussion, as the splash screen currently does not give
exactly the ame information as the about box (or the v command).
Maybe the splash should be enhanced? Anyway, it looks better than
the About-box. I didn't remove the About-box code and resource yet
until this discussion is had. mhmain.c
nethack.allison [Sat, 24 Aug 2002 23:25:40 +0000 (23:25 +0000)]
bones file diagnostics
Pat added some error information to create_levelfile.
This does the same for create_bonesfile, but the
only place it is logged is in the paniclog, unless
you're in wizard mode. If bones file creation is
silently failing for someone and they aren't getting
bones files, this provides a way to diagnose why.
nethack.allison [Sat, 24 Aug 2002 15:33:00 +0000 (15:33 +0000)]
misc bits: options, also win32 follow-up from <Someone>
(from <Someone>):
I guess that this:
mcam += iflags.wc_scroll_amount;
should be his:
mcam += iflags.wc_scroll_amount - 1;
In words: If scroll amount is 1, the behaviour should be as it was
before the option existed, which means: no addition to mcam.
nethack.rankin [Sat, 24 Aug 2002 05:52:22 +0000 (05:52 +0000)]
more trickery - build fix
Update the other trickery situation. I don't know how I managed
to miss this. The disadvantage of suppressing extern.h from normal
dependencies I guess.
nethack.allison [Fri, 23 Aug 2002 18:40:08 +0000 (18:40 +0000)]
B08014 win32tty: hanging when ctrl+alt pressed
CTRL+ALT was being treated as a valid ALT-sequence,
so the meta bit was being set on it, letting it slip past this
check in wintty.c "if (!i) i = '\033';"
This overhauls the ALT processing in nttty.c, some of
which was using scancode mappings from the DOS port
needlessly.
nethack.rankin [Fri, 23 Aug 2002 14:52:25 +0000 (14:52 +0000)]
level file handling and trickery feedback
1) consolidate all core usage of `errno' in files.c;
2) give more feedback for any failure by create_levelfile or open_levelfile,
similar to what was being done for problems during level change;
3) include trickery info in paniclog (many instances of "trickery" seem to
be due to disk or quota problems rather than user misbehavior...).
The create_levelfile call in pcmain probably ought to be changed to use
error feedback, but in the meantime this should continue working.
Perhaps error() should be modified to update paniclog too, but I didn't
want to go through all its port-specific incarnations making changes.
cohrs [Fri, 23 Aug 2002 05:47:54 +0000 (05:47 +0000)]
hitting and mhurtle
Fix part of the buglist entry regarding hitting and mhurtle. Flag if
mhurtle already killed the monster, and don't call killed again in this case.
One of the new checks for this already_killed flag is just futureproofing.
nethack.allison [Fri, 23 Aug 2002 01:03:59 +0000 (01:03 +0000)]
B08021 scroll_amount wincap option
> - I'd like to see another option added: scroll_amount. In
> combination with scroll_margin, this would control the amount
> of squares the screen is scrolled when the scroll_margin is
> reached (currently, this amount is 1, but if I recall
> correctly, it used to be more). For example, if both were 5,
> when you came within 5 spaces of the left screen border, the
> screen would shift 5 spaces to the right).
nethack.rankin [Thu, 22 Aug 2002 03:05:18 +0000 (03:05 +0000)]
trickery bulletproofing
Prevent the pardoning of trickery in wizard mode from attempting
to continue when there's no longer any current level. Also prevent
the ZEROCOMP configuration from trying to read from file descriptor -1
in case there're any other places which still let that slip through.
And fix an oddity in the VMS port's error() routine which has gone
unnoticed for years.
nethack.rankin [Thu, 22 Aug 2002 01:44:24 +0000 (01:44 +0000)]
B09001 - mhp > mhpmax after life drain
A monster hit by Stormbringer could take less damage to current
HP than it took to max HP if attacker had sufficient penalties, so
end up being healthier than its new maximum. This only applies to
attacks by the player; attacks by monsters don't include the sorts of
modifiers that can trigger it.
nethack.rankin [Thu, 22 Aug 2002 01:23:31 +0000 (01:23 +0000)]
bad "cad" message
From the newsgroup: taking a shop-owned pick-axe out of a
container inside a shop gave a misleading message telling the
player to take the pick-axe out of the shop. It was caused by
using the object's `unpaid' field before addtobill() had set it.
cohrs [Thu, 22 Aug 2002 00:13:03 +0000 (00:13 +0000)]
B04006 - Grayswandir and unicorn horns
Implement a check in make_hallucinated similar to the check in make_blinded
to handle the case where your hallucination is cured but Grayswandir is
suppressing its effects anyway.
nethack.allison [Wed, 21 Aug 2002 23:14:27 +0000 (23:14 +0000)]
B08002 - win32gui: message window sizing (from <Someone>)
>>> - When I set font and font size of the message window, the
>>> message window size doesn't calculate correctly to show the
>>> number of message lines specified. For example, I set the font
>>> size to 6, and the number of messages to display to 8. Now
>>> there is whitespace at the top of my message window. When I
>>> set the font size to 14 now, I see only 5.5 message lines.
>>> This is unintuitive: the interface should recalculate the
>>> window size needed to display the correct number of lines.
>>>
>> I agree, especially since the message window size is
>> recalculated correctly if you save and restore. An easy way out
>> would be to set those options to DISP_IN_GAME.
>
> That seems like a good work-around until the proper fix is done.
The patch is attached. I moved the code that was computing the font
size to mswin_message_window_size(). This will cause the message
window to resize properly if the message font size changes. There
are also 2 minor bits in mswproc.c to invalidate the message window
when the font changes.
cohrs [Wed, 21 Aug 2002 23:06:58 +0000 (23:06 +0000)]
R1049 - various wand of digging bugs
- Breaking wand of digging dug through rock which should be undiggable.
Checks assumed pits would never show up in solid rock.
- Breaking wand of digging near shop walls wouldn't anger the shopkeeper
Checks assumed pits would never show up in walls, also, added a special
case to pay_for_damage to handle the case where you're falling thru and
can't be asked to pay.
- Shop walls wouldn't be restored if there are pits in the way.
Checks assumed pits would never show up in walls.
- If there was a hole outside the shop, you could kick stuff out of the
door into the hole without shopkeeper noticing. Added the missing check.
cohrs [Wed, 21 Aug 2002 16:57:21 +0000 (16:57 +0000)]
B08020 - partial fix for D<count>$ behavior
When GOLDOBJ is defined, dropping partial amounts of gold using the D
command would not work because gold currently has the same inventory letter
as the coin group accelerator. In this case, the group accelerator should
not be used, since it confuses counts. tty and X11 ports are fixed. The
tty change should fix the Windows console version as well (untested).
cohrs [Wed, 21 Aug 2002 16:43:48 +0000 (16:43 +0000)]
tearing spellbooks while confused
Reported to the newsgroup, the code in study_book for the effect of
confusion on studying a book was never reached. The study_book code
didn't completely handle continuing to read a book when you got confused
after getting interrupted.
cohrs [Wed, 21 Aug 2002 16:42:10 +0000 (16:42 +0000)]
tearing spellbooks while confused
Reported to the newsgroup, the code in study_book for the effect of
confusion on studying a book was never reached. Removed the deprecated
check from read.c
nethack.allison [Wed, 21 Aug 2002 11:53:44 +0000 (11:53 +0000)]
win32 problem on NT4
> Oops:
>
> "NetHack.exe - Entry Point Not Found
>
> The procedure entry point Process32Next could not be located in the dynamic link
> library KERNEL32.dll."
>
> And the program refuses to run. Same goes for NetHackW.exe.
>
> Windows NT 4 (to be precise: 4.00.1381, SP6)
> IE 5.0 (to be precise: 5.00.2919.6307)
>
> The Help for Process32Next shows the following compatibility list:
> QuickInfo
> Windows NT: Requires version 5.0 or later.
> Windows: Requires Windows 95 or later.
> Windows CE: Unsupported.
> Header: Declared in tlhelp32.h.
> Import Library: Use kernel32.lib.
cohrs [Wed, 21 Aug 2002 04:48:17 +0000 (04:48 +0000)]
B08018 - vision when breaking closed doors
Do vision_recalc immediately when blasting a door so that all the
subsequent messages for the same blast hitting other things are all
evaluated with the same vision in effect.
nethack.allison [Tue, 20 Aug 2002 11:43:16 +0000 (11:43 +0000)]
Remove www link for coyote names
The link is no longer valid. I found another
link, http://tultw.com/bios/latin.htm
but this doesn't seem like something we
want to direct maintenance effort towards.
So this removes the link altogether.
nethack.allison [Tue, 20 Aug 2002 08:05:20 +0000 (08:05 +0000)]
string constants
<Someone> wrote:
> Linux, Redhat 7.1 nethack 3.4.0
>
>Please see attached patch file.
>
>I'm attempting to move more stuff into the "read-only" area, in
>preparation for a port to another OS.
cohrs [Mon, 19 Aug 2002 17:10:34 +0000 (17:10 +0000)]
B08012 - tweaking travel and closed doors
- when testing travel locations, don't treat diagonal moves thru closed
doors as possible, unless player can go/dig thru door
- treat closed doors and boulders as expensive for travel, preferring open paths
nethack.allison [Mon, 19 Aug 2002 01:12:23 +0000 (01:12 +0000)]
more win32 recover
It turns out that the processentry32 structure contents
are slightly different on 2000/XP than they are on
95/98/Me according to the docs.
szExeFile
Pointer to a null-terminated string that specifies the name
of the executable file for the process.
Windows 2000/XP: The file name does not include the path.
Windows 95/98/Me: The file name includes the path.
Ensure that we check for the target values at the end of
the string.
nethack.allison [Mon, 19 Aug 2002 00:00:52 +0000 (00:00 +0000)]
gas colors while blind
<email deleted> on Sunday, August 18, 2002 at 15:28:18
> comments: player is blind, and not hallucinating (initially). On #loot:
>
> You trigger a trap!
> A cloud of ultraviolet gas billows from the large box.
> You stagger and get dizzy...
nethack.rankin [Sat, 17 Aug 2002 10:24:35 +0000 (10:24 +0000)]
rolling boulder hitting pit which holds monster
From a bug report, a rolling boulder
trap could report that the boulder had fallen into the pit with you
and then let it keep rolling. flooreffects() only returns true
when it uses up the object being manipulated but it doesn't use up
boulders that hit pits which hold monsters or the hero. Its caller
needs to handle the cases where the boulder ends up sharing the pit
with a monster.
nethack.rankin [Thu, 15 Aug 2002 02:48:34 +0000 (02:48 +0000)]
compatibility checks fix for TIMED_DELAY
makedefs has been listing TIMED_DELAY as one of the options which
affects save file contents even though that hasn't been the case for
a long time. Unfortunately, simply fixing that by itself would break
save file compatibility for anyone who has been building with it set.
This workaround prevents the fix from doing that. And now folks can
rebuild after toggling TIMED_DELAY without unnecessarily invalidating
save and bones files.
cohrs [Wed, 14 Aug 2002 07:04:19 +0000 (07:04 +0000)]
B07005 - opthelp cleanup
<Someone> of the PC window group noticed that lootabc & showrace were documented
twice and travel was documented in the wrong section. Also, a couple
default syntax bits.
warwick [Wed, 14 Aug 2002 06:12:37 +0000 (06:12 +0000)]
Support for 2 tile sizes ("zooming"). Still needs rc file support.
Make non-rest-on-space space and Enter do the sam as clicking on
current location. On handhelds, this is the button on thumbpad.
warwick [Wed, 14 Aug 2002 05:01:56 +0000 (05:01 +0000)]
Allow arrowkeys to move player, including diagonals by pressing multiple
keys before releasing. Works well on handheld's thumbpad, perhaps less
useful on a fullsize keyboard.
Also some Qtopia-only fixes for Qt windowport.
arromdee [Tue, 13 Aug 2002 03:49:11 +0000 (03:49 +0000)]
mind flayers growing up into master mind flayers, etc.
While one could argue that giant rats aren't just grown up forms of sewer
rats, we already have bat/giant bat in there.
(This with a pruned 'egrep '^[[:alnum:]]+ .*\(.*\)$' *.c' in src/; I
haven't looked outside that directory, but generally speaking once you
go beyond there you're widening your search anyway.)
nethack.allison [Mon, 12 Aug 2002 11:19:04 +0000 (11:19 +0000)]
win32 message window (from <Someone>)
three new features for the message window we discussed:
- Graying out lines that are old -- slightly cleaner than <Someone>'s version.
- Message concatenation.
- --More-- prompt if there are more messages this turn than fit in the
window.
As a by-product of these changes, some other things have changed, too:
- The message lines array is now used in a round-robin way, i.e. the
messages are no longer copied one line up when adding a new message.
- clear_nhwindow no longer redraws the window, which significantly
reduces screen flicker.
- A caret bug was fixed.
- The last line is no longer highlighted, as this seems unnecessary
since the most recent messages are in a different colour
- A bug was fixed that caused two lines too many to be drawn on each
paint.
nethack.rankin [Mon, 12 Aug 2002 08:25:48 +0000 (08:25 +0000)]
B07002 - hiding under nothing?
Clear the uundetected status during level changes in case
the character was hiding under something immediately prior to the
change. Don't set hidden status at the destination even when
there's something to hide under--it'll take a turn to hide again.
cohrs [Mon, 12 Aug 2002 05:57:40 +0000 (05:57 +0000)]
forcefighting an undetected monster
Fix the case <Someone> saw, where forcefighting an undetected monster
would still leave it undetected, resulting in an odd message sequence unless
you kept forcefighting on the next turns. This also left the monster at a
disadvantage, since it wouldn't fight back. Added a check to wakeup() for this
case, cutting off the possibilities and allowing the monster to fight back.
nethack.allison [Mon, 12 Aug 2002 01:57:02 +0000 (01:57 +0000)]
B07001 healed, undetected mimic
> [Cast a healing spell in a shop where no mimic was visible] So,
> "The small mimic looks better.". However, my picture still looks
> the same. Either the mimic should be shown, *or* I shouldn't get
> any message about the mimic healing. Both solutions seem equally
> valid to me.
If the mimic was mimicing the "strange object", then the healing causes
them to start mimicing something else with no message (the observant
player could notice however).
If the mimic was already mimicing a real object, a message similar
to this one results:
"The crude dagger seems a more vivid black than before."
cohrs [Sun, 11 Aug 2002 23:17:23 +0000 (23:17 +0000)]
B06005 - cancelling getdir prompt
- Changed a cancelled chat direction to abort the chat -- it seemed odd
that the old behavior would sometimes take time, sometimes not, depending
on the previous direction.
- Documented the current spelleffects behavior of re-using the last
direction after a cancelled getdir() & added a message.
cohrs [Sun, 11 Aug 2002 17:40:08 +0000 (17:40 +0000)]
cut trees and dug walls replaced by corridor symbols
- In various places, cutting down a tree would result in a corridor symbol
showing up, although trees are generally found in room-like areas. Added
the missing checks.
- Trees were diggable except on mazelike levels. Added the missing check.
- In a cavernous town like minetn-6, digging a wall would result in a
corridor symbol being displayed instead of a doorway. This looked strange,
especially in the town. Added a check for this, making use of the new
meaning of in_town(); non-town parts of this level still do CORR
replacement as expected.
cohrs [Sun, 11 Aug 2002 17:32:47 +0000 (17:32 +0000)]
B02001 - trees and monster
<Someone> noticed that the change to require axes for trees (and allow them for
doors) did not extend to monsters. Now it does.
- added 2 new weapon check flags to handle the new cases
- added some detailed digging flags to mfndpos, based on ALLOW_DIG, and
moved some common logic regarding that flag into mfndpos
- made the ARMS check consistent for 2-handed weapons
I also noticed that simply carrying a pick was enough to allow a monster to
dig a door; wielding wasn't required. This is fixed as well.
cohrs [Fri, 9 Aug 2002 04:06:38 +0000 (04:06 +0000)]
R1037 - digging secret doors in town
I saw no secret doors in any of the towns, but in 340 (fixed in 341),
guards would patrol the entire level, so they might complain about secret
doors elsewhere. Fix the check for future use. Also, I noticed trees, eg
on minetn-6, weren't checked at all. Now they are.
nethack.rankin [Fri, 9 Aug 2002 02:35:30 +0000 (02:35 +0000)]
blindness vs vault guards
I implemented this before seeing <Someone>'s forwarded report.
It makes guards come to vaults when you can't see them, but does
have one odd side-effect: if the vault has boulders in the way
then you might not be able to follow the guard out. (Usually you
can alternately search and step in order to successfully follow
him out when unable to see.)
nethack.rankin [Wed, 7 Aug 2002 08:04:27 +0000 (08:04 +0000)]
wishing fixes for "* glass"
The wishing code intended to make a wish for "blue glass" yield
a "worthless piece of blue glass" (and similarly for other specific
colors) but it didn't work right. Also, wishing for "looking glass"
tripped up on that same code and didn't work either. (Several other
permutations for worthless gems such as "worthless blue glass" and
"piece of glass" already do work.)
arromdee [Wed, 7 Aug 2002 05:17:45 +0000 (05:17 +0000)]
eating rings
Found on the newsgroup: someone pointed out that you don't get a message
when you eat a ring of increase damage. They thought it was intentional--
it's not.
nethack.rankin [Mon, 5 Aug 2002 09:54:07 +0000 (09:54 +0000)]
armor & busy hands
Fix some inconsistencies in armor handling. The 'T' command
wouldn't let you take off a suit or shirt if you were wielding a
cursed two-handed weapon, which makes sense; however, the 'A'
command neglected to impose the same restriction. Also, the 'W'
command had some code intended to prevent you from donning a suit
or shirt while wielding such a cursed weapon, but it didn't work.
This patch fixes the 'A' command's checks for whether an
item can be removed and it makes the 'T' and 'R' commands use the
same code as 'A' instead of maintaining multiple sets of checks.
It also fixes the trivial 'W' problem and attempts to prevent the
sequence of 1) get interrupted while removing a set of equipment
including suit and/or shirt; 2) wield a cursed two-handed weapon
or have already wielded one become cursed; 3) resume removing
armor via 'A' but I haven't tried to trigger that situation to
confirm the bug or this fix.