diff --git a/code/game/objects/structures/crates_lockers/closets/secure/personal.dm b/code/game/objects/structures/crates_lockers/closets/secure/personal.dm index eaeba38e43f..3abf6d61d3b 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/personal.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/personal.dm @@ -95,3 +95,25 @@ else user << "\red Access Denied" return + +/obj/structure/closet/secure_closet/personal/verb/reset() + set src in oview(1) // One square distance + set category = "Object" + set name = "Reset Lock" + if(!usr.canmove || usr.stat || usr.restrained()) // Don't use it if you're not able to! Checks for stuns, ghost and restrain + return + if(ishuman(usr)) + src.add_fingerprint(usr) + if (src.locked || !src.registered_name) + usr << "\red You need to unlock it first." + else if (src.broken) + usr << "\red It appears to be broken." + else + if (src.opened) + if(!src.close()) + return + src.locked = 1 + src.icon_state = src.icon_locked + src.registered_name = null + src.desc = "It's a secure locker for personnel. The first card swiped gains control." + return \ No newline at end of file diff --git a/code/modules/paperwork/filingcabinet.dm b/code/modules/paperwork/filingcabinet.dm index aeb6851145e..1dd51443fb4 100644 --- a/code/modules/paperwork/filingcabinet.dm +++ b/code/modules/paperwork/filingcabinet.dm @@ -121,7 +121,7 @@ P.info += "[S.fields["com_[counter]"]]
" counter++ P.info += "" - P.name = "paper - '[G.fields["name"]]'" + P.name = "Security Record ([G.fields["name"]])" virgin = 0 //tabbing here is correct- it's possible for people to try and use it //before the records have been generated, so we do this inside the loop. ..() @@ -157,7 +157,7 @@ P.info += "[M.fields["com_[counter]"]]
" counter++ P.info += "" - P.name = "paper - '[G.fields["name"]]'" + P.name = "Medical Record ([G.fields["name"]])" virgin = 0 //tabbing here is correct- it's possible for people to try and use it //before the records have been generated, so we do this inside the loop. ..() diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 4fec2ee842a..7e16c426dbb 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -316,25 +316,45 @@ clown = 1 if(istype(P, /obj/item/weapon/paper) || istype(P, /obj/item/weapon/photo)) + if (istype(P, /obj/item/weapon/paper/carbon)) + var/obj/item/weapon/paper/carbon/C = P + if (!C.iscopy && !C.copied) + user << "Take off the carbon copy first." + add_fingerprint(user) + return var/obj/item/weapon/paper_bundle/B = new(src.loc) if (name != "paper") B.name = name else if (P.name != "paper" && P.name != "photo") B.name = P.name user.drop_from_inventory(P) - if (user.r_hand == src) - user.drop_from_inventory(src) - B.loc = user - user.r_hand = B - B.layer = 20 - else if (user.l_hand == src) - user.drop_from_inventory(src) - B.loc = user - user.l_hand = B - B.layer = 20 - if(istype(user,/mob/living/carbon/human)) - user:update_inv_l_hand() - user:update_inv_r_hand() + if (istype(user, /mob/living/carbon/human)) + var/mob/living/carbon/human/h_user = user + if (h_user.r_hand == src) + h_user.drop_from_inventory(src) + h_user.put_in_r_hand(B) + else if (h_user.l_hand == src) + h_user.drop_from_inventory(src) + h_user.put_in_l_hand(B) + else if (h_user.l_store == src) + h_user.drop_from_inventory(src) + B.loc = h_user + B.layer = 20 + h_user.l_store = B + h_user.update_inv_pockets() + else if (h_user.r_store == src) + h_user.drop_from_inventory(src) + B.loc = h_user + B.layer = 20 + h_user.r_store = B + h_user.update_inv_pockets() + else if (h_user.head == src) + h_user.u_equip(src) + h_user.put_in_hands(B) + else if (!istype(src.loc, /turf)) + src.loc = get_turf(h_user) + if(h_user.client) h_user.client.screen -= src + h_user.put_in_hands(B) user << "You clip the [P.name] to [(src.name == "paper") ? "the paper" : src.name]." src.loc = B P.loc = B diff --git a/code/modules/paperwork/paper_bundle.dm b/code/modules/paperwork/paper_bundle.dm index 8ede4c9ed1b..241fd852d94 100644 --- a/code/modules/paperwork/paper_bundle.dm +++ b/code/modules/paperwork/paper_bundle.dm @@ -21,6 +21,13 @@ var/obj/item/weapon/paper/P if(istype(W, /obj/item/weapon/paper)) P = W + if (istype(P, /obj/item/weapon/paper/carbon)) + var/obj/item/weapon/paper/carbon/C = P + if (!C.iscopy && !C.copied) + user << "Take off the carbon copy first." + add_fingerprint(user) + return + amount++ if(screen == 2) screen = 1 @@ -37,9 +44,6 @@ user << "You add [(W.name == "photo") ? "the photo" : W.name] to [(src.name == "paper bundle") ? "the paper bundle" : src.name]." user.drop_from_inventory(W) W.loc = src - if(istype(user,/mob/living/carbon/human)) - user:update_inv_l_hand() - user:update_inv_r_hand() else if(istype(W, /obj/item/weapon/pen) || istype(W, /obj/item/toy/crayon)) usr << browse("", "window=[name]") //Closes the dialog @@ -103,7 +107,7 @@ /obj/item/weapon/paper_bundle/Topic(href, href_list) ..() - if((src in usr.contents) || (src.loc in usr.contents)) + if((src in usr.contents) || (istype(src.loc, /obj/item/weapon/folder) && (src.loc in usr.contents))) usr.set_machine(src) if(href_list["next_page"]) if(page == amount) @@ -125,44 +129,18 @@ playsound(src.loc, "pageturn", 50, 1) if(href_list["remove"]) var/obj/item/weapon/W = src[page] - W.loc = usr.loc - if(istype(usr,/mob/living/carbon)) - //Place the item in the user's hand if possible - if(!usr.r_hand) - W.loc = usr - usr.r_hand = W - W.layer = 20 - else if(!usr.l_hand) - W.loc = usr - usr.l_hand = W - W.layer = 20 + usr.put_in_hands(W) usr << "You remove the [W.name] from the bundle." - if(amount == 1) var/obj/item/weapon/paper/P = src[1] - P.loc = usr.loc - if (usr.r_hand == src) - usr.drop_from_inventory(src) - P.loc = usr - usr.r_hand = P - P.layer = 20 - else if (usr.l_hand == src) - usr.drop_from_inventory(src) - P.loc = usr - usr.l_hand = P - P.layer = 20 - if(istype(usr,/mob/living/carbon/human)) - usr:update_inv_l_hand() - usr:update_inv_r_hand() + usr.drop_from_inventory(src) + usr.put_in_hands(P) del(src) else if(page == amount) screen = 2 else if(page == amount+1) page-- - if(istype(usr,/mob/living/carbon/human)) - usr:update_inv_l_hand() - usr:update_inv_r_hand() amount-- update_icon() else @@ -193,10 +171,8 @@ usr << "You loosen the bundle." for(var/obj/O in src) O.loc = usr.loc + O.layer = initial(O.layer) usr.drop_from_inventory(src) - if(istype(usr,/mob/living/carbon/human)) - usr:update_inv_l_hand() - usr:update_inv_r_hand() del(src) return @@ -220,7 +196,6 @@ i++ else if(istype(O, /obj/item/weapon/photo)) var/obj/item/weapon/photo/Ph = O -// img.icon_state = "photo" img = Ph.tiny photo = 1 overlays += img diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm index 1b02d2d7eb1..2321d7587d1 100644 --- a/code/modules/paperwork/photocopier.dm +++ b/code/modules/paperwork/photocopier.dm @@ -223,14 +223,18 @@ var/obj/item/weapon/photo/p = new /obj/item/weapon/photo (src.loc) var/icon/I = icon(photocopy.icon, photocopy.icon_state) var/icon/img = icon(photocopy.img) + var/icon/tiny = icon(photocopy.tiny) if(toner > 10) //plenty of toner, go straight greyscale I.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(0,0,0)) //I'm not sure how expensive this is, but given the many limitations of photocopying, it shouldn't be an issue. img.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(0,0,0)) + tiny.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(0,0,0)) else //not much toner left, lighten the photo I.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(100,100,100)) img.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(100,100,100)) + tiny.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(100,100,100)) p.icon = I p.img = img + p.tiny = tiny p.name = photocopy.name p.desc = photocopy.desc p.scribble = photocopy.scribble diff --git a/code/modules/paperwork/photography.dm b/code/modules/paperwork/photography.dm index 00d5dc2b958..a2bfb3bf0f2 100644 --- a/code/modules/paperwork/photography.dm +++ b/code/modules/paperwork/photography.dm @@ -68,7 +68,7 @@ var/n_name = copytext(sanitize(input(usr, "What would you like to label the photo?", "Photo Labelling", null) as text), 1, MAX_NAME_LEN) //loc.loc check is for making possible renaming photos in clipboards if(( (loc == usr || (loc.loc && loc.loc == usr)) && usr.stat == 0)) - name = "photo[(n_name ? text("- '[n_name]'") : null)]" + name = "[(n_name ? text("[n_name]") : null)]" add_fingerprint(usr) return diff --git a/icons/obj/bureaucracy.dmi b/icons/obj/bureaucracy.dmi index 3c6d52748c6..b4426508926 100644 Binary files a/icons/obj/bureaucracy.dmi and b/icons/obj/bureaucracy.dmi differ