Fixes for detective work. Should fix some of the massive lag, probably caused by all those list()s that were being made for every atom. And this is why I should not code at 2AM. (A UI overhaul-ish thing will come soon for the detective computer.)

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3257 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
joe.heinemeyer@gmail.com
2012-03-06 00:01:53 +00:00
parent f89dbfd276
commit cb5a57549d
6 changed files with 45 additions and 20 deletions

View File

@@ -61,7 +61,7 @@ atom/proc/get_duplicate(var/atom/location)
if(src.original_atom)
temp_atom.original_atom = src.original_atom
else
temp_atom.original_atom = src
temp_atom.original_atom = list(src)
return temp_atom
#define FINGERPRINT_COMPLETE 6 //This is the output of the stringpercent(print) proc, and means about 80% of
@@ -407,6 +407,8 @@ obj/machinery/computer/forensic_scanning
scan_data += "-Blood type: [templist[2]]\nDNA: [templist[1]]<br><br>"
else
scan_data += "No Blood Found<br><br>"
if(!scanning.fingerprints)
scanning.fingerprints = list()
if (!length(scanning.fingerprints))
scan_data += "No Fingerprints Found<br><br>"
else
@@ -518,7 +520,8 @@ obj/machinery/computer/forensic_scanning
for(var/i = 1, i <= misc.len, i++) //Lets see if we can find it.
var/list/templist = misc[i]
var/atom/check = templist[1]
if(check.original_atom == A || check.original_atom == A.original_atom) //There it is!
var/atom_checker_scan = (A.original_atom ? check.original_atom[1] == A.original_atom[1] : 0)
if(check.original_atom[1] == A || atom_checker_scan) //There it is!
merged = 1
var/list/fibers = templist[2]
if(!fibers)
@@ -567,7 +570,8 @@ obj/machinery/computer/forensic_scanning
for(var/n = 2, n <= perp_list.len, n++) //Lets see if it is already in the database
var/list/target = perp_list[n]
var/atom/atom_checker = target[1]
if(atom_checker.original_atom == A || atom_checker.original_atom == A.original_atom) //Found the original object!
var/atom_checker_scan = (A.original_atom.len ? atom_checker.original_atom[1] == A.original_atom[1] : 0)
if(atom_checker.original_atom[1] == A || atom_checker_scan) //Found the original object!
found2 = 1
var/list/prints = target[2]
if(!prints)

View File

@@ -107,10 +107,16 @@ emp_act
location.add_blood(src)
if(ishuman(user))
var/mob/living/carbon/human/H = user
if(H.gloves) H.gloves.add_blood(src)
else H.add_blood(src)
if(H.wear_suit) H.wear_suit.add_blood(src)
else if(H.w_uniform) H.w_uniform.add_blood(src)
if (H.gloves)
H.gloves.add_blood(H)
H.gloves.transfer_blood = 2
H.gloves.bloody_hands_mob = H
else
H.add_blood(H)
H.bloody_hands = 2
H.bloody_hands_mob = H
switch(hit_area)
if("head")//Harder to score a stun but if you do it lasts a bit longer