From: cohrs Date: Fri, 15 Nov 2002 04:58:28 +0000 (+0000) Subject: level teleport and sleeping steed X-Git-Tag: MOVE2GIT~2334 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d2476b5151d185e83b524aa8b7ce4bef3646ba77;p=nethack level teleport and sleeping steed If you level teleported while on a sleeping steed, a panic and possibly a crash would occur. I believe the same would occur by digging a hole. This was due to keepdogs avoiding keeping sleeping pets. In these cases, it seems there's no reason for the sleeping steed to _not_ accompany you. Since other ways of changing level (eg stairs) don't allow this, just added a check to keepdogs to allow the steed to go with you. --- diff --git a/doc/fixes34.1 b/doc/fixes34.1 index f8d844fcf..1574b4a27 100644 --- a/doc/fixes34.1 +++ b/doc/fixes34.1 @@ -304,6 +304,7 @@ salamanders have no legs and cannot ride all objects carried by a monster who's hit by a polymorph zap are protected from that zap, not just worn armor which falls off due to shape change sparkle option for display effects was ignored on explosions +level teleport while on a sleeping steed caused panic and possible crash Platform- and/or Interface-Specific Fixes diff --git a/src/dog.c b/src/dog.c index 03374e806..09b06be1e 100644 --- a/src/dog.c +++ b/src/dog.c @@ -465,7 +465,13 @@ boolean pets_only; /* true for ascension or final escape */ the amulet; if you don't have it, will chase you only if in range. -3. */ (u.uhave.amulet && mtmp->iswiz)) - && !mtmp->msleeping && mtmp->mcanmove + && ((!mtmp->msleeping && mtmp->mcanmove) +#ifdef STEED + /* eg if level teleport or new trap, steed has no control + to avoid following */ + || (mtmp == u.usteed) +#endif + ) /* monster won't follow if it hasn't noticed you yet */ && !(mtmp->mstrategy & STRAT_WAITFORU)) { stay_behind = FALSE;