Commit Graph

2591 Commits

Author SHA1 Message Date
nethack.rankin
a4a80fdbca back into test mode
Post-release, reset to BETA status to indicate development since
there's no ALPHA.  And use BETA to enable the latent RNG checks.
2003-12-13 15:01:49 +00:00
nethack.rankin
41d3ad8c4e wizard mode ^V crash in endgame
Mentioned in passing in the newsgroup:  level teleporting in the
endgame--which is only possible in wizard mode--can crash if you're
confused.  The change to make confusion sometimes override teleport
control means that sometimes a random destination will be chosen, and
the routine to choose a random level can call rn2() with a value less
than 1 in the endgame, possibly resulting in attempt to divide by 0.

     There's something fishy about the min_/max_depth stuff for the
endgame, but I haven't attempted to figure that out.  This just makes
the random destination always be the current level when in the endgame
so that the problem can't come up.
2003-12-13 14:51:38 +00:00
nethack.allison
86428dc172 U778 wielded silver arrows 2003-12-11 11:43:18 +00:00
kmhugo
a744b6b5bf Mac Carbon updates 2003-12-10 19:36:49 +00:00
nethack.rankin
0dc3c43a8d montraits usage (trunk only)
Move a couple of recently added corpse revival/statue animation
fixups into montraits() so that its callers don't have to worry about
them anymore.
2003-12-10 06:33:25 +00:00
nethack.allison
f935974e02 apply Janet's lint catches to trunk 2003-12-10 01:23:14 +00:00
nethack.rankin
887d2defd1 vms version bit (trunk only)
Corresponding change for the development code:  make the Makefile
comment match the recently revised code.
2003-12-09 02:54:08 +00:00
nethack.allison
5a96be12f7 add fixes34.4 2003-12-08 02:28:50 +00:00
nethack.allison
532b7e8be9 no message 2003-12-08 02:27:34 +00:00
nethack.allison
e7cb26d898 fix "You hear The food ration tumbles downwards." 2003-12-08 02:25:11 +00:00
cohrs
f52e1de293 OS2 bits
Ronald Van Iwaarden wrote:
... lines 1845 and 1846 of cmd.c generate a 'value out of range
warning' due to the compiler making 0x80 an integer rather than a character
and '|'ing it with the argument.  This requires a minor change to micro.h.
[ Makefile.os2 rev does not currently make sense in the trunk. ]
2003-12-07 20:20:59 +00:00
nethack.rankin
f98e7d1fe6 vms version bit (trunk only)
Similar to the branch change; partial version number update for
the vms default build configuration.
2003-12-07 19:10:31 +00:00
cohrs
4bfcd1ee96 Files update, part 2
While looking thru the whole list, I found a few sorting mistakes which
confused my inspection and one misspelling.  I didn't inspect the derived
file list.
2003-12-07 18:07:28 +00:00
nethack.allison
e625ee2c3a Files update 2003-12-07 17:41:41 +00:00
nethack.allison
2a91bc6a50 fix message when were_summoning 2003-12-07 09:45:34 +00:00
nethack.allison
19976253a0 wince build fix (from <Someone>)
[this is not meant to trigger re-packaging for 3.4.3]

Windows CE defines leave as part of exception handling (__leave)
It confilicts with existing sources and since we don't use exceptions
it is safe to undefine it
2003-12-07 01:33:25 +00:00
cohrs
691f81102e last minute Linux README bits 2003-12-06 20:55:15 +00:00
jwalz
d382295554 We only had an entry for plain water. 2003-12-06 15:34:44 +00:00
nethack.rankin
2e28abcd5a fix the "big abuse" reported a few days ago
It was possible to get a shopkeeper to carry the Amulet from the
bottom of the dungeon up to the location of his shop, thereby bypassing
the usual labor of lugging it up yourself.  [Drop the Amulet somewhere;
rob a shop so that the Kops are summoned and the shk comes after you;
when shk is next you, level teleport to the Amulet (probably two hops,
one to the Valley and another deeper into Gehennom); walk to the vicinity
of the Amulet; shk will eventually pick it up (shopkeepers like to pick
up magic items); now, pay him for the stolen goods--he'll be pacified
and migrate back to his shop, taking his inventory with him; lastly,
return to his shop and relieve him of his burder.]  This patch makes
shopkeepers drop the Amulet or invocation tools if/when they set set to
migrate to their normal location.

     Also fix another long standing risk that a monster that is sent
away (nurse when healing, Kops when you pacify a shopkeeper) might be
carrying the Amulet or one of the invocation tools and make the game
unwinnable.  I doubt that that's ever actually happened but I think it'd
be possible if a monster that likes magic items ever got polymorphed
into a Kop.  Such dismissed monsters will now drop the same stuff as
the shk above prior to leaving the game.
2003-12-06 14:08:51 +00:00
nethack.allison
3b2b16ea9d patchlevel sync 2003-12-06 13:15:55 +00:00
nethack.allison
eb65b00eb2 tainted meat did not invoke cannibalism 2003-12-06 05:11:40 +00:00
cohrs
497c3b0fad typo pluralizing tengu 2003-12-05 16:27:04 +00:00
nethack.allison
40f3251cf4 prevent infinite recursion in impossible 2003-12-05 12:30:18 +00:00
nethack.rankin
4d7a39e563 #U770 part II - lack of "miss" message when throwing gold at monster
There was no feedback when gold was thrown or kicked at monsters
who weren't interested in catching it.  Now it'll give the same "<obj>
misses <monster>" message as other thrown or kicked items objects which
don't hit.
2003-12-05 11:37:37 +00:00
nethack.rankin
9860caf748 fix U770 - grammar bug: The gold pieces hits the [monster]
Report was for scattering gold during a land mine explosion, but the
message was delivered by the widely used hit().  Bug was caused by a typo
in vtense() when handling a subject containing a space.
2003-12-05 08:54:32 +00:00
nethack.rankin
3df53e952c loadstone dropping fix
Fix the reported problem of bad inventory management if the user
specified a count (with traditional menu style) when attempting to drop
part of a stack of cursed loadstones.  After the "you can't drop that"
message, it tried to undo the stack split, but splitobj was changed
sometime back and the undo hack wasn't adjusted to account for the fact
that it needed to merge with the previous object instead of the next one.
The result was that it would incorrectly increment the count of the next
item instead of the original loadstone, or crash in canletgo() if the
split off stone was the last item in the list.

     This prevents cursed loadstones from being split (via getobj()'s
count handling) in the first place, so there's nothing to undo later.
It still uses a similar kludge so that the "can't drop that" message can
be adjusted, but it's now a simpler kludge and I hope a more robust one.
2003-12-03 07:10:24 +00:00
nethack.allison
b7a2c26248 bits
- update an existing fixes34.3 to reflect a recent autopickup_exception change.

-  beta tester complaint about the Guidebook.
2003-12-03 02:58:16 +00:00
nethack.rankin
a87296c814 fix B03001 - spelling mistakes in Guidebook
Minor problems <Someone> pointed out about the shop section.
[I've only tested the LaTeX variant this time.]
2003-12-02 15:08:59 +00:00
nethack.allison
319bed6ac8 B02005 and B02006
B02006 autopickup_exception documentation

>Should the documentation say what priority order is used if two conflict?
>(For example, how ">*orcish" and "<*arrow" handle an orcish arrow; from
>experimentation, > always takes precedent over < , but I could be
>missing something.)

B02005 autopickup_exception option menu

> It'd be nice if you were returned to the menu after adding an exception
> via O so that you can set several with one command.
2003-12-02 05:00:02 +00:00
nethack.allison
1a6c4bc82d autopickup_exception doc update 2003-12-02 03:29:38 +00:00
nethack.allison
db7d800c98 autopickup_exception
use doname() instead of xname()
2003-12-02 03:14:50 +00:00
nethack.allison
063da8fc3a sync trunk patchlevel.h with branch 2003-12-02 00:42:32 +00:00
nethack.rankin
f761b02c8d lint bits
and some reformatting.
2003-12-01 14:42:37 +00:00
nethack.allison
9d458f24ce botl.c followup bits 2003-12-01 03:57:42 +00:00
nethack.allison
7a8fafd150 botl.c followup bits 2003-12-01 03:48:32 +00:00
nethack.rankin
fbfb8e92ab corpse revival and statue animation (trunk only)
Try to address the problem From a bug report:  turning the Wizard
of Yendor to stone preserves monster information with his statue and
presence of that information overrides the statue animation check
intended to prevent players from creating the Wizard (or other unique
monsters).  That's ok for the current game--the monster had to have been
in play in order to be turned to stone--but is a problem if the statue
is found in a bones file.  The report was for placing such a statue at
the location of an untriggered statue trap by a player who leaves bones,
but stone-to-flesh by the player who loads bones is a simpler way to
trigger this.  (Aside from getting unique monsters earlier than usual
under some degree of player control they won't have their starting
inventory so special items like the Candelabrum might not get created.)
Using undead turning to revive corpses found in bones was another way to
get into the same trouble (I thought corpses of special monsters were
already excluded from bones?).

     It looks like it's also possible to get strange quest behavior if
a corpse or statue of the leader or nemesis is brought into the dungeon,
left in bones, then revived by the second player, but I didn't attempt
to reproduce it.  More work is probably needed; this tightens up leader
handling a bit but doesn't do anything about the nemesis.  This patch
has already been spreading tentacles and I've got to cut it off....

     The patch discards saved monster traits for corpses and statues of
unique monsters while saving bones; reviving or reanimating them will
produce doppelgangers instead of the original monsters, same as stone-to-
flesh on wished-for statues behaves.  It also discards saved traits for
shopkeepers (also temple priests and vault guards--their traits weren't
saved in 3.4.2 though).  That info might be useable when the corpse or
statue is on the same level as the monster started (ie, where its special
room is located), but that's a complication I'm going to bypass.  This
patch also adds chameleon handling for statue activation--it wouldn't
have mattered in 3.4.2 since shapechangers didn't get their traits saved;
it does matter now but was omitted when trait-saving was extended to all
statues a while back.  (It adds chameleon handling to corpse revival too,
but they still don't get their traits saved with corpses so that's just
protection in case of future modifications.)

     Other bits:  `cant_create()' is renamed to `cant_revive()' since
the latter is a more signicant use than wizard mode <ctrl/G> handling.
Now save traits with nymph corses so that cancellation can be propagated
if they're revived; that doesn't matter much but matches statue handling
(where it was more important since it dealt with succubi as well as with
nymphs).  Explicitly initialize the shape-changer field of all monsters
instead of relying on implicit initialization to 0 (CHAM_ORDINARY).

     There'll be a *much* shorter patch for 3.4.3 which will have to get
by with most of these obscure problems--fortunately they're unlikely to
impact many (any?) players.
2003-11-30 21:19:01 +00:00
nethack.allison
d6bf777e63 figurine transform message
The trunk patch differs from branch patch.
Both patches get rid of the "it", but the trunk patch addresses
other concerns brought to light today.
2003-11-30 19:20:01 +00:00
nethack.allison
331ecb8b5c patch reversal - figurines (was egg hatching message bug)
The fix was directed at figurines; report was actually for eggs.
2003-11-30 12:33:53 +00:00
nethack.rankin
b56641dc2e status bits
Declare structure before using it in prototypes, and declare atol()
for configurations which don't have or don't use <stdlib.h>.  (Some
#ifdef MICRO code for atoi at the end of system.h might need to be done
for atol too.)
2003-11-30 11:04:54 +00:00
nethack.allison
73e2a01501 unintentional change removal
A recursive guard check was accidentally checked in with the
status field stuff. Remove it.
2003-11-30 05:54:02 +00:00
nethack.allison
10480f4397 core support for status field highlighting (trunk only)
This provides the core support needed for status field highlighting.
This patch doesn't actually perform status field highlighting for any port,
but provides the core hooks for doing so.

The syntax is:
OPTIONS=hilite_status:{fieldname}/{threshold}/{below}/{above}
where {fieldname} is the name of a status field.
           {threshold} is the value used as the threshold to trigger a display
                             change.  It can also be set to "updown" to trigger
                             a display change whenever it rises or whenever it falls.
                             If you end the threshold value with %, then it signifies
                             that you want to trigger the display change based on the
                             percentage of maximum.
         {below}, {above}
                        are the color or display attribute that you want to use when
                        the field value is underneath the threshold. Supported display
                        fields are:  normal, inverse, bold, black, red, green,
                                         brown, blue, magenta, cyan, gray, orange,
                                         bright-green, yellow, bright-blue, bright-magenta,
                                         bright-cyan, or white.
Valid field names are:
        alignment, armor-class, carrying-capacity,
        charisma, condition, constitution, dexterity,
        dungeon-level, experience-level, experience,
        gold, HD, hitpoints-max, hitpoints, hunger,
        intelligence, power-max, power, score,
        strength, time, title, wisdom

Refer to window.doc for details. Guidebook updates to come later.
2003-11-30 05:51:53 +00:00
nethack.allison
c1c4ba99d9 egg hatching message bug
>     From the newsgroup:  an egg carried by the hero hatched and the
> resulting monster was placed in hiding underneath an adjacent object.
> The silly hatching message given was "You see it drop from your pack."
> (Player said he was using 3.4.1, but the relevant code hasn't changed
> since then.)
2003-11-29 18:48:13 +00:00
cohrs
5b74be68fe B02002 - drawbridge vs longworm
If a long worm's head is on the drawbridge and a tail segment is at the
portcullis and you raise the drawbridge, bad monster handling occurs
because of some recursion that occurs before set_entity is called again.
Not sure when this last worked; it's broken in 3.4.2 as well.  Modified
e_died to ensure both entity objects for the same monster get cleaned up
so subsequent e_at calls behave as expected.
2003-11-27 17:37:38 +00:00
cohrs
70e25fa154 U761 - Sitting as a hider and other related is_hider behavior
While looking at the behavior of sitting hiders, I noticed other related
odd behavior.
- player hiding while poly'd as a hider that hangs on the ceiling now drops to
  the floor before sitting (similar to the behavior of movement commands).
- trappers, as per data.base, don't hang on the ceiling.  Changed the
  mattacku case dealing with hiders to not treat trappers as ceiling hiders.
- updated can_reach_floor to also exclude ceiling hiders.  This covers a
  bunch of cases, such as pickup, look-here-while-blind, and so on.  Another
  alternative would have been to automatically unhide for all such cases.
trunk only, it's a minor bug IMO and we appear to be close to a release.
2003-11-27 07:03:56 +00:00
cohrs
cfa72fcee1 compilation bit 2003-11-27 06:25:46 +00:00
nethack.rankin
3c29cbfeab poison messages (trunk only)
<Someone> reported something along the lines of

  "You are hit by a little dart."
[ "The dart was poisoned." -- this expected message was missing ]
  "The poison doesn't seem to affect you."

Remove the overloading of ``chance for fatal poison'' and ``thrown weapon''
(which reduces that chance, among other things) for the arguments passed to
poisoned() and change how it decides whether feedback about being poisoned
is needed.  Also, move poisoned() and poisontell() from mon.c to attrib.c.
2003-11-27 05:00:29 +00:00
cohrs
43664aa310 interim status support for X11 and gnome
so these window ports can compile with STATUS_VIA_WINDOWPORT defined
2003-11-26 23:42:10 +00:00
cohrs
b0560d45a0 compilation and warnings bits for new botl code
- gcc warned that the "anything" initializer needed more braces
- gcc also warned of a couple unused variables
- WIN_STATUS, when STATUS_VIA_WINDOWPORT is not defined, had no type
2003-11-26 21:54:07 +00:00
nethack.rankin
eb79553209 Guidebook update: "Shops"
Add a new section about shops to the Guidebook.  I don't think any
significant spoilers are revealed.
2003-11-26 08:37:08 +00:00
nethack.allison
71b947af0e more status_via_windowport (trunk only)
It was possible for status_finish to get called twice, therefore free() could end up called twice.

Add a macro symbol for the argument to status_initialize().

Adjust some field widths so that there is a little bit of breathing space.
2003-11-25 00:31:19 +00:00