B20008 - seeing pet move

The cansee() checks are not really correct for seeing your pet move.
Changed them to a pair of canseemon() checks, one before the move, one after.
I can see an argument for canspotmon(), but decided to keep it based on sight.
If your pet is unseen in both locations, you won't get any messages, which
I think is more correct.  If you do get the message, use noit_Monnam to
ensure no more "it" message.
This commit is contained in:
cohrs
2003-03-02 21:54:37 +00:00
parent ab5ab8e580
commit 77c538e164
2 changed files with 5 additions and 2 deletions

View File

@@ -6,6 +6,7 @@ setmangry should not be called when a monster enters a bones region
typos fixed in data.base
bad capitalization of msg when charging for something that catches light
missing opthelp for use_inverse
Never say "It moves only reluctantly"
Platform- and/or Interface-Specific Fixes

View File

@@ -705,6 +705,7 @@ register int after; /* this is extra fast monster movement */
newdogpos:
if (nix != omx || niy != omy) {
struct obj *mw_tmp;
boolean wasseen;
if (info[chi] & ALLOW_U) {
if (mtmp->mleashed) { /* play it safe */
@@ -736,10 +737,11 @@ newdogpos:
return 0;
}
/* insert a worm_move() if worms ever begin to eat things */
wasseen = canseemon(mtmp);
remove_monster(omx, omy);
place_monster(mtmp, nix, niy);
if (cursemsg[chi] && (cansee(omx,omy) || cansee(nix,niy)))
pline("%s moves only reluctantly.", Monnam(mtmp));
if (cursemsg[chi] && (wasseen || canseemon(mtmp)))
pline("%s moves only reluctantly.", noit_Monnam(mtmp));
for (j=MTSZ-1; j>0; j--) mtmp->mtrack[j] = mtmp->mtrack[j-1];
mtmp->mtrack[0].x = omx;
mtmp->mtrack[0].y = omy;