nethack.allison [Thu, 2 Jan 2003 03:07:46 +0000 (03:07 +0000)]
B14005 cmdassist font
<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?
nethack.rankin [Tue, 31 Dec 2002 04:31:38 +0000 (04:31 +0000)]
new data.base entries
Add the caveman, healer, and monk data.base entries supplied by
<Someone>, plus the healer one from <Someone>'s list of outstanding bugs and
requests. Every role now has its own entry. I left "dwarven caveman"
and "gnomish caveman" pointing at the generic dwarf and gnome entries
respectively, because the caveman quote feels to me to be more human-
specific than the earlier role ones have been.
I added blank lines to the monk quote to break it into paragraphs,
and made two minor tweaks to the text. I hope we can find or invent a
separate entry for Master Kaen though. Getting a quote that refers to
Buddhism for him seems wrong to me, but leaving the generic human one
now that there's a monk-specific one didn't feel right either.
I've moved a few quest guardians around this time. Deciding which
of them should yield the corresponding role entries and which shouldn't
involves judgement calls and I don't claim that the current situation
is now perfect.
nethack.allison [Tue, 31 Dec 2002 04:11:38 +0000 (04:11 +0000)]
gnomish wizard follow-up to follow-up
By request, withdraw the limitation and revert
back to preventing all player species from
polymorphing into variants of that same species.
nethack.allison [Tue, 31 Dec 2002 03:30:33 +0000 (03:30 +0000)]
buglist fix: gnomish wizard
<Someone> wrote: If you polymorph into a gnomish wizard (even if you *are* a gnomish
wizard), you shrink out of your armour.
nethack.allison [Mon, 30 Dec 2002 12:00:29 +0000 (12:00 +0000)]
Borland Makefile (from Yitzhak)
> This patch adds a bit of help on where a win32 bison/flex port can be
> downloaded, how to set it up, and provides default settings for that
>port. It seems the homepage has been stable for at least four years.
>The bison outputs from this port are y_tab.c and such, so I changed
>the defaults in the makefile to be such. The flex output is yy.lex.c.
>One question that was fwd'd to me after the release dealt with
>using bison and flex.
nethack.allison [Sun, 29 Dec 2002 23:55:58 +0000 (23:55 +0000)]
buglist entry: hobbits and elven mithril armour
<Someone> wrote: "Also, hobbits can't wear armour,
at least, you can't wear armour when polymorphed into a hobbit, even
though hobbits do tend to be carrying elven mithril-coats.
It's tempting to suggest adding an explicit exception in
sliparm() for elven mithril just to keep the Tolkienness."
- added a general routine for adding race-based /object
combination exceptions.
- hobbits can wear elven mithril-coats
nethack.rankin [Fri, 27 Dec 2002 03:29:46 +0000 (03:29 +0000)]
fix B15006 - breaking lances with jousting
Post 3.4.0 bug: "Your a lance (weapon in hand) shatters on impact!"
Use xname() instead of doname() to get "lance" instead of "a lance" here.
It also wasn't giving "you start bashing with your bare/gloved hands" on
the next attack after losing the weapon.
nethack.allison [Mon, 23 Dec 2002 12:49:56 +0000 (12:49 +0000)]
autocomplete fix for win32
The problem with the new autocomplete was tracked down to
be the result of differences between different implementations
of backsp(). The differences go all the way back to the
early MSDOS port by the look of it, and the win32,
and Mac tty ports all seemed to pattern themselves after the
MSDOS port for that routine. Apparently, it didn't cause any
harm until now.
The problem is that backsp() sends a character sequence
of 0x08, 0x20, 0x08 on at least those ports, where the Unix
tty code only sends 0x08. So the characters in the new
autocomplete were all being erased from the screen.
This patch only fixes the win32 tty port, so I've left the
conditional code in getline.c for DOS and Mac. I
nethack.rankin [Thu, 19 Dec 2002 02:24:13 +0000 (02:24 +0000)]
artifact invisibility fixes
Invoking the archeologist's Orb of Detection gave "you feel a surge
of power, but nothing seems to happen" if you were able to see invisible,
but various other ways of toggling invisibility give fade/unfade messages
in that situation. Also, you would get false reports of invisibility
changes if you invoked the artifact while temporarily invisible due to
potion or spell or while wearing a mummy wrapping.
cohrs [Thu, 19 Dec 2002 02:09:35 +0000 (02:09 +0000)]
B15004 - Master Assassin's attack
hitmu was trying, and failing, to re-implement parts of x_monnam(). Changed
it to use Monnam(), which produces more detailed messages than before in
some cases, but seems better since its messages are now more consistent
with hitmsg() and prints "The" in this specific case.
cohrs [Thu, 19 Dec 2002 01:57:10 +0000 (01:57 +0000)]
U189 - killing an engulfing monster over water allows waterwalking
- The code in xkilled failed to call spoteffects after killing the monster
that was engulfing you. Being expelled already worked correctly.
- While testing this, I discovered that removing a ring of levitation or
similar while engulfed would call spoteffects when it shouldn't. Fixed
that too.
nethack.rankin [Wed, 18 Dec 2002 20:09:33 +0000 (20:09 +0000)]
data.base revision
Add the wizard entry submitted by <Someone>. It doesn't fit
perfectly but seems better than getting the generic human (or other
race) entry. It pointed out that "gnomish wizard" is ambiguous between
a type of monster and a player character race/role combination. I had
to add a special case to the code to make that work out right.
This also makes all the roles that have the their entry match any
race; conversely, match the race's monster for roles that don't have an
entry (caveman, healer, monk, priest, and samurai; we really should get
them their own). Previously many of the non-human ones yielded "I don't
have any information on such things" and at least one (elven priest)
yielded the generic human entry.
nethack.rankin [Wed, 18 Dec 2002 18:15:55 +0000 (18:15 +0000)]
fix B15003 - behavior of bribe-able demons
Prevent a demon who is carrying the Amulet of Yendor from being
removed from the game when player meets his demand for a bribe since
that was effectively destroying the Amulet. There are various ways
to accomplish this; I chose to make the bribe demand be for an amount
that the player cannot possibly satisfy in that case.
nethack.rankin [Wed, 18 Dec 2002 17:51:02 +0000 (17:51 +0000)]
invisibility bit
Make timeout of temporary invisibility consistent with other
forms of toggling that state: you notice it even when you are able
to see invisible. (Invoking the archeologist's quest artifact is
still inconsistent in this regard.)
nethack.rankin [Wed, 18 Dec 2002 17:38:57 +0000 (17:38 +0000)]
fix U193 - digging feedback for undiggable trees
> Zapping a wand of digging at trees in ranger's quest gives a message
> "rock glows then fades".
There was code to handle this, but it didn't work due to the
definition of IS_TREE making checks for STONE be sensitive to code
ordering (STONE was checked first in this case).
nethack.allison [Wed, 18 Dec 2002 03:51:34 +0000 (03:51 +0000)]
wince (from <Someone>)
Added support for
Palm-size PC (Windows CE 2.11) and Smartphone 2002.
It works fine under emulation, but it still needs to be tested
on real device. There are also some minor tweaks here and there.
cohrs [Tue, 17 Dec 2002 03:36:42 +0000 (03:36 +0000)]
missing altar drop messages
Most callers of dropx did not check for altars, but should have. Rather
than add such checks, I moved the check from drop to dropx. I also found
several callers of dropx that could generate out-of-order messages for some
cases (not new) and fixed them. FYI - callers of dropy don't seem to want
altar checks or already do them.
nethack.rankin [Sat, 14 Dec 2002 11:53:22 +0000 (11:53 +0000)]
fix B14021 - inconsistent menu styles
Menu styles `partial' and `full' will let you remove any type of
item from the three weapon slots via the 'A' command, but `traditional'
and `combination' would only do that for the primary weapon slot. For
the alternate weapon and quiver slots, the item in question had to be
one which can normally be wielded or worn, otherwise when choosing the
object class letter you'd be told that it was "Not applicable." And
for wearable items, you needed to be really wearing one of that class
(besides the quivered one) or else you'd get "not wearing any amulet"
or similar.
nethack.rankin [Sat, 14 Dec 2002 11:22:10 +0000 (11:22 +0000)]
fix B14020 - unquivering with 'A'
Ahe 'A' command would not let you remove a cursed item from the
quiver or alternate weapon slot. But other commands such as drop or
quiver would let you get rid of such things since they aren't considered
to be welded in place the way a wielded weapon is.
This seemingly minor bug is more significant than first appears
because it opens a loophole to allow you determine whether any held item
is cursed: quiver it, try to remove it with 'A' and possibly be told
that it's cursed, really remove it with 'Q' if so.
cohrs [Thu, 12 Dec 2002 06:16:39 +0000 (06:16 +0000)]
tty autocomplete
Change tty extended command autocomplete, based loosely on <Someone>'s
patch, to allow you to type autocompleted characters. That is, you can type
characters the autocompleter inserted without invalidating the command.
I haven't looked closely, but at least some other windowport extended
command readers seem to already behave similarly.
cohrs [Thu, 12 Dec 2002 04:28:28 +0000 (04:28 +0000)]
B14006 - monsters and lava
- water elementals now get a special message when they land in lava
- rather than track down all places where non-moving monsters can end up in
lava (or water, not that it currently matters), add a check to mcalcdistress
to catch all such cases, once per turn.
cohrs [Thu, 12 Dec 2002 02:41:05 +0000 (02:41 +0000)]
no renaming of unique monsters with proper names
Not all leaders and nemeses have M2_PNAME set, so they require an extra
check to result in the expected behavior.
cohrs [Thu, 12 Dec 2002 02:35:44 +0000 (02:35 +0000)]
various message cleanups
As From a bug report.
- tengu is plural, some true rumors spelled it "tengus"
- Caveman quest messages shouldn't contain the word "human" since not all
cavemen are human, changed such messages in various ways
- fix a typo in a Wizard quest message
nethack.allison [Wed, 11 Dec 2002 03:52:06 +0000 (03:52 +0000)]
win32 IDE fix
A recent change described as:
"changed the IDE files to build NetHackW.exe instead of
nethackw.exe. This is only cosmetic, but consistent with the
other executable."
was not just cosmetic. The changes prevented the
executable from being copied to the target binary
directory at all, due to the removal of the necessary
trailing tab.
cohrs [Tue, 10 Dec 2002 05:07:09 +0000 (05:07 +0000)]
B14019 - pyrolisk vs flaming sphere
A 3.4.0 report, currently only the mdamagem gaze case caused the strange
"on fire" message for flaming spheres, but other attacks seemed like they
might result in a similar message, so I updated the damageum and hitmu
cases as well.
nethack.allison [Mon, 9 Dec 2002 03:12:47 +0000 (03:12 +0000)]
win32 updates (from <Someone>)
- restructured Install.nt quite a bit. It now contains instructions
to build a graphical nethack using NMAKE, too. I merged
the instructions for command line builds, and separated the IDE
build; that made more sense to me. It is shorter, too.
- added some lines to all Makefiles so they now build
NetHackW.exe when GRAPHICAL is "Y", and NetHack.exe
otherwise. I espacially did not test this on Borland.
Previously, the makefiles would always build NetHack.exe.
- changed the IDE files to build NetHackW.exe instead of
nethackw.exe. This is only cosmetic, but consistent with the
other executable.
- made a small change to pcmain.c, as the MinGW linker
cannot decide between main() and WinMain() when both are
present, as explained in <Someone>'s original
message. (I used a #ifndef instead of comments ;-)
The MinGW graphical build indeed seems to work.
cohrs [Mon, 9 Dec 2002 02:07:29 +0000 (02:07 +0000)]
bouncing zaps
As From a bug report, don't let bounces go past the edge of closed
doors. His suggested patch included some redundancy, which I've removed.
nethack.rankin [Thu, 5 Dec 2002 02:07:20 +0000 (02:07 +0000)]
jousting
Part I: it's possible to use two-weapon combat while wielding a
lance (which seems odd to me); the second weapon would hit even if the
the first delivered a lance jousting blow that knocked the target away.
Part II: always getting the joust knockback effect when hitting
with a lance while mounted was too powerful; implement a suggestion
from the newsgroup that it be a random chance based on skill level.
Related: it's now possible to break your lance when hitting; when
adding that, I noticed that it was theoretically possible (didn't try
to reproduce) for a shattered boomerang or mirror to yield the stagger
bonus sometimes given for unarmed attacks.
cohrs [Thu, 28 Nov 2002 20:44:54 +0000 (20:44 +0000)]
fix up several death messages
<Someone> reported several incorrect death messages
1) "petrified by deliberately gazing at Medusa's hideous countenance" is
too long and won't fit on the tombstone. I reworded it, which also better
reflects that Medusa's gaze is really an active attack.
2) "killed by war hammer named Mjollnir" for partly identified Mjollnir now
says "killed by a war hammer named Mjollnir".
3) "using a magical horn on himself" was missing the "killed by" prefix
4) there were supposedly cases the the a/an article was missing after being
killed by a monster. I didn't see where this was occuring (eg AoLS resets
killer_format before it returns), but now done_in_by always resets
killer_format, which should address any such cases.
warwick [Wed, 27 Nov 2002 04:37:12 +0000 (04:37 +0000)]
<email deleted>
If race is set to random and role is set to something
specific, the Qt interface sometimes hangs trying to
determine an appropriate race/role.
This patch that fixes the problem, and makes 'random'
work more appropriately.
cohrs [Sat, 23 Nov 2002 18:36:54 +0000 (18:36 +0000)]
effect of webs while mounted
Prompted by a message to the list from <Someone> which noted that your
strength controls the traps effect, not the steed's strength, although the
messages say otherwise. Changed this case to use mintrap to determine what
happens.
cohrs [Fri, 22 Nov 2002 03:55:48 +0000 (03:55 +0000)]
U154 - crash on teleport from engulfing mon
teleds now needs to handle the case where an uncarried ball starts out
inactive, but becomes active as a result of teleporting out of a monster
while engulfed.
cohrs [Thu, 21 Nov 2002 18:05:48 +0000 (18:05 +0000)]
B14014: soft hats and piercers
Soft "helmets" don't protect against falling rocks, but did protect against
piercers. Update the checks so only hard (metallic) helmets provide this
protection. The same report quibbled about using the word "helmet" for
soft head coverings. This patch does not address that quibble.
nethack.rankin [Thu, 21 Nov 2002 00:47:12 +0000 (00:47 +0000)]
stealing heaven
Fix the reported problem of getting impossible warnings for unpaid
inventory items during final disclosure if you level teleport out of
the dungeon while holding shop goods. The fix makes you trigger a shop
robbery first; that required a minor end of game change to prevent the
shopkeeper from seeming to tag along (shk would take your possessions
as if you'd died on the shop level).
nethack.rankin [Wed, 20 Nov 2002 22:44:15 +0000 (22:44 +0000)]
fix B14013 - experience calculation
Put in the missing parentheses that <Someone> reported; I don't know
how much that's going to impact experience calculations. Also, update
some related code that didn't reflect the increase in default speed
from 10 to 12 back in 3.3.0.
nethack.allison [Sun, 17 Nov 2002 18:43:45 +0000 (18:43 +0000)]
get_adjacent_loc()
use get_adjacent_loc() rather than getdir() directly for some things where
you want to ensure valid adjacent coordinates are returned
<email deleted> wrote:
>>> [...]
>>> I've noticed that the loot adjacent spot code doesn't have any
>>> isok(x,y) test, so will risk crashing if used at the edge of
>>> the screen (whether deliberately, or accidentally due to being
>>> confused or stunned when picking the direction).
>> Would this not be a problem elsewhere, such as use_leash() too?
> Yes, that looks like the same risk. getdir() doesn't validate
> that the <u.ux+u.dx, u.uy,u.dy> is safe and neither does m_at(),
> so their callers need to.
>
> I did manage to provoke a crash with #loot on the plane of earth,
> although an accidental case would be a lot less likely to happen.
cohrs [Sat, 16 Nov 2002 05:31:23 +0000 (05:31 +0000)]
Wand of digging in a shop crash
From a bug report. I haven't looked closely, but I think this bug is just
in the development code. If you dig in a shop with a wand while carrying
unpaid stuff, the shopkeeper would grab your pack, including the wand but
w/o clearing current_wand. It seems the right thing is to just not grab
the current_wand, since it's not in your pack while you're zapping it.
In 3.4.0, you lost the wand too.
cohrs [Fri, 15 Nov 2002 07:32:52 +0000 (07:32 +0000)]
shopkeeper falling thru a hole left unpaid objects unpaid
Reported to the list. Player breaks a wand of digging causing the
shopkeeper to fall. This didn't clear unpaid items. For now, this can
only occur due to player action, so added a call to make_angry_shk to
handle this situation.
cohrs [Fri, 15 Nov 2002 04:58:28 +0000 (04:58 +0000)]
level teleport and sleeping steed
If you level teleported while on a sleeping steed, a panic and possibly a
crash would occur. I believe the same would occur by digging a hole. This
was due to keepdogs avoiding keeping sleeping pets. In these cases, it
seems there's no reason for the sleeping steed to _not_ accompany you.
Since other ways of changing level (eg stairs) don't allow this, just added
a check to keepdogs to allow the steed to go with you.
nethack.rankin [Wed, 13 Nov 2002 23:08:04 +0000 (23:08 +0000)]
de-sparkling explosions
From the newsgroup: explosions handle their own shield effect
display for resisting monsters and it was ignoring user's negation
of the sparkle option to suppress shield effect.
nethack.rankin [Fri, 8 Nov 2002 12:45:58 +0000 (12:45 +0000)]
fix B14012 - polymorph of monster possessions
Forwarded from the newsgroup: when a monster gets hit by wand or
spell of polymorph, any armor that fell off was protected from being
hit by that same zap, but a dropped weapon wasn't. Nor was the whole
dropped inventory in the case where the monster is killed by system
shock rather than transformed. Protect its entire inventory.
cohrs [Thu, 7 Nov 2002 18:52:00 +0000 (18:52 +0000)]
teleport control, confusion and stunned
Being Stunned now disallows teleport control. Confusion may affect ability
to control level teleports, but only after asking for the destination.
Made confused level teleport failures based on luck too.
cohrs [Thu, 7 Nov 2002 18:24:31 +0000 (18:24 +0000)]
salamanders have no legs
However, they could ride. Marilith is similar, but since it's MZ_LARGE,
that check disallowed riding. Added a check for slithy(), like
canwearobj() already has.
nethack.rankin [Thu, 7 Nov 2002 03:27:37 +0000 (03:27 +0000)]
high temple entry
From the newsgroup: temples attended by high priests on the Astral
Plane (also in Moloch's Sanctum, although that one doesn't really matter)
give a different entry greeting than usual in order to conceal the altar's
alignment, but they were including the patron deity in the priest name
given as presenter of the message ("The high priest of Offler intones:").
nethack.rankin [Thu, 7 Nov 2002 02:56:19 +0000 (02:56 +0000)]
fix B14011: vault wall repair
From the newsgroup: traps created on the location of dug out vault
walls would be left in place when/if the vault guard repaired the walls.
Since known traps get precedence over walls when drawing the map, this
produced a display oddity in addition to the topological one.
It also appears that monsters in affected spots wouldn't be handled
correctly if they happened to be in a direct horizontal or vertical line
with the guard. I don't know whether that matches any of the assorted
unresolved old vault bugs.
This eliminates a chunk of redundant code by merging two loops.
cohrs [Mon, 4 Nov 2002 22:07:23 +0000 (22:07 +0000)]
B14010 - nausia and reading spellbooks
Pulled out the code that handles reading spellbooks while confused into a
new function that can be called from learn() to handle the timed onset of
confusion starting while you're reading.
nethack.allison [Sun, 3 Nov 2002 15:26:41 +0000 (15:26 +0000)]
splash screen patches (from <Someone>)
- Show splash on "Help - About" with all version information
- Show splash with news on startup (if show_splash is on of course).
I made another small patch to the splash screen. Because the greenish background colour always seemed a little odd to me, I decided
to make it transparent. Doing that, I found the following:
- The splash picture was a 24-bit bitmap, although it had less than 256 colours. That makes the size of the final executable about
200K larger than necessary. I changed it to a 256-colour bitmap. I also changed the background colour to the default tile background
colour, for consistency. The new bitmap is attached here. My excuses if the large file means a problem to anyone.
- In Microsoft's documentation (see http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/bitmaps_2y9g.asp) is is
stated that on Windows 95/98 "TransparentBlt contains a memory leak that can exhaust system resources." It is recommended to use
different code to draw transparent bitmaps, to be precise: the alternative code that is already in nhapply_image_transparent(). I'm
almost convinced that this is the cause for Betabug B08008 reported bij <Someone>. Can anyone confirm he is using 95/98? I decided
for the easy way out and removed the code that uses TransparentBlt completely. I see not much reason to use it if it is a) buggy and
b) we have an alternative that works perfectly. This is attached as trans.patch.
- The rest of the patch only changes the BitBlt() in mhsplash.c to a nhapply_image_transparent().
nethack.allison [Sun, 3 Nov 2002 15:16:22 +0000 (15:16 +0000)]
NH 3.4.0 fonts on Win2K / Japanese (from <Someone>)
Here is one more patch (see attachment). It does TranslateCharsetInfo
to map codepage to a character set. I am not sure if it will help though.
Japanese Windows is using codepage 932 and I don't think IBMgraphics
will work too well in this codepage.
AFAIK, there is no way in win32 to force arbitrary codepage for a font
(CP 437 in case of Nethack). That means IBMgraphics is unlikely to work
if the system locale is set to something other than US or Western Europe
(CP 437 & 850).
cohrs [Sun, 27 Oct 2002 16:30:35 +0000 (16:30 +0000)]
B14009 order of altar feeling messages
Special case the altar feeling messages to avoid saying you're feeling
the altar and then saying there's an altar here.
cohrs [Sun, 27 Oct 2002 16:13:17 +0000 (16:13 +0000)]
B14008 splash when dropping things in pools
Added code to flooreffects() to implement this suggestion from <Someone>.
It kicks in while blind, only affects objects of some bulk, and also only
things dropped at your location. The map_background currently doesn't
do anything since the dropped object is remembered on top, but this will
avoid a bug if we ever add invisible objects.
cohrs [Thu, 24 Oct 2002 05:43:40 +0000 (05:43 +0000)]
consistent sokoban guilt for polymorphing boulders
Discussed a while back in the newsgroup. casting Stone to Flesh on a
Sokoban boulder would affect luck, but simply polymorphing a boulder would not.
cohrs [Thu, 24 Oct 2002 04:13:56 +0000 (04:13 +0000)]
is_lminion should only match lawful minions
When Angels were introduced, they were always lawful. Somewhere along the
line, non-lawful angels were added, but is_lminion and uses of it was never
updated to address this change. Among other things, this resulted in
non-lawful angels delivering messages via #chat that are only appropriate
for lawful angels. That is addressed simply by changing the definition of
is_lminion, which must take a struct monst, not a permonst, to return valid
results. Also, non-lawful angels should summon appropriate monsters, not
lawful minions.
cohrs [Thu, 24 Oct 2002 01:40:58 +0000 (01:40 +0000)]
B12010 - boulders in throw menu for giants
When the player is poly'd to a giant, it was a bit odd that boulders
weren't listed in the throw menu, especially since the usual check for them
is throws_rocks. Since statues are not appropriate, I added this thru yet
another ugly check in getobj.
nethack.rankin [Mon, 21 Oct 2002 10:20:29 +0000 (10:20 +0000)]
fix B14003 - "bashing" with mounted polearms
Attacking with a polearm while mounted behaves differently than
while on foot, so make mounting and dismounting when wielding one adjust
weapon status accordingly. Don't give a bashing message on first attack
if you mount with a polearm already wielded; do give one on your next
hand-to-hand attack if you just dismounted with one wielded.
nethack.rankin [Mon, 21 Oct 2002 08:57:39 +0000 (08:57 +0000)]
wizard mode mapping
Override confusion and hallucination when revealing the map with
<ctrl/F> in wizard mode. This also renames the `#poly' extended command
to `#polyself' and adds several one-line comments.
nethack.rankin [Mon, 21 Oct 2002 08:32:57 +0000 (08:32 +0000)]
prayer result bits
You won't be hallucinating at the end of a prayer which reveals
the Castle passtune even if you were hallucinating before hand, so
there's no point in adding joke messages in that case. Also, you
can't pray while unconscious, so ignore the soundok flag when dealing
with that tune; otherwise the player could toggle that option off in
order to bypass the tune result in favor of the golden glow effect.
nethack.rankin [Wed, 16 Oct 2002 22:20:30 +0000 (22:20 +0000)]
fix B14002 - Stinking clouds in bonefiles
More region fixes. The region restore code wasn't updating monster
ID numbers for bones data, so monsters already inside stinking clouds
might or might not be affected by them depending on arbitrary mon->mid
assignments across the old and new games.
This also flags stinking clouds in a way that lets the game keep
track of whether they were created by the player, and clears that state
for bones data so that the current player doesn't get credit or blame
for clouds left by the former one. File compatibility with 3.4.0 is
retained; if/when that eventually changes, this code can be simplified.
Testing with current development code has been limited but seems
to be working correctly; testing with actual 3.4.0 files has not been
attempted.
cohrs [Wed, 16 Oct 2002 06:30:36 +0000 (06:30 +0000)]
B14001 - Stinking clouds in bonesfiles
Incorporate a fix from <Someone> that resets the timestamp on
stinking clouds left in bones files. This does allow the cloud's ttl to
restart. Extended it to reset the player_inside flag.
Then noticed that the only placed that called in_out_region was domove().
Added calls when changing levels (which causes player_inside to be set
correctly if the cloud covers the location where the player starts on the
bones level), teleporting, and inside hurtle_step. There are still other
places that fail to call in_out_region, which others may choose to tackle.
I split out the remaining stinking cloud bug reported in the same e-mail
into a separate betabug. That one probably cannot be addressed without
changing the level file format to track the creator.
cohrs [Wed, 16 Oct 2002 05:46:20 +0000 (05:46 +0000)]
B13004 spellbook destruction
When reading a cursed or too-hard book that's covered in contact poison
(presumably in the too-hard case, reading it made the poison), and you die,
the book would not be in the bones. remove in_use mark while assessing
damage.
On the other hand, not From a bug report, the message in the "6" case says
the book explodes, but had a 1/3 chance of not disappearing in the normal
case, and 100% chance of remaining if cursed while reading - when the
player survives. Return a flag to allow the book to be destroyed in this
case. No work needed for the death case; in_use is set.