From b06a3c626bce36624881c1203e513a121ba6794f Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Fri, 9 Jan 2015 10:29:15 +1030 Subject: [PATCH] Redirects stamp attackby() on the clipboard to the topmost paper. --- code/modules/paperwork/clipboard.dm | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/code/modules/paperwork/clipboard.dm b/code/modules/paperwork/clipboard.dm index ca128c2c..6e35ced7 100644 --- a/code/modules/paperwork/clipboard.dm +++ b/code/modules/paperwork/clipboard.dm @@ -44,8 +44,17 @@ return /obj/item/weapon/clipboard/attackby(obj/item/weapon/W as obj, mob/user as mob) - - if(istype(W, /obj/item/weapon/paper) || istype(W, /obj/item/weapon/photo)) + + if(istype(W,/obj/item/weapon/stamp)) + if(!toppaper || !user.loc) + return + toppaper.loc = user.loc + toppaper.attackby(W,user) + if(toppaper) // Better safe than runtimes. + toppaper.loc = src + return + + else if(istype(W, /obj/item/weapon/paper) || istype(W, /obj/item/weapon/photo)) user.drop_item() W.loc = src if(istype(W, /obj/item/weapon/paper)) @@ -107,20 +116,20 @@ else if(href_list["write"]) var/obj/item/weapon/P = locate(href_list["write"]) - + if(P && (P.loc == src) && istype(P, /obj/item/weapon/paper) && (P == toppaper) ) - + var/obj/item/I = usr.get_active_hand() - + if(istype(I, /obj/item/weapon/pen)) - + P.attackby(I, usr) else if(href_list["remove"]) var/obj/item/P = locate(href_list["remove"]) - + if(P && (P.loc == src) && (istype(P, /obj/item/weapon/paper) || istype(P, /obj/item/weapon/photo)) ) - + P.loc = usr.loc usr.put_in_hands(P) if(P == toppaper) @@ -133,9 +142,9 @@ else if(href_list["read"]) var/obj/item/weapon/paper/P = locate(href_list["read"]) - + if(P && (P.loc == src) && istype(P, /obj/item/weapon/paper) ) - + if(!(istype(usr, /mob/living/carbon/human) || istype(usr, /mob/dead/observer) || istype(usr, /mob/living/silicon))) usr << browse("[P.name][stars(P.info)][P.stamps]", "window=[P.name]") onclose(usr, "[P.name]")