fix #H4219 - renegade Angel banter

Lawful angels deliver taunt messages from a pool of messages which
might mention the lawful god; demons and non-lawful angels draw from
another pool which doesn't mention any gods.  Since it is odd for a
'renegade' angel to claim to be operating for its god, choose taunts
from the other pool of messages for renegade lawful angels.

Not related:  some formatting fixups in include/mextra.h.
This commit is contained in:
PatR
2016-02-28 18:47:01 -08:00
parent be084392d5
commit ca02008d03
3 changed files with 54 additions and 53 deletions
+2
View File
@@ -170,6 +170,8 @@ if a long worm inherited inventory from a previous shape, and if an egg or
given when hero could see any tail segment even if head was unseen, given when hero could see any tail segment even if head was unseen,
making it seem as if worm's inventory was kept in the visible segment making it seem as if worm's inventory was kept in the visible segment
Wizard will now steal any quest artifact from hero, not just own role's Wizard will now steal any quest artifact from hero, not just own role's
prevent a hostile renegade Angel of <lawful god> from delivering taunt
messages which mention threats of retribution from that god
Platform- and/or Interface-Specific Fixes Platform- and/or Interface-Specific Fixes
+13 -15
View File
@@ -12,17 +12,15 @@
/* /*
* Adding new mextra structures: * Adding new mextra structures:
* *
* 1. Add the structure definition and any required macros in this file * 1. Add the structure definition and any required macros in this
* above the mextra struct. * file above the mextra struct.
* 2. Add a pointer to your new struct to the mextra struct in this * 2. Add a pointer to your new struct to the mextra struct in this
*file. * file.
* 3. Add a referencing macro at the bottom of this file after the * 3. Add a referencing macro at bottom of this file after the mextra
*mextra
* struct (see MNAME, EGD, EPRI, ESHK, EMIN, or EDOG for examples). * struct (see MNAME, EGD, EPRI, ESHK, EMIN, or EDOG for examples).
* 4. Create a newXX(mtmp) function and possibly a free_XX(mtmp) * 4. Create a newXX(mtmp) function and possibly a free_XX(mtmp)
*function * function in an appropriate new or existing source file and add
* in an appropriate new or existing source file and add a prototype * a prototype for it to include/extern.h.
* for it to include/extern.h.
* *
* void FDECL(newXX, (struct monst *)); * void FDECL(newXX, (struct monst *));
* void FDECL(free_XX, (struct monst *)); * void FDECL(free_XX, (struct monst *));
@@ -31,19 +29,19 @@
* newXX(mtmp) * newXX(mtmp)
* struct monst *mtmp; * struct monst *mtmp;
* { * {
* if (!mtmp->mextra) mtmp->mextra = newmextra(); * if (!mtmp->mextra)
* mtmp->mextra = newmextra();
* if (!XX(mtmp)) { * if (!XX(mtmp)) {
* XX(mtmp) = (struct XX *)alloc(sizeof(struct XX)); * XX(mtmp) = (struct XX *) alloc(sizeof (struct XX));
* (void) memset((genericptr_t) XX(mtmp), * (void) memset((genericptr_t) XX(mtmp),
* 0, sizeof(struct XX)); * 0, sizeof (struct XX));
* } * }
* } * }
* *
* 5. Consider adding a new makemon flag MM_XX flag to include/hack.h * 5. Consider adding a new makemon flag MM_XX flag to include/hack.h
*and * and a corresponding change to makemon() if you require your
* a corresponding change to makemon() if you require your structure * structure to be added at monster creation time. Initialize your
* to be added at monster creation time. Initialize your struct * struct after a successful return from makemon().
* after a successful return from makemon().
* *
* src/makemon.c: if (mmflags & MM_XX) newXX(mtmp); * src/makemon.c: if (mmflags & MM_XX) newXX(mtmp);
* your new code: mon = makemon(&mons[mnum], x, y, MM_XX); * your new code: mon = makemon(&mons[mnum], x, y, MM_XX);
+3 -2
View File
@@ -751,11 +751,12 @@ register struct monst *mtmp;
verbalize("%s %s!", verbalize("%s %s!",
random_malediction[rn2(SIZE(random_malediction))], random_malediction[rn2(SIZE(random_malediction))],
random_insult[rn2(SIZE(random_insult))]); random_insult[rn2(SIZE(random_insult))]);
} else if (is_lminion(mtmp)) { } else if (is_lminion(mtmp)
&& !(mtmp->isminion && EMIN(mtmp)->renegade)) {
com_pager(rn2(QTN_ANGELIC - 1 + (Hallucination ? 1 : 0)) com_pager(rn2(QTN_ANGELIC - 1 + (Hallucination ? 1 : 0))
+ QT_ANGELIC); + QT_ANGELIC);
} else { } else {
if (!rn2(5)) if (!rn2(is_minion(mtmp->data) ? 100 : 5))
pline("%s casts aspersions on your ancestry.", Monnam(mtmp)); pline("%s casts aspersions on your ancestry.", Monnam(mtmp));
else else
com_pager(rn2(QTN_DEMONIC) + QT_DEMONIC); com_pager(rn2(QTN_DEMONIC) + QT_DEMONIC);