diff --git a/code/game/objects/structures/noticeboard.dm b/code/game/objects/structures/noticeboard.dm index a5ad84c20e..3647d565f7 100644 --- a/code/game/objects/structures/noticeboard.dm +++ b/code/game/objects/structures/noticeboard.dm @@ -21,7 +21,7 @@ if(notices < 5) O.add_fingerprint(user) add_fingerprint(user) - user.drop_item() + user.drop_from_inventory(O) O.loc = src notices++ icon_state = "nboard0[notices]" //update sprite @@ -29,13 +29,22 @@ else user << "You reach to pin your paper to the board but hesitate. You are certain your paper will not be seen among the many others already attached." -/obj/structure/noticeboard/attack_hand(user as mob) - var/dat = "Noticeboard
" - for(var/obj/item/weapon/paper/P in src) - dat += "[P.name] Write Remove
" - user << browse("Notices[dat]","window=noticeboard") - onclose(user, "noticeboard") +/obj/structure/noticeboard/attack_hand(var/mob/user) + examine(user) +// Since Topic() never seems to interact with usr on more than a superficial +// level, it should be fine to let anyone mess with the board other than ghosts. +/obj/structure/noticeboard/examine(var/mob/user) + if(!user) + user = usr + if(user.Adjacent(src)) + var/dat = "Noticeboard
" + for(var/obj/item/weapon/paper/P in src) + dat += "[P.name] Write Remove
" + user << browse("Notices[dat]","window=noticeboard") + onclose(user, "noticeboard") + else + ..() /obj/structure/noticeboard/Topic(href, href_list) ..() @@ -44,18 +53,16 @@ if((usr.stat || usr.restrained())) //For when a player is handcuffed while they have the notice window open return var/obj/item/P = locate(href_list["remove"]) - if((P && P.loc == src)) + if(P && P.loc == src) P.loc = get_turf(src) //dump paper on the floor because you're a clumsy fuck P.add_fingerprint(usr) add_fingerprint(usr) notices-- icon_state = "nboard0[notices]" - if(href_list["write"]) if((usr.stat || usr.restrained())) //For when a player is handcuffed while they have the notice window open return var/obj/item/P = locate(href_list["write"]) - if((P && P.loc == src)) //ifthe paper's on the board if(istype(usr.r_hand, /obj/item/weapon/pen)) //and you're holding a pen add_fingerprint(usr) @@ -66,14 +73,9 @@ P.attackby(usr.l_hand, usr) else usr << "You'll need something to write with!" - 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("[P.name][stars(P.info)]", "window=[P.name]") - onclose(usr, "[P.name]") - else - usr << browse("[P.name][P.info]", "window=[P.name]") - onclose(usr, "[P.name]") + usr << browse("[P.name][P.info]", "window=[P.name]") + onclose(usr, "[P.name]") return