montraits of weapon-wielding monsters
Have save_mtraits() clear wielded weapon when attaching monster attributes to a corpse object. And have monster sanity check verify that wielded weapon is in the monster's inventory.
This commit is contained in:
@@ -2154,6 +2154,7 @@ save_mtraits(struct obj *obj, struct monst *mtmp)
|
||||
mtmp2->nmon = (struct monst *) 0;
|
||||
mtmp2->data = (struct permonst *) 0;
|
||||
mtmp2->minvent = (struct obj *) 0;
|
||||
MON_NOWEP(mtmp2); /* mtmp2->mw = (struct obj *) 0; */
|
||||
if (mtmp->mextra)
|
||||
copy_mextra(mtmp2, mtmp);
|
||||
/* if mtmp is a long worm with segments, its saved traits will
|
||||
|
||||
13
src/mon.c
13
src/mon.c
@@ -233,6 +233,19 @@ sanity_check_single_mon(
|
||||
mtmp->m_id, distu(mtmp->mx, mtmp->my));
|
||||
#endif
|
||||
}
|
||||
if (MON_WEP(mtmp)) { /* mtmp->mw */
|
||||
struct obj *o;
|
||||
|
||||
for (o = mtmp->minvent; o; o = o->nobj)
|
||||
if (o == MON_WEP(mtmp))
|
||||
break;
|
||||
if (!o) {
|
||||
o = MON_WEP(mtmp);
|
||||
impossible("monst (%s: %u) wielding %s (%u) not in inventory",
|
||||
pmname(mtmp->data, Mgender(mtmp)), mtmp->m_id,
|
||||
safe_typename(o->otyp), o->o_id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
Reference in New Issue
Block a user