E void FDECL(were_change, (struct monst *));
E void FDECL(new_were, (struct monst *));
-E int FDECL(were_summon, (struct permonst *,BOOLEAN_P,int *));
+E int FDECL(were_summon, (struct permonst *,BOOLEAN_P,int *,char *));
E void NDECL(you_were);
E void FDECL(you_unwere, (BOOLEAN_P));
if(!rn2(10) && !mtmp->mcan) {
int numseen, numhelp;
- char buf[BUFSZ];
+ char buf[BUFSZ], genericwere[BUFSZ];
- numhelp = were_summon(mdat, FALSE, &numseen);
+ Strcpy(genericwere, "creature");
+ numhelp = were_summon(mdat, FALSE, &numseen, genericwere);
if (youseeit) {
pline("%s summons help!", Monnam(mtmp));
if (numhelp > 0) {
else {
if (numseen == 1)
Sprintf(buf, "%s appears",
- an(mdat->mname));
+ an(genericwere));
else
Sprintf(buf, "%s appear",
- makeplural(mdat->mname));
+ makeplural(genericwere));
pline("%s%s!", upstart(buf), from_nowhere);
}
} /* else no help came; but you didn't know it tried */
You("call upon your brethren for help!");
exercise(A_WIS, TRUE);
- if (!were_summon(youmonst.data, TRUE, &placeholder))
+ if (!were_summon(youmonst.data, TRUE, &placeholder, (char *)0))
pline("But none arrive.");
return(1);
}
}
int
-were_summon(ptr,yours,visible) /* were-creature (even you) summons a horde */
+were_summon(ptr,yours,visible,genbuf) /* were-creature (even you) summons a horde */
register struct permonst *ptr;
register boolean yours;
int *visible; /* number of visible helpers created */
+char *genbuf;
{
register int i, typ, pm = monsndx(ptr);
register struct monst *mtmp;
case PM_WERERAT:
case PM_HUMAN_WERERAT:
typ = rn2(3) ? PM_SEWER_RAT : rn2(3) ? PM_GIANT_RAT : PM_RABID_RAT ;
+ if (genbuf) Strcpy(genbuf, "rat");
break;
case PM_WEREJACKAL:
case PM_HUMAN_WEREJACKAL:
typ = PM_JACKAL;
+ if (genbuf) Strcpy(genbuf, "jackal");
break;
case PM_WEREWOLF:
case PM_HUMAN_WEREWOLF:
typ = rn2(5) ? PM_WOLF : PM_WINTER_WOLF ;
+ if (genbuf) Strcpy(genbuf, "wolf");
break;
default:
continue;