Commit Graph

678 Commits

Author SHA1 Message Date
nethack.rankin
b840adcb62 trickery bulletproofing
Prevent the pardoning of trickery in wizard mode from attempting
to continue when there's no longer any current level.  Also prevent
the ZEROCOMP configuration from trying to read from file descriptor -1
in case there're any other places which still let that slip through.
And fix an oddity in the VMS port's error() routine which has gone
unnoticed for years.
2002-08-22 03:05:18 +00:00
nethack.rankin
f13035aa48 B09001 - mhp > mhpmax after life drain
A monster hit by Stormbringer could take less damage to current
HP than it took to max HP if attacker had sufficient penalties, so
end up being healthier than its new maximum.  This only applies to
attacks by the player; attacks by monsters don't include the sorts of
modifiers that can trigger it.
2002-08-22 01:44:24 +00:00
nethack.rankin
d5c2438652 bad "cad" message
From the newsgroup:  taking a shop-owned pick-axe out of a
container inside a shop gave a misleading message telling the
player to take the pick-axe out of the shop.  It was caused by
using the object's `unpaid' field before addtobill() had set it.
2002-08-22 01:23:31 +00:00
cohrs
59a96452ff B04006 - Grayswandir and unicorn horns
Implement a check in make_hallucinated similar to the check in make_blinded
to handle the case where your hallucination is cured but Grayswandir is
suppressing its effects anyway.
2002-08-22 00:13:03 +00:00
cohrs
2d2a20cdf0 R1049 followup
This patch handles the case of angering the town watch when breaking a wand
of digging damages walls or doors.
2002-08-21 23:36:47 +00:00
cohrs
5d492abf6f R1049 - various wand of digging bugs
- Breaking wand of digging dug through rock which should be undiggable.
Checks assumed pits would never show up in solid rock.
- Breaking wand of digging near shop walls wouldn't anger the shopkeeper
Checks assumed pits would never show up in walls, also, added a special
case to pay_for_damage to handle the case where you're falling thru and
can't be asked to pay.
- Shop walls wouldn't be restored if there are pits in the way.
Checks assumed pits would never show up in walls.
- If there was a hole outside the shop, you could kick stuff out of the
door into the hole without shopkeeper noticing.  Added the missing check.
2002-08-21 23:06:58 +00:00
cohrs
d18027e570 tearing spellbooks while confused
Reported to the newsgroup, the code in study_book for the effect of
confusion on studying a book was never reached.  The study_book code
didn't completely handle continuing to read a book when you got confused
after getting interrupted.
2002-08-21 16:43:48 +00:00
cohrs
aedda43f38 tearing spellbooks while confused
Reported to the newsgroup, the code in study_book for the effect of
confusion on studying a book was never reached.  Removed the deprecated
check from read.c
2002-08-21 16:42:10 +00:00
nethack.allison
2697615bd3 win32: hold .0 file open exclusively
-prevents problems with internal recover
if second copy of game is started up with
the same player name.
2002-08-21 15:21:56 +00:00
cohrs
e1ea4460ce B08019 - growup followup
growup entries for all the orc types as <Someone> suggested, since generic orcs
almost never occur.
2002-08-21 05:14:10 +00:00
cohrs
a372574583 B08018 - vision when breaking closed doors
Do vision_recalc immediately when blasting a door so that all the
subsequent messages for the same blast hitting other things are all
evaluated with the same vision in effect.
2002-08-21 04:48:17 +00:00
nethack.allison
3515dcf1f1 SELF_RECOVER for win32
- define SELF_RECOVER for win32
- add code to perform a recover operation from
  within NetHack itself when SELF_RECOVER is defined
2002-08-21 03:30:19 +00:00
nethack.allison
68aca25b70 Remove www link for coyote names
The link is no longer valid. I found another
link, http://tultw.com/bios/latin.htm
but this doesn't seem like something we
want to direct maintenance effort towards.
So this removes the link altogether.
2002-08-20 11:43:16 +00:00
nethack.allison
fc319a4be0 string constants
<Someone> wrote:
> Linux, Redhat 7.1 nethack 3.4.0
>
>Please see attached patch file.
>
>I'm attempting to move more stuff into the "read-only" area, in
>preparation for a port to another OS.
2002-08-20 08:05:20 +00:00
nethack.allison
6578eb1884 B07004 camera breaks on shade 2002-08-20 00:03:17 +00:00
cohrs
379ffe2461 B08012 - tweaking travel and closed doors
- when testing travel locations, don't treat diagonal moves thru closed
doors as possible, unless player can go/dig thru door
- treat closed doors and boulders as expensive for travel, preferring open paths
2002-08-19 17:10:34 +00:00
nethack.rankin
06ce74ffb5 juice name bit 2002-08-19 08:22:32 +00:00
nethack.rankin
9a9259cf36 B08017 - piece of cheese juice
Implement <Someone>'s request that fruit name "foo of bar" yield
juice messages referring to "bar juice" instead of "foo of bar juice".
2002-08-19 07:33:13 +00:00
nethack.allison
b0632cc637 add full suite of directions to cmdassist 2002-08-19 01:59:28 +00:00
nethack.allison
2695ca47b4 gas colors while blind
<email deleted> on Sunday, August 18, 2002 at 15:28:18
> comments: player is blind, and not hallucinating (initially). On #loot:
>
> You trigger a trap!
> A cloud of ultraviolet gas billows from the large box.
> You stagger and get dizzy...
2002-08-19 00:00:52 +00:00
nethack.allison
17ba46e459 recover.c had:
#  ifdef WIN32
#define SAVESIZE	(PL_NSIZ + 40)  /* username-player.NetHack-saved-game */

files.c had:
#  if defined(WIN32)
#define SAVESIZE	(PL_NSIZ + 60)	/* username-player.NetHack-saved-game */

It has to be 40 for savefile compatibility with 3.4.0.
2002-08-18 19:35:45 +00:00
nethack.rankin
096b420889 rolling boulder hitting pit which holds monster
From a bug report, a rolling boulder
trap could report that the boulder had fallen into the pit with you
and then let it keep rolling.  flooreffects() only returns true
when it uses up the object being manipulated but it doesn't use up
boulders that hit pits which hold monsters or the hero.  Its caller
needs to handle the cases where the boulder ends up sharing the pit
with a monster.
2002-08-17 10:24:35 +00:00
nethack.allison
4b1cec6060 follow-up bit 2002-08-16 02:44:57 +00:00
nethack.allison
bbd3671740 selection of top,bottom,left, or right
for align_message and align_status, so that you don't have
to type in the word top or bottom or left or right.
2002-08-16 02:34:12 +00:00
nethack.rankin
fab39a2007 compatibility checks fix for TIMED_DELAY
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.
2002-08-15 02:48:34 +00:00
nethack.rankin
c19ba37192 enlightenment bit 2002-08-14 06:51:01 +00:00
cohrs
dee94b0410 handle 0 in DUNGEONS et al
As suggested by <Someone>, treat 0 entries in the various graphics symbol
specifications as leaving the value unchanged.
2002-08-13 04:18:46 +00:00
nethack.allison
5d5de0c657 R1045 engulfing green slime was causing stoning not sliming
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).
2002-08-13 03:58:33 +00:00
arromdee
55e58c662e mind flayers growing up into master mind flayers, etc.
While one could argue that giant rats aren't just grown up forms of sewer
rats, we already have bat/giant bat in there.
2002-08-13 03:49:11 +00:00
nethack.allison
3c227928f9 function name format
From <Someone>:
[functions that don't start in leftmost column ]

apply.c:int unfixable_trouble_count(is_horn)
artifact.c:void arti_speak(obj)
botl.c:int xlev_to_rank(xlev)
botl.c:int rank_to_xlev(rank)
display.c:void map_location(x,y,show)
hack.c:static void findtravelpath()
hack.c:void unmul(msg_override)
hack.c:long money_cnt(otmp)
mklev.c:CFDECLSPEC do_comp(vx,vy)
pickup.c:long carry_count(obj, container, count, telekinesis, wt_before, wt_after)
pickup.c:boolean mon_beside(x,y)
shk.c:long money2mon(mon, amount)
shk.c:boolean same_price(obj1, obj2)
shk.c:void finish_paybill()
trap.c:boolean delfloortrap(ttmp)
weapon.c:void give_may_advance_msg(skill)
do_name.c:char *coyotename(mtmp, buf)

(This with a pruned 'egrep '^[[:alnum:]]+ .*\(.*\)$' *.c' in src/; I
haven't looked outside that directory, but generally speaking once you
go beyond there you're widening your search anyway.)
2002-08-12 22:24:05 +00:00
nethack.allison
18f4b58fb8 fix recent mon.c warning
mon.c(967) : warning C4244: '=' : conversion from 'long ' to 'char ',
possible loss of data
2002-08-12 12:41:56 +00:00
nethack.rankin
c8dccc63ff B07002 - hiding under nothing?
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.
2002-08-12 08:25:48 +00:00
cohrs
a8ac6f6cc6 forcefighting an undetected monster
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.
2002-08-12 05:57:40 +00:00
nethack.allison
b4dffbcc48 B07001 healed, undetected mimic
> [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."
2002-08-12 01:57:02 +00:00
cohrs
5a42dcef98 B06005 - cancelling getdir prompt
- 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.
2002-08-11 23:17:23 +00:00
cohrs
9d8782eb8f cut trees and dug walls replaced by corridor symbols
- 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.
2002-08-11 17:40:08 +00:00
cohrs
b4b5a0fe52 B02001 - trees and monster
<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.
2002-08-11 17:32:47 +00:00
cohrs
632cb9ffb0 R1037 - digging secret doors in town
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.
2002-08-09 04:06:38 +00:00
nethack.rankin
24c2d465a3 blindness vs vault guards
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.)
2002-08-09 02:35:30 +00:00
nethack.allison
57e1c11c54 stone to flesh historic statues 2002-08-07 10:47:53 +00:00
nethack.rankin
e5148d5d57 wishing fixes for "* glass"
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.)
2002-08-07 08:04:27 +00:00
nethack.rankin
d04c66657c vtense special case for *ss
This fixes the reported "The looking glass miss the mountain nymph."
2002-08-07 07:07:38 +00:00
arromdee
0247ab5c1c eating rings
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.
2002-08-07 05:17:45 +00:00
nethack.allison
26e74eba24 stone to flesh crash
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
2002-08-07 02:38:04 +00:00
cohrs
82d134c29a B06011 - grammar bit 2002-08-06 05:04:14 +00:00
cohrs
8d58c4d33e B06010 - lifesaving messages
If you fall in the water and drown, you get two "back on solid land"
messages, at least sometimes.  Guard the 2nd one.
2002-08-06 04:29:11 +00:00
nethack.rankin
855ddbc550 armor & busy hands
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.
2002-08-05 09:54:07 +00:00
cohrs
a61e68069a Magic portals and levitation boots
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.
2002-08-05 00:57:21 +00:00
cohrs
869a600da8 R06008 - Ludios level in score list
<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.
2002-08-04 23:39:42 +00:00
nethack.allison
8386f680a6 cmdassist follow-up bit 2002-08-04 23:34:10 +00:00