Adds preference for seeing LOOC from ghosts (#11577)

This commit is contained in:
Doxxmedearly
2021-04-14 11:55:58 +02:00
committed by GitHub
parent 640fe25975
commit 5320325be0
10 changed files with 104 additions and 6 deletions
+2 -1
View File
@@ -57,6 +57,7 @@
#define CHAT_GHOSTRADIO 0x2000
#define SHOW_TYPING 0x4000
#define CHAT_NOICONS 0x8000
#define CHAT_GHOSTLOOC 0x10000
#define PARALLAX_SPACE 0x1
#define PARALLAX_DUST 0x2
@@ -65,7 +66,7 @@
#define FLOATING_MESSAGES 0x10
#define HOTKEY_DEFAULT 0x20
#define TOGGLES_DEFAULT (SOUND_ADMINHELP|SOUND_MIDI|SOUND_AMBIENCE|SOUND_LOBBY|CHAT_OOC|CHAT_DEAD|CHAT_GHOSTEARS|CHAT_GHOSTSIGHT|CHAT_PRAYER|CHAT_RADIO|CHAT_ATTACKLOGS|CHAT_LOOC)
#define TOGGLES_DEFAULT (SOUND_ADMINHELP|SOUND_MIDI|SOUND_AMBIENCE|SOUND_LOBBY|CHAT_OOC|CHAT_DEAD|CHAT_GHOSTEARS|CHAT_GHOSTSIGHT|CHAT_PRAYER|CHAT_RADIO|CHAT_ATTACKLOGS|CHAT_LOOC|CHAT_GHOSTLOOC)
//Sound effects toggles
#define ASFX_AMBIENCE 1
+1
View File
@@ -396,6 +396,7 @@
var/list/tagname_to_class = list(
"OOC" = "ooc",
"LOOC" = "looc",
"ALOOC" = "adminlooc",
"DEV" = "dev",
"ADMIN" = "admin",
"MOD" = "mod",
+5
View File
@@ -86,6 +86,9 @@
if(!(prefs.toggles & CHAT_LOOC))
to_chat(src, "<span class='danger'>You have LOOC muted.</span>")
return
if(mob.stat == DEAD && !(prefs.toggles & CHAT_GHOSTLOOC))
to_chat(src, "<span class='danger'>You have observer LOOC muted.</span>")
return
if(!holder)
if(!config.looc_allowed)
@@ -138,6 +141,8 @@
var/admin_stuff
for(var/client/target in clients)
if(target.prefs.toggles & CHAT_LOOC)
if(mob.stat == DEAD && !(target.prefs.toggles & CHAT_GHOSTLOOC))
continue
admin_stuff = ""
var/display_remote = 0
if (target.holder && ((R_MOD|R_ADMIN) & target.holder.rights))
+67 -2
View File
@@ -100,7 +100,8 @@ var/list/admin_verbs_admin = list(
/client/proc/fix_player_list,
/client/proc/reset_openturf,
/client/proc/toggle_aooc,
/client/proc/force_away_mission
/client/proc/force_away_mission,
/client/proc/alooc
)
var/list/admin_verbs_ban = list(
/client/proc/unban_panel,
@@ -421,7 +422,8 @@ var/list/admin_verbs_mod = list(
/client/proc/print_logout_report,
/client/proc/check_ai_laws, /*shows AI and borg laws*/
/client/proc/aooc,
/client/proc/toggle_aooc
/client/proc/toggle_aooc,
/client/proc/alooc
)
var/list/admin_verbs_dev = list( //will need to be altered - Ryan784
@@ -1298,3 +1300,66 @@ var/list/admin_verbs_cciaa = list(
log_and_message_admins("reset the forced away mission.")
else
log_and_message_admins("forced the following away mission: [mission_name].")
/client/proc/alooc(msg as text)
set name = "Admin LOOC"
set desc = "Admin Local OOC, seen only by those in view, regardless of their LOOC preferences."
set category = "Admin"
if(!check_rights(R_ADMIN|R_MOD))
return
if(!mob)
return
msg = sanitize(msg)
msg = process_chat_markup(msg, list("*"))
if(!msg)
return
log_ooc("(ADMIN LOCAL) [mob.name]/[key] : [msg]",ckey=key_name(mob))
var/mob/source = src.mob
var/list/messageturfs = list() //List of turfs we broadcast to.
var/list/messagemobs = list() //List of living mobs nearby who can hear it
for(var/turf in range(world.view, get_turf(source)))
messageturfs += turf
if(isAI(source))
var/mob/living/silicon/ai/AI = source
for(var/turf in range(world.view, get_turf(AI.eyeobj)))
messageturfs += turf
for(var/mob/M in player_list)
if(!M.client || istype(M, /mob/abstract/new_player))
continue
if(isAI(M))
var/mob/living/silicon/ai/AI = M
if(get_turf(AI.eyeobj) in messageturfs)
messagemobs += M
continue
if(get_turf(M) in messageturfs)
messagemobs += M
var/display_name = source.key
if(holder && holder.fakekey)
display_name = holder.fakekey
msg = process_chat_markup(msg, list("*"))
var/prefix
var/admin_stuff
for(var/client/target in clients)
admin_stuff = ""
var/display_remote = FALSE
if (target.holder && ((R_MOD|R_ADMIN) & target.holder.rights))
display_remote = TRUE
if(display_remote)
prefix = "(R)"
admin_stuff += "/([source.key])"
if(target != source.client)
admin_stuff += "(<A HREF='?src=\ref[target.holder];adminplayerobservejump=\ref[mob]'>JMP</A>)"
if(target.mob in messagemobs)
prefix = ""
if((target.mob in messagemobs) || display_remote)
to_chat(target, "<span class='ooc'><span class='adminlooc'>" + create_text_tag("ALOOC", target) + " <span class='prefix'>[prefix]</span><EM>[display_name][admin_stuff]:</EM> <span class='message linkify'>[msg]</span></span></span>")
@@ -91,6 +91,7 @@
"<b>Ghost ears:</b> <a href='?src=\ref[src];toggle=[CHAT_GHOSTEARS]'><b>[(pref.toggles & CHAT_GHOSTEARS) ? "All Speech" : "Nearest Creatures"]</b></a><br>",
"<b>Ghost sight:</b> <a href='?src=\ref[src];toggle=[CHAT_GHOSTSIGHT]'><b>[(pref.toggles & CHAT_GHOSTSIGHT) ? "All Emotes" : "Nearest Creatures"]</b></a><br>",
"<b>Ghost radio:</b> <a href='?src=\ref[src];toggle=[CHAT_GHOSTRADIO]'><b>[(pref.toggles & CHAT_GHOSTRADIO) ? "All Chatter" : "Nearest Speakers"]</b></a><br>",
"<b>Observer LOOC:</b> <a href='?src=\ref[src];toggle=[CHAT_GHOSTLOOC]'><b>[(pref.toggles & CHAT_GHOSTLOOC) ? "Visible" : "Hidden"]</b></a><br>",
"<b>Space Parallax:</b> <a href='?src=\ref[src];paratoggle=[PARALLAX_SPACE]'><b>[(pref.toggles_secondary & PARALLAX_SPACE) ? "Yes" : "No"]</b></a><br>",
"<b>Space Dust:</b> <a href='?src=\ref[src];paratoggle=[PARALLAX_DUST]'><b>[(pref.toggles_secondary & PARALLAX_DUST) ? "Yes" : "No"]</b></a><br>",
"<b>Progress Bars:</b> <a href='?src=\ref[src];paratoggle=[PROGRESS_BARS]'><b>[(pref.toggles_secondary & PROGRESS_BARS) ? "Yes" : "No"]</b></a><br>",
+14 -1
View File
@@ -112,7 +112,7 @@
/client/verb/listen_looc()
set name = "Show/Hide LOOC"
set name = "Show/Hide LOOC (All)"
set category = "Preferences"
set desc = "Toggles seeing Local OutOfCharacter chat"
prefs.toggles ^= CHAT_LOOC
@@ -121,6 +121,19 @@
to_chat(src, "You will [(prefs.toggles & CHAT_LOOC) ? "now" : "no longer"] see messages on the LOOC channel.")
feedback_add_details("admin_verb","TLOOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/verb/listen_ghostlooc()
set name = "Show/Hide LOOC (Observers)"
set category = "Preferences"
set desc = "Toggles seeing Local OutOfCharacter chat from observing players"
if(!(prefs.toggles & CHAT_LOOC)) //Don't need to disable ghost LOOC if you've disabled all LOOC
to_chat(src, SPAN_NOTICE("You already have the LOOC channel hidden!"))
return
prefs.toggles ^= CHAT_GHOSTLOOC
prefs.save_preferences()
to_chat(src, "You will [(prefs.toggles & CHAT_GHOSTLOOC) ? "now" : "no longer"] see messages on the LOOC channel from observing/ghosted players.")
feedback_add_details("admin_verb","TGLOOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/verb/toggle_chattags()
set name = "Show/Hide Chat Tags"
@@ -250,7 +250,7 @@ a.popt {text-decoration: none;}
.motd a, .motd a:link, .motd a:visited, .motd a:active, .motd a:hover {color: #a4bad6;}
/* ADD HERE FOR BOLD */
.bold, .name, .prefix, .ooc, .aooc, .looc, .adminooc, .admin, .medal, .yell {font-weight: bold;}
.bold, .name, .prefix, .ooc, .aooc, .looc, .adminooc, .adminlooc, .admin, .medal, .yell {font-weight: bold;}
/* ADD HERE FOR ITALIC */
.italic, .italics, .emote {font-style: italic;}
@@ -269,6 +269,7 @@ em {font-style: normal; font-weight: bold;}
.tag {color: #fff; border-radius: 15px; font-size: 80%; padding-left: 4px; padding-right: 4px;}
.ooc_tag {background-color: #3c5dc0;}
.looc_tag {color: #000; background-color: #46b2b2;}
.adminlooc_tag {color: #000; background-color: #3bae6e;}
.dev_tag {background-color: #2c7731;}
.admin_tag {background-color: #9611d4;}
.mod_tag {background-color: #663a0e;}
@@ -286,6 +287,7 @@ em {font-style: normal; font-weight: bold;}
.ooc .everyone {color: #3c5dc0;}
.ooc .looc {color: #6699CC;}
.ooc .adminlooc {color: #3BBF6E;}
.ooc .elevated {color: #2e78d9;}
.ooc .moderator {color: #184880;}
.ooc .developer {color: #2c7731;}
@@ -247,7 +247,7 @@ a.popt {text-decoration: none;}
.motd a, .motd a:link, .motd a:visited, .motd a:active, .motd a:hover {color: #638500;}
/* ADD HERE FOR BOLD */
.bold, .name, .prefix, .ooc, .aooc, .looc, .adminooc, .admin, .medal, .yell {font-weight: bold;}
.bold, .name, .prefix, .ooc, .aooc, .looc, .adminooc, .adminlooc, .admin, .medal, .yell {font-weight: bold;}
/* ADD HERE FOR ITALIC */
.italic, .italics, .emote {font-style: italic;}
@@ -266,6 +266,7 @@ em {font-style: normal;font-weight: bold;}
.tag {color: #fff; border-radius: 15px; font-size: 80%; padding-left: 4px; padding-right: 4px;}
.ooc_tag {background-color: #002eb8;}
.looc_tag {color: #000; background-color: #46b2b2;}
.adminlooc_tag {color: #000; background-color: #3bae6e;}
.dev_tag {background-color: #2c7731;}
.admin_tag {background-color: #9611d4;}
.mod_tag {background-color: #663a0e;}
@@ -283,6 +284,7 @@ em {font-style: normal;font-weight: bold;}
.ooc .everyone {color: #002eb8;}
.ooc .looc {color: #6699CC;}
.ooc .adminlooc {color: #3bae6e;}
.ooc .elevated {color: #2e78d9;}
.ooc .moderator {color: #184880;}
.ooc .developer {color: #2c7731;}
+1
View File
@@ -20,6 +20,7 @@ em {font-style: normal;font-weight: bold;}
.ooc .everyone {color: #002eb8;}
.ooc .looc {color: #6699CC;}
.ooc .adminlooc {color: #3BBF6E;}
.ooc .elevated {color: #2e78d9;}
.ooc .moderator {color: #184880;}
.ooc .developer {color: #1b521f;}
@@ -0,0 +1,7 @@
author: Doxxmedearly
delete-after: True
changes:
- rscadd: "Added the option to hide LOOC from ghosts/observers only. Check Show/Hide LOOC (Observers) in the Preferences tab, or the Observers LOOC setting under the Global tab in character setup. You do not need to toggle this if you already have regular LOOC disabled."
- rscadd: "Adds Admin LOOC for mods/admins, which functions as LOOC but displays regardless of a person's LOOC preferences. Has a slightly different color to LOOC."