- Move the code for keystroke handling into its own source file.
- Compile and link it as a dynamic link library.
- Dynamically load the keystroke handler at runtime
- Add support for specifying a different handler in defaults.nh
so that internationalization issues can be dealt with without
rebuilding nethack, just supply alternative handlers in HACKDIR.
The following exported functions need to be present in
the keystroke handler .dll:
ProcessKeystroke - returns an ascii value to NetHack
NHkbhit - allows peeking to see if a key/mouse press is waiting
SourceWhere - returns location for souce code for a keystroke handler
SourceAuthor - returns author information for a keystroke handler
KeyHandlerName - returns the full or short name of the keystroke handling dll.
- Version change from 3.4.x
- timed_delay feature ignore in makedefs
- several flags from iflags to flags
- use offsets from mons array entries in save file rather than storing
the ptr and calculating the distance from beginning of array
-better handling of "more" prompt for messages that would have scrolled off the window
-support perm_invent
-menu option to add/remove windows captions
> There is a slight problem with "--more--" prompt being handled in
> WM_PAINT. WM_PAINT can be sent while you're inside
> mswin_nhgetch(). This causes some weirdness if window is resized
> while waiting for --more-- prompt.
1) Update documentation for using bison/flex
2) Fix use of $(CC). In the makefile, it's supposed to be $(cc).
Otherwise it won't compile. [caused during recent dependency
updates]
The CE ports use makedefs hosted on another platform,
so the version string generated at build time isn't really
appropriate.
Add a way to add information to the version string
at runtime for such ports.
<email deleted>
Newsgroups: rec.games.roguelike.nethack
Subject: Re: Other ways to destroy the Amulet
<Someone> wrote:
>>> Zapped undead turning at his _corpse_, which brought the corpse
>>> back to life and also destroyed the ghost. The revived
>>> character was not carrying anything.
>>
>> Hmm, didn't the Amulet fall to the floor like when you genocide
>> something that's carrying something?
>
> Nope.
>
> That's because undead turning does mongone(ghost). The mongone
> function destroys the inventory of the monster:
> discard_minvent(mdef); /* release monster's inventory */
>
> Whereas genocided monsters are removed with mondead, which calls
> m_detach, which calls relobj, which drops the monster's inventory
> on the floor.
<email deleted> wrote:
> comments: When I try to write in the dust, with my finger, on a
> tombstone, it works the first time, but after that I'm getting a
> message that I can not erase what's written here. Is that an
> intentional way of preventing us gaining a bunch of levels fighting
5 days, no objections to proposed code change.
<email deleted> wrote:
> On Sun, 12 Jan 2003 15:40:33 +0100, <Someone>
> <email deleted> wrote:
>
> >You begin praying to Anu. You are surrounded by a shimmering light.
> >You finish your prayer. You feel that Anu is well-pleased.
> >Your stomach feels content.
> >You are feeling mildly nauseous.
>
> Huh.
>
> sh-2.03$ grep nauseous *.c
> pline.c: if (Vomiting) Strcat(info, ", nauseated"); /*
> !"nauseous" */
> potion.c: if(talk) You_feel("much less nauseous now.");
> timeout.c: "are feeling mildly nauseous.", /* 14 */
>
> Well, pline.c has it right. Nauseated means feeling sick. Nauseous
> means sickening to contemplate.
Second opinion (dictionary.com):
> Usage Note: Traditional critics have insisted that nauseous is
> properly used only to mean causing nausea and that it is
> incorrect to use it to mean affected with nausea, as in Roller
> coasters make me nauseous. In this example, nauseated is
> preferred by 72 percent of the Usage Panel. Curiously, though, 88
> percent of the Panelists prefer using nauseating in the sentence
> The children looked a little green from too many candy apples and
> nauseating (not nauseous) rides. Since there is a lot of evidence
> to show that nauseous is widely used to mean feeling sick, it
> appears that people use nauseous mainly in the sense in which it
> is considered incorrect. In its correct sense it is being
> supplanted by nauseating.
>More worrying is the fact that applying a figurine over water lets
>the monster wait until its next move before it drowns (giving
>you time to teleport it to safety, or whatever) [...]
>Should there be a minliquid() check as part of make_familiar()?
Applying at the water location next to you was easy. But
applying it at your own location (triggering BY_YOU) could
end up placing the figurine at the far side of the level if
there was lots of water.
Correcting that required the ability to pass a flag from
make_familiar to makemon() telling it to not rule out
water locations as good positions. The flag had to
be passed on down to goodpos() and enexto().
The bulk of this patch is just adding an additional
argument to goodpos() in all of the callers.
> If you remove a ring of warning, see_monsters() is called to make
> sure that the numbers get removed from the display. However, if
> your only source of warning is experience level and you get
> drained and feel "less sensitive", it isn't, and they're not.
Provide a way to have a port-specific debug-mode commands
if PORT_DEBUG is defined at build time.
Add a win32 keystroke checking routine to assist debugging
of international keyboards.
Fix a problem with the way NetHack was handling
international keyboards by letting ToAscii() come
up with an input character based on the virtual key,
and the shift and caps lock state.
<Someone> wrote:
> "The freezing sphere explodes! You seem unaffected by it. But wait...
> The freezing sphere's medallion begins to glow!
> The freezing sphere looks much better!
> The medallion crumbles to dust!"
> How can sphere wear a medaillon?
> How can an exploded creature start to look better, if it leaves no corpse?
This addresses the part about looking better, it does not
address spheres wearing medallions (which is not a bug
in my opinion, but other opinions may differ)
<email deleted>
> comments: When dieing from an iron ball landing on your head, the death is
> listed as: "Crunched in the head by an iron ball"
> However no other deaths start with a capital letter.
m_initweap() was trying to give him wands of fire and cold; since
he had no weapon attacks, he wasn't is_armed(), so this code never
got called.
This moves the code to m_initinv().
resulted in "That is a silly thing to [put on | wear]".
But those two cases really aren't so "silly", so adjust
the messages to better explain why the game objected
to the action and point new players at the appropriate
command.
Also adds a cmdassist message for the case where
'R' or 'T' have no appropriate items to point
new players to the correct command. (That can be
turned off with !cmdassist, of course.)
Also adds a const to a recent shade patch by request.
<Someone>:
Baby shimmering dragons have been made DRAGON_SILVER. Adults are still
cyan, as are their scales. Not that it matters while they're still
commented out, but why the discrepancy?
> Bug with flaming attacks...? These monsters should be unaffected,
> IMO.
>
> The fire elemental hits the stone golem. The stone golem is on
> fire!
fixed in patch
> The pyrolisk gazes at the flaming sphere... The flaming sphere is
> on fire!
This was already corrected in CVS.
For "traditional" menu style, pickup and #loot/apply can't accept an 'm'
response to bring up a menu upon request when all items involved are of
the same class, because the prompt where that response is allowed only
gets issued when multiple classes are present.
Also allow 'm' prefix for pickup.
For "traditional" menu style, pickup and #loot/apply can't accept an 'm'
response to bring up a menu upon request when all items involved are of
the same class, because the prompt where that response is allowed only
gets issued when multiple classes are present.
Narrow openings are currently not checked for by hurtle_step() or
mhurtle_step. This has the consequence that you can jump or use
Newton's 3rd to get through somewhere you can't get through on the
ground, and monsters can stagger or be jousted through somewhere
they wouldn't attempt under their own steam.
This patch fixes hurtle_step(). It does not address mhurtle_step.
This patch ensures that two-weaping stops if uswapwep gets cursed
while two-weaponing. I think this means the 'A' command will never
encounter the situation now in the complaint now.
See rules at top of wield.c.
The complaint states:
It still won't let you unwield a cursed secondary weapon while
two-weaponing, even though you can drop such a weapon without problem.
You aren't supposed to be able to two-weapon
with a cursed alternate weapon at all. It appears that there are some
checks to prevent twoweaponing if uswapwep is cursed when you try.
This patch ensures that two-weaping stops if uswapwep gets cursed
while two-weaponing. I think this means the 'A' command will never
encounter the situation now in the complaint now.
The rules in wield.c state
The secondary weapon (uswapwep):
1. Is filled by the x command, which swaps this slot
with the main weapon. If the "pushweapon" option is set,
the w command will also store the old weapon in the
secondary slot.
2. Can be field with anything that will fit in the main weapon
slot; that is, any type of item.
3. Is usually NOT considered to be carried in the hands.
That would force too many checks among the main weapon,
second weapon, shield, gloves, and rings; and it would
further be complicated by bimanual weapons. A special
exception is made for two-weapon combat.
4. Is used as the second weapon for two-weapon combat, and as
a convenience to swap with the main weapon.
5. Never conveys intrinsics.
6. Cursed items never weld (see number 3 for reasons), but they also
prevent two-weapon combat.
<email deleted> on Saturday, January 4, 2003 at 12:16:29
comments: I just noticed that, while wearing a -1 ring of adornment, a potion
of enlightenment gave the intrinsic "You are adorned." Shouldn't it be more
accurately, "You are unadorned." or something similar?
Back in 2000 "Pat Rankin" wrote:
> From a user (in a message which had several unrelated things):
>
> > I think the colour of silver dragon scales / scale mail should not be
> > SILVER (which is not a colour), but HI_SILVER. Of course the colour of
> > silver dragons would have to be adjusted to match this.
>
> I don't normally have access to a color display, so I hadn't noticed
> that silver dragons are CLR_BRIGHT_CYAN. It is pure coincidence
> that material SILVER happens to have the same numeric value as that.
> Is bright cyan intentional, to make them distinguishable from gray
> dragons (since color HI_SILVER is defined to be the same as CLR_GRAY)?
> Or was it done for the monsters just because the corresponding objects
> accidentally had the wrong value? It seems to me that they ought to
> be the same shade of silver (ie, gray) as other silver things, even
> if that makes them look identical to gray dragons.
Using the material value SILVER in the "color"
field was wrong, no matter what the reason. I
suspect it was probably a mistake originally.
This patch does not alter the displayed colour for the
bug-fix release, but does correct the misuse of the
material.
> You're equally unlikely to be wishing for spellbooks by colour,
> but I note that 'grey' for 'gray' only works for dragonscale and
> stones, not the spellbook description.
[forwarded from newsgroup]
When polymorphed into a handless monster, you can't loot a chest
that's on the ground but you can pick it up and then apply it when
it's in your inventory.
> You hit the shade with an egg. Splat!
> The cream pie splashes over the shade's face!
> Your venom burns the shade! [But it doesn't.]
> A mirror breaking I could possibly see, since the silvering is the
> important part there.
<Someone> wrote:
I happened to be playing under X11 for a change this weekend, and I
noticed that, since the direction help of cmdassist uses (sort of)
ASCII art, it looks rather peculiar in a proportional font. Could it
be made to use the menu font instead?