makedefs has been listing TIMED_DELAY as one of the options which
affects save file contents even though that hasn't been the case for
a long time. Unfortunately, simply fixing that by itself would break
save file compatibility for anyone who has been building with it set.
This workaround prevents the fix from doing that. And now folks can
rebuild after toggling TIMED_DELAY without unnecessarily invalidating
save and bones files.
From a bug report,
August 12, 2002 at 11:37:10
When I am polymorphed into a purple worm (didn't check other forms)
and bite a green slime I turn to stone (not slime).
Clear the uundetected status during level changes in case
the character was hiding under something immediately prior to the
change. Don't set hidden status at the destination even when
there's something to hide under--it'll take a turn to hide again.
Fix the case <Someone> saw, where forcefighting an undetected monster
would still leave it undetected, resulting in an odd message sequence unless
you kept forcefighting on the next turns. This also left the monster at a
disadvantage, since it wouldn't fight back. Added a check to wakeup() for this
case, cutting off the possibilities and allowing the monster to fight back.
> [Cast a healing spell in a shop where no mimic was visible] So,
> "The small mimic looks better.". However, my picture still looks
> the same. Either the mimic should be shown, *or* I shouldn't get
> any message about the mimic healing. Both solutions seem equally
> valid to me.
If the mimic was mimicing the "strange object", then the healing causes
them to start mimicing something else with no message (the observant
player could notice however).
If the mimic was already mimicing a real object, a message similar
to this one results:
"The crude dagger seems a more vivid black than before."
- Changed a cancelled chat direction to abort the chat -- it seemed odd
that the old behavior would sometimes take time, sometimes not, depending
on the previous direction.
- Documented the current spelleffects behavior of re-using the last
direction after a cancelled getdir() & added a message.
- In various places, cutting down a tree would result in a corridor symbol
showing up, although trees are generally found in room-like areas. Added
the missing checks.
- Trees were diggable except on mazelike levels. Added the missing check.
- In a cavernous town like minetn-6, digging a wall would result in a
corridor symbol being displayed instead of a doorway. This looked strange,
especially in the town. Added a check for this, making use of the new
meaning of in_town(); non-town parts of this level still do CORR
replacement as expected.
<Someone> noticed that the change to require axes for trees (and allow them for
doors) did not extend to monsters. Now it does.
- added 2 new weapon check flags to handle the new cases
- added some detailed digging flags to mfndpos, based on ALLOW_DIG, and
moved some common logic regarding that flag into mfndpos
- made the ARMS check consistent for 2-handed weapons
I also noticed that simply carrying a pick was enough to allow a monster to
dig a door; wielding wasn't required. This is fixed as well.
I saw no secret doors in any of the towns, but in 340 (fixed in 341),
guards would patrol the entire level, so they might complain about secret
doors elsewhere. Fix the check for future use. Also, I noticed trees, eg
on minetn-6, weren't checked at all. Now they are.
I implemented this before seeing <Someone>'s forwarded report.
It makes guards come to vaults when you can't see them, but does
have one odd side-effect: if the vault has boulders in the way
then you might not be able to follow the guard out. (Usually you
can alternately search and step in order to successfully follow
him out when unable to see.)
The wishing code intended to make a wish for "blue glass" yield
a "worthless piece of blue glass" (and similarly for other specific
colors) but it didn't work right. Also, wishing for "looking glass"
tripped up on that same code and didn't work either. (Several other
permutations for worthless gems such as "worthless blue glass" and
"piece of glass" already do work.)
Found on the newsgroup: someone pointed out that you don't get a message
when you eat a ring of increase damage. They thought it was intentional--
it's not.
Problem was due to the use of obj
in the caller (bhito), after delete of
the obj within animate_statue().
map_object(obj * 0x0000ff00, int 1) line 254 + 3 bytes
newsym(int -18, int -2) line 702 + 102 bytes
bhito(obj * 0x002f6c00, obj * 0x002f7398) line 1665 + 21 bytes
bhitpile(obj * 0x002f7398, int (obj *, obj *)* 0x0055220b bhito(obj *, obj *), int 37, int 11) line 1701 + 11 bytes
bhit(int 0, int 1, int 10, int 0, int (monst *, obj *)* 0x0054e0e0 bhitm(monst *, obj *), int (obj *, obj *)* 0x0055220b bhito(obj *, obj *), obj * 0x002f7398) line 2707 + 29 bytes
weffects(obj * 0x002f7398) line 2434 + 51 bytes
spelleffects(int 3, char 0) line 824 + 11 bytes
docast() line 552 + 11 bytes
rhack(char * 0x005b6034 in_line) line 1813 + 3 bytes
moveloop() line 405 + 7 bytes
main(int 3, char * * 0x002f2b10) line 93
Fix some inconsistencies in armor handling. The 'T' command
wouldn't let you take off a suit or shirt if you were wielding a
cursed two-handed weapon, which makes sense; however, the 'A'
command neglected to impose the same restriction. Also, the 'W'
command had some code intended to prevent you from donning a suit
or shirt while wielding such a cursed weapon, but it didn't work.
This patch fixes the 'A' command's checks for whether an
item can be removed and it makes the 'T' and 'R' commands use the
same code as 'A' instead of maintaining multiple sets of checks.
It also fixes the trivial 'W' problem and attempts to prevent the
sequence of 1) get interrupted while removing a set of equipment
including suit and/or shirt; 2) wield a cursed two-handed weapon
or have already wielded one become cursed; 3) resume removing
armor via 'A' but I haven't tried to trigger that situation to
confirm the bug or this fix.
From a bug report. Removing levitation boots while hovering over
a magic portal causes the portal to be delayed since it takes time to
remove the boots. This causes the portal to be taken via unmul in allmain.
At that point, the will activation message display but you won't teleport
until you type something. Handle the delayed goto after unmul completes.
<Someone> reported that the Ludios level is shown on death. It's not
shown on the tombstone, but it was displayed in the topten list.
Now it's not shown in the topten list either.
The problem was caused by a test that was added to test_move() to test the
move as a regular move if it was the next step. This case affected
boulders and closed doors, both of which are handled in later in do_move().
Remove the check. I think this was something I thought was needed for an
intermediary version of the travel command fix, but turned out to be
detrimental in the current version.
to work with any call to getdir().
When cmdassist is set, instead of the
message:
"What a strange direction!"
you get a screen of help showing the valid direction keys.
!cmdassist will suppress the extra help information.
Provide some command assistance for newbies, but
suppress it with !cmdassist in the config file.
If someone misinterprets the Guidebook ^D, ^T
type command notation, this will pop up some
further information to possibly assist them and
explain the notation.
Fix an item from <Someone>'s list: invoking or applying an
artifact might blast you; if it evades your grasp, the intended
action won't take place but will still use up a turn.
This reclassifies dragon scale mail as magic and leaves dragon
scales as non-magic. Changing the latter would make it be easier
to obtain magic armor via polymorph; just kill some dragons and toss
their scales on the pile. Unfortunately the logic used suggests that
unicorn horns ought to be non-magic too, but I left them as magic.
(Making them become non-magic would actually be a good idea as far
as balancing polypiling goes, but it's awfully hard to justify when
they produce should a wide-ranging magical effect when applied.)
Several flags added since 3.4.0 were destined for flags
(to be saved with the game) but were placed in iflags for
savefile compatibility. These include:
boolean lootabc; /* use "a/b/c" rather than "o/i/b" when looting */
boolean showrace; /* show hero glyph by race rather than by role */
boolean travelcmd; /* allow travel command */
int runmode; /* update screen display during run moves */
This patch has no effect unless you define this in your port's
XXconf.h file.
#define SAVEFILE_340_CONVERT /* allow moving of some iflags fields to flags
without destroying savefile compatibility */
Without it, the new flags remain in "iflags." With it, the flags are moved to
"flags" and the structures are converted when the save file is read. There
is no reverse compatibility. If you save the game after conversion, you
can't load the savefile on 3.4.0, only 3.4.1.
Provide user control over screen updating for multi-step movement
(run via shift, control, &c and also travel). [See cvs history for
fixes34.1 for more details.]
"It was hidden under a green mold corpse! It bites!"
Never seen corpse from a never seen monster can be
revealed by the hider.
-problem is that the corpse of the monster is
always created with dknown set to 1 when make_corpse() finishes,
even in the case where you never knew what it was while alive.
can't just blind yourself with a cream pie in your inventory
directly by applying it or by throwing it.
On 27 Jul 2002 14:11:06 GMT, <Someone> wrote:
> <email deleted> wrote:
>> <email deleted> (<Someone>) hypothesised:
>>
>> [cream pie]
>>> So I a)pply the pie. What I want to do is to hit MYSELF in the
>>> face with the pie, thereby blinding me and giving me T-P for
>>> just a few turns.
>>
>> Not a bad TTDTDTO ("Thing The DevTeam Didn't Think Of," which is
>> subtly different to a YANI, and not a bug; sorry, I seem to be
>> on a neologismathon today.)
> I tried throwing a cream pie upwards, hoping it would blind me,
> but no luck:
>
> "A cream pie hits the ceiling. What a mess!"
>
Change the message for paying off consumed items to
"You paid for a xxxx at a cost of nnn gold pieces."
to distinguish it from objects that you still have in your inventory which is
"You bought a xxx for nnn gold pieces."
Kicking a monster as a monk or samurai or while wearing kicking
boots might make it "reel from the blow" and be knocked back a step.
If that knock back put it into a trap which killed it, the kicking
code would kill it an extra time, then the player would get a warning
about dmonsfree finding the wrong number of dead monsters.
[ I didn't keep a copy of the message which reported this
so don't have any reference number for it. ]
If you used '/' to look at multiple items one after another,
then looking at floor or other item represented by the same '.' as
venom could result in subsequent things being falsely categorized as
possibly venom. The subsequent items needed to have less than two
possible descriptions, and the triggering item needed to be a plain
dot rather than the graphic dot used for floor with IBMgraphics and
DECgraphics.
Suggested by <Someone>: when examining an `@' monster, only include
"or you" in the description if you might reasonably expect to be seen
as something else. So if you're playing as a human or an elf, or if
you're polymorphed regardless of race, the ordinary description of
"human or elf" doesn't need to add "or you". And the setting of the
`showrace' option only matters if the `@' comes from prompting the
user instead of picking a symbol from the map.
Paper golems destroyed by fire traps won't leave any scrolls
of blank paper behind. (There's still no handling of other forms
of fire attack against such critters.)
Don't suppress hallucination on/off messages when blind.
This fixes the case where you might be observing hallucinatory
monsters via telepathy yet not be told that perception was back
to normal when hallucination timed out. It does not fix the
case where temporary hallucination times out while the effect is
being blocked (in which case successful application of a unicorn
horn yields no feedback), nor the hypothetical cases where timed
hallucination starts or ends while also hallucinating for some
other reason (which could happen via polymorph someday if a
monster which is always hallucinating--the way that bats are
always stunned--ever gets introduced).
Make throwing things through iron bars by the player and
by monsters behave consistently with each other. Also prevent
stone-to-flesh'd boulders and wands from passing through.