-
Notifications
You must be signed in to change notification settings - Fork 524
/
Copy pathrecords.dm
151 lines (135 loc) · 4.91 KB
/
records.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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
// Generic data stored in record
/datum/record
var/id
var/notes = "No notes found."
var/cmp_field = "id"
var/list/excluded_fields
/datum/record/proc/Copy(var/datum/copied)
if(!copied)
copied = new type()
for(var/variable in src.vars)
if(!(variable in list(SSrecords.excluded_fields, excluded_fields)))
if(istype(src.vars[variable], /datum/record) || istype(src.vars[variable], /list))
copied.vars[variable] = src.vars[variable].Copy()
else
copied.vars[variable] = src.vars[variable]
return copied
/datum/record/proc/Listify(var/deep = 1) // Mostyl to support old things or to use with serialization
var/list/record = list()
for(var/variable in src.vars)
if(!(variable in list(SSrecords.excluded_fields, excluded_fields)))
if(deep && (istype(src.vars[variable], /datum/record)))
record[variable] = src.vars[variable].Listify()
else if (istype(src.vars[variable], /list) || istext(src.vars[variable]) || isnum(src.vars[variable]))
record[variable] = src.vars[variable]
// Record for storing general data, data tree top level datum
/datum/record/general
var/datum/record/medical/medical
var/datum/record/security/security
var/name = "New Record"
var/real_rank = "Unassigned"
var/rank = "Unassigned"
var/age = "Unknown"
var/sex = "Unknown"
var/fingerprint = "Unknown"
var/phisical_status = "Active"
var/mental_status = "Stable"
var/species = "Unknown"
var/home_system = "Unknown"
var/citizenship = "Unknown"
var/faction = "Unknown"
var/religion = "Unknown"
var/ccia_record = "No CCIA records found"
var/ccia_actions = "No CCIA actions found"
var/icon/photo_front
var/icon/photo_side
cmp_field = "name"
excluded_fields = list("photo_front", "photo_side")
/datum/record/general/New(var/mob/living/carbon/human/H, var/nid)
if (!H)
var/mob/living/carbon/human/dummy = SSmob.get_mannequin("New record")
photo_front = getFlatIcon(dummy, SOUTH, always_use_defdir = TRUE)
photo_side = getFlatIcon(dummy, WEST, always_use_defdir = TRUE)
else
photo_front = getFlatIcon(H, SOUTH, always_use_defdir = TRUE)
photo_side = getFlatIcon(H, WEST, always_use_defdir = TRUE)
if(!nid) nid = generate_record_id()
id = nid
if(H)
name = H.real_name
real_rank = H.mind.assigned_role
rank = GetAssignment(H)
age = H.age
fingerprint = md5(H.dna.uni_identity)
sex = H.gender
species = H.species
home_system = H.home_system
citizenship = H.citizenship
faction = H.personal_faction
religion = H.religion
ccia_record = H.ccia_record
ccia_actions = H.ccia_actions
if(H.gen_record && !jobban_isbanned(H, "Records"))
notes = H.gen_record
medical = new(H, id)
security = new(H, id)
// Record for locked data
/datum/record/general/locked
var/nid = ""
var/enzymes
var/identity
var/exploit_record = "No additional information acquired."
/datum/record/general/locked/New(var/mob/living/carbon/human/H)
// Only init things that aqre needed
if(H)
nid = md5("[H.real_name][H.mind.assigned_role]")
enzymes = H.dna.SE
identity = H.dna.UI
if(H.exploit_record && !jobban_isbanned(H, "Records"))
exploit_record = H.exploit_record
// Record for storing medical data
/datum/record/medical
var/blood_type = "AB+"
var/blood_dna = "63920c3ec24b5d57d459b33a2f4d6446"
var/disabilities = "No disabilities have been declared."
var/allergies = "No allergies have been detected in this patient."
var/diseases = "No diseases have been diagnosed at the moment."
var/list/comments = list()
/datum/record/medical/New(var/mob/living/carbon/human/H, var/nid)
if(!nid) nid = generate_record_id()
id = nid
if(H)
blood_type = H.b_type
blood_dna = H.dna.unique_enzymes
if(H.med_record && !jobban_isbanned(H, "Records"))
notes = H.med_record
// Record for storing medical data
/datum/record/security
var/criminal = "None"
var/crimes = "There is no crime convictions."
var/incidents = ""
var/list/comments = list()
/datum/record/security/New(var/mob/living/carbon/human/H, var/nid)
if(!nid) nid = generate_record_id()
id = nid
if(H)
incidents = H.incidents
if(H.sec_record && !jobban_isbanned(H, "Records"))
notes = H.sec_record
// Digital warrant
/datum/record/warrant
var/authorization = "Unauthorized"
var/wtype = "Unknown"
var/name = "Unknown"
notes = "No charges present"
cmp_field = "name"
var/warrant_uid = 0
/datum/record/warrant/New()
id = warrant_uid++
// Digital warrant
/datum/record/virus
var/name = "Unknown"
var/description = ""
var/antigen
var/spread_type = "Unknown"
cmp_field = "name"