Commit Graph
100 Commits
Author SHA1 Message Date
cohrs cbc70f562a spellcasting level 0 monsters
Based on a report from <Someone>, avoid calling rn2(ml) when ml == 0.
Since level 0 monster always fail in their spells, just skip the whole
loop looking for a good spell.
2002-06-29 17:05:18 +00:00
cohrs 60e26a84ae NOCWD_ASSUMPTIONS followup
Michael's VAR_PLAYGROUND update
2002-06-29 15:12:15 +00:00
cohrs c0f63425df R920: Weird message when stoning quest nemesis
Make all the quest nemesis monsters resist stoning so their death messages
make sense.  Some already did resist.  Stoning seems like such a trivial
way to overcome a quest nemesis anyway.  If it were to be allowed, multiple
death messages would be needed in the quests.
2002-06-26 15:19:05 +00:00
cohrs 3db1e7858f fix crash when using ';' to look at I monsters
Reported to the mailing list.  If you set your monster symbol options, and
use ';' and select a known invisible monster by screen, a crash would occur
accessing a null pointer.
2002-06-24 05:10:44 +00:00
cohrs f5b4406f8d entering discover mode while restoring a game
Reported directly to the list.  If you are not the wizard and start nethack
on the command line with the -D flag (or -X), the game reports that you're
entering discover mode but does not actually do it.  The flags.explore in
the save file overwrote the new value.  Save the flag while reading flags
if discover mode was requested.
2002-06-07 21:24:52 +00:00
cohrs 2e2ce4effa the panic log
Add an optional paniclog file, controlled by a new PANICLOG macro that can
be used to log all panic and impossible messages.  Helpful when people
forget to send, or didn't see, the message.
2002-06-02 18:49:18 +00:00
cohrs 761164a30f Staff of Aesculapius didn't always cure sliming
- incorporated <Someone>'s 1-line fix to the precheck
2002-05-21 16:14:36 +00:00
cohrs 7e6f7a40b8 no unfinished stone in minetn-5
- based on a "bug" report, change an unfinished stone to a regular wall
2002-05-21 16:02:03 +00:00
cohrs 94837b78d4 hangups with temp gold in inventory
- Implement Michael's suggestion of marking temp gold put in inventory
so it can be cleaned up during restore.
2002-05-21 05:04:09 +00:00
cohrs b0cef1a0e2 R883 - disappearing thrown money
this is a !GOLDOBJ bug, the money was not put back into ugold in this
case when it was not thrown
2002-05-20 05:03:13 +00:00
cohrs d62c6eac08 change appearance if polymorphing while mimicing
As per <Someone>:
> I had a game today where I was polymorphed (by a sink) into a mimic, and
> #monster-ed (hid).  The symbol on the map for me was ].  Then, I polymorphed
> again, this time into a kobold lord -- but the symbol remained ].  This
> seems wrong.
Handle this similar to the polyman code.
2002-05-16 04:02:52 +00:00
cohrs 25e5208deb R868 - don't kill paper/straw golems twice
longtime bug in damageum, if hero is poly'd to something with fire damage,
and hits a paper or straw golem, mondead will get called twice for the
monster.  Fix this, by working like AD_CURS does no clay golem.  Also, make
sure no scrolls, et al, get dropped by disallowing a corpse.
2002-05-16 03:13:34 +00:00
cohrs b5276ed2a0 looting containers and monsters
There's a check in doloot that's supposed to disallow looting nearby
monsters if you loot a container at the current location.  But, it only
worked if you looted the last container.  Make the behavior consistent.
2002-05-15 05:10:06 +00:00
cohrs b131f0fee6 R870 - shopkeeper grabbing backpack panic fix
The worn bits, et al, were not all cleared when the shopkeeper grabbed your
pack.  This currently affects only alternate (non-twoweap) and quivered
objects.  This could lead to a panic or a crash.
2002-05-14 07:02:50 +00:00
cohrs 9f2f6f6177 boulder display bug
If you first pushed an undiscovered boulder while blind with ESP and
there's a monster behind it, you'd get a message referring to the boulder
but the boulder wasn't displayed.  Move the feel_location test.
Also, improved the grammar of the message a bit.
2002-04-27 23:22:35 +00:00
cohrs 93c2b69769 R788 - bones corpses shouldn't all be human
u.umonnum was used to create the corpse in a bones file.  However, unless
you're polymorphed and manage to actually die in that form, u.umonnum
refers to a role monster, which all have M2_HUMAN set, so they're all
human.  Even if the role monsters were mutated dynamically when the game
starts, the problem would still exist, just in a different form.
Use urace to determine the corpse type instead.
2002-04-24 05:21:20 +00:00
cohrs b1fe51e80b R765 - minetn-6 could have cut-off downstairs
minetn-6 includes a MAP along with the flags that cause it to be cavernous.
However, the caverns get generated before the MAP is adde the level.  Other
similar MAPs have open space on their edges, but there were walls on the
lower right edge of minetn-6.  Added another column of mostly open space.
This level can still get cut-off areas, but the stairs won't be located there.
2002-04-24 03:53:10 +00:00
cohrs 2c26ea1dd5 R809 - newcham message reorganization
Add a param to newcham() to let it print "The oldmon turns into a newmon!"
rather than always printing this externally.  Should ensure a good ordering
of the messages.  Also put some special name handling in one place and
catch a couple cases where "saddled" was printed, resulting in funny messages.
2002-04-23 06:15:52 +00:00
cohrs 7c0e55e6aa fix diggable luckstone location in minend-3
<Someone> reported that one of the 3 random luckstone rooms in
minend-3 was diggable, while the other 2 were non-diggable.  Fixed bounds.
2002-04-22 04:39:18 +00:00
cohrs 5b13f62fa3 R792 - crocodile kicking
Based on the limited research I've done, it does not appear that crocodiles
of any size have legs that can effectively kick doors, chests, et al.  They
could kick objects, but kicking a monster would be more of a claw attack.
It's simpler to just print a message in all cases.
2002-04-22 03:58:41 +00:00
cohrs 310e466162 more portable Gnome uid workaround
- incorporate a more portable way of calling the real getres*id() functions
on Linux platforms that uses the glibc interface rather than calling
the system call directly.  The previous version didn't work on ia64 linux.
2002-04-21 23:59:52 +00:00
cohrs 8260da268e R806 - monsters using teleportation on noteleport levels
Bug reported was that Vlad the Impaler never figured out that a wand of
teleportation was useless.
1) Rather than change the monst struct, overload the use of the mtrapseen
TELEP_TRAP bit to be set when a monster uses teleportation on a noteleport
level.  This has the side effect of causing the monster to know about
teleport traps if they manage to leave the level.
2) reduce chance for monsters to get teleport wands on noteleport levels,
since they will otherwise simply be left mostly charged for the player.
2002-04-21 23:25:21 +00:00
cohrs d79e5a8917 R812 - tty color/inverse video interaction
With some TERMs, disabling inverse video also disables color.
Work around: explicitly turn off color when turning off inverse video.
2002-04-21 19:01:57 +00:00
cohrs 5bc5910ed8 compilation bits
- remove an unused variable in use_pick_axe2
- wiz_debug_cmd needs to return an int like other extended commands
2002-04-21 17:43:17 +00:00
cohrs b1055ae7c1 Gnome updates (from <Someone> <Someone> Simon)
- fix destruction of primary game windows
- One, it makes the color of the cursor box dynamic (these are the gnmap.c
changes), based on hp/hpmax (continuous colors white -> yellow -> red ->
magenta rather than discrete like in Qt).
- Two, it adds a new window, NHW_WORN (all the other changes and new files
gnworn.[ch]), placed at the end of the first row, to the right of the status,
with tiles of all the items currently equiped.  I had to change the spacing of
the first row (no longer homogeneous) to accomodate this, but I think it still
looks okay.  It's mostly like the Qt version but the equiped items are in
slightly different places, and a bit more compactly (added quiver, ball/chain,
monster skin armor; see the definition in gnworn.c for the layout).
2002-04-21 17:09:34 +00:00
cohrs 91b2bab5d5 R804 - fix crash caused by looking at a unique boulder symbol
The code only handled the case where the boulder symbol was non-unique.
Add code to handle the case where the boulder sym is the first match.
2002-04-19 02:28:20 +00:00
cohrs 2490b10b65 pre-known Fake Amulet of Yendor
the change to xname to lazily reset known on objects after DRIN attacks,
need not change the FAoY.  the_unique_obj already handles this
2002-04-16 04:57:51 +00:00
cohrs 27fb054937 polymorph engulfing monster display bit
- <Someone> reported that the swallowed display did not update immediately if
you managed to polymorph the monster that was engulfing you into another
engulfing monster
2002-04-15 15:33:44 +00:00
cohrs 6502474697 more prayer tuning
- Don't guarantee high results when you have high Luck, add Luck into
random param of rn1(), and just add 1 to the basis, keeping the guaranteed
fix of a single major trouble mentioned in the block comment
2002-04-15 14:56:39 +00:00
cohrs d3078778eb waking waiting monsters after non-damaging attacks
- From a bug report, there are ways to, for example, steal items
from Medusa without waking her, by clever use of Conflict.
Avoid this by removing STRAT_WAITFORU when such an attack succeeds
- it was theoretically possible to use a similar approach to steal from a
STRAT_WAITFORU monster without it noticing while polymorphed and very fast,
so bulletproof this case as well.  Simpler because failed attacks wake too.
2002-04-15 07:00:00 +00:00
cohrs 86f961ba3f crash fix: shopkeeper re-entering shop
- when a shopkeeper leaves the shop to chase the player, and the player
enters the shop, bill_p is set to an unusual value.  bill_p needs to be set
back to a valid value if the shopkeeper re-enters the shop.
- Also, the u.ushops state needs to be updated when a shop becomes tended
again if the player is in the shop.
- introduce a new after_shk_move function to handle this
2002-04-15 06:43:55 +00:00
cohrs b6be8e8af1 stale pickup_burden message in tty after
- tty interface left a stale prompt on the topl, clear it
2002-04-14 21:59:53 +00:00
cohrs 1ca03c750d tty message loss
- typing ESC would lose messages if msg_window was not displayed
- incorporate <Someone>'s fix, which causes them to be tracked, just not
displayed, and thus still available for ^P viewing later on
2002-04-14 21:45:33 +00:00
cohrs c850007966 trapped monsters
A suggestion from <Someone>
- since newsym marks physical traps that have a monster trapped as seen,
and the ^ command will tell you what it is, lookat() can tell you about the
trap too
2002-04-14 06:44:46 +00:00
cohrs 1a5f501758 R772.2 - potions of acid in pools
- mixing potions of acid and water result in an explosion, so water_damage
should cause a potion of acid to explode as well
2002-04-14 06:09:00 +00:00
cohrs d3135ffe1c R778 - prayer bit
- need to use min() not max() for action choice when not on altar
2002-04-14 04:46:11 +00:00
cohrs 9174a9030a remove prescient travel command behavior followup
- applied an intermediate version of the fix which had a bug in choosing
the intermediate location
2002-04-13 16:27:58 +00:00
cohrs 1b321e92bc remove prescient travel command behavior
Addresses reports R718, R772.1, <Someone> P's extra move bug
- when there is a previously seen path or a straight path, always take it
- incorporate fix to ensure no extra "." turn at the end of traveling, but
 still avoid stepping into traps/pools, et al
- include a general "G"-command (and travel) fix to avoid stepping in
 known pools/lava while blind
- when there is no such path, "guess" at a path by finding an intermediate
 location that the hero couldsee that is closest to the actual goal, the
 intermediate goal is re-determined at each step
- when Blind, don't use couldsee for determining straight paths, just direction
- do not consider doors or most boulders obstacles for picking travel
 paths, test_move has a new mode to differentiate this case from the regular
 test case
- don't include known trap locations in the travel path, avoids unnecessary
 stops along the way, and usually doesn't affect the path length
- reformatted the code a bit so I could follow it
2002-04-13 16:00:13 +00:00
cohrs 05fb883473 unix: install recover command by default
- Update Makefile.top to do the deed
- Update Install.unx and README.linux to reflect the changed install procedure
2002-04-07 19:05:07 +00:00
cohrs 268b70e4e3 R759 - delayed were change could cause crash
moveloop() sets a flag when a were/poly change should occur, but it
delays this change if the hero is Unchanging or cannot be interrupted (e.g.
praying).  However, by the time the change can be applied, the reason
may no longer be valid.  Reset the change indicator when this is the case.
Avoids possible strange polymorphs and were crashes.
2002-04-06 17:24:15 +00:00
cohrs 63262053ee another pass at preserving the Burdened message
- this is brute force, always update the status line each time you
insert something into a container.  If you look closely, you may still
see the Burdened message disappears momentarily doe to the many possible
messages between the freeinv() call and the point where the object is
actually put into the container.
2002-04-03 07:17:55 +00:00
cohrs 6610d63f1d no wisdom bonus from random Elbereth engravings
- check !in_mklev before giving credit for engraving Elbereth
2002-04-02 17:13:35 +00:00
cohrs 5c1ea899bf ensure touch_artifact is always called via hold_another_object
- remove the touch_artifact calls just added
- put a check into hold_another_object itself, based on the complete check
removed from makewish
2002-04-02 05:32:02 +00:00
cohrs e503714013 disappearing burdened message
- the "Burdened" message could disappear from the status line if it was
updated partway thru in_container, clearing the bot flags.  Re-order
message so it comes after add_to_container, as in 3.3.1.
2002-04-02 01:18:13 +00:00
cohrs a74ae204cf striking ID followup part 2
- test WoStriking after activating statue, not before
2002-04-01 16:51:10 +00:00
cohrs e5111e7587 striking ID followup
- only ID wand of striking, not spellbook of force bolt, seeing the spell
cast does not make the book known
2002-04-01 15:32:51 +00:00
cohrs a0ba9d1421 R739 - dead migrating monster
- It was possible for hmon_hitmon to call mhurtle to move a monster into a
hole or other trap, causing it to migrate.  Then, hmon_hitmon would
subtract hp, and could mark the monster as dead.  Later, dmonsfree would
notice the monster wasn't on the level anymore, causing the impossible.
Avoid the problem by just not hurtling the monster if it's going to die.
It's possible it will get lifesaved after not hurtling.  Technically, if it
does die, the corpse should be hurtled, but won't be.
- treat jousting similarly
2002-04-01 07:03:44 +00:00
cohrs 31c4ccd43b R363 - can't drown breathless monsters
- if you're polymorphed into an eel, you were able to drown things like xorns
- also, fix the tombstone message when an eel drowns you, it was basing the
message on your location, not the eel's location
2002-04-01 05:33:32 +00:00
cohrs 7c224da1e4 no sacrificing while swallowed 2002-04-01 01:37:26 +00:00
cohrs 9a5a051791 identifying a wand of striking when it activates a statue trap 2002-04-01 01:22:39 +00:00
cohrs 62519872b9 tripping over objects under water
- cannot trip over submerged objects when you're water walking
2002-04-01 00:57:22 +00:00
cohrs 587fe0b9e7 comment bit
- the dropx comment has been wrong for a while, time to accept that
2002-04-01 00:20:58 +00:00
cohrs 6519e5a127 comment bit
- the dropx comment has been wrong for a while, time to accept that
2002-04-01 00:04:45 +00:00
cohrs 320c5e720d X11 pop-up dialog width
- the response field of the pop-up dialog was getting smaller by a few
pixels each time it was used.  This was because the width calculation
was effectively stripping off the margins (4 pixels total) each time.
Don't do that.
2002-03-31 17:11:23 +00:00
cohrs 5e94392acc tweak dowhatis description of the "Y" monster symbol
- "or other large beast" could be interpretted as meaning that all "Y"
monsters are large, but monkeys are not large
2002-03-31 07:23:36 +00:00
cohrs f49c759813 clarify travel commnd documentation
- Guidebook said traval command would stop similar to the G command, but did
not say it differed from the G command in that it disables autopickup
2002-03-31 07:19:43 +00:00
cohrs 531f703cd0 fix more "drops to the floor" cases when there is no floor
- make the code in apply.c and zap.c consistent
- use the "drops away from you" case whenever the location type does not
lend itself to using the word "floor"
2002-03-31 04:18:02 +00:00
cohrs c335aa5b43 healer quest message typo
- remove unnecessary double-quote
2002-03-30 21:25:10 +00:00
cohrs 60edf83441 discovering statue traps while blind (YAFM)
- use "something" not "it" for this case
2002-03-30 21:21:35 +00:00
cohrs a4c5af0088 bird_parts for ravens
- ravens need special parts, actual bats are still best handled by animal_parts
2002-03-30 21:16:34 +00:00
cohrs adf468910c re-merge objects removed from containers when pack is full
- affects failed removal of a partial count of objects due to a full pack
2002-03-30 20:56:09 +00:00
cohrs 1688c75b9f polymorph into a non-twoweapon form
- you can't twoweapon unless your form allows it, but polymorph wouldn't
disable twoweapon mode immediately
2002-03-30 03:01:38 +00:00
cohrs a997e11e00 wielded ball and chain
- a wielded/quivered ball would still be marked as wielded/quivered
after you threw it
2002-03-29 20:35:22 +00:00
cohrs afc7bc95c6 R722 boiling acid in fountains
- clarify the fact that acid boiling in a fountain damages you
2002-03-29 20:17:32 +00:00
cohrs e206522126 engraving a headstone with a wand of digging
- Gravel flies up from the floor is not appropriate in this case
2002-03-29 19:14:37 +00:00
cohrs 5a431589ec touchstone data.base entry
- add the short quote suggested
- someone may still want to expand on this, as also suggested
2002-03-29 18:06:02 +00:00
cohrs a1d3c539a9 Rolling boulder traps and pacifism
If you stepped on an unknown rolling boulder trap, and that rolling boulder
hit a monster and killed it, you would be called a killer.  This makes
playing a pacifism conduct game rather difficult.
- track boulders from unknown rolling boulder traps, and don't charge/credit
hero if they kill monsters. This is done by temporarily setting otrapped on
such boulders.
- boulders from known traps are still charged/credited to the hero
- fix a couple places in ohitmon where is_poisonable wasn't checked along
with opoisoned.
2002-03-29 17:56:13 +00:00
cohrs 4e60c90635 mimic caught in explosion printed message but wasn't discovered
- add seemimic call before printing the "caught" message
2002-03-27 05:08:11 +00:00
cohrs 8a3c5a621f Sunsword kept glowing after monster wielding it died
- <Someone> reported this bug to the mailing list
- add a check in relobj(), which should catch all the cases
2002-03-27 04:58:42 +00:00
cohrs 6cdf92851e half-physical-damage from gas spore explosion should only affect you
- <Someone> noticed the fix for applying half physical damage to gas spore
explosions affected damage to all monsters, not just you
2002-03-27 02:31:21 +00:00
cohrs ea18afa4dd seemimic produces transparent doors
- if a mimic mimics a boulder (top sokoban) or a door atop
a closed door the closed door didn't block your vision after
the mimic is sensed.
- also, make mondied consistent with xkilled WRT corpses on inaccessible
locations: no corpse
2002-03-27 00:58:44 +00:00
cohrs bbb9ded22f R691 - bad cursor positioning debug message
- remove the "#define DEBUG" from wintty.c that caused this message to
be displayed when not in a debugging mode
2002-03-26 21:56:03 +00:00
cohrs e8d404f87c R677 - two swords slipping due to fried food prints same message
- report: twoweapon mode, eat fried food, get messages like:
Your sword slips from your hands.
Your sword also slips from your hands.
- the fix tracks the kind of the 1st weapon, and adds "other" to the 2nd
message if necessary
2002-03-25 07:48:03 +00:00
cohrs 9138c5daf3 missing linux build package dependency bit 2002-03-25 07:37:39 +00:00
cohrs d0d0cde8e7 leashed steed dying of starvation
- prefer the regular "dies from hunger" message over "leash goes slack"
in this case.
2002-03-25 06:29:43 +00:00
cohrs 88f0680567 restore support for non-square XPM-based tiles (X11 & Gnome)
- change the way the tile sizes are calculated, based on the image size,
so non-square tiles can once again be supported.
- fix Gnome port so it can actually display non-square tiles, several
height/width uses were backwards
- update Install.X11 to note the number of tiles per row in the XPM image
2002-03-24 00:04:41 +00:00
cohrs f777aceb74 wall symbol not replaced when digging while blind and levitating
- this was reported to the mailing list just before 3.4.0 shipped
- treat in a manner similar to chopping a boulder while blind and levitating
2002-03-23 22:27:54 +00:00
cohrs d66603827b only get gems from kicking thrones
- this was a betabug I think, but not recorded as such
- if you kicked a throne, any GEM_CLASS item could be generated, including rocks
- changes behavior to be consistent with gems from fountains
2002-03-23 22:11:07 +00:00
cohrs a305cc097e README.linux sync
- forgot to apply this change before making the 3.4.0 binary (it was
actually built using these settings).  It's safer for the game itself to be
non-group writable so that someone on a public server can't exploit a
bounds checking or similar error to infect the executable itself with
a trojan horse.
2002-03-23 21:58:42 +00:00
cohrs 0158906de5 track Revision in Guidebook's
- Keni mentioned on 3/20 that it would be nice to have $Revision$
in Guidebook.mn.  Added to both .mn and .tex versions.
2002-03-23 20:03:20 +00:00
cohrs 5267502103 clean up Files 2002-03-21 04:37:35 +00:00
cohrs 0d9c056e03 final? 3.4 Guidebook.txt update 2002-03-20 15:27:09 +00:00
cohrs bdfcd6915e Gnome player selection
- provide full 3.4-style player selection, based on tty_player_selection
- generalize selection dialog so it can be used for all 4 prompts
2002-03-19 08:27:55 +00:00
cohrs e6c317835c /tmp/msg 2002-03-19 04:20:20 +00:00
cohrs 6fc7d44345 better trap searching behavior
- if a trap is hidden by clutter, cls() before delay, remove windowport
specific behavior, makes trap more obvious in all cases
2002-03-18 07:30:48 +00:00
cohrs a0a0a0e5dd kelp fronds are really not gems
- finish un-confusing the kelp frond case
2002-03-18 06:58:18 +00:00
cohrs 104814e2c8 kelp fronds are not gems
- mksobj had a misplaced test for KELP_FROND in the GEM_CLASS code, moved
to the FOOD_CLASS code
2002-03-18 06:46:01 +00:00
cohrs 2031835cb0 One leftover height use in Qt tile support 2002-03-18 00:02:51 +00:00
cohrs 48049de0ba Gnome basic functionality
- Makefile.src update for new dependency
2002-03-17 22:36:57 +00:00
cohrs 61b6bf1ce9 Gnome basic functionality
- let the "#" key work as per Guidebook
- role selection didn't work if you had gender specified in your .nethackrc
  similar problems would occur for other .nethackrc selections
- fix an obvious memory leak
- fix one crash bug from accessing a freed pointer (M-? dismiss M-?)
- note some invalid behavior in comments for a real Gnome developer to fix
- reformatted some code so I could follow it
2002-03-17 20:16:57 +00:00
cohrs 0ffb78e6a4 X11 wide tilemap support - Gnome patch
- update Gnome code to support a 40 tile wide XPM file
2002-03-17 20:04:56 +00:00
cohrs b6189efe2a X11 wide tilemap support
- support X11 tile files (with or without XPM) that are 40 tiles wide
- rearrange some X11 code to share more code between XPM & non-XPM options
- clean out some deprecated X11/winmap.c #ifdefs
- update Qt code minimally to handle such an XPM file
2002-03-17 20:02:47 +00:00
cohrs 72bf49f3e4 regenerate Guidebook.txt
- created on RedHat Linux 7.2 using standard tools
2002-03-17 15:49:09 +00:00
cohrs 99329cddf6 minor Guidebook.mn update
- remove a strange \! in the section for Blind users
- update the wording in the subsequent paragraph to be consistent with
the wording in the preceeding IBMgraphics paragraph
2002-03-16 06:11:17 +00:00
cohrs c2f12a3ae4 nethack.txt update
- created on RedHat Linux 7.2 using standard tools
2002-03-13 02:59:38 +00:00
cohrs 588c263a57 Guidebook.txt update
- created on RedHat Linux 7.2 using standard tools
2002-03-13 02:57:42 +00:00
cohrs c7cb4ee272 more credits
- update dat/history to match Guidebook
- use my name consistently :-)
2002-03-13 00:54:43 +00:00
cohrs 10a42a6b04 Guidebook credits
- remove several people from the 3.4 list who haven't contributed in a while
2002-03-13 00:38:12 +00:00
cohrs 1dcd580e90 undef WIZARD
- quiet a gcc warning if WIZARD is undefined
2002-03-12 22:41:48 +00:00
cohrs 6d2a564e52 more help file clarifications
- A pcwin team member reported that the ^<dir> notation used in a couple
help files was confusing
2002-03-12 17:17:50 +00:00