From 0dc9bc325b6ae54236eb97087e3afe0fec0ca1d1 Mon Sep 17 00:00:00 2001 From: Tastyfish Date: Sun, 12 Feb 2012 09:55:02 -0500 Subject: [PATCH] upgraded medical console to be like sec console --- code/defines/obj/computer.dm | 2 + code/game/machinery/computer/medical.dm | 178 ++++++++++++++++-------- 2 files changed, 122 insertions(+), 58 deletions(-) diff --git a/code/defines/obj/computer.dm b/code/defines/obj/computer.dm index a7a588842a0..23148356dd7 100644 --- a/code/defines/obj/computer.dm +++ b/code/defines/obj/computer.dm @@ -125,6 +125,8 @@ var/a_id = null var/temp = null var/printing = null + var/list/Perp + var/tempname = null /obj/machinery/computer/med_data/laptop diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index d490f45f4ba..3c200f6158a 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -21,6 +21,7 @@ if(..()) return var/dat + if (src.temp) dat = text("[src.temp]

Clear Screen") else @@ -28,23 +29,94 @@ if (src.authenticated) switch(src.screen) if(1.0) + dat += "

" + dat += text("Search Records
", src) dat += {" -Search Records -
List Records -
Search DNA -
-
Virus Database -
Medbot Tracking -
-
Record Maintenance -
{Log Out}
-"} - if(2.0) - dat += "Record List:


" +

+ + + + +
Records:
+ + + + + + + + + "} for(var/datum/data/record/R in data_core.general) - dat += text("[]: []
", src, R, R.fields["id"], R.fields["name"]) - //Foreach goto(132) - dat += text("
Back", src) + var/physstat = R.fields["p_stat"] + var/background + switch(physstat) + if("*Deceased*") + background = "'background-color:#CD853F;'" + if("*Unconscious*") + background = "'background-color:#DC143C;'" + if("Physically Unfit") + background = "'background-color:#3BB9FF;'" + if("Active") + background = "'background-color:#00FF7F;'" + if("") + background = "'background-color:#FFFFFF;'" + physstat = "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("", physstat) + dat += text("", R.fields["m_stat"]) + dat += "
NameIDRankFingerprintsPhysical StatusMental Status
[][][][][][]

" + dat += "Virus Database
" + dat += "Medbot Tracking
" + dat += "Record Maintenance

" + dat += "{Log Out}" + if(2.0) + if(!Perp.len) + dat += text("ERROR. String could not be located.

Back", src) + else + dat += {" + + "} + dat += text("", tempname) + dat += {" + +
Search Results for '[]':
+ + + + + + + + + "} + for(var/i=1, i<=Perp.len, i += 2) + var/datum/data/record/R = Perp[i] + var/physstat = R.fields["p_stat"] + var/background + switch(physstat) + if("*Deceased*") + background = "'background-color:#CD853F;'" + if("*Unconscious*") + background = "'background-color:#DC143C;'" + if("Physically Unfit") + background = "'background-color:#3BB9FF;'" + if("Active") + background = "'background-color:#00FF7F;'" + if("") + background = "'background-color:#FFFFFF;'" + physstat = "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("", physstat) + dat += text("", R.fields["m_stat"]) + dat += "
NameIDRankFingerprintsPhysical StatusMental Status
[][][][][][]

" + dat += text("
Return to index.", src) if(3.0) dat += "Records Maintenance
" if(disk) @@ -81,19 +153,18 @@ else dat += "Medical Record Lost!
" dat += text("New Record

") - dat += text("\nPrint Record
\nBack
", src, src) + dat += text("\nPrint Record
\nBack
", src, src) if(5.0) - dat += "
Virus Database
" + dat += "Virus Database
" for(var/Dt in typesof(/datum/disease/)) var/datum/disease/Dis = new Dt(0) if(!Dis.desc) continue - dat += "
[Dis.name]" + dat += "[Dis.name]
" dat += "
Back" if(6.0) - dat += "
Medical Robot Monitor
" - dat += "Back" - dat += "
Medical Robots:" + dat += "Medical Robot Monitor
" + dat += "Medical Robots:
" var/bdat = null for(var/obj/machinery/bot/medbot/M in world) var/turf/bl = get_turf(M) @@ -104,14 +175,16 @@ bdat += "Using Internal Synthesizer.
" if(!bdat) - dat += "
None detected
" + dat += "None detected

" else - dat += "
[bdat]" + dat += "[bdat]
" + + dat += "Back" else else dat += text("{Log In}", src) - user << browse(text("Medical Records[]", dat), "window=med_rec") + user << browse(text("Medical Records[]", dat), "window=med_rec;size=600x400") onclose(user, "med_rec") return @@ -309,7 +382,7 @@ if("watch") src.active1.fields["m_stat"] = "*Watch*" if("stable") - src.active2.fields["m_stat"] = "Stable" + src.active1.fields["m_stat"] = "Stable" if (href_list["b_type"]) @@ -395,26 +468,33 @@ src.active2.fields[text("com_[]", href_list["del_c"])] = "Deleted" if (href_list["search"]) - var/t1 = input("Search String: (Name or ID)", "Med. records", null, null) as text + var/t1 = input("Search String: (Partial Name or ID or Fingerprints or DNA or Rank)", "Med. records", null, null) as text if ((!( t1 ) || usr.stat || !( src.authenticated ) || usr.restrained() || ((!in_range(src, usr)) && (!istype(usr, /mob/living/silicon))))) return - src.active1 = null - src.active2 = null + Perp = new/list() t1 = lowertext(t1) + var/list/components = dd_text2list(t1, " ") + if(components.len > 5) + return //Lets not let them search too greedily. for(var/datum/data/record/R in data_core.general) - if ((lowertext(R.fields["name"]) == t1 || t1 == lowertext(R.fields["id"]))) - src.active1 = R - else - //Foreach continue //goto(3229) - if (!( src.active1 )) - src.temp = text("Could not locate record [].", t1) - else + var/temptext = R.fields["name"] + " " + R.fields["id"] + " " + R.fields["fingerprint"] + " " + R.fields["rank"] + for(var/datum/data/record/E in data_core.medical) - if ((E.fields["name"] == src.active1.fields["name"] || E.fields["id"] == src.active1.fields["id"])) - src.active2 = E - else - //Foreach continue //goto(3334) - src.screen = 4 + if ((E.fields["name"] == R.fields["name"] || E.fields["id"] == R.fields["id"])) + temptext += " " + E.fields["b_dna"] + + for(var/i = 1, i<=components.len, i++) + if(findtext(temptext,components[i])) + var/prelist = new/list(2) + prelist[1] = R + Perp += prelist + for(var/i = 1, i<=Perp.len, i+=2) + for(var/datum/data/record/E in data_core.medical) + var/datum/data/record/R = Perp[i] + if ((E.fields["name"] == R.fields["name"] && E.fields["id"] == R.fields["id"])) + Perp[i+1] = E + tempname = t1 + src.screen = 2 if (href_list["print_p"]) if (!( src.printing )) @@ -437,24 +517,6 @@ P.info += "" P.name = "paper - 'Medical Record'" src.printing = null - - if (href_list["search_dna"]) - var/t1 = input("Search String: (DNA)", "Medical records", null, null) as text - if ((!( t1 ) || usr.stat || !( authenticated ) || usr.restrained() || (!in_range(src, usr)) && (!istype(usr, /mob/living/silicon)))) - return - active1 = null - active2 = null - t1 = lowertext(t1) - for(var/datum/data/record/R in data_core.medical) - if (lowertext(R.fields["b_dna"]) == t1) - active2 = R - if (!( active2 )) - temp = text("Could not locate record [].", t1) - else - for(var/datum/data/record/E in data_core.general) - if ((E.fields["name"] == active2.fields["name"] || E.fields["id"] == active2.fields["id"])) - active1 = E - screen = 4 if (href_list["eject_disk"]) if (!disk) return