diff --git a/code/defines/obj/computer.dm b/code/defines/obj/computer.dm
index 082c8381839..7826070c1a8 100644
--- a/code/defines/obj/computer.dm
+++ b/code/defines/obj/computer.dm
@@ -191,6 +191,8 @@
var/temp = null
var/printing = null
var/can_change_id = 0
+ var/PerpGen = list(1)
+ var/PerpSec = list(1)
/obj/machinery/computer/secure_data/detective_computer
diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm
index db5da9b5a85..8155b11009c 100644
--- a/code/game/machinery/computer/security.dm
+++ b/code/game/machinery/computer/security.dm
@@ -9,6 +9,7 @@
if(..())
return
var/dat
+
if (temp)
dat = text("[]
Clear Screen", temp, src)
else
@@ -20,7 +21,7 @@
"}
dat += text("Search Records
", src)
dat += text("Search Fingerprints
", src)
- dat += text("New General Record
", src)
+ dat += text("New Record
", src)
dat += {"
@@ -84,6 +85,51 @@
dat += "Security Record Lost!
"
dat += text("New Security Record
", src)
dat += text("\nDelete Record (ALL)
\nPrint Record
\nBack
", src, src, src)
+ if(4.0)
+ if(!(istype(PerpSec[1],/datum/data/record/)))
+ dat += text("ERROR. String could not be located.
Back", src)
+ else
+ dat += {"
+
+
+
+| Name |
+ID |
+Rank |
+Fingerprints |
+Criminal Status |
+
"}
+ for(var/i=1, i<=PerpGen.len, i++)
+ var/crimstat = ""
+ var/datum/data/record/R = PerpGen[i]
+ var/datum/data/record/E = PerpSec[i]
+ crimstat = E.fields["criminal"]
+ var/background
+ switch(crimstat)
+ if("*Arrest*")
+ background = "'background-color:#DC143C;'"
+ if("Incarcerated")
+ background = "'background-color:#CD853F;'"
+ if("Parolled")
+ background = "'background-color:#CD853F;'"
+ if("Released")
+ background = "'background-color:#3BB9FF;'"
+ if("None")
+ background = "'background-color:#00FF7F;'"
+ if("")
+ background = "'background-color:#FFFFFF;'"
+ crimstat = "No Record."
+ dat += text("| [] | ", background, src, R, R.fields["name"])
+ dat += text("[] | ", R.fields["id"])
+ dat += text("[] | ", R.fields["rank"])
+ dat += text("[] | ", R.fields["fingerprint"])
+ dat += text("[] |
", crimstat)
+ dat += "
"
+ dat += text("
Return to index.", src)
else
else
dat += text("{Log In}", src)
@@ -146,22 +192,22 @@ What a mess.*/
screen = 1
//RECORD FUNCTIONS
if("Search Records")
- var/t1 = input("Search String: (Name or ID)", "Secure. records", null, null) as text
+ var/t1 = input("Search String: (Partial Name or ID or Fingerprints)", "Secure. records", null, null) as text
if ((!( t1 ) || usr.stat || !( authenticated ) || usr.restrained() || !in_range(src, usr)))
return
- active1 = null
- active2 = null
+ PerpGen.len = 1
+ PerpSec.len = 1
t1 = lowertext(t1)
for(var/datum/data/record/R in data_core.general)
- if ((lowertext(R.fields["name"]) == t1 || t1 == lowertext(R.fields["id"])))
- active1 = R
- if (!( active1 ))
- temp = text("Could not locate record [].", t1)
- else
for(var/datum/data/record/E in data_core.security)
- if ((E.fields["name"] == active1.fields["name"] || E.fields["id"] == active1.fields["id"]))
- active2 = E
- screen = 3
+ if ((E.fields["name"] == R.fields["name"] || E.fields["id"] == R.fields["id"]))
+ var/temptext = E.fields["name"] + " " + E.fields["id"] + " " + R.fields["fingerprint"]
+ if(findtext(temptext,t1))
+ PerpGen[PerpGen.len] = E
+ PerpSec[PerpSec.len] = R
+ PerpGen.len += 1
+ PerpSec.len += 1
+ screen = 4
if("Record Maintenance")
screen = 2
@@ -289,6 +335,32 @@ What a mess.*/
data_core.general += G
active1 = G
active2 = null
+
+ if("New Record (Complete)")
+ var/datum/data/record/G = new /datum/data/record()
+ G.fields["name"] = "New Record"
+ G.fields["id"] = text("[]", add_zero(num2hex(rand(1, 1.6777215E7)), 6))
+ G.fields["rank"] = "Unassigned"
+ G.fields["sex"] = "Male"
+ G.fields["age"] = "Unknown"
+ G.fields["fingerprint"] = "Unknown"
+ G.fields["p_stat"] = "Active"
+ G.fields["m_stat"] = "Stable"
+ data_core.general += G
+ active1 = G
+ var/datum/data/record/R = new /datum/data/record()
+ R.fields["name"] = active1.fields["name"]
+ R.fields["id"] = active1.fields["id"]
+ R.name = text("Security Record #[]", R.fields["id"])
+ R.fields["criminal"] = "None"
+ R.fields["mi_crim"] = "None"
+ R.fields["mi_crim_d"] = "No minor crime convictions."
+ R.fields["ma_crim"] = "None"
+ R.fields["ma_crim_d"] = "No major crime convictions."
+ R.fields["notes"] = "No notes."
+ data_core.security += R
+ active2 = R
+
//FIELD FUNCTIONS
if ("Edit Field")
var/a1 = active1