more photographing monsters
Don't record hallucinated monsters as having been seen up close or as photographed. Treat a tourist's starting pet has having been photographed prior to bringing the camera and dog or cat into the dungeon. No extra points to tourist when first long worm tail is photographed. EDITLEVEL is incremented again, for extra context to track starting pet.
This commit is contained in:
16
src/dog.c
16
src/dog.c
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.7 dog.c $NHDT-Date: 1737287993 2025/01/19 03:59:53 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.178 $ */
|
||||
/* NetHack 3.7 dog.c $NHDT-Date: 1753856387 2025/07/29 22:19:47 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.190 $ */
|
||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||
/*-Copyright (c) Robert Patrick Rankin, 2011. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
@@ -214,7 +214,7 @@ make_familiar(struct obj *otmp, coordxy x, coordxy y, boolean quietly)
|
||||
return mtmp;
|
||||
}
|
||||
|
||||
/* used exclusively for hero's starting pet */
|
||||
/* despite rather general name, used exclusively for hero's starting pet */
|
||||
struct monst *
|
||||
makedog(void)
|
||||
{
|
||||
@@ -222,10 +222,13 @@ makedog(void)
|
||||
const char *petname;
|
||||
int pettype;
|
||||
|
||||
if (gp.preferred_pet == 'n')
|
||||
if (gp.preferred_pet == 'n') {
|
||||
/* static init yields 0 (PM_GIANT_ANT); fix that up now */
|
||||
svc.context.startingpet_typ = NON_PM;
|
||||
return ((struct monst *) 0);
|
||||
}
|
||||
|
||||
pettype = pet_type();
|
||||
pettype = svc.context.startingpet_typ = pet_type();
|
||||
petname = (pettype == PM_LITTLE_DOG) ? gd.dogname
|
||||
: (pettype == PM_KITTEN) ? gc.catname
|
||||
: (pettype == PM_PONY) ? gh.horsename
|
||||
@@ -264,6 +267,11 @@ makedog(void)
|
||||
put_saddle_on_mon((struct obj *) 0, mtmp);
|
||||
}
|
||||
}
|
||||
/* starting pet's type has been seen up close (unless PermaBlind)
|
||||
and for tourist treat it as having already been photographed */
|
||||
gb.bhitpos.x = mtmp->mx, gb.bhitpos.y = mtmp->my;
|
||||
gn.notonhead = FALSE;
|
||||
see_monster_closeup(mtmp, carrying(EXPENSIVE_CAMERA) ? TRUE : FALSE);
|
||||
} else {
|
||||
impossible("makedog() when startingpet_mid is already non-zero?");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user