/* Do not remove the headers from this file! see /USAGE for more info. */
/* An attempt to put all the grammar/gender related stuff in one
* file. -Beek
*/
/* 0 = neuter, 1 = male, 2 = female. Anything else, you're wierd. */
int gender;
//:FUNCTION set_gender
//set the objects gender. 0 == neuter, 1 == male, 2 == female
void set_gender(int x) { gender = x; }
//:FUNCTION query_gender
//query an object's gender
int query_gender() { return gender; }
//:FUNCTION query_gender_string
//Query the string representation of an objects gender
string query_gender_string() {
switch(gender) {
case 1:
return "male";
case 2:
return "female";
default:
return "neuter";
}
}
//:FUNCTION query_pronoun
//return the (subjective) pronoun of a object (he, she, it)
string query_pronoun() { switch (gender) {
case 0: return "it";
case 1: return "he";
case 2: return "she";
}}
//:FUNCTION query_objective
//return the objective pronoun of an object (it, him, her)
string query_objective() {switch (gender) {
case 0: return "it";
case 1: return "him";
case 2: return "her";
}
}
//:FUNCTION query_subjective
//return the subjective pronoun of an object (he, she, it)
string query_subjective() { return query_pronoun(); }
//:FUNCTION query_possessive
//return the possessive pronoun of an object (his, her, its)
string query_possessive() { switch (gender) {
case 0: return "its";
case 1: return "his";
case 2: return "her";
}}
//:FUNCTION query_named_possessive
//return the named possessive of an object (Foo's)
string query_named_possessive() {
string res;
res = this_object()->query_name();
if (res[<1]=='s') return res+"'";
else return res+"'s";
}
//:FUNCTION query_reflexive
//return the reflexive pronoun of an object (himself, herself, itself)
string query_reflexive(){
switch(gender){
case 0: return "itself";
case 1: return "himself";
case 2: return "herself";
}
}