From 0fe2cdab966d06f6b0058c548b1ae9c47e713eb3 Mon Sep 17 00:00:00 2001 From: SkyMarshal Date: Fri, 30 Dec 2011 09:15:04 -0700 Subject: [PATCH] Added multiple string search to security records, fixed some evidence bag bugginess, fixed problem with the stamp remover. --- code/game/machinery/computer/security.dm | 16 ++++++++++------ code/game/objects/items/weapons/papers_bins.dm | 4 +++- code/game/objects/storage/coat.dm | 2 ++ code/game/objects/storage/storage.dm | 3 +++ 4 files changed, 18 insertions(+), 7 deletions(-) diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index 8e2b81390c2..c37d2ecc2f3 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -226,17 +226,21 @@ What a mess.*/ screen = 1 //RECORD FUNCTIONS if("Search Records") - var/t1 = input("Search String: (Partial Name or ID or Fingerprints)", "Secure. records", null, null) as text + var/t1 = input("Search String: (Partial Name or ID or Fingerprints or Rank)", "Secure. records", null, null) as text if ((!( t1 ) || usr.stat || !( authenticated ) || usr.restrained() || !in_range(src, usr))) return 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) - var/temptext = R.fields["name"] + " " + R.fields["id"] + " " + R.fields["fingerprint"] - if(findtext(temptext,t1)) - var/prelist = new/list(2) - prelist[1] = R - Perp += prelist + var/temptext = R.fields["name"] + " " + R.fields["id"] + " " + R.fields["fingerprint"] + " " + R.fields["rank"] + 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.security) var/datum/data/record/R = Perp[i] diff --git a/code/game/objects/items/weapons/papers_bins.dm b/code/game/objects/items/weapons/papers_bins.dm index 9b0ff45816d..ada3c194183 100644 --- a/code/game/objects/items/weapons/papers_bins.dm +++ b/code/game/objects/items/weapons/papers_bins.dm @@ -122,7 +122,8 @@ CLIPBOARDS if(istype(P, /obj/item/weapon/stamp)) if ((!in_range(src, usr) && src.loc != user && !( istype(src.loc, /obj/item/weapon/clipboard) ) && src.loc.loc != user && user.equipped() != P)) return - src.infoold = src.info + if(!src.infoold) + src.infoold = src.info src.info += text("
This paper has been stamped with the [].
", P.name) switch(P.type) if(/obj/item/weapon/stamp/captain) @@ -153,6 +154,7 @@ CLIPBOARDS if ((!in_range(src, usr) && src.loc != user && !( istype(src.loc, /obj/item/weapon/clipboard) ) && src.loc.loc != user && user.equipped() != P)) return src.info = src.infoold + src.infoold = null for(var/i, i <= stamped.len, i++) switch(stamped[i]) if(/obj/item/weapon/stamp/captain) diff --git a/code/game/objects/storage/coat.dm b/code/game/objects/storage/coat.dm index 0034dbed9d0..208e62d0047 100644 --- a/code/game/objects/storage/coat.dm +++ b/code/game/objects/storage/coat.dm @@ -61,6 +61,8 @@ /obj/item/clothing/suit/storage/attackby(obj/item/weapon/W as obj, mob/user as mob) if(W.w_class > 2 || src.loc == W ) return + if(istype(W,/obj/item/weapon/evidencebag) && src.loc != user) + return if(src.contents.len >= 2) user << "You have nowhere to place that" return diff --git a/code/game/objects/storage/storage.dm b/code/game/objects/storage/storage.dm index 6ff6344e955..452d03da455 100644 --- a/code/game/objects/storage/storage.dm +++ b/code/game/objects/storage/storage.dm @@ -102,6 +102,9 @@ user << "\blue You're a robot. No." return //Robots can't interact with storage items. + if(istype(W,/obj/item/weapon/evidencebag) && src.loc != user) + return + if(src.loc == W) return //Means the item is already in the storage item