/* -*- LPC -*- */
/*
* $Locker: $
* $Id: gender.c,v 1.4 2002/03/20 16:59:58 gruper Exp $
* $Log: gender.c,v $
* Revision 1.4 2002/03/20 16:59:58 gruper
* Added query_real_gender() to take care of witches' guild
* joining issues on women's day.
*
* Revision 1.3 2001/03/08 13:36:33 taffyd
* Added query_womens_day()... where did it go?
*
* Revision 1.2 1999/01/13 00:41:41 arby
* Added query_gender_name to return man, woman, or neuter.
*
* Revision 1.1 1998/01/06 04:29:08 ceres
* Initial revision
*
*/
int gender;
nosave int womens_day;
int query_female() { return (gender == 2) || womens_day; }
int query_gender() { return (womens_day?2:gender); }
int query_male() { return gender == 1 && !womens_day; }
int query_neuter() { return !gender && !womens_day; }
string query_gender_string() {
if (!gender && !womens_day) return "neuter";
else if (gender == 1 && !womens_day) return "male";
else return "female";
}
string query_gender_title() {
if (!gender && !womens_day) return "creature";
else if (gender == 1 && !womens_day) return "sir";
else return "madam";
}
string query_gender_name() {
if (!gender && !womens_day) return "neuter";
else if (gender == 1 && !womens_day) return "man";
else return "woman";
}
string query_objective() {
if (!gender && !womens_day)
return "it";
else if (gender == 1 && !womens_day)
return "him";
else return "her";
}
string query_possessive() {
if (!gender && !womens_day)
return "its";
else if (gender == 1 && !womens_day)
return "his";
else return "her";
}
string query_pronoun() {
if (!gender && !womens_day)
return "it";
else if (gender == 1 && !womens_day)
return "he";
else return "she";
}
void set_gender(mixed arg) {
if(stringp(arg)) {
if(arg == "male")
gender = 1;
else if(arg == "female")
gender = 2;
else
gender = 0;
} else {
gender = arg;
}
} /* set_gender() */
/* Can only set ourselves on or off on womens day */
/* Bollocks. */
void set_womens_day(int bing) {
/*
if (previous_object() != this_object())
return ;
*/
womens_day = bing;
} /* set_womens_day() */
int query_womens_day() {
return womens_day;
} /* query_womens_day() */
/* This function always returns the real gender, regardless of,
* ah, pink bow day. */
nomask int query_real_gender() {
return gender;
} /* query_real_gender() */