- Guidebook typo
- wizard mode prompt
[...]
> 2/3) In Guidebook* the lines subkeyval (Win32 tty NetHackonly).
> May be used to alter the value of should read subkeyval (Win32
> tty NetHack only). May be used to alter the value of
>
> 3/3) I miss a hint for the new wizmode feature levelteleport by
> menu. Neither wizhelp nor the dialog tell you about it. Maybe if
> (++trycnt == 2) Strcat(qbuf, " [type a number or ?]"); in
> teleport.c:589 could provide a hint.
>
> <Someone>
Changes are: Complete copyright notice, Versions using dot format instead of comma format, and nulls at the end of strings (required, at least for Windows 2000).
> This patch fixes warnings relating to pointers (using int *
> instead of unsigned int * ), provides prototypes for some
> functions, and adds a missing argument to one of the functions
>
> It also changes a bit in the way flex/bison are used in the
> Borland makefile to allow me to test compilation with those
> utilities using a batch file.
- set correct checkmark on "Lock Windows" menu item on startup
- redraw message window on resizing (it does not update properly otherwise)
- fixed copy/paste error in read registry settings function
- fix ring of protection from shape changers causing
real monster to be created.
- add ability to get the character class monster from
genus() or the species.
- use the character class monster when animating
guardian corpses.
Also a related bug: the guard against animating a unique
monster via tossing a statue onto a statue trap location, was
causing stone to flesh to silently ignore any statue of a unique
monster which seemed very uncharacteristic of the spell.
After this patch, statues of quest guardians and statues of
unique monsters will animate as shape-shifters posing as those
monsters, not the monsters themselves.
> Getting a sewer rat from a sink when not blind, but can't see it
> (because of boulders, etc.) gives "Eek! There's it in the sink!"
> [<email deleted>]
> When you kick iron bars, it says "you kick empty space". Maybe
> this should be something more like "you hurt your foot on the
> iron bars" or "the bars resonate with your hit". Something other
> than "empty space". [<email deleted>]
> I had some reports similar to "#U574: 3.4.1 On PocketPC, screwed
> up message area font" but regarding the keypad window. Since
> there is no separate option for keypad font, this patch makes it
> use message font option if it is set.
No objections were heard to this previously circulated
change.
> Clipping should occur right before user input (rhack) vs in the
> beginning of the move loop. For example, if hero had
> "teleportitis" and teleported because of that then the clipping
> region was not updated to reflect a new hero position until the
> next turn. This patch fixes that.
On some MSDOS ports, STATIC_OVL doesn't equate
to static, so taking_off in do_wear.c conflicts with the
one in invent.c in those environments. Somebody
out there might wish to try and build the 16 port and
tune it to work properly someday.
> fog cloud hit uses "it". I was exploring the insides of a fog
> cloud with my fifth level wizard, and cast force bolt at its
> insides. I got the message "The spell hits it. You destroy the
> fog cloud!". Shouldn't "it" be "the fog cloud"? If so, it is
> debatable whether or not the then second "fog cloud" should
> perhaps be "it"... [<Someone>]
> The lighting store doesn't sell oil (probably never added when
> POT_OIL was added). There currently isn't enough room in the
> shclass struct for another item, but that could be expanded. I
> think adding oil there would be useful for the post-3.4.x
> version.
The following files are gone (sys\wince):
- stat.h (moved to ceinc\sys\stat.h)
- fcntl.h (moved to ceinc\fcntl.h)
- errno.h (moved to ceinc\errno.h)
- assert.h (moved to ceinc\assert.h)
The following files were added:
- mhtxtbuf.c
- mhtxtbuf.h
- menubar.uu
- ceinc
- ceinc\sys
- ceinc\fcntl.h
- ceinc\errno.h
- ceinc\assert.h
- ceinc\sys\stat.h
CE notes:
Fixes:
- added new options "wraptext", "fullscreen" and "softkeyboard"
- CE341-1 fix ("wraptext" option)
- hide map scrollbars on Smartphone
- added View->Options menu
- PocketPC: added "Fit to screen" and "Show/Hide keypad" icons
on the menu bar
- Smartphone: '<', '>' keys were mapped incorrectly
- build: use source files directly from <buildroot>\sys\wince instead of
copying them to <buildroot>\wince\
<email deleted> wrote:
> Windows NetHack graphical Version 3.4.1
> comments: I have been unable to remove or put in partial groups
> of items into a bag of holding or scak. With hethack 3.3.X I
> could put 2 of 3 potions or 3000 of 8000 pieces of gold into the
> bag. The menu persents you with the following options (yn#aq)(n).
> Using # exits the menu and typing in the number you wish to use
> does nothing. The work around is to drop the number you wish to
> not store and put all the remaining into the bag then pick up the
> remaining.
> Trying to loot a bag on the floor while wielding a cursed
> quarterstaff: "You carefully open the bag... You have no free hand."
> Shouldn't I notice that I have no free hand before even trying?
add freehand() check to able_to_loot()
<email deleted> wrote in rgrn:
> Using a stethoscope while inside a monster (air elemental, vortex)
> and while riding a steed will not let you use the stethoscope
> on your steed. You'll only get the engulfer-monster's stats
> instead of your steeds.
Fix the reported but that prevented stethoscope application to your
steed while engulfed. While the inability to apply your stethoscope
to your steed while engulfed was a code oversight, I think it's a
feature that your ability to use the stethoscope is impacted in the
midst of a swirling, noisy vortex. Make it deliberate with a
two-in-3 chance of avoiding the interference (nine-in-10 chance if
you're a healer who is much more skilled at using a stethoscope).
Previously, if mksobj() was called with the 1st argument
having a value of CORPSE, and a second argument (init)
set to FALSE, the corpse would never get a timer attached.
<Someone> wishes to add a couple of new options to the wince port ("run fullscreen" and "do not use CE software keyboard").
The wincap field was full, so this adds a second field for
additional options.
Since the crysknife is the only MINERAL object in the
game that isn't affected by the "stone to flesh" spell,
and the only thing that makes it to the default
case on the switch statement in zap.c, make it
obvious that it isn't an oversight that nothing happens.
(it wasn't an oversight, right?)
[B04003 and B04004 are still marked "Reported"]
<Someone>:
> You aren't very skilled at reaching from the saddled blue dragon.
> Continue your attempt to set the land mine? [yn] (n)
> You begin setting your land mine.
> There is the trigger of your mine in a pile of soil below you.
> KAABLAMM!!! The air currents set your land mine off!
> I somehow suspect that it'd be more than the air currents, if I were
> trying to arm a land mine from dragonback while not very good at
> controlling it.
<Someone>:
> What do you want to use or apply? [cmu or ?*]
> You aren't very skilled at reaching from the saddled warhorse.
> Continue your attempt to set the land mine? [yn] (n)
> You begin setting your land mine. You escape your land mine.
> Is "escape" really the right word here?
gcc -c -O -I../include -DDLB -DUSE_TILES -oo/cmd.o ../src/cmd.c
../src/cmd.c: In function `rhack':
../src/cmd.c:1800: warning: case value out of range
../src/cmd.c:1801: warning: case value out of range
<Someone> wrote:
>This _must_ be a bug: if a character leaves a pet corpse in a
>bonesfile, someone getting those bones will receive
>"So this is how you repay loyalty?" should he sacrifice it, even
>though the loyalty wasn't shown to _him_."
Clear the appropriate fields from the attached monst structure
when loading bones.
This allows the use of the right mouse button to
look at things on the screen when the
'clicklook' option is set.
Concept came from a patch for 3.4.0
that I saw referenced on r.g.r.n
[see http://www.steelskies.com/nethack.php]
but the implementation is different.
Explicitly mention fil41b.zip as a required djgpp component.
Oddly, some people only pick up part of djgpp, then
complain to us when the Makefile doesn't run as
planned.
hilite_pet on Win32 (tty) wasn't respecting
the setting of "use_inverse" (plain "inverse" at the
time I think).
In response, we made it respect the setting. The
"use_inverse" setting is off by default however,
so we've now had about three complaints about
hilite_pet not working.
So I'm changing the default value for win32 tty
to having "use_inverse" set to TRUE.
They can still override it in the config file
that way.
In May 2002, <Someone> wrote:
>In src/options.c, there are these options with their descriptions:
>
>#####################
>{ "font_size_map", "the size of the map font", 20, DISP_IN_GAME },
> /*WC*/
>{ "font_size_menu", "the size of the map font", 20, DISP_IN_GAME
> }, /*WC*/
>{ "font_size_message", "the size of the map font", 20,
> DISP_IN_GAME }, /*WC*/
>{ "font_size_status", "the size of the map font", 20, DISP_IN_GAME
> }, /*WC*/
>{ "font_size_text", "the size of the map font", 20, DISP_IN_GAME
> }, /*WC*/ #####################
>
>Surely all those descriptions shouldn't be the same?
>>+ #define OPENFAILURE(fd) (fd < 0)
>>+ # endif
>> lockptr = 0;
>>! while (retryct-- && OPENFAILURE(lockptr)) {>nhversion: 3.4.1
>And now this is accepted as valid and nothing is opened...
Oops, thanks Janet.
>nhversion: 3.4.1
>
> nhfrom: 3.4.1 Official binary release for Windows 95/98/NT/2000/Me/XP
> (nh341win.zip)
> comments: Whenever I run NethackW.exe, the nethack window
> appears, and does not run anything. When I close out of the
> program, I get this message:
> Waiting for access to C:\GAMES\NETHACK341\record. (X retries left). > The X seems to always be either 9 or 59. I don't know how to fix this > > problem, any help would be greatly appreciated
<Someone> writes:
>win32 open() returns -1 if failed - same as POSIX open().
> There is no STDIN in GUI applications so 0 is a valid return
> value from open().
> So it should read like that unless that breaks Amiga code:
Since I can't test the Amiga code, I added a macro
OPENFAILURE to keep the Amiga code the same as it
is now. It should probably be reviewed by someone on
the Amiga team to verify if open() on the Amiga returns
0 or -1 on failure. If the latter, the macro could be
removed completely.
The number_pad option can now optionally hold a value
{0,1, 2 } for {off, on, DOS-mode} but plain number_pad and
!number_pad in config files still work as before.
When number_pad:2 is set, iflags.num_pad_mode is set to 1
which triggers the following behaviour:
> '5', M('5') and M('0') are mapped in rhack()
>in cmd.c, only when they are entered as a command. When used as a
>number, like in the 'n' command, no mapping takes place. '0' is
>already mapped to 'i' by the core. The
>only difference [<Someone>] left in (deliberately) is when you press Ctrl-0;
>this used to map to C('i'), which is an invalid command; now
>keep it '0' (which is interpreted as 'i' by the core.)
>The attached is a patch for the makefiles and .rc that makes
>Borland compile. Files modified: sys/winnt/Makefile.bcc - changes
>Makefile so dependencies on dlls are removed for console, adds
>gamedir.tag sys/winnt/Makefile.msc - changes the Makefile a bit to
>make it dependent on gamedir.tag in both gui and console, and make
>the dlls a dependency only in console but without the !IF for
>$(GAMEFILE). The .rc format is made workable for both Borland and
>MSC. win/win32/winhack.rc - makes FONT format Borland compatible
I encountered a look vs pickup cockatrice corpse
bug today.
If you looked at a location with ':', you
would instantly get
"Touching the cockatrice corpse is a fatal mistake..."
but if you used "m," you got the full list of
things at the location to choose from.
This patch makes the behaviour consistent
and more informative to the player.
You now get the partial list of things felt
up until the cockatrice corpse is encountered,
and then you get the
"Touching the cockatrice corpse is a fatal mistake..."
Before, the code was never displaying the partially
built list because the feel_cockatrice() call was
happening before the window display call.
I encountered a look vs pickup cockatrice corpse
bug today.
If you looked at a location with ':', you
would instantly get
"Touching the cockatrice corpse is a fatal mistake..."
but if you used "m," you got the full list of
things at the location to choose from.
This patch makes the behaviour consistent
and more informative to the player.
You now get the partial list of things felt
up until the cockatrice corpse is encountered,
and then you get the
"Touching the cockatrice corpse is a fatal mistake..."
Before, the code was never displaying the partially
built list because the feel_cockatrice() call was
happening before the window display call.
>Steps to reproduce problem:
>1) make sure you don't have race, role, gender specified in your
> defaults.h, then add
> OPTIONS=role:Valkyrie,race:Human,gender:male,align:lawful
>2) start a new nethackw.exe game
>3) Uncheck "Random" from gender box, now you can select from male
> or female, not only female.
>4) Select male and click OK.
>5) When game begins press shift+O (Options) and look to gender.
> Your valkyrie is male.
defaults.nh values were not used the dialog initialization. That's
why both male/female options were available for Valkyries. This is
now fixed.
Also added: checking for consistency of the initial settings and
resetting all incompatible values to ROLE_NONE.
"You can't loot or pick up containers on the floor if you're not
skilled enough to reach them from your saddle, but you can check
for and disarm traps on them; this seems a little odd. (Likewise,
being able to set land mines and beartraps while riding.)"
Proposed by Michael Allison.
Seconded by Pat Rankin.
(it can always be withdrawn if there is a later objection)
-Author of Spanish NetHack
-Author of some NT keyboard internationalization fixes
-Author of "Hell patch"
On January 20, 2002 Ken Arromdee wrote:
>I dug this out of my files. (Well, it didn't take a lot of
>digging; I already copied the disk in question to my PC long ago.)
[...]
>I may or may not have another one of these but I'd actually
>have to go install a 5 1/4 inch drive to check.
This is my final src mod to ensure that a qbuf does not overflow due to
a lengthy named object. These recent patches, coupled with the core yn_function() patch earlier, should make it much rarer for a QBUFSZ
buffer overflow to occur in a window port routine (unless the window
port routine has its own bugs, but that isn't the core's fault).
This is my final src mod to ensure that a qbuf does not overflow due to
a lengthy named object. These recent patches, coupled with the core yn_function() patch earlier, should make it much rarer for a QBUFSZ
buffer overflow to occur in a window port routine (unless the window
port routine has its own bugs, but that isn't the core's fault).
> The `prompt' buffer in tty_yn_function still only holds QBUFSZ
> characters. But fixing the tty incarnation wouldn't be good enough;
> all the other interfaces would need to handle it too. I think it
> should be fixed in the core instead. Prompt strings simply should
> not be allowed to become so lengthy.
Another step in the fight against prompt sting buffer overflows.
The goes after the ones that may not have been found yet.
This makes yn_function a real core function and removes
the #define yn_function macro.
The yn_function validates the prompt string buffer being
passed prior to calling (*windowprocs.win_yn_function)(),
and if necessary, truncating it and adding "...".
This won't help if the overflow occurs in the core in
a buffer that is still QBUFSZ in size, but it will help if
a BUFSZ buffer is being passed to one of the query
functions.
By naming the candelabrum as long a name as the game will allow, and by naming a candle the longest name also, a qbuf overflow and crash is
triggered when you attach the candle to the candelabrum.
By naming the candelabrum as long a name as the game will allow, and by naming a candle the longest name also, a qbuf overflow and crash is
triggered when you attach the candle to the candelabrum.
<email deleted> wrote:
> The game crashed badly when I made some experiments with items
> with very long names:
>
> You have much trouble lifting a blessed greased thoroughly rusty >thoroughly corroded +3 plate mail named terribly long killer longer than my
>ong long-worm called long. Continue? [ynq] (q)
tty_yn_function(const char * 0x0012fa50,
const char * 0x00572ddc _ynqchars, char 113) line 379 + 6 bytes
lift_object(obj * 0x009e8970, obj * 0x00000000,
long * 0x0012fcd0, char 0) line 1131 + 20 bytes
pickup_object(obj * 0x009e8970, long 1, char 0) line 1258 + 19 bytes
pickup(int 0) line 474 + 28 bytes
dopickup() line 1853 + 11 bytes
rhack(char * 0x005c0d50 in_line) line 1908 + 3 bytes
moveloop() line 406 + 7 bytes
main(int 3, char * * 0x009e2ac0) line 102
This patch gives game and savefile compatibility
whether GOLDOBJ is defined or not.
You can build with GOLDOBJ defined or not, and
still load your saved games. Rebuild with the
opposite, and load the same game.
That way GOLDOBJ can be experimented with
more easily.
1. Leave the "you" struct and the "monst"
struct the same under the hood between
GOLDOBJ and !GOLDOBJ.
2. Always write out gold as an
object on the player and monster
inventory chains.
On a restore of the savefile with GOLDOBJ
not defined, take the gold objects out of
the inventory chains and put it into u.ugold
or mtmp->mgold as appropriate.
On a restore of the savefile with GOLDOBJ
defined, nothing special is done.
What's in it:
some MessageBox tidbits:
- Let all MessageBoxes display an icon
- Introduced NHMessageBox to have messageboxes display a consistent title
- Change icon in mswin_display_file from MB_ICONERROR to MB_ICONEXCLAMATION
for non-fatal error
And to solve #U355: NetHackW won't run on Win2K OS:
- Avoid a crash when closing the main window while the splash screen is
displayed.
- Make sure NetHack starts normal when closed minimized
- Center the splash screen on the screen, not on the parent window
(which may be off-screen)
What's new in it:
- Show copyright banner in textbox in splash screen instead of over the picture
- Show news in splash screen only if iflags.news (solves W341-6)
- show complete version information in splash screen when it is used as about box)
[Also reverse the numkey patch in main trunk]
- My "various Windows refinements" patch from yesterday went into 3.4.x correctly
- My "NumberPad" patch went into 3.4.x, but should be backed out
- My "various Windows refinements" patch from last week was for 3.5.0, but is incomplete; you can safely ignore that.
- I'll make a new "various Windows refinements" patch for 3.5.0 tonight.
mapping the 5 and 0 to '5' and '0' respectively
when NumLock is off, to make entering numbers easier. The core will map '5' and
'0' to 'g' and 'i' respectively. This solves W341-5.
Note: I changed nhdefkey.c and mhmain.c, so both the tty and the windows
interface will show new behaviour. I deliberately did not change nh340key.dll.
Note: Maybe the same change should be made to the MSDOS port.
Note: The behaviour of getobj is a little bit strange: It doesn't use
yn_question's facility for returning a number, but handles that itself. The
net effect of this is that if you type d55$ (to drop 55 zorkmids,) only the
first '5' is shown
(2 troublesome bands removed
and will follow later)
Here's the new patch with the Windows improvements; this should apply to the
3.4.2 tree. Note the changed filename in the diff lines.
What's in it:
> some MessageBox tidbits:
> - Let all MessageBoxes display an icon
> - Introduced NHMessageBox to have messageboxes display a consistent title
> - Change icon in mswin_display_file from MB_ICONERROR to MB_ICONEXCLAMATION
> for non-fatal error
>
> And to solve #U355: NetHackW won't run on Win2K OS:
> - Avoid a crash when closing the main window while the splash screen is
> displayed.
> - Make sure NetHack starts normal when closed minimized
> - Center the splash screen on the screen, not on the parent window (which may
> be off-screen)
What's new in it:
- Show copyright banner in textbox in splash screen instead of over the picture
- Show news in splash screen only if iflags.news (solves W341-6)
- show complete version information in splash screen when it is used as about
box