minions/Angels (trunk only)
Angels used the epri extension even though they're never priests,
presumeably because they're sometimes flagged as "renegade". Since the
only priests ever flagged as renegade are roaming minions rather than
temple priests, move the renegade flag to the emin extension and switch
Angels over to that. Summoned Angels will now always have the isminion
flag set.
Makefiles need updating: monst.{c,o} now depends upon emin.h.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
/* SCCS Id: @(#)makemon.c 3.5 2005/09/20 */
|
||||
/* SCCS Id: @(#)makemon.c 3.5 2005/11/02 */
|
||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
|
||||
@@ -1098,6 +1098,18 @@ register int mmflags;
|
||||
initworm(mtmp, rn2(5));
|
||||
if (count_wsegs(mtmp)) place_worm_tail_randomly(mtmp, x, y);
|
||||
}
|
||||
/* it's possible to create an ordinary monster of some special
|
||||
types; make sure their extended data is initialized to
|
||||
something sensible (caller can override these settings) */
|
||||
if (mndx == PM_ALIGNED_PRIEST || (mndx == PM_ANGEL && !rn2(3))) {
|
||||
struct emin *eminp = EMIN(mtmp);
|
||||
|
||||
mtmp->isminion = 1; /* make priest be a roamer */
|
||||
eminp->min_align = rn2(3) - 1; /* no A_NONE */
|
||||
eminp->renegade = (mmflags & MM_ANGRY) ? 1 : !rn2(3);
|
||||
mtmp->mpeaceful = (eminp->min_align == u.ualign.type) ?
|
||||
!eminp->renegade : eminp->renegade;
|
||||
}
|
||||
set_malign(mtmp); /* having finished peaceful changes */
|
||||
if(anymon) {
|
||||
if ((ptr->geno & G_SGROUP) && rn2(2)) {
|
||||
|
||||
Reference in New Issue
Block a user