diff --git a/code/game/objects/items/weapons/cameras.dm b/code/game/objects/items/weapons/cameras.dm
index 69c48c6795e..b3cca864862 100644
--- a/code/game/objects/items/weapons/cameras.dm
+++ b/code/game/objects/items/weapons/cameras.dm
@@ -81,7 +81,7 @@
scribble = txt
..()
-
+z
/obj/item/weapon/photo/examine()
set src in oview(2)
..()
@@ -103,7 +103,8 @@
var/n_name = input(usr, "What would you like to label the photo?", "Photo Labelling", src.name) as text
n_name = copytext(n_name, 1, 32)
- if ((loc == usr && usr.stat == 0))
+ //loc.loc check is for making possible renaming photos in clipboards
+ if (( (src.loc == usr || (src.loc.loc && src.loc.loc == usr)) && usr.stat == 0))
name = "photo[(n_name ? text("- '[n_name]'") : null)]"
add_fingerprint(usr)
return
diff --git a/code/game/objects/items/weapons/papers_bins.dm b/code/game/objects/items/weapons/papers_bins.dm
index 5d02bc0ae39..6979ab75d05 100644
--- a/code/game/objects/items/weapons/papers_bins.dm
+++ b/code/game/objects/items/weapons/papers_bins.dm
@@ -101,7 +101,8 @@ NOTEBOOK
return
var/n_name = input(usr, "What would you like to label the paper?", "Paper Labelling", null) as text
n_name = copytext(n_name, 1, 32)
- if ((src.loc == usr && usr.stat == 0))
+ //loc.loc check is for making possible renaming papers in clipboards
+ if ((src.loc == usr || (src.loc.loc && src.loc.loc == usr) && usr.stat == 0))
src.name = n_name && n_name != "" ? n_name : "Untitled paper"
src.add_fingerprint(usr)
return
@@ -633,8 +634,24 @@ NOTEBOOK
var/dat = "Clipboard
"
if (src.pen)
dat += text("Remove Pen
", src)
- for(var/obj/item/weapon/paper/P in src)
- dat += text("[] Write Remove
", src, P, P.name, src, P, src, P)
+ dat += ""
+ for(var/obj/item/weapon/W in src)
+ dat += ""
+ if (istype(W, /obj/item/weapon/paper))
+ var/obj/item/weapon/paper/P = W
+ dat += text("| [] | \
+ Write | \
+ Rename | \
+ Remove
| ", \
+ src, P, P.name, src, P, src, P, src, P)
+ if (istype(W, /obj/item/weapon/photo))
+ var/obj/item/weapon/photo/P = W
+ dat += text("[] | \
+ Rename | \
+ Remove
| " \
+ , src, P, P.name, src, P, src, P)
+ dat += "
"
+ dat += "
"
user << browse(dat, "window=clipboard")
onclose(user, "clipboard")
return
@@ -679,6 +696,16 @@ NOTEBOOK
usr.update_clothing()
P.add_fingerprint(usr)
src.add_fingerprint(usr)
+ if (href_list["rname"])
+ var/obj/item/I = locate(href_list["rname"])
+ if ((I && I.loc == src))
+ if (istype(I, /obj/item/weapon/paper))
+ var/obj/item/weapon/paper/P = I
+ P.rename()
+ if (istype(I, /obj/item/weapon/photo))
+ var/obj/item/weapon/photo/P = I
+ P.rename()
+ src.add_fingerprint(usr)
if (href_list["write"])
var/obj/item/P = locate(href_list["write"])
if ((P && P.loc == src))
@@ -692,13 +719,25 @@ NOTEBOOK
P.attackby(src.pen, usr)
src.add_fingerprint(usr)
if (href_list["read"])
- var/obj/item/weapon/paper/P = locate(href_list["read"])
- if ((P && P.loc == src))
- if (!( istype(usr, /mob/living/carbon/human) ))
- usr << browse(text("[][]", P.name, stars(P.info)), text("window=[]", P.name))
- onclose(usr, "[P.name]")
- else
- usr << browse(text("[][]", P.name, P.info), text("window=[]", P.name))
+ var/obj/item/I = locate(href_list["read"])
+ if ((I && I.loc == src))
+ if (istype(I, /obj/item/weapon/paper))
+ var/obj/item/weapon/paper/P = I
+ if (!( istype(usr, /mob/living/carbon/human) ))
+ usr << browse(text("[][]", P.name, stars(P.info)), text("window=[]", P.name))
+ onclose(usr, "[P.name]")
+ else
+ var/t = dd_replacetext(P.info, "\n", "
")
+ usr << browse(text("[][]", P.name, t), text("window=[]", P.name))
+ onclose(usr, "[P.name]")
+ if (istype(I, /obj/item/weapon/photo))
+ var/obj/item/weapon/photo/P = I
+ usr << browse_rsc(P.img, "tmp_photo.png")
+ usr << browse("Photo" \
+ + "" \
+ + " 
Writings on the back:
[P.scribble]" : ]"\
+ + "", "window=book;size=200x[P.scribble ? 400 : 200]")
onclose(usr, "[P.name]")
if (ismob(src.loc))
var/mob/M = src.loc
@@ -733,7 +772,7 @@ NOTEBOOK
/obj/item/weapon/clipboard/attackby(obj/item/weapon/P as obj, mob/user as mob)
..()
- if (istype(P, /obj/item/weapon/paper))
+ if (istype(P, /obj/item/weapon/paper) || istype(P, /obj/item/weapon/photo))
if (src.contents.len < 15)
user.drop_item()
P.loc = src