mon name of monster appearing as another monster

When a monster mimicks another monster (traditionally Double Trouble
Wizard, since 3.6.x also pet that eats a mimic corpse), using farlook
or getpos+autodescribe revealed the monster's real identity.  Hard to
believe that nobody ever noticed, but it was obvious when a pet dog
quick-mimicked a cat or vice versa.

Add an extra x_monnam() flag to ignore monst->m_ap_type==M_AP_MONSTER
plus monst->mappearance.  Only the m_monnam() variation of x_monnam()
includes it (via EXACT_NAME); monnam() and the rest will now describe
an M_AP_MONSTER by its appearance rather than as its true self.
This commit is contained in:
PatR
2024-04-17 14:40:20 -07:00
parent 7198981afd
commit 064523e162
2 changed files with 32 additions and 13 deletions

View File

@@ -942,13 +942,14 @@ typedef struct {
#define ARTICLE_YOUR 3
/* x_monnam() monster name suppress masks */
#define SUPPRESS_IT 0x01
#define SUPPRESS_INVISIBLE 0x02
#define SUPPRESS_IT 0x01
#define SUPPRESS_INVISIBLE 0x02
#define SUPPRESS_HALLUCINATION 0x04
#define SUPPRESS_SADDLE 0x08
#define EXACT_NAME 0x0F
#define SUPPRESS_NAME 0x10
#define AUGMENT_IT 0x20 /* use "someone" or "something" instead of "it" */
#define SUPPRESS_SADDLE 0x08
#define SUPPRESS_MAPPEARANCE 0x10
#define EXACT_NAME 0x1F
#define SUPPRESS_NAME 0x20
#define AUGMENT_IT 0x40 /* use "someone" or "something" instead of "it" */
/* pline (et al) for a single string argument (suppress compiler warning) */
#define pline1(cstr) pline("%s", cstr)