nethack.allison [Fri, 1 Feb 2002 06:43:22 +0000 (06:43 +0000)]
dead key fix
Apparently, " is part of an accented character in US(international) keyboard
layout (additional character specific to the language of an origin - for
example, left and right double quotation marks). The code did not handle it
too well since it maps to 2 ASCII characters instead of one (one of them is
so called "dead" character). We can ignore the dead character as a
workaround for this problem. The patch is attached.
kmhugo [Fri, 1 Feb 2002 05:44:00 +0000 (05:44 +0000)]
Gnomish Mines tuning
Give names to remaining town levels.
Change elements in College Town that don't follow theme.
Remove isolated niche and helm of brilliance from end #3.
nethack.allison [Fri, 1 Feb 2002 00:36:54 +0000 (00:36 +0000)]
fix crash during Drop unpaid
The patch is attached. Array bounds went unchecked in
the menu page operations (, \ ~) This resulted in
memory corruption.
The actual crash depends on your luck actually. It will
only crash if heap headers are corrupted, otherwise it
can go unnoticed. When you do "Du," the list page size
is 18 (on my screen) with only 2 items in the menu. The
program assigned count of -1 to 18 items in the array
of 2. Ka-boom. I put bounds checking code in several
places. The window size does not have anything to do
with it.
cohrs [Thu, 31 Jan 2002 03:21:39 +0000 (03:21 +0000)]
tty pet hiliting may turn off on color changes
check to turn on hilite must come after check to change color, since
changing color uses term_end_color which may turn off inverse video too
cohrs [Tue, 29 Jan 2002 08:03:24 +0000 (08:03 +0000)]
various Guidebook updates
+ attributes may exceed 18 for non-humans
+ update spell casting paragraph to loosely describe 3.3 style spell casting
+ correct description of the output of the '+' command
+ note default value for 'mail' option
cohrs [Tue, 29 Jan 2002 06:35:17 +0000 (06:35 +0000)]
eggs and other breakables break falling down stairs
<Someone> questioned why eggs and potions don't break when falling downstairs.
For that matter, other breakables should as well.
nethack.allison [Mon, 28 Jan 2002 12:58:45 +0000 (12:58 +0000)]
disclose refinements:
- allow spaces between the different possibilities
- add a missing null at the end of the list of prefixes to prevent index()
from going crazy
- slight re-wording of the Guidebook
cohrs [Sun, 27 Jan 2002 23:45:47 +0000 (23:45 +0000)]
autodig chattiness
The autodig code still requires lots of interaction, because of all the
digging messages. Make these messages behave more like boulder pushing
messages, where they only display if the previous move wasn't a push.
nethack.allison [Sun, 27 Jan 2002 23:28:02 +0000 (23:28 +0000)]
Fixes:
- B1026 [confirmed] win32: setting multiple options
- bugfix: menu: set focus to the item and make it visible when it is
selected with accelerator key.
- increased menu font size by 1 point
- layout the main window on WM_MOVE message so the menu windows stays with
the main window (it was not changing the location before)
- got rid of WinCE specific define (ARM)
- handle all keyboard input via WM_KEYDOWN instead WM_CHAR
Notes:
That overrides Yitzhak's mhmenu patch - I don't like the menu prompt on the
title bar since it can be null and in most cases it is. It looks much better
as a header column in the list and is displayed only if present.
I moved ARM-related (processor) defines to wceconf.h You cannot undef ARM
before windows.h is processed - ARM version won't compile.
.rc files are generated by IDE - you cannot edit them directly or your
changes will be gone next time the file is saved. If anything needs to be
added to winhack.rc file manually it has to be marked by the following
defines or via menu option View->Resource Includes:
#define APSTUDIO_READONLY_SYMBOLS
...
#undef APSTUDIO_READONLY_SYMBOLS
nethack.allison [Sun, 27 Jan 2002 21:37:31 +0000 (21:37 +0000)]
win32gui patches (from Yitzhak)
[...]
One of them deals with the patch you just sent, that changes the name but
does so more extensively, particularly, also in the Save dialog in
mhmain.c. Another is one of the changes to winhack.rc to make it compile
under Borland.
This also (beyond patches I sent): fixes no Options prompt bug, and fixes
up the menu bar (which I broke in one of my patches).
nethack.allison [Sun, 27 Jan 2002 14:14:14 +0000 (14:14 +0000)]
Fix B2001
B2001 <Someone> [reported] win32?: giant ant is black square
Where is the open doorway with the giant ant standing in it?
There used to be a closed door there, if I recall correctly.
[now there is just a black square]
I'm saving the level files at this point, and I will be saving
the game after I did that, in case you're interested in any save
files.
nethack.allison [Sun, 27 Jan 2002 13:18:28 +0000 (13:18 +0000)]
Allow the options specific to the win32 graphical port
to be silently ignored by the tty port, so that the
config file can be conveniently shared between the two.
nethack.allison [Sun, 27 Jan 2002 04:36:39 +0000 (04:36 +0000)]
One of the beta testers asked if the win32 scrolling
offset could be configured. This allows it to be
set from the config file using:
win32_map_cliparound_margin.
cohrs [Sun, 27 Jan 2002 02:36:12 +0000 (02:36 +0000)]
update initial wizard quest message
The initial wizard quest message still used the word "master", which
can be interpretted as implying "male"; changed to teacher.
nethack.allison [Sun, 27 Jan 2002 01:26:59 +0000 (01:26 +0000)]
>B1014 <Someone> [reported] change request - disclosure default
>
> I'd like the default for "Would you like to see your <whatever>"
> at the end of a game to be "y" instead of "n". I haven't asked
> for full disclosure in order to have it skipped if I press the
> space bar once too often by mistake.
This changes the way the flags.end_disclose array is used to
allow what this request is asking for. It should be backward
compatible with previous "disclose" options.
The order that the end_disclore options are stored:
inventory, attribs, vanquished, genocided, conduct
There is an array in flags:
end_disclose[NUM_DISCLOSURE_OPT];
with option settings for the each of the following:
iagvc [see disclosure_options in decl.c]:
Legal setting values in that array are:
DISCLOSE_PROMPT_DEFAULT_YES ask with default answer yes
DISCLOSE_PROMPT_DEFAULT_NO ask with default answer no
DISCLOSE_YES_WITHOUT_PROMPT always disclose and don't ask
DISCLOSE_NO_WITHOUT_PROMPT never disclose and don't ask
Those setting values can be used in the option
string as a prefix to each disclosure option
to get the desired behaviour for that option.
For backward compatibility, no prefix is actually required,
and the presence of a i,a,g,v, or c without a prefix sets
the corresponding value to DISCLOSE_YES_WITHOUT_PROMPT;
The actual prefixes used are controlled by the following in flag.h:
#define DISCLOSE_PROMPT_DEFAULT_YES 'y'
#define DISCLOSE_PROMPT_DEFAULT_NO 'n'
#define DISCLOSE_YES_WITHOUT_PROMPT '+'
#define DISCLOSE_NO_WITHOUT_PROMPT '-'
As far as the docs go, I don't know if I've got the *roff
stuff right. The TeX stuff looks okay when I converted it to .pdf.
This increments EDITLEVEL. If that is a problem, I can
add a routine to restore.c to perform a conversion of the old
values in flags. Let me know.
cohrs [Sat, 26 Jan 2002 20:21:18 +0000 (20:21 +0000)]
getobj using counts from inventory display
getobj used display_inventory when "?" was selected. However, any count
entered via the menu interface was lost. Provide a new internal function
that can return both a letter and a count
nethack.allison [Sat, 26 Jan 2002 04:06:26 +0000 (04:06 +0000)]
some special code
was added, specific to menustyle:combination in
menu_drop(), which short-circuited a redundant
prompt that <Someone> had complained about by returning
immediately if a special code came back from
ggetobj() in ggoresults.
The top of menu_drop, however, had created a
u_gold object and inserted it into the invent
chain, so you can't just return. You have
to use a "goto" to get to drop_done, so that
the object is cleaned up.
arromdee [Sat, 26 Jan 2002 02:26:28 +0000 (02:26 +0000)]
secret door detection
There was an old bug where a wand of secret door detection was identified
even though it didn't find anything.
It was unconfirmed, but I had no trouble confirming it. It happened because
the wand worked on squares that were couldsee() but which (because they weren't
lit) you couldn't actually see. The wand would detect the secret corridor and
then not display it because it was out of sight.
I fixed it to display the corridor, in sight or not (I could have had it not
detect anything, but the wand is fairly weak already.)
nethack.allison [Fri, 25 Jan 2002 23:07:52 +0000 (23:07 +0000)]
more Makefile.nt
- Fix the tty build so it wasn't trying to link with GUI switches.
- Don't make graphical the default for the Makefile. It is for the
IDE projects.
- Be explicit about compiler versions required/tested.
nethack.allison [Fri, 25 Jan 2002 08:59:35 +0000 (08:59 +0000)]
Explicitly state the service pack of VC supported in Install.nt
Yitzhak discovered that there is a problem if you have the original
Visual Studio 6 with no service packs.
nethack.allison [Fri, 25 Jan 2002 07:19:21 +0000 (07:19 +0000)]
FIXES:
- added counting to the menu window. I changed the way it works in the TTY
port though ("you hear the rumble of distant thunder..." :) The count
applies to the currently selected item instead of being aplied to the item
to be selected (in other words a12 instead of 12a). It works better this
way in the graphical port since there is a notion of current menu item.
I also notes that the count is ignored for PICK_ONE menu - is this by
design?
- somebode mention that text is not scrollable by default - this is fixed.
- fixed player selection dialog to use initXXXX options
-----------------------
B1028 [reported] win32: popup window is too short
The text in the popup window's top line "What do you want to
call the ..." is cut off. Could the window be bigger, so you
can read the entire line?
Fixed.
---------------------
B1027 [reported] win32: select via traditional class char
In a shop (and perhaps elsewhere), I can autoselect a class of
items to drop: a for all types, b for coins, c for weapons, ...,
A for every item, B for blessed items, ... I like the new
possibilities, but I would like to be able to use the old way of
using ! for potions, ) for weapons, etc., as well.
I want to set packorder and pickup_types. The first comes up
first, and I type in the order. Then comes the second, without
any hint what is asked of me. A little explanation here would
be appropriate, like "pick up what things automatically?" or
somesuch. When more than one option is set where extra input
is required, some explanation is useful.
Looking into. Apparently something end_menu() call is ignored by nethackw.
---------------------
B1025 [reported] win32: menu navigation
I press O. Now, when I press "a" to turn on "autodig", not only
is the mark set at "a", but there also appears a dotted
rectangle around option "A" (capitalized). Shouldn't this
rectangle also appear at "a"? Pressing "a" repeatedly toggles
the checkmark, but the rectangle switches between "A" and "a".
My CAPS LOCK is not set. The same goes for B, C, D, ... N,
by the way. Pressing "A" works the other way around: the first
press checks "A" and "rectangles" "a", the next unchecks "A"
and rectangles "A" as well.
Fixed.
---------------------
B1024 [reported] win32: no text in final window
After I clicked away the last screen with information
(challenges, I believe it was), I got an empty text screen, as
big as my screen, without any content. It looked like the text
screens that appear on the right, only it was larger and had
only a large OK button over the full width of the window, and
no cancel button. Why this window?
Fixed. The program did not set window text for RIP window.
---------------------
B1010 [known issue] win32: cosmetic
When I get my list of spells, the columns aren't properly
aligned: if the spell name is longer, the rest of the line
shifts right.
Fixed. Fixed-pitch font is used for menu window.
---------------------
B1004 [reported] win32: numeric keyboard Del/.-key
The Del/.-key on my numeric keyboard doesn't make me rest a turn
Fixed. Added rest on Del.
---------------------
B1003 [reported] win32: focus
When the window has the focus, the window bar isn't highlighted.
This is by design. Menu and text widnows are popup and the main
window is disabled when they are up.
cohrs [Fri, 25 Jan 2002 06:38:42 +0000 (06:38 +0000)]
landmines and boulders
Make pushing a boulder onto a landmine share code with the trap case,
resulting in pits, waking sleepers, et al.
Don't leave a boulder suspended over the new pit, fill it.
Make sure any remaining boulder is placed on top of the pile.
If player sets off landmine, monsters killed are credited to/blamed on player.
nethack.allison [Thu, 24 Jan 2002 23:40:58 +0000 (23:40 +0000)]
(from Steve VanDevender)
Not using FDECL to declare the prototype for dogmove.c:can_reach_food()
causes the Digital UNIX C compiler to throw a prototype mismatch error
when compiling dogmove.c.
warwick [Thu, 24 Jan 2002 05:49:04 +0000 (05:49 +0000)]
MacOSX/Qt system tweaks
These changes clean up build warnings and allow the resulting "NetHack"
Application icons to be dragged around freely in the Finder, as is expected
for Mac apps.
cohrs [Thu, 24 Jan 2002 03:13:56 +0000 (03:13 +0000)]
window.doc getlin clarification
Clarify the getlin interface, which is used with the implicit assumption
that an input buffer of size BUFSZ (including the nul) is sufficient.
nethack.rankin [Thu, 24 Jan 2002 02:54:06 +0000 (02:54 +0000)]
more GOLDOBJ
The earlier patch made sure that bribe() didn't pass an
invalid value to money2mon(). This one changes money2mon() so
that if some other code else does so, reporting the impossible
situation won't be followed by a splitobj panic. Most of this
patch is reformatting though.
nethack.allison [Thu, 24 Jan 2002 02:39:55 +0000 (02:39 +0000)]
Fix several touchstone-related things:
1. The switch statement was using the material "GOLD"
rather than GOLD_CLASS.
2. If getobj() had been working for gold when it
came to touchstones, there would have been a
memory leak here because the object returned
would have been from mkgoldobj(). The goldobj
was not being freed anywhere, nor was it being
put on a chain. You also would have had zero
gold after rubbing it on the stone. The intent
was clearly to allow gold since there was a
case in the switch statement.
3. getobj() wasn't working properly for gold
selection here anyway, so this was
not the cause of <Someone>'s gold obj in inventory.
You ended up dropping through to code that
was supposed to print "You cannot verb object."
For touchstones that came out as:
"You cannot rub on the stone gold."
cohrs [Thu, 24 Jan 2002 02:34:52 +0000 (02:34 +0000)]
another vision-related message
don't just say "the knife misses" when you can actually see the monster
with infravision by testing using the correct function
nethack.rankin [Wed, 23 Jan 2002 07:12:58 +0000 (07:12 +0000)]
micro fopenp() fix
From a bug report. I can't test this fix, but
inspection of the code shows that his suggested fix is clearly
necessary. Once `bp' gets incremented, storing via `bp[BUFSZ-1]'
writes beyond the bounds of `buf' and clobbers something.
nethack.allison [Wed, 23 Jan 2002 00:00:02 +0000 (00:00 +0000)]
It was ignoring the command line parameters
because there was an extraneous argv[1] that was
a repeat of the module name, but in quotation
marks. The processing in pcmain stops on the first
argument that doesn't start with '-' so my other
arguments got ignored.
nethack.allison [Tue, 22 Jan 2002 22:54:54 +0000 (22:54 +0000)]
Remove all uses of pushd/popd
in case someone wants to build on Windows98 where they don't exist.
They are available in NT or Windows 2000 only (and possibly XP).
nethack.allison [Tue, 22 Jan 2002 13:02:13 +0000 (13:02 +0000)]
rename winhack.dsp to nethackw.dsp
Adjust Install.nt to match.
Modify Makefile.nt to use ../binary directory for output by default,
just like the windows version does.
warwick [Tue, 22 Jan 2002 08:41:57 +0000 (08:41 +0000)]
Remove win/Qt/nethack.png
Obsoleted by nhsplash.xpm (a text format). The binary still has more detail,
but until someone has a use for it, I'll keep it aside.
nethack.rankin [Tue, 22 Jan 2002 06:59:00 +0000 (06:59 +0000)]
airplane/taxi transportation
The player can teleport objects and monsters on no-teleport
levels, a strange quirk which I think has become entranched as
a feature. When swallowed or engulfed, teleporting the monster
from inside ends up teleporting the character along with that
monster. Some players have been exploting this on Plane of Air
to avoid facing elementals and dragons and whatnot by repeatedly
teleporting any vortex that engulfs them until they land somewhere
in the vicinity of the portal leading to Plane of Fire.
This patch divides the Plane of Air into three zones that
teleportation can't cross. You'll arrive in the left-hand 30% of
the level, as before, but no longer at a specific spot. The exit
portal is in the right-hand 30% as before (although it used to
have more range, perhaps 40%). Teleporting within the left 30%
always arrives in that same area; within the central 40% always
remains within that same area; and teleporting within the right
30% always sticks in that area. So it's still possible to get
around quite a bit via multiple teleports, but you'll need to walk
at least across the two unmarked boundaries to actually traverse
the whole level.
A moderately long description for a very short patch....
nethack.allison [Tue, 22 Jan 2002 00:30:58 +0000 (00:30 +0000)]
From <Someone>,
Fixes:
- menu shortcuts implemented
- most windows close on space (except for menus with
PICK_ANY style)
- "hilite_pet" option is implemented
- map scrolling is improved somewhat (it now scrolls if
the char is within 5 spaces from the edge of the map -
configurable by #define CLIPAROUND_MARGIN)
- added 3 winhack-specific options:
arromdee [Mon, 21 Jan 2002 22:25:04 +0000 (22:25 +0000)]
polymorphed quest leader
Duuuh. Of course adding objects already changed the editlevel.
Anyway, here's the fix I was working on. It only matters in a very obscure
situation. (Also, the quest leader still speaks no matter what he's
polymorphed into.)
arromdee [Mon, 21 Jan 2002 22:15:22 +0000 (22:15 +0000)]
polymorphed quest leader
Duuuh. Of course adding objects already changed the editlevel.
Anyway, here's the fix I was working on. It only matters in a very obscure
situation. (Also, the quest leader still speaks no matter what he's
polymorphed into.)