diff --git a/code/__DEFINES/preferences.dm b/code/__DEFINES/preferences.dm index 1f0e0152b..7da8960b6 100644 --- a/code/__DEFINES/preferences.dm +++ b/code/__DEFINES/preferences.dm @@ -16,6 +16,7 @@ #define DISABLE_ARRIVALRATTLE (1<<13) #define COMBOHUD_LIGHTING (1<<14) #define ANTAG_SYNC_WITH_CHARS (1<<15) +#define ANNOUNCE_LOGINP (1<<16) #define TOGGLES_DEFAULT (SOUND_ADMINHELP|SOUND_MIDI|SOUND_AMBIENCE|SOUND_LOBBY|MEMBER_PUBLIC|INTENT_STYLE|MIDROUND_ANTAG|SOUND_INSTRUMENTS|SOUND_SHIP_AMBIENCE|SOUND_PRAYERS|SOUND_ANNOUNCEMENTS) diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index 96ba948ba..e2f9cdf14 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -274,6 +274,17 @@ GLOBAL_LIST_EMPTY(external_rsc_urls) message_admins("Notice: [key_name_admin(src)] has the same [matches] as [key_name_admin(C)] (no longer logged in). ") log_access("Notice: [key_name(src)] has the same [matches] as [key_name(C)] (no longer logged in).") + for(var/client/C in GLOB.clients) + if( !C ) + continue + + if(C.prefs)//supposedly fixes a runtime with the following lines. Ripped from OldPollo. I miss you, Lads. :( + if(C.prefs.toggles & ANNOUNCE_LOGINP) + to_chat(world, "[src.key] has connected to the server.") + + if(C.prefs.toggles) + C << sound('hyperstation/sound/effects/oocjoin.ogg') + if(GLOB.player_details[ckey]) player_details = GLOB.player_details[ckey] player_details.byond_version = full_version diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 3c4c0d5dd..b7d70afbb 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -981,6 +981,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "Play Lobby Music: [(toggles & SOUND_LOBBY) ? "Enabled":"Disabled"]
" dat += "See Pull Requests: [(chat_toggles & CHAT_PULLR) ? "Enabled":"Disabled"]
" dat += "
" + dat += "Announce Login: [(toggles & ANNOUNCE_LOGINP)?"Enabled":"Disabled"]
" + dat += "
" if(user.client) if(unlock_content) dat += "BYOND Membership Publicity: [(toggles & MEMBER_PUBLIC) ? "Public" : "Hidden"]
" @@ -2635,6 +2637,9 @@ GLOBAL_LIST_EMPTY(preferences_datums) else be_special += list(be_special_type) + if("announce_loginp") + toggles ^= ANNOUNCE_LOGINP + if("name") be_random_name = !be_random_name diff --git a/code/modules/client/preferences_toggles.dm b/code/modules/client/preferences_toggles.dm index d194dc55c..e8ea7a913 100644 --- a/code/modules/client/preferences_toggles.dm +++ b/code/modules/client/preferences_toggles.dm @@ -365,6 +365,17 @@ GLOBAL_LIST_INIT(ghost_orbits, list(GHOST_ORBIT_CIRCLE,GHOST_ORBIT_TRIANGLE,GHOS to_chat(src, "You will no longer examine things you click on.") SSblackbox.record_feedback("nested tally", "preferences_verb", 1, list("Toggle Ghost Inquisitiveness", "[prefs.inquisitive_ghost ? "Enabled" : "Disabled"]")) +/client/proc/toggleannounceloginplayer() + set name = "Do/Don't Announce Player Login" + set category = "Preferences" + set desc = "Toggle if you want an announcement to the server when you login during a round" + if(!holder) + return + prefs.toggles ^= ANNOUNCE_LOGINP + prefs.save_preferences() + to_chat(usr, "You will [(prefs.toggles & ANNOUNCE_LOGINP) ? "now" : "no longer"] have an announcement to other players when you login.") + SSblackbox.record_feedback("nested tally", "preferences_verb", 1, list("Toggle Player Login Announcement", "[prefs.toggles & ANNOUNCE_LOGINP ? "Enabled" : "Disabled"]")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + //Admin Preferences /client/proc/toggleadminhelpsound() set name = "Hear/Silence Adminhelps" diff --git a/code/modules/client/verbs/ooc.dm b/code/modules/client/verbs/ooc.dm index 087c434b8..c173d0815 100644 --- a/code/modules/client/verbs/ooc.dm +++ b/code/modules/client/verbs/ooc.dm @@ -66,6 +66,10 @@ GLOBAL_VAR_INIT(normal_ooc_colour, "#002eb8") //The linkify span classes and linkify=TRUE below make ooc text get clickable chat href links if you pass in something resembling a url for(var/client/C in GLOB.clients) if(C.prefs.chat_toggles & CHAT_OOC) + + if(C.prefs.toggles) + C << sound('hyperstation/sound/effects/oocalert.ogg') + if(holder) if(!holder.fakekey || C.holder) if(check_rights_for(src, R_ADMIN)) diff --git a/hyperstation/sound/effects/oocalert.ogg b/hyperstation/sound/effects/oocalert.ogg new file mode 100644 index 000000000..725fff68d Binary files /dev/null and b/hyperstation/sound/effects/oocalert.ogg differ diff --git a/hyperstation/sound/effects/oocjoin.ogg b/hyperstation/sound/effects/oocjoin.ogg new file mode 100644 index 000000000..f0ab01402 Binary files /dev/null and b/hyperstation/sound/effects/oocjoin.ogg differ