From 8e41751bb3a5070d37de0bbdab5d4091e6f1a732 Mon Sep 17 00:00:00 2001 From: Geeves Date: Fri, 23 Apr 2021 12:54:02 +0200 Subject: [PATCH] Written Language Fix (#11729) --- code/modules/paperwork/clipboard.dm | 11 ++--------- code/modules/paperwork/folders.dm | 7 +------ code/modules/paperwork/paper.dm | 13 +++++++++---- code/modules/paperwork/paper_bundle.dm | 12 +++++++----- html/changelogs/geeves-written_language_fix.yml | 6 ++++++ 5 files changed, 25 insertions(+), 24 deletions(-) create mode 100644 html/changelogs/geeves-written_language_fix.yml diff --git a/code/modules/paperwork/clipboard.dm b/code/modules/paperwork/clipboard.dm index 78a0bf8c1e7..15f6fa417f2 100644 --- a/code/modules/paperwork/clipboard.dm +++ b/code/modules/paperwork/clipboard.dm @@ -168,15 +168,8 @@ else if(href_list["read"]) var/obj/item/paper/P = locate(href_list["read"]) - - if(P && (P.loc == src) && istype(P, /obj/item/paper) ) - - if(!(istype(usr, /mob/living/carbon/human) || istype(usr, /mob/abstract/observer) || istype(usr, /mob/living/silicon))) - usr << browse("[P.name][stars(P.info)][P.stamps]", "window=[P.name]") - onclose(usr, "[P.name]") - else - usr << browse("[P.name][P.info][P.stamps]", "window=[P.name]") - onclose(usr, "[P.name]") + if(istype(P) && (P.loc == src)) + P.show_content(usr) else if(href_list["look"]) var/obj/item/photo/P = locate(href_list["look"]) diff --git a/code/modules/paperwork/folders.dm b/code/modules/paperwork/folders.dm index 186fbfec40f..efda7f2fdd6 100644 --- a/code/modules/paperwork/folders.dm +++ b/code/modules/paperwork/folders.dm @@ -80,12 +80,7 @@ else if(href_list["read"]) var/obj/item/paper/P = locate(href_list["read"]) if(P && (P.loc == src) && istype(P)) - if(!(istype(usr, /mob/living/carbon/human) || istype(usr, /mob/abstract/observer) || istype(usr, /mob/living/silicon))) - usr << browse("[P.name][stars(P.info)][P.stamps]", "window=[P.name]") - onclose(usr, "[P.name]") - else - usr << browse("[P.name][P.info][P.stamps]", "window=[P.name]") - onclose(usr, "[P.name]") + P.show_content(usr) else if(href_list["look"]) var/obj/item/photo/P = locate(href_list["look"]) if(P && (P.loc == src) && istype(P)) diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index cc1e484938f..3ebbafe8b60 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -102,15 +102,20 @@ /obj/item/paper/proc/show_content(mob/user, forceshow) + var/datum/browser/paper_win = new(user, name, null, 450, 500, null, TRUE) + paper_win.set_content(get_content(user, can_read(user, forceshow))) + paper_win.add_stylesheet("paper_languages", 'html/browser/paper_languages.css') + paper_win.open() + +/obj/item/paper/proc/can_read(var/mob/user, var/forceshow = FALSE) var/can_read = (istype(user, /mob/living/carbon/human) || isobserver(user) || istype(user, /mob/living/silicon)) || forceshow if(!forceshow && istype(user,/mob/living/silicon/ai)) var/mob/living/silicon/ai/AI can_read = get_dist(src, AI.camera) < 2 + return can_read - var/datum/browser/paper_win = new(user, name, null, 450, 500, null, TRUE) - paper_win.set_content("[capitalize_first_letters(name)][can_read ? parse_languages(user, info) : stars(info)][stamps]") - paper_win.add_stylesheet("paper_languages", 'html/browser/paper_languages.css') - paper_win.open() +/obj/item/paper/proc/get_content(var/mob/user, var/can_read = TRUE) + return "[capitalize_first_letters(name)][can_read ? parse_languages(user, info) : stars(info)][stamps]" /obj/item/paper/verb/rename() set name = "Rename paper" diff --git a/code/modules/paperwork/paper_bundle.dm b/code/modules/paperwork/paper_bundle.dm index fa05753fa2c..0801b8f2a64 100644 --- a/code/modules/paperwork/paper_bundle.dm +++ b/code/modules/paperwork/paper_bundle.dm @@ -120,11 +120,13 @@ if(istype(pages[page], /obj/item/paper)) var/obj/item/paper/P = W - if(!(istype(usr, /mob/living/carbon/human) || istype(usr, /mob/abstract/observer) || istype(usr, /mob/living/silicon))) - dat+= "[P.name][stars(P.info)][P.stamps]" - else - dat+= "[P.name][P.info][P.stamps]" - user << browse(dat, "window=[name]") + dat += P.get_content(user, P.can_read(user)) + + var/datum/browser/paper_win = new(user, name, null, 450, 500, null, TRUE) + paper_win.set_content(dat) + paper_win.add_stylesheet("paper_languages", 'html/browser/paper_languages.css') + paper_win.open() + else if(istype(pages[page], /obj/item/photo)) var/obj/item/photo/P = W send_rsc(user, P.img, "tmp_photo.png") diff --git a/html/changelogs/geeves-written_language_fix.yml b/html/changelogs/geeves-written_language_fix.yml new file mode 100644 index 00000000000..bebb411e5a3 --- /dev/null +++ b/html/changelogs/geeves-written_language_fix.yml @@ -0,0 +1,6 @@ +author: Geeves + +delete-after: True + +changes: + - bugfix: "Written languages now work in paper bundles, folders, and clipboards." \ No newline at end of file