more hallucinatory genocide

Reorganize the recent livelog/#chronicle fix.
This commit is contained in:
PatR
2025-11-08 01:06:13 -08:00
parent 3113387371
commit 6fa324d52a

View File

@@ -2860,20 +2860,24 @@ do_genocide(
} }
which = "all "; which = "all ";
Strcpy(buf, ptr->pmnames[NEUTRAL]); /* standard singular */ Strcpy(realbuf, ptr->pmnames[NEUTRAL]); /* standard singular */
if ((ptr->geno & G_UNIQ) && ptr != &mons[PM_HIGH_CLERIC])
which = !type_is_pname(ptr) ? "the " : "";
Strcpy(realbuf, buf); /* save true name, to avoid Hallu for livelog */
if (Hallucination) { if (Hallucination) {
/* hallucinate hero's type */
if (Upolyd) { if (Upolyd) {
Strcpy(buf, pmname(gy.youmonst.data, Strcpy(buf, pmname(gy.youmonst.data,
flags.female ? FEMALE : MALE)); flags.female ? FEMALE : MALE));
} else { } else {
Strcpy(buf, (flags.female && gu.urole.name.f) ? gu.urole.name.f Strcpy(buf, (flags.female && gu.urole.name.f) ? gu.urole.name.f
: gu.urole.name.m); : gu.urole.name.m);
buf[0] = lowc(buf[0]); buf[0] = lowc(buf[0]);
} }
} else {
/* use actual type */
Strcpy(buf, realbuf);
if ((ptr->geno & G_UNIQ) && ptr != &mons[PM_HIGH_CLERIC])
which = !type_is_pname(ptr) ? "the " : "";
} }
if (how & REALLY) { if (how & REALLY) {
if (!num_genocides()) if (!num_genocides())
livelog_printf(LL_CONDUCT | LL_GENOCIDE, livelog_printf(LL_CONDUCT | LL_GENOCIDE,
@@ -2902,13 +2906,13 @@ do_genocide(
} }
/* Polymorphed characters will die as soon as they're rehumanized. /* Polymorphed characters will die as soon as they're rehumanized.
*/ KMH -- Unchanging prevents rehumanization. */
/* KMH -- Unchanging prevents rehumanization */
if (Upolyd && ptr != gy.youmonst.data) { if (Upolyd && ptr != gy.youmonst.data) {
delayed_killer(POLYMORPH, svk.killer.format, svk.killer.name); delayed_killer(POLYMORPH, svk.killer.format, svk.killer.name);
You_feel("%s inside.", udeadinside()); You_feel("%s inside.", udeadinside());
} else } else {
done(GENOCIDED); done(GENOCIDED);
}
} else if (ptr == gy.youmonst.data) { } else if (ptr == gy.youmonst.data) {
rehumanize(); rehumanize();
} }