/
ColdCore-3.0a9.02/
ColdCore-3.0a9.02/src/
new object $gender: $has_name;

var $gender apronouns = 0;
var $gender cgender_name = 0;
var $gender context = [];
var $gender gender = 0;
var $gender gender_name = 0;
var $gender has = 0;
var $gender number = 0;
var $gender person = 0;
var $gender pronouns = 0;
var $gender vpronouns = 0;
var $has_name name = ['normal, "Gendered Object", "a Gendered Object"];
var $root created_on = 796268969;
var $root flags = ['methods, 'code, 'core, 'variables];
var $root inited = 1;
var $root managed = [$gender];
var $root manager = $gender;

public method .apronouns() {
    return apronouns;
};

public method .cml_pronouns() {
    return cml_pronouns;
};

public method .context() {
    return context;
};

public method .gender() {
    return gender;
};

public method .gender_name() {
    arg @caps;
    
    [(caps ?= 'null)] = caps;
    switch (caps) {
        case 'caps:
            return cgender_name;
        default:
            return gender_name;
    }
};

root method .init_gender() {
    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"]];
};

public method .number() {
    return number;
};

public method .pronoun() {
    arg pronoun;
    
    return (> pronouns[pronoun] <);
};

public method .pronouns() {
    return pronouns;
};

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

public 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];
};

public method .vpronouns() {
    return vpronouns;
};