Commit Graph

1271 Commits

Author SHA1 Message Date
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
arromdee
08c463759c iron balls/teleds
Fixing some iron ball/teleds stuff:
-- If the player can pass through walls, ignore all checks for walls, or else
things will behave weirdly.
-- Instead of using the kludge "if the distance is >2 it must be a teleport",
pass a parameter indicating whether they crawled or teleported onto the new
space.  This fixes a special case, where the player moved one space and the
ball didn't move, but the chain moved through solid rock.  This is acceptable
if teleporting and unacceptable if dragging.
This also required some rearrangement of teleds() so that u.ux,u.uy
are set after placing the ball, not before.  I'm still not sure the pit
filling line is in the right place; anyone know?
-- add some comments so I can look at the code in a month and still know what
I did.
Most of this patch is just adding the new parameter.
2002-04-01 05:18:28 +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
jwalz
1d656d8f00 From <Someone>.
] Attached are changes to the makefile and a small change to get dlb
] working correctly.
2002-03-31 22:56:30 +00:00
jwalz
11856d20b7 I recognize that this was an attempt to force the macro to act as a normal
statement that could be followed by ';' anywhere.  However, with the goto
there, my compiler complains every time it's used:
"ball.c", line 402: warning: statement not reached
"ball.c", line 434: warning: statement not reached
"ball.c", line 442: warning: statement not reached
"ball.c", line 449: warning: statement not reached
"ball.c", line 452: warning: statement not reached
"ball.c", line 457: warning: statement not reached
"ball.c", line 479: warning: statement not reached
"ball.c", line 498: warning: statement not reached
None of the current uses care about an excess statement, but is there a
way to satisfy both desires?
2002-03-31 22:42:07 +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
nethack.rankin
994f624c0a shop fix: billing for contained items
Shopkeeper wouldn't charge for items inside containers if you
dropped one, declined to sell it, and then filled it with shop goods.
2002-03-31 14:56:13 +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
kmhugo
eca5d9b553 fixes34.1
Document recent changes.
2002-03-31 06:32:11 +00:00
kmhugo
9e60327b01 lootabc and showrace options
Replace "feature_toggle" implementation with an easier-to-understand
boolean option called "lootabc".

Provide "showrace", an option to display the hero by race glyph rather
than by role glyph.

Document the above.

Remove some obsolete Mac options.
2002-03-31 06:27:27 +00:00
nethack.allison
64e423966f more win32 de-MICRO 2002-03-31 05:36:02 +00:00
nethack.allison
b64b2a8b05 more win32 de-MICRO 2002-03-31 05:29:03 +00:00
kmhugo
d6de3fa890 #R715 -- tombstone bulletproofing
Prevent an end-of-game panic if the tombstone window cannot
be made.
2002-03-31 05:21:53 +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
nethack.allison
750c6b2a36 fixes34.1 updates 2002-03-30 20:21:53 +00:00
nethack.allison
7acc3393a6 remove Symantec C makefile from distribution for dos 2002-03-30 20:01:09 +00:00
nethack.allison
8b9b53205a Update sys/msdos/Install.dos
- only djgpp build is supported now.
- instructions are only for djgpp
- all other builds have fallen into non-support
2002-03-30 20:00:19 +00:00
nethack.allison
51f9892b3b Allow MICRO and WIN32 code paths to diverge
There's still a lot of overlap for 3.4.1, but not
100% any longer and it facilitates some improvements
- Allow error save files on WIN32
2002-03-30 19:09:56 +00:00
nethack.allison
c49130e5bd boulder/statue/landmine reversal and new fix
This includes a reversal of my earlier
boulder/statue/landmine fix,
and places a check for obj->where==OBJ_FLOOR into
fracture_rock().  I think this is a better approach
because:
- if eliminates the pointless extract/place in
fracture_rock, followed by extract/place in
the caller in the two places causing the crash
- it covers any similar situations that we
might have missed or that someone might add
accidentally (you might not expect the location
of an object to change inside fracture_rock())
- it allows fracturing to take place on the
other object chains if we ever need it (statues
falling down stairs, perhaps?)
- it doesn't move objects from other chains onto
the floor briefly as the current code does
2002-03-30 14:46:31 +00:00
nethack.rankin
11b1874090 more wielded/quivered iron ball
There was at least one more special case aside from throwing
(jetisoning items to reduce weight after falling in water) which
have needed the same extra code.  This is a more general fix.
2002-03-30 09:50:59 +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
nethack.allison
5488f521bb some more 3.4.1 prep
patchlevel.h detail cut back
README
2002-03-29 19:41:49 +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
nethack.rankin
72048905ad polyself: centaurs vs boots
Monster centaurs can't wear boots, and characters who polymorph
into centaurs have their boots pushed off, but there was nothing to
prevent such characters from putting those boots right back on.
2002-03-29 13:37:16 +00:00
nethack.allison
14ec6fe03b some 3.4.1 preparation
Update patchlevel.h
Update some strings from 3.4.0 to 3.4.1.
2002-03-29 06:30:33 +00:00
nethack.allison
e52620da26 (from Yitzhak)
- mostly from Yitzhak, with a modification based on subsequent discussion.

After installing everything (mail, cvs, etc) I found the compile was
broken.

Yitzhak: This fixes the compile.  I used LONG for the types because using DWORD
conflicted in Borland with signed/unsigned compare mismatches.

[Also works around some perm_invent code destined for a later patch that got
rolled in prematurely]
2002-03-28 14:24:29 +00:00
nethack.rankin
68b4f9f2a3 "harassment mode"
Make a change suggested by <Someone> to have the Wizard
enter harassment mode when you perform the invocation, in case
you manage to obtain the Book of the Dead without killing him.
Instead of just initiating that periodic effect, behave as if
you have actually killed him (which also affects random monster
generation frequency, prayer timeout, and shopkeeper salutations).
2002-03-28 03:03:04 +00:00
nethack.rankin
e835e2f420 lev_comp,dgn_comp vs CRLF style input
Allow the special level and dungeon compilers to handle input
files which have CR+LF delimited lines.  Apparently Cygwin doesn't
convert MSDOS style line ends into newlines the way stdio should
do for text I/O.  The resulting unexpected CR characters result in
syntax errors.

     And explicitly using '\n' on both the lex and yacc sides of
MAP processing allows removal of the old NEWLINE hack for Mac MPW.
It won't matter what numeric value that character escape sequence
has internally.
2002-03-28 01:37:39 +00:00
nethack.allison
63e0b1ec2d (from <Someone>)
Two things:
1. This patch causes the window placement of the main window to be
written to the registry, and to be restored upon the next start
of the program. I had to move the creation of the main window to init_nhwindows,
as the registry is not read until then.

2.  Implement support for wc_popup_dialog (or rather, support for not having
popup windows.) It asks getlin questions and get_ext_cmd on the
message window, much like the TTY port does it.

The get_ext_cmd procedure is almost but not quite the same as the
one for TTY, and I think it is better: It autocompletes the extended
command you type, but if you keep on typing it doesn't add those letters
after the completed command, but just keeps track of how many (correct)
characters you typed. If you type a different character than the
autocompleted command has, it shows you what you typed again. If you
press backspace, it deletes the characters you typed, and if autocompletion
is no longer possible, it removes the autocompleted part. The effect
of this is that you can type as many letters as you want when typing
an extended command, as long as it is enough to identify one command;
and you only have to delete the characters you actually typed if you made
a mistake. I think autocompletion is a lot less obtrusive this way.

Some notes about the patch:
- Both mswin_getlin and mswin_get_ext_cmd now have two versions, with
  and without a popup.
- yn_question was changed so that it displays a caret, which is a lot
  nicer IMHO.
- I had to implement a new NetHack Windows Message parameter,
  "MSNH_MSG_CARET", to make it possible to show and hide the caret in
  the message window. Normally the caret is created and destroyed by the
  window that owns it, but in NetHack the input focus is always on the
  main window, while the caret is in the message window, which happens
  to be the only one that knows how large the caret should be.
- mswin_putstr_ex's last parameter changed from boolean to int; the
  semantics are enhanced so that a negative last parameter means "delete
  that many characters from the input line". The string to be deleted is
  passed in as well, although it is currently not used.
- A rather large chunk of code finds out where the last string that was
  displayed on the message window ended. This is necessary to place the
  caret at the right spot. The caret is always positioned there, even if
  it is hidden or non-existing.
- mswin_get_nh_event was changed to actually process and empty the
  message queue, and called from mswin_putstr_ex to make sure the
  message window is updated before the next step is done. Without this,
  the caret is positioned before the last message is painted, which
  makes its x-position after the last character of the previous line.
2002-03-27 12:17:26 +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
arromdee
9210d2c5ed iron balls (R676)
Well, this proved rather annoying.  Problems included:
-- the solid rock problem that was noticed
-- teleporting to a spot two spaces away but on the other side of solid rock
could also leave the chain in solid rock
-- in one place I said chainx instead of ballx, which could cause problems with
teleporting
-- the teleport code moved the player before moving the ball, violating the
assumption that the player hasn't been moved yet (which only caused problems
after I added the solid rock fix).

Ball movement still isn't quite right, though the cases are really rare.  I
may fix them later.
2002-03-26 06:05:24 +00:00
nethack.allison
224eddc1d3 generic feature_toggle
This adds a generic feature_toggle mechanism to
the game.  Code that wants to offer two different
ways of doing something can add an entry to
feature_toggles[] (in decl.c), and create a
preprocessor macro for its array index in decl.h.

Then the code can test it using
if (feature_toggle(FEATURE_NAME))
	..do_this..
else
	..do_that..

The player can toggle the alternate code path
on using OPTIONS=feature_toggle:feature_name_1 feature_name_2 ...

This seems better than creating brand new options
for controlling features (ala prayconfirm, which
could switch to this single option feature_toggle
mechanism as well)

My first use of it is to allow toggling of the selectors
on the loot menu, which I'm hesitant to just change back
because now people are actively using the new selectors and
the complaints would be really loud if the interface were
to just switch back after they adjusted.

The default behaviour is the new behaviour "iob", but with an
OPTIONS=feature_toggle:loot_menu_selectors
in your config file, it will revert to using "abc" as it did
in 3.3.1. I'll add a Guidebook page of "features/behaviour
that can be toggled" later.

The toggles can only be done in defaults.nh, and are
not saved with the game.
2002-03-26 05:33:04 +00:00
nethack.rankin
c76061312e impaired movement fix
Fix the reported problem of incorrect conditional logic
making it impossible to bump into closed doors when moving while
impaired for the #if STEED configuration.
2002-03-25 09:01:35 +00:00