statue gender

Reported on the newsgroup (a few weeks ago in the middle of a post about
something else): someone turned Perseus to flesh and found out he was female.
This commit is contained in:
arromdee
2003-03-24 02:02:08 +00:00
parent 1d99476847
commit b7fea371b6
6 changed files with 17 additions and 7 deletions

View File

@@ -367,7 +367,7 @@ register struct obj *obj;
case ROCK_CLASS:
if (typ == STATUE)
Sprintf(buf, "%s%s of %s%s",
(Role_if(PM_ARCHEOLOGIST) && obj->spe) ? "historic " : "" ,
(Role_if(PM_ARCHEOLOGIST) && (obj->spe & STATUE_HISTORIC)) ? "historic " : "" ,
actualn,
type_is_pname(&mons[obj->corpsenm]) ? "" :
(mons[obj->corpsenm].geno & G_UNIQ) ? "the " :
@@ -2507,7 +2507,7 @@ typfnd:
case STATUE: otmp->corpsenm = mntmp;
if (Has_contents(otmp) && verysmall(&mons[mntmp]))
delete_contents(otmp); /* no spellbook */
otmp->spe = ishistoric;
otmp->spe = ishistoric ? STATUE_HISTORIC : 0;
break;
case SCALE_MAIL:
/* Dragon mail - depends on the order of objects */

View File

@@ -409,7 +409,7 @@ int *fail_reason;
struct monst *mon = 0;
struct obj *item;
coord cc;
boolean historic = (Role_if(PM_ARCHEOLOGIST) && !flags.mon_moving && statue->spe);
boolean historic = (Role_if(PM_ARCHEOLOGIST) && !flags.mon_moving && (statue->spe & STATUE_HISTORIC));
if (statue->oxlth && statue->oattached == OATTACHED_MONST) {
cc.x = x, cc.y = y;
@@ -440,6 +440,11 @@ int *fail_reason;
return (struct monst *)0;
}
/* allow statues to be of a specific gender */
if (statue->spe & STATUE_MALE)
mon->female = FALSE;
else if (statue->spe & STATUE_FEMALE)
mon->female = TRUE;
/* if statue has been named, give same name to the monster */
if (statue->onamelth)
mon = christen_monst(mon, ONAME(statue));

View File

@@ -3755,7 +3755,7 @@ register struct obj *obj;
obj_extract_self(item);
place_object(item, obj->ox, obj->oy);
}
if (Role_if(PM_ARCHEOLOGIST) && !flags.mon_moving && obj->spe) {
if (Role_if(PM_ARCHEOLOGIST) && !flags.mon_moving && (obj->spe & STATUE_HISTORIC)) {
You_feel("guilty about damaging such a historic statue.");
adjalign(-1);
}