From 1d4ce2502d66f5456822d33ac47fc913883f8aa0 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Wed, 15 Aug 2018 05:19:12 -0400 Subject: [PATCH 1/3] Adds the character directory The character directory is accessible via the verb in the OOC tab. It displays the flavor text and OOC notes of every active player in a fancy little menu --- code/game/verbs/character_directory.dm | 32 ++++++++++++++++++++++++++ vorestation.dme | 1 + 2 files changed, 33 insertions(+) create mode 100644 code/game/verbs/character_directory.dm diff --git a/code/game/verbs/character_directory.dm b/code/game/verbs/character_directory.dm new file mode 100644 index 00000000000..bf1af2dc2cd --- /dev/null +++ b/code/game/verbs/character_directory.dm @@ -0,0 +1,32 @@ +/client/verb/show_character_directory() + set name = "Character Directory" + set category = "OOC" + set desc = "Shows a listing of all active characters, along with their associated OOC notes, flavor text, and more." + + if(mob.next_move >= world.time) //This is primarily to stop malicious users from trying to lag the server by spamming this verb + return + + mob.next_move = world.time + 10 + + var/html = "" + + var/curID = 0 + for(var/client/C in clients) + if(ishuman(C.mob)) + curID++ + var/mob/living/carbon/human/H = C.mob + html += "
" + html += "

[H.real_name]


" + if(H.flavor_texts["general"]) + html += "Flavor text" + html += "" + if(H.ooc_notes) + html += "OOC notes" + html += "" + html += "
" + if(!curID) + html += "

404: Station not found

" + + var/datum/browser/popup = new(mob, "chardir", "Character Directory", 640, 480) + popup.set_content(html) + popup.open() diff --git a/vorestation.dme b/vorestation.dme index 3e19dfa5b1e..5b7d68e97ca 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -1294,6 +1294,7 @@ #include "code\game\turfs\unsimulated\sky_vr.dm" #include "code\game\turfs\unsimulated\walls.dm" #include "code\game\verbs\advanced_who.dm" +#include "code\game\verbs\character_directory.dm" #include "code\game\verbs\ignore.dm" #include "code\game\verbs\ooc.dm" #include "code\game\verbs\suicide.dm" From 87859c77af0af84fe3b08b6ec3ba8ac2d40b7195 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Wed, 15 Aug 2018 06:18:58 -0400 Subject: [PATCH 2/3] adds a pref to enable/disable showing up in the character directory --- code/game/verbs/character_directory.dm | 2 ++ .../client/preference_setup/vore/09_misc.dm | 26 +++++++++++++++++++ vorestation.dme | 1 + 3 files changed, 29 insertions(+) create mode 100644 code/modules/client/preference_setup/vore/09_misc.dm diff --git a/code/game/verbs/character_directory.dm b/code/game/verbs/character_directory.dm index bf1af2dc2cd..fe98d505118 100644 --- a/code/game/verbs/character_directory.dm +++ b/code/game/verbs/character_directory.dm @@ -12,6 +12,8 @@ var/curID = 0 for(var/client/C in clients) + if(C.prefs && !C.prefs.show_in_directory) + continue if(ishuman(C.mob)) curID++ var/mob/living/carbon/human/H = C.mob diff --git a/code/modules/client/preference_setup/vore/09_misc.dm b/code/modules/client/preference_setup/vore/09_misc.dm new file mode 100644 index 00000000000..09369d49017 --- /dev/null +++ b/code/modules/client/preference_setup/vore/09_misc.dm @@ -0,0 +1,26 @@ +/datum/preferences + var/show_in_directory = TRUE + +/datum/category_item/player_setup_item/vore/misc + name = "Misc Settings" + sort_order = 9 + +/datum/category_item/player_setup_item/vore/misc/load_character(var/savefile/S) + S["show_in_directory"] >> pref.show_in_directory + + +/datum/category_item/player_setup_item/vore/misc/save_character(var/savefile/S) + S["show_in_directory"] << pref.show_in_directory + +/datum/category_item/player_setup_item/vore/misc/sanitize_character() + pref.show_in_directory = sanitize_integer(pref.show_in_directory, 0, 1, initial(pref.show_in_directory)) + +/datum/category_item/player_setup_item/vore/misc/content(var/mob/user) + . += "
" + . += "Appear in Character Directory: [pref.show_in_directory ? "Yes" : "No"]
" + +/datum/category_item/player_setup_item/vore/misc/OnTopic(var/href, var/list/href_list, var/mob/user) + if(href_list["toggle_show_in_directory"]) + pref.show_in_directory = pref.show_in_directory ? 0 : 1; + return TOPIC_REFRESH + return ..(); diff --git a/vorestation.dme b/vorestation.dme index 5b7d68e97ca..4a2917733f3 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -1509,6 +1509,7 @@ #include "code\modules\client\preference_setup\vore\06_vantag.dm" #include "code\modules\client\preference_setup\vore\07_traits.dm" #include "code\modules\client\preference_setup\vore\08_nif.dm" +#include "code\modules\client\preference_setup\vore\09_misc.dm" #include "code\modules\clothing\chameleon.dm" #include "code\modules\clothing\clothing.dm" #include "code\modules\clothing\clothing_accessories.dm" From 934b6da5349253dfc25848ab8ce2c2c3e2f6bc55 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Wed, 15 Aug 2018 15:28:24 -0400 Subject: [PATCH 3/3] makes the character directory check to make sure the character is on the crew manifest before actually adding the character to the character directory --- code/game/verbs/character_directory.dm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/code/game/verbs/character_directory.dm b/code/game/verbs/character_directory.dm index fe98d505118..b973e3cb036 100644 --- a/code/game/verbs/character_directory.dm +++ b/code/game/verbs/character_directory.dm @@ -15,8 +15,11 @@ if(C.prefs && !C.prefs.show_in_directory) continue if(ishuman(C.mob)) - curID++ var/mob/living/carbon/human/H = C.mob + if(data_core && data_core.general) + if(!find_general_record("name", H.real_name)) + continue + curID++ html += "
" html += "

[H.real_name]


" if(H.flavor_texts["general"])