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.
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.
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."
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.
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.
argv[0] 0x00b40800 "C:\test\binary\nethackw.exe"
argv[1] 0x00b40878 ""C:\test\binary\nethackw.exe""
argv[2] 0x00b408f0 "-uwizard"
argv[3] 0x00b40938 "-D"
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....
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:
win32_map_mode:[tiles|ascii4x6|ascii6x8|ascii8x8
|ascii16x8|ascii7x12|ascii8x12|ascii15x12
|ascii12x16|ascii10x18|fit_to_screen]=20
win32_align_status:[left|top|right|bottom]
win32_align_message:[left|top|right|bottom]
Note: aligning status window to left or right edge of the screen does
not look good.
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.)
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.)