From 3b9efc849ee8327ec1aa7f90891198c015d5dfd9 Mon Sep 17 00:00:00 2001 From: SkyMarshal Date: Thu, 2 Feb 2012 12:22:46 -0700 Subject: [PATCH] Updates to fingerprints/bugfixes. --- code/WorkInProgress/detective_work.dm | 28 ++++++++++++------- code/game/atom_procs.dm | 40 ++++++++++++--------------- 2 files changed, 35 insertions(+), 33 deletions(-) diff --git a/code/WorkInProgress/detective_work.dm b/code/WorkInProgress/detective_work.dm index be5b913883..742c024501 100644 --- a/code/WorkInProgress/detective_work.dm +++ b/code/WorkInProgress/detective_work.dm @@ -406,7 +406,7 @@ obj/machinery/computer/forensic_scanning temp += "Object: [item_name]
" temp += "    [prints_len.len] Unique fingerprints found.
" var/list/fibers = outputs[3] - if(fibers) + if(fibers && fibers.len) var/dat = "[fibers[1]]" for(var/j = 2, j < (fibers.len + 1), j++) dat += ",
      [fibers[j]]" @@ -414,7 +414,7 @@ obj/machinery/computer/forensic_scanning else temp += "    No fibers found.
" var/list/blood = outputs[4] - if(blood) + if(blood && blood.len) var/dat = "[blood[1]]" if(blood.len > 1) for(var/j = 2, j < (blood.len + 1), j++) @@ -446,7 +446,7 @@ obj/machinery/computer/forensic_scanning P.info += "Object: [item_name]
" P.info += "    [prints_len.len] Unique fingerprints found.
" var/list/fibers = outputs[3] - if(fibers) + if(fibers && fibers.len) var/dat = "[fibers[1]]" for(var/j = 2, j < (fibers.len + 1), j++) dat += ",
      [fibers[j]]" @@ -454,7 +454,7 @@ obj/machinery/computer/forensic_scanning else P.info += "    No fibers found.
" var/list/blood = outputs[4] - if(blood) + if(blood && blood.len) var/dat = "[blood[1]]" if(blood.len > 1) for(var/j = 2, j < (blood.len + 1), j++) @@ -473,18 +473,18 @@ obj/machinery/computer/forensic_scanning var/item_name = get_name(outputs[1]) temp += "Consolidated data points: [item_name]
" var/list/fibers = outputs[2] - if(fibers) + if(fibers && fibers.len) var/dat = "[fibers[1]]" - for(var/j = 2, j < (fibers.len + 1), j++) - dat += ",
      [fibers[j]]" + for(var/j = 2, j <= fibers.len, j++) + dat += "
      [fibers[j]]" temp += "    Fibers: [dat]
" else temp += "    No fibers found." var/list/blood = outputs[3] - if(blood) + if(blood && blood.len) var/dat = "[blood[1]]" - for(var/j = 2, j < (blood.len + 1), j++) - dat += ",
      [blood[j]]" + for(var/j = 2, j <= blood.len, j++) + dat += "
      [blood[j]]" temp += "    Blood: [dat]
" else temp += "    No blood found.
" @@ -587,6 +587,14 @@ obj/machinery/computer/forensic_scanning temp = "Data Transfer Failed: No Object." updateUsrDialog() + verb/reset() + set name = "Reset Screen" + set category = "Object" + set src in oview(1) + temp = "" + add_fingerprint(usr) + return + detective icon_state = "old" name = "PowerScan Mk.I" diff --git a/code/game/atom_procs.dm b/code/game/atom_procs.dm index dbcc4a4b88..0305d64ef2 100644 --- a/code/game/atom_procs.dm +++ b/code/game/atom_procs.dm @@ -93,7 +93,7 @@ src.fingerprintshidden += text("(Wearing gloves). Real name: [], Key: []",H.real_name, H.key) src.fingerprintslast = H.key return 0 - else + if (H.dna.uni_identity || (H.gloves && prob(25) && istype(H.gloves, /obj/item/clothing/gloves/latex))) if(src.fingerprintslast != H.key) src.fingerprintshidden += text("Real name: [], Key: []",H.real_name, H.key) src.fingerprintslast = H.key @@ -101,31 +101,25 @@ var/prints for(var/i = 1, i < (src.fingerprints.len + 1), i++) var/list/L = params2list(src.fingerprints[i]) - if(L.len > 1) - if(L[num2text(1)] == md5(H.dna.uni_identity)) - new_prints = i - prints = L[num2text(2)] - break - else - var/test_print = stars(L[num2text(2)], rand(80,90)) - if(stringpercent(test_print) == 32) - if(src.fingerprints.len == 1) - src.fingerprints = list() - else - for(var/j = (i + 1), j < (src.fingerprints.len), j++) - src.fingerprints[j-1] = src.fingerprints[j] - src.fingerprints.len-- - else - src.fingerprints[i] = "1=" + L[num2text(1)] + "&2=" + test_print + if(L[num2text(1)] == md5(H.dna.uni_identity)) + new_prints = i + prints = L[num2text(2)] + break else - var/turf/T = get_turf(src) - for (var/mob/N in world) - if (N.client && N.client.holder) - N << "ERROR:Fingerprint application failed! Important data: [src.name] at [T.x], [T.y], [T.z] with the print string [L[1]]" + var/test_print = stars(L[num2text(2)], rand(80,90)) + if(stringpercent(test_print) == 32) + if(src.fingerprints.len == 1) + src.fingerprints = list() + else + for(var/j = (i + 1), j < (src.fingerprints.len), j++) + src.fingerprints[j-1] = src.fingerprints[j] + src.fingerprints.len-- + else + src.fingerprints[i] = "1=" + L[num2text(1)] + "&2=" + test_print if(new_prints) - src.fingerprints[new_prints] = text("1=[]&2=[]", md5(H.dna.uni_identity), stringmerge(prints,stars(md5(H.dna.uni_identity), rand(15,30)))) + src.fingerprints[new_prints] = text("1=[]&2=[]", md5(H.dna.uni_identity), stringmerge(prints,stars(md5(H.dna.uni_identity), H.gloves ? rand(10,20) : rand(25,40)))) else if(new_prints == 0) - src.fingerprints += text("1=[]&2=[]", md5(H.dna.uni_identity), stars(md5(H.dna.uni_identity), rand(15,30))) + src.fingerprints += text("1=[]&2=[]", md5(H.dna.uni_identity), stars(md5(H.dna.uni_identity), H.gloves ? rand(10,20) : rand(25,40))) return 1 else if(src.fingerprintslast != M.key)