/* 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"; } }