/
CDC-1.1/
parent $misc
object $gender

var $root child_index 0
var $root owners [$gender]
var $root owned [$gender]
var $root fertile 0
var $root inited 1
var $gender pronouns 0
var $gender gender 0
var $gender cgender_name 0
var $gender gender_name 0
var $gender person 0
var $gender has 0
var $gender number 0
var $root manager $gender
var $root writable [$gender]
var $root readable ['parameters, 'methods, 'code]
var $gender context []
var $root dbref 'gender

method init_gender
    .perms($root, caller());
    cgender_name = "";
    gender_name = "";
    
    // these should be inited by hand, later.
    pronouns = #[['pr, "itself"], ['pp, "its"], ['po, "it"], ['ps, "it"], ['pq, "its"], ['prc, "Itself"], ['ppc, "Its"], ['poc, "It"], ['psc, "It"], ['pqc, "Its"], ['have, "has"]];
.

method pronoun
    arg pronoun;
    
    return pronouns[pronoun];
.

method gender
    return gender;
.

method set_gender_names
    arg name, cname;
    
    .perms(sender());
    cgender_name = cname;
    gender_name = name;
.

method set_pronouns
    arg nmbr, ps, po, pp, pq, pr, psc, poc, ppc, pqc, prc;
    var x;
    
    .perms(sender(), 'manager);
    pronouns = #[['pr, pr], ['pp, pp], ['po, po], ['ps, ps], ['pq, pq], ['prc, prc], ['ppc, ppc], ['poc, poc], ['psc, psc], ['pqc, pqc]];
    number = nmbr;
    context = [ps, po, pp, pq, pr, psc, poc, ppc, pqc, prc];
.

method pronouns
    return pronouns;
.

method "name(old)"
    arg [caps];
    
    caps = [@caps, 'null][1];
    switch (caps) {
        case 'caps:
            return cgender_name;
        default:
            return gender_name;
    }
.

method context
    return context;
.