From 41996815ae8dd8fe4fafad67aad2c5130f5b21aa Mon Sep 17 00:00:00 2001 From: Datraen Date: Thu, 31 Mar 2016 16:30:13 -0400 Subject: [PATCH 1/3] Gives categorization to the preferences as per the current staff structure. --- code/_helpers/logging.dm | 2 +- code/modules/admin/admin.dm | 2 +- .../preference_setup/global/setting_datums.dm | 13 +++++++++---- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/code/_helpers/logging.dm b/code/_helpers/logging.dm index d29c78e83a..e877cee78f 100644 --- a/code/_helpers/logging.dm +++ b/code/_helpers/logging.dm @@ -31,7 +31,7 @@ diary << "\[[time_stamp()]]DEBUG: [text][log_end]" for(var/client/C in admins) - if(C.is_preference_enabled(/datum/client_preference/admin/show_debug_logs)) + if(C.is_preference_enabled(/datum/client_preference/debug/show_debug_logs)) C << "DEBUG: [text]" diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 7e2effce61..84dcc11d6b 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -16,7 +16,7 @@ var/global/floorIsLava = 0 var/rendered = "ATTACK: [text]" for(var/client/C in admins) if((R_ADMIN|R_MOD) & C.holder.rights) - if(C.is_preference_enabled(/datum/client_preference/admin/show_attack_logs)) + if(C.is_preference_enabled(/datum/client_preference/mod/show_attack_logs)) var/msg = rendered C << msg diff --git a/code/modules/client/preference_setup/global/setting_datums.dm b/code/modules/client/preference_setup/global/setting_datums.dm index dcac66b9e3..5ccffdba8c 100644 --- a/code/modules/client/preference_setup/global/setting_datums.dm +++ b/code/modules/client/preference_setup/global/setting_datums.dm @@ -125,19 +125,24 @@ var/list/_client_preferences_by_type enabled_description = "Show" disabled_description = "Hide" /******************** -* Admin Preferences * +* Staff Preferences * ********************/ /datum/client_preference/admin/may_toggle(var/mob/preference_mob) return check_rights(R_ADMIN, 0, preference_mob) - -/datum/client_preference/admin/show_attack_logs +/datum/client_preference/mod/may_toggle(var/mob/preference_mob) + return check_rights(R_MOD|R_ADMIN, 0, preference_mob) + +/datum/client_preference/debug/may_toggle(var/mob/preference_mob) + return check_rights(R_DEBUG|R_ADMIN, 0, preference_mob) + +/datum/client_preference/mod/show_attack_logs description = "Attack Log Messages" key = "CHAT_ATTACKLOGS" enabled_description = "Show" disabled_description = "Hide" enabled_by_default = FALSE -/datum/client_preference/admin/show_debug_logs +/datum/client_preference/debug/show_debug_logs description = "Debug Log Messages" key = "CHAT_DEBUGLOGS" enabled_description = "Show" From f7bd00521b3532130aeb03fecd837d8499b4408b Mon Sep 17 00:00:00 2001 From: PsiOmegaDelta Date: Thu, 31 Mar 2016 20:05:58 +0200 Subject: [PATCH 2/3] Preference logic tweaks. Reduces copy-paste. Adds the ability to easily toggle settings. No functional changes otherwise. --- .../preference_setup/global/02_settings.dm | 32 +++++++++++-------- .../preference_setup/global/setting_datums.dm | 8 +++++ 2 files changed, 26 insertions(+), 14 deletions(-) diff --git a/code/modules/client/preference_setup/global/02_settings.dm b/code/modules/client/preference_setup/global/02_settings.dm index b7322645be..60eeeb144e 100644 --- a/code/modules/client/preference_setup/global/02_settings.dm +++ b/code/modules/client/preference_setup/global/02_settings.dm @@ -81,29 +81,33 @@ return ..() /client/proc/is_preference_enabled(var/preference) - if(ispath(preference)) - var/datum/client_preference/cp = get_client_preference_by_type(preference) - preference = cp.key - - return (preference in prefs.preferences_enabled) + var/datum/client_preference/cp = get_client_preference(preference) + return cp && (cp.key in prefs.preferences_enabled) /client/proc/set_preference(var/preference, var/set_preference) - var/datum/client_preference/cp - if(ispath(preference)) - cp = get_client_preference_by_type(preference) - else - cp = get_client_preference_by_key(preference) - + var/datum/client_preference/cp = get_client_preference(preference) if(!cp) return FALSE + preference = cp.key + + if(set_preference && !(preference in prefs.preferences_enabled)) + return toggle_preference(cp) + else if(!set_preference && (preference in prefs.preferences_enabled)) + return toggle_preference(cp) + +/client/proc/toggle_preference(var/preference, var/set_preference) + var/datum/client_preference/cp = get_client_preference(preference) + if(!cp) + return FALSE + preference = cp.key var/enabled - if(set_preference && !(preference in prefs.preferences_enabled)) - prefs.preferences_enabled += preference + if(preference in prefs.preferences_disabled) + prefs.preferences_enabled |= preference prefs.preferences_disabled -= preference enabled = TRUE . = TRUE - else if(!set_preference && (preference in prefs.preferences_enabled)) + else if(preference in prefs.preferences_enabled) prefs.preferences_enabled -= preference prefs.preferences_disabled |= preference enabled = FALSE diff --git a/code/modules/client/preference_setup/global/setting_datums.dm b/code/modules/client/preference_setup/global/setting_datums.dm index 5ccffdba8c..d15eda17d9 100644 --- a/code/modules/client/preference_setup/global/setting_datums.dm +++ b/code/modules/client/preference_setup/global/setting_datums.dm @@ -11,6 +11,13 @@ var/list/_client_preferences_by_type _client_preferences += new client_type() return _client_preferences +/proc/get_client_preference(var/datum/client_preference/preference) + if(istype(preference)) + return preference + if(ispath(preference)) + return get_client_preference_by_type(preference) + return get_client_preference_by_key(preference) + /proc/get_client_preference_by_key(var/preference) if(!_client_preferences_by_key) _client_preferences_by_key = list() @@ -129,6 +136,7 @@ var/list/_client_preferences_by_type ********************/ /datum/client_preference/admin/may_toggle(var/mob/preference_mob) return check_rights(R_ADMIN, 0, preference_mob) + /datum/client_preference/mod/may_toggle(var/mob/preference_mob) return check_rights(R_MOD|R_ADMIN, 0, preference_mob) From 91a6c51ed2b2caec5cbc8a47bf7547fa77f6ed96 Mon Sep 17 00:00:00 2001 From: Datraen Date: Thu, 31 Mar 2016 16:41:33 -0400 Subject: [PATCH 3/3] Adds toggle verbs and procs. --- code/modules/admin/admin_verbs.dm | 7 +- .../client/preferences_toggle_procs.dm | 188 ++++++++++++++++++ polaris.dme | 1 + 3 files changed, 195 insertions(+), 1 deletion(-) create mode 100644 code/modules/client/preferences_toggle_procs.dm diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 6dbdd74363..2ce4295f28 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -8,8 +8,9 @@ var/list/admin_verbs_default = list( /client/proc/debug_variables, //allows us to -see- the variables of any instance in the game. +VAREDIT needed to modify, // /client/proc/check_antagonists, //shows all antags, // /client/proc/cmd_mod_say, - /client/proc/cmd_mentor_check_new_players + /client/proc/cmd_mentor_check_new_players, // /client/proc/deadchat //toggles deadchat on/off, +// /client/proc/toggle_ahelp_sound, ) var/list/admin_verbs_admin = list( /client/proc/player_panel_new, //shows an interface for all players, with links to various panels, @@ -91,6 +92,8 @@ var/list/admin_verbs_admin = list( /client/proc/change_security_level, /client/proc/view_chemical_reaction_logs, /client/proc/makePAI, + /client/proc/toggle_debug_logs, + /client/proc/toggle_attack_logs, /datum/admins/proc/paralyze_mob ) var/list/admin_verbs_ban = list( @@ -188,6 +191,7 @@ var/list/admin_verbs_debug = list( /client/proc/jumptomob, /client/proc/jumptocoord, /client/proc/dsay, + /client/proc/toggle_debug_logs, /client/proc/admin_ghost //allows us to ghost/reenter body at will, ) @@ -294,6 +298,7 @@ var/list/admin_verbs_mod = list( /client/proc/check_antagonists, /client/proc/aooc, /client/proc/jobbans, + /client/proc/toggle_attack_logs, /client/proc/cmd_admin_subtle_message, //send an message to somebody as a 'voice in their head', /datum/admins/proc/paralyze_mob, /client/proc/cmd_admin_direct_narrate, diff --git a/code/modules/client/preferences_toggle_procs.dm b/code/modules/client/preferences_toggle_procs.dm new file mode 100644 index 0000000000..57503dd21b --- /dev/null +++ b/code/modules/client/preferences_toggle_procs.dm @@ -0,0 +1,188 @@ +//Toggles for preferences, normal clients +/client/verb/toggle_ghost_ears() + set name = "Show/Hide Ghost Ears" + set category = "Preferences" + set desc = "Toggles between seeing all mob speech and nearby mob speech." + + var/pref_path = /datum/client_preference/ghost_ears + + toggle_preference(pref_path) + + src << "You will [ (is_preference_enabled(pref_path)) ? "now" : " no longer"] hear all mob speech as a ghost." + + feedback_add_details("admin_verb","TGEars") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/verb/toggle_ghost_vision() + set name = "Show/Hide Ghost Vision" + set category = "Preferences" + set desc = "Toggles between seeing all mob emotes and nearby mob emotes." + + var/pref_path = /datum/client_preference/ghost_sight + + toggle_preference(pref_path) + + src << "You will [ (is_preference_enabled(pref_path)) ? "now" : " no longer"] see all emotes as a ghost." + + feedback_add_details("admin_verb","TGVision") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/verb/toggle_ghost_radio() + set name = "Show/Hide Radio Chatter" + set category = "Preferences" + set desc = "Toggles between seeing all radio chat and nearby radio chatter." + + var/pref_path = /datum/client_preference/ghost_radio + + toggle_preference(pref_path) + + src << "You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear all radios as a ghost." + + feedback_add_details("admin_verb","TGRadio") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/verb/toggle_deadchat() + set name = "Show/Hide Deadchat" + set category = "Preferences" + set desc = "Toggles the dead chat channel." + + var/pref_path = /datum/client_preference/show_dsay + + toggle_preference(pref_path) + + src << "You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear dead chat as a ghost." + + feedback_add_details("admin_verb","TDeadChat") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/verb/toggle_ooc() + set name = "Show/Hide OOC" + set category = "Preferences" + set desc = "Toggles global out of character chat." + + var/pref_path = /datum/client_preference/show_ooc + + toggle_preference(pref_path) + + src << "You will [ (is_preference_enabled(/datum/client_preference/show_ooc)) ? "now" : "no longer"] hear global out of character chat." + + feedback_add_details("admin_verb","TOOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/verb/toggle_looc() + set name = "Show/Hide LOOC" + set category = "Preferences" + set desc = "Toggles local out of character chat." + + var/pref_path = /datum/client_preference/show_looc + + toggle_preference(pref_path) + + src << "You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear local out of character chat." + + feedback_add_details("admin_verb","TLOOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/verb/toggle_typing() + set name = "Show/Hide Typing Indicator" + set category = "Preferences" + set desc = "Toggles the speech bubble typing indicator." + + var/pref_path = /datum/client_preference/show_typing_indicator + + toggle_preference(pref_path) + + src << "You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] see the speech indicator." + + feedback_add_details("admin_verb","TLOOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/verb/toggle_ahelp_sound() + set name = "Toggle Admin Help Sound" + set category = "Preferences" + set desc = "Toggles the ability to hear a noise broadcasted when you get an admin message." + + var/pref_path = /datum/client_preference/holder/play_adminhelp_ping + + toggle_preference(pref_path) + + src << "You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] receive noise from admin messages." + + feedback_add_details("admin_verb","TAHelp") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/verb/toggle_lobby_music() + set name = "Toggle Lobby Music" + set category = "Preferences" + set desc = "Toggles the music in the lobby." + + var/pref_path = /datum/client_preference/play_lobby_music + + toggle_preference(pref_path) + + src << "You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear music in the lobby." + + feedback_add_details("admin_verb","TLobMusic") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/verb/toggle_admin_midis() + set name = "Toggle Admin MIDIs" + set category = "Preferences" + set desc = "Toggles the music in the lobby." + + var/pref_path = /datum/client_preference/play_admin_midis + + toggle_preference(pref_path) + + src << "You will [ (is_preference_enabled(pref_path)) ? "now" : " no longer"] hear MIDIs from admins." + + feedback_add_details("admin_verb","TAMidis") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/verb/toggle_ambience() + set name = "Toggle Ambience" + set category = "Preferences" + set desc = "Toggles the playing of ambience." + + var/pref_path = /datum/client_preference/play_ambiance + + toggle_preference(pref_path) + + src << "You will [ (is_preference_enabled(pref_path)) ? "now" : " no longer"] hear ambient noise." + + feedback_add_details("admin_verb","TBeSpecial") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/verb/toggle_be_special(role in be_special_flags) + set name = "Toggle SpecialRole Candidacy" + set category = "Preferences" + set desc = "Toggles which special roles you would like to be a candidate for, during events." + + var/role_flag = be_special_flags[role] + if(!role_flag) return + + prefs.be_special ^= role_flag + prefs.save_preferences() + + src << "You will [(prefs.be_special & role_flag) ? "now" : "no longer"] be considered for [role] events (where possible)." + + feedback_add_details("admin_verb","TBeSpecial") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +//Toggles for Staff +//Developers + +/client/proc/toggle_debug_logs() + set name = "Toggle Debug Logs" + set category = "Preferences" + set desc = "Toggles debug logs." + + var/pref_path = /datum/client_preference/debug/show_debug_logs + + if(check_rights(R_ADMIN|R_DEBUG)) + toggle_preference(pref_path) + src << "You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] receive debug logs." + + feedback_add_details("admin_verb","TBeSpecial") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +//Mods +/client/proc/toggle_attack_logs() + set name = "Toggle Attack Logs" + set category = "Preferences" + set desc = "Toggles attack logs." + + var/pref_path = /datum/client_preference/mod/show_attack_logs + + if(check_rights(R_ADMIN|R_MOD)) + toggle_preference(pref_path) + src << "You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] receive attack logs." + + feedback_add_details("admin_verb","TBeSpecial") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! \ No newline at end of file diff --git a/polaris.dme b/polaris.dme index 58da0d2b7d..08ea847da4 100644 --- a/polaris.dme +++ b/polaris.dme @@ -974,6 +974,7 @@ #include "code\modules\client\preferences_factions.dm" #include "code\modules\client\preferences_savefile.dm" #include "code\modules\client\preferences_spawnpoints.dm" +#include "code\modules\client\preferences_toggle_procs.dm" #include "code\modules\client\ui_style.dm" #include "code\modules\client\preference_setup\preference_setup.dm" #include "code\modules\client\preference_setup\antagonism\01_basic.dm"