/
gender.dm
80 lines (67 loc) · 1.61 KB
/
gender.dm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
GLOBAL_LIST_EMPTY(gender_datums)
/// List (`string`|`/datum/gender` => `/datum/pronouns`). Map of genders to pronouns. Derived from each gender datum's `default_pronouns`. Accepts both string or a gender datum as a key.
GLOBAL_LIST_EMPTY(pronouns_from_gender)
/hook/startup/proc/populate_gender_datum_list()
for(var/type in subtypesof(/datum/gender))
var/datum/gender/G = new type
GLOB.gender_datums[G.key] = G
if(!G.formal_term)
G.formal_term = G.key
var/datum/pronouns/P = GLOB.pronouns.by_key[G.default_pronouns]
GLOB.pronouns_from_gender[G.key] = P
GLOB.pronouns_from_gender[G] = P
return 1
/datum/gender
var/key
var/formal_term
/// String (One of `PRONOUNS_*`). Associated default pronouns used by this gender.
var/default_pronouns = PRONOUNS_THEY_THEM
var/He = "They"
var/he = "they"
var/His = "Their"
var/his = "their"
var/him = "them"
var/has = "have"
var/is = "are"
var/does = "do"
var/self = "themselves"
/datum/gender/plural
key = PLURAL
formal_term = "other"
/datum/gender/male
key = MALE
default_pronouns = PRONOUNS_HE_HIM
He = "He"
he = "he"
His = "His"
his = "his"
him = "him"
has = "has"
is = "is"
does = "does"
self = "himself"
/datum/gender/female
key = FEMALE
default_pronouns = PRONOUNS_SHE_HER
He = "She"
he = "she"
His = "Her"
his = "her"
him = "her"
has = "has"
is = "is"
does = "does"
self = "herself"
/datum/gender/neuter
key = NEUTER
formal_term = "other"
default_pronouns = PRONOUNS_IT_ITS
He = "It"
he = "it"
His = "Its"
his = "its"
him = "it"
has = "has"
is = "is"
does = "does"
self = "itself"