int gender; int query_gender() { return gender; } int query_female() { return gender == 2; } int query_male() { return gender == 1; } int query_asexual() { return !gender; } int query_bisexual() { return gender == 3; } /* The next function is soley for compatibility with old code. */ /* It should not be used in new source files. */ int query_neuter() { return !gender; } string query_gender_string() { switch (gender) { case 0: return "asexual"; case 1: return "male"; case 2: return "female"; case 3: return "bisexual"; } } string query_gender_title() { switch (gender) { case 1: return "Sir"; case 2: return "Lady"; default: return "Creature"; } } string query_objective() { switch (gender) { case 1: return "him"; case 2: return "her"; default: return "it"; } } string query_possessive() { switch (gender) { case 1: return "his"; case 2: return "her"; default: return "its"; } } string query_pronoun() { switch (gender) { case 1: return "he"; case 2: return "she"; default: return "it"; } } // Bugfix by Aragorn 22/1/94 void set_gender(mixed arg) { if (stringp(arg)) { if (arg == "male" || arg == "1") gender = 1; else if (arg == "female" || arg == "2") gender = 2; else if (arg == "bisexual" || arg == "3") gender = 3; else gender = 0; } else { if (gender < 0) gender = 0; else if (gender > 3) gender = 3; else gender = arg; } }