diff --git a/code/WorkInProgress/detective_work.dm b/code/WorkInProgress/detective_work.dm
index be5b9138830..742c0245012 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 dbcc4a4b881..0305d64ef21 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)