Converted Major and Minor Crimes into Lists.

This commit is contained in:
Rockdtben
2014-06-07 21:00:31 -05:00
parent e28986274a
commit 1fcd5d3ad7
2 changed files with 159 additions and 32 deletions

View File

@@ -6,6 +6,7 @@
var/general[] = list() var/general[] = list()
var/security[] = list() var/security[] = list()
var/securityPrintCount = 0 var/securityPrintCount = 0
var/securityCrimeCounter = 0
//This list tracks characters spawned in the world and cannot be modified in-game. Currently referenced by respawn_character(). //This list tracks characters spawned in the world and cannot be modified in-game. Currently referenced by respawn_character().
var/locked[] = list() var/locked[] = list()
@@ -16,6 +17,55 @@
name = "record" name = "record"
var/list/fields = list() var/list/fields = list()
/datum/data/crime
name = "crime"
var/crimeName = ""
var/crimeDetails = ""
var/author = ""
var/time = ""
var/dataId = 0
/obj/effect/datacore/proc/createCrimeEntry(cname = "", cdetails = "", author = "", time = "")
var/datum/data/crime/c = new /datum/data/crime
c.crimeName = cname
c.crimeDetails = cdetails
c.author = author
c.time = time
c.dataId = ++securityCrimeCounter
return c
/obj/effect/datacore/proc/addMinorCrime(id = "", var/datum/data/crime/crime)
for(var/datum/data/record/R in security)
if(R.fields["id"] == id)
var/list/crimes = R.fields["mi_crim"]
crimes |= crime
return
/obj/effect/datacore/proc/removeMinorCrime(id, cDataId)
for(var/datum/data/record/R in security)
if(R.fields["id"] == id)
var/list/crimes = R.fields["mi_crim"]
for(var/datum/data/crime/crime in crimes)
if(crime.dataId == text2num(cDataId))
crimes -= crime
return
/obj/effect/datacore/proc/removeMajorCrime(id, cDataId)
for(var/datum/data/record/R in security)
if(R.fields["id"] == id)
var/list/crimes = R.fields["ma_crim"]
for(var/datum/data/crime/crime in crimes)
if(crime.dataId == text2num(cDataId))
crimes -= crime
return
/obj/effect/datacore/proc/addMajorCrime(id = "", var/datum/data/crime/crime)
for(var/datum/data/record/R in security)
if(R.fields["id"] == id)
var/list/crimes = R.fields["ma_crim"]
crimes |= crime
return
/obj/effect/datacore/proc/manifest(var/nosleep = 0) /obj/effect/datacore/proc/manifest(var/nosleep = 0)
spawn() spawn()
if(!nosleep) if(!nosleep)
@@ -77,10 +127,8 @@ var/record_id_num = 1001
S.fields["id"] = id S.fields["id"] = id
S.fields["name"] = H.real_name S.fields["name"] = H.real_name
S.fields["criminal"] = "None" S.fields["criminal"] = "None"
S.fields["mi_crim"] = "None" S.fields["mi_crim"] = list()
S.fields["mi_crim_d"] = "No minor crime convictions." S.fields["ma_crim"] = list()
S.fields["ma_crim"] = "None"
S.fields["ma_crim_d"] = "No major crime convictions."
S.fields["notes"] = "No notes." S.fields["notes"] = "No notes."
security += S security += S

View File

@@ -106,7 +106,49 @@
else else
dat += "<B>General Record Lost!</B><BR>" dat += "<B>General Record Lost!</B><BR>"
if ((istype(active2, /datum/data/record) && data_core.security.Find(active2))) if ((istype(active2, /datum/data/record) && data_core.security.Find(active2)))
dat += text("<BR>\n<CENTER><B>Security Data</B></CENTER><BR>\nCriminal Status: <A href='?src=\ref[];choice=Edit Field;field=criminal'>[]</A><BR>\n<BR>\nMinor Crimes: <A href='?src=\ref[];choice=Edit Field;field=mi_crim'>[]</A><BR>\nDetails: <A href='?src=\ref[];choice=Edit Field;field=mi_crim_d'>[]</A><BR>\n<BR>\nMajor Crimes: <A href='?src=\ref[];choice=Edit Field;field=ma_crim'>[]</A><BR>\nDetails: <A href='?src=\ref[];choice=Edit Field;field=ma_crim_d'>[]</A><BR>\n<BR>\nImportant Notes:<BR>\n\t<A href='?src=\ref[];choice=Edit Field;field=notes'>[]</A><BR>\n<BR>\n<CENTER><B>Comments/Log</B></CENTER><BR>", src, active2.fields["criminal"], src, active2.fields["mi_crim"], src, active2.fields["mi_crim_d"], src, active2.fields["ma_crim"], src, active2.fields["ma_crim_d"], src, active2.fields["notes"]) dat += text("<BR>\n<CENTER><B>Security Data</B></CENTER><BR>\nCriminal Status: <A href='?src=\ref[];choice=Edit Field;field=criminal'>[]</A>",src, active2.fields["criminal"])
dat += text("<BR>\n<BR>\nMinor Crimes: <A href='?src=\ref[];choice=Edit Field;field=mi_crim_add'>Add New</A>", src)
dat +={"<table style="text-align:center;" border="1" cellspacing="0" width="100%">
<tr>
<th>Crime</th>
<th>Details</th>
<th>Author</th>
<th>Time Added</th>
<th>Del</th>
</tr>"}
for(var/datum/data/crime/c in active2.fields["mi_crim"])
dat += "<tr><td>[c.crimeName]</td>"
dat += "<td>[c.crimeDetails]</td>"
dat += "<td>[c.author]</td>"
dat += "<td>[c.time]</td>"
dat += "<td><A href='?src=\ref[src];choice=Edit Field;field=mi_crim_delete;cdataid=[c.dataId]'>\[X\]</A></td>"
dat += "</tr>"
dat += "</table>"
dat += text("<BR>\n<BR>\nMajor Crimes: <A href='?src=\ref[];choice=Edit Field;field=ma_crim_add'>Add New</A>", src)
dat +={"<table style="text-align:center;" border="1" cellspacing="0" width="100%">
<tr>
<th>Crime</th>
<th>Details</th>
<th>Author</th>
<th>Time Added</th>
<th>Del</th>
</tr>"}
for(var/datum/data/crime/c in active2.fields["ma_crim"])
dat += "<tr><td>[c.crimeName]</td>"
dat += "<td>[c.crimeDetails]</td>"
dat += "<td>[c.author]</td>"
dat += "<td>[c.time]</td>"
dat += "<td><A href='?src=\ref[src];choice=Edit Field;field=ma_crim_delete;cdataid=[c.dataId]'>\[X\]</A></td>"
dat += "</tr>"
dat += "</table>"
dat += text("<BR>\n<BR>\nImportant Notes:<BR>\n\t<A href='?src=\ref[];choice=Edit Field;field=notes'>[]</A>", src, active2.fields["notes"])
dat += text("<BR>\n<BR>\n<CENTER><B>Comments/Log</B></CENTER><BR>")
var/counter = 1 var/counter = 1
while(active2.fields[text("com_[]", counter)]) while(active2.fields[text("com_[]", counter)])
dat += text("[]<BR><A href='?src=\ref[];choice=Delete Entry;del_c=[]'>Delete Entry</A><BR><BR>", active2.fields[text("com_[]", counter)], src, counter) dat += text("[]<BR><A href='?src=\ref[];choice=Delete Entry;del_c=[]'>Delete Entry</A><BR><BR>", active2.fields[text("com_[]", counter)], src, counter)
@@ -316,7 +358,42 @@ What a mess.*/
else else
P.info += "<B>General Record Lost!</B><BR>" P.info += "<B>General Record Lost!</B><BR>"
if ((istype(active2, /datum/data/record) && data_core.security.Find(active2))) if ((istype(active2, /datum/data/record) && data_core.security.Find(active2)))
P.info += text("<BR>\n<CENTER><B>Security Data</B></CENTER><BR>\nCriminal Status: []<BR>\n<BR>\nMinor Crimes: []<BR>\nDetails: []<BR>\n<BR>\nMajor Crimes: []<BR>\nDetails: []<BR>\n<BR>\nImportant Notes:<BR>\n\t[]<BR>\n<BR>\n<CENTER><B>Comments/Log</B></CENTER><BR>", active2.fields["criminal"], active2.fields["mi_crim"], active2.fields["mi_crim_d"], active2.fields["ma_crim"], active2.fields["ma_crim_d"], active2.fields["notes"]) P.info += text("<BR>\n<CENTER><B>Security Data</B></CENTER><BR>\nCriminal Status: []", active2.fields["criminal"])
P.info += "<BR>\n<BR>\nMinor Crimes:<BR>\n"
P.info +={"<table style="text-align:center;" border="1" cellspacing="0" width="100%">
<tr>
<th>Crime</th>
<th>Details</th>
<th>Author</th>
<th>Time Added</th>
</tr>"}
for(var/datum/data/crime/c in active2.fields["mi_crim"])
P.info += "<tr><td>[c.crimeName]</td>"
P.info += "<td>[c.crimeDetails]</td>"
P.info += "<td>[c.author]</td>"
P.info += "<td>[c.time]</td>"
P.info += "</tr>"
P.info += "</table>"
P.info += "<BR>\nMajor Crimes: <BR>\n"
P.info +={"<table style="text-align:center;" border="1" cellspacing="0" width="100%">
<tr>
<th>Crime</th>
<th>Details</th>
<th>Author</th>
<th>Time Added</th>
</tr>"}
for(var/datum/data/crime/c in active2.fields["ma_crim"])
P.info += "<tr><td>[c.crimeName]</td>"
P.info += "<td>[c.crimeDetails]</td>"
P.info += "<td>[c.author]</td>"
P.info += "<td>[c.time]</td>"
P.info += "</tr>"
P.info += "</table>"
P.info += text("<BR>\nImportant Notes:<BR>\n\t[]<BR>\n<BR>\n<CENTER><B>Comments/Log</B></CENTER><BR>", active2.fields["notes"])
var/counter = 1 var/counter = 1
while(active2.fields[text("com_[]", counter)]) while(active2.fields[text("com_[]", counter)])
P.info += text("[]<BR>", active2.fields[text("com_[]", counter)]) P.info += text("[]<BR>", active2.fields[text("com_[]", counter)])
@@ -373,10 +450,8 @@ What a mess.*/
R.fields["id"] = active1.fields["id"] R.fields["id"] = active1.fields["id"]
R.name = text("Security Record #[]", R.fields["id"]) R.name = text("Security Record #[]", R.fields["id"])
R.fields["criminal"] = "None" R.fields["criminal"] = "None"
R.fields["mi_crim"] = "None" R.fields["mi_crim"] = list()
R.fields["mi_crim_d"] = "No minor crime convictions." R.fields["ma_crim"] = list()
R.fields["ma_crim"] = "None"
R.fields["ma_crim_d"] = "No major crime convictions."
R.fields["notes"] = "No notes." R.fields["notes"] = "No notes."
data_core.security += R data_core.security += R
active2 = R active2 = R
@@ -431,30 +506,34 @@ What a mess.*/
if ((!( t1 ) || !( authenticated ) || usr.stat || usr.restrained() || (!in_range(src, usr) && (!istype(usr, /mob/living/silicon))) || active1 != a1)) if ((!( t1 ) || !( authenticated ) || usr.stat || usr.restrained() || (!in_range(src, usr) && (!istype(usr, /mob/living/silicon))) || active1 != a1))
return return
active1.fields["age"] = t1 active1.fields["age"] = t1
if("mi_crim") if("mi_crim_add")
if (istype(active2, /datum/data/record)) if (istype(active1, /datum/data/record))
var/t1 = copytext(sanitize(input("Please input minor crimes list:", "Secure. records", active2.fields["mi_crim"], null) as text),1,MAX_MESSAGE_LEN) var/t1 = copytext(sanitize(input("Please input minor crime names:", "Secure. records", "", null) as text),1,MAX_MESSAGE_LEN)
if ((!( t1 ) || !( authenticated ) || usr.stat || usr.restrained() || (!in_range(src, usr) && (!istype(usr, /mob/living/silicon))) || active2 != a2)) var/t2 = copytext(sanitize(input("Please input minor crime details:", "Secure. records", "", null) as message),1,MAX_MESSAGE_LEN)
if ((!( t1 ) || !( t2 ) || !( authenticated ) || usr.stat || usr.restrained() || (!in_range(src, usr) && (!istype(usr, /mob/living/silicon))) || active2 != a2))
return return
active2.fields["mi_crim"] = t1 var/crime = data_core.createCrimeEntry(t1, t2, scan.registered_name ? scan.registered_name : "Unknown", worldtime2text())
if("mi_crim_d") data_core.addMinorCrime(active1.fields["id"], crime)
if (istype(active2, /datum/data/record)) if("mi_crim_delete")
var/t1 = copytext(sanitize(input("Please summarize minor crimes:", "Secure. records", active2.fields["mi_crim_d"], null) as message),1,MAX_MESSAGE_LEN) if (istype(active1, /datum/data/record))
if ((!( t1 ) || !( authenticated ) || usr.stat || usr.restrained() || (!in_range(src, usr) && (!istype(usr, /mob/living/silicon))) || active2 != a2)) if (href_list["cdataid"])
if ((!( authenticated ) || usr.stat || usr.restrained() || (!in_range(src, usr) && (!istype(usr, /mob/living/silicon))) || active2 != a2))
return return
active2.fields["mi_crim_d"] = t1 data_core.removeMinorCrime(active1.fields["id"], href_list["cdataid"])
if("ma_crim") if("ma_crim_add")
if (istype(active2, /datum/data/record)) if (istype(active1, /datum/data/record))
var/t1 = copytext(sanitize(input("Please input major crimes list:", "Secure. records", active2.fields["ma_crim"], null) as text),1,MAX_MESSAGE_LEN) var/t1 = copytext(sanitize(input("Please input major crime names:", "Secure. records", "", null) as text),1,MAX_MESSAGE_LEN)
if ((!( t1 ) || !( authenticated ) || usr.stat || usr.restrained() || (!in_range(src, usr) && (!istype(usr, /mob/living/silicon))) || active2 != a2)) var/t2 = copytext(sanitize(input("Please input major crime details:", "Secure. records", "", null) as message),1,MAX_MESSAGE_LEN)
if ((!( t1 ) || !( t2 ) || !( authenticated ) || usr.stat || usr.restrained() || (!in_range(src, usr) && (!istype(usr, /mob/living/silicon))) || active2 != a2))
return return
active2.fields["ma_crim"] = t1 var/crime = data_core.createCrimeEntry(t1, t2, scan.registered_name ? scan.registered_name : "Unknown", worldtime2text())
if("ma_crim_d") data_core.addMajorCrime(active1.fields["id"], crime)
if (istype(active2, /datum/data/record)) if("ma_crim_delete")
var/t1 = copytext(sanitize(input("Please summarize major crimes:", "Secure. records", active2.fields["ma_crim_d"], null) as message),1,MAX_MESSAGE_LEN) if (istype(active1, /datum/data/record))
if ((!( t1 ) || !( authenticated ) || usr.stat || usr.restrained() || (!in_range(src, usr) && (!istype(usr, /mob/living/silicon))) || active2 != a2)) if (href_list["cdataid"])
if ((!( authenticated ) || usr.stat || usr.restrained() || (!in_range(src, usr) && (!istype(usr, /mob/living/silicon))) || active2 != a2))
return return
active2.fields["ma_crim_d"] = t1 data_core.removeMajorCrime(active1.fields["id"], href_list["cdataid"])
if("notes") if("notes")
if (istype(active2, /datum/data/record)) if (istype(active2, /datum/data/record))
var/t1 = copytext(sanitize(input("Please summarize notes:", "Secure. records", active2.fields["notes"], null) as message),1,MAX_MESSAGE_LEN) var/t1 = copytext(sanitize(input("Please summarize notes:", "Secure. records", active2.fields["notes"], null) as message),1,MAX_MESSAGE_LEN)