diff --git a/GainStation13/code/modules/mob/living/brap.dm b/GainStation13/code/modules/mob/living/brap.dm
index b51e368b..762279ad 100644
--- a/GainStation13/code/modules/mob/living/brap.dm
+++ b/GainStation13/code/modules/mob/living/brap.dm
@@ -4,36 +4,17 @@
message = " "
emote_type = EMOTE_AUDIBLE
-/datum/emote/living/brap/select_message_type(mob/user)
+/datum/emote/living/brap/select_message_type(var/mob/user)
return pick("farts loudly!", "cuts a fat one!", "rips absolute ass!")
-
-
-/datum/emote/living/brap/run_emote(mob/living/user, params)
+/datum/emote/living/brap/run_emote(var/mob/living/user, params)
if(!ishuman(user))
return FALSE
- var/fartSoundChoice = rand(7)
- switch(fartSoundChoice)
- if(0)
- playsound(user, 'GainStation13/sound/voice/brap3.ogg', 50, 1, -1)
- if(1)
- playsound(user, 'GainStation13/sound/voice/brap4.ogg', 50, 1, -1)
- if(2)
- playsound(user, 'GainStation13/sound/voice/brap2.ogg', 50, 1, -1)
- if(3)
- playsound(user, 'GainStation13/sound/voice/brap1.ogg', 50, 1, -1)
- if(4)
- playsound(user, 'GainStation13/sound/voice/brap5.ogg', 50, 1, -1)
- if(5)
- playsound(user, 'GainStation13/sound/voice/brap6.ogg', 50, 1, -1)
- if(6)
- playsound(user, 'GainStation13/sound/voice/brap7.ogg', 50, 1, -1)
- if(7)
- playsound(user, 'GainStation13/sound/voice/brap8.ogg', 50, 1, -1)
+ var/turf/source = get_turf(user)
+ var/sound/farting = sound(get_sfx("fart"))
+ for(var/mob/living/M in get_hearers_in_view(3, source))
+ if(M.client && M.client.prefs.cit_toggles & FARTING_NOISES)
+ SEND_SOUND(M, farting)
. = ..()
-
-
-
-
diff --git a/code/__DEFINES/citadel_defines.dm b/code/__DEFINES/citadel_defines.dm
index 859824ee..a1d95966 100644
--- a/code/__DEFINES/citadel_defines.dm
+++ b/code/__DEFINES/citadel_defines.dm
@@ -125,15 +125,17 @@
#define STAMINA_SOFTCRIT_TRADITIONAL 0 //same as STAMINA_SOFTCRIT except for the more traditional health calculations
#define STAMINA_CRIT_TRADITIONAL -40 //ditto, but for STAMINA_CRIT
-#define CRAWLUNDER_DELAY 30 //Delay for crawling under a standing mob
+#define CRAWLUNDER_DELAY 30 //Delay for crawling under a standing mob
//Citadel toggles because bitflag memes
#define MEDIHOUND_SLEEPER (1<<0)
#define EATING_NOISES (1<<1)
#define DIGESTION_NOISES (1<<2)
#define TRASH_FORCEFEED (1<<3)
+#define FARTING_NOISES (1<<4) //GS13
-#define TOGGLES_CITADEL (EATING_NOISES|DIGESTION_NOISES)
+//toggles on by default
+#define TOGGLES_CITADEL (EATING_NOISES|DIGESTION_NOISES|FARTING_NOISES)
//component stuff
#define COMSIG_COMBAT_TOGGLED "combatmode_toggled" //called by combat mode toggle on all equipped items. args: (mob/user, combatmode)
diff --git a/code/__DEFINES/sound.dm b/code/__DEFINES/sound.dm
index ccee8f3c..0f702350 100644
--- a/code/__DEFINES/sound.dm
+++ b/code/__DEFINES/sound.dm
@@ -10,7 +10,6 @@
#define CHANNEL_BUZZ 1018
#define CHANNEL_BICYCLE 1017
-
//CIT CHANNELS - TRY NOT TO REGRESS
#define CHANNEL_PRED 1010
#define CHANNEL_DIGEST 1009
@@ -19,17 +18,16 @@
//Hyperstation Channels
#define CHANNEL_REACTOR_ALERT 1007 // reactor sounds
+//GS13 Channels
+#define CHANNEL_BRAP 1006
//THIS SHOULD ALWAYS BE THE LOWEST ONE!
//KEEP IT UPDATED
-
-#define CHANNEL_HIGHEST_AVAILABLE 1006 //CIT CHANGE - COMPENSATES FOR VORESOUND CHANNELS
-
+#define CHANNEL_HIGHEST_AVAILABLE 1005
#define SOUND_MINIMUM_PRESSURE 10
#define FALLOFF_SOUNDS 1
-
//Ambience types
#define GENERIC list('sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg',\
@@ -136,4 +134,4 @@
#define PICKUP_SOUND_VOLUME 40
#define DROP_SOUND_VOLUME 50
-#define YEET_SOUND_VOLUME 90
\ No newline at end of file
+#define YEET_SOUND_VOLUME 90
diff --git a/code/game/sound.dm b/code/game/sound.dm
index 11e02610..2e7d7552 100644
--- a/code/game/sound.dm
+++ b/code/game/sound.dm
@@ -227,4 +227,13 @@
if("slosh")
soundin = pick('sound/effects/slosh1.ogg', 'sound/effects/slosh2.ogg')
//END OF CIT CHANGES
+ if("fart") //GS13
+ soundin = pick( 'GainStation13/sound/voice/brap1.ogg',
+ 'GainStation13/sound/voice/brap2.ogg',
+ 'GainStation13/sound/voice/brap3.ogg',
+ 'GainStation13/sound/voice/brap4.ogg',
+ 'GainStation13/sound/voice/brap5.ogg',
+ 'GainStation13/sound/voice/brap6.ogg',
+ 'GainStation13/sound/voice/brap7.ogg',
+ 'GainStation13/sound/voice/brap8.ogg')
return soundin
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 18d631b6..9a3e240a 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -1021,6 +1021,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "Exhibitionist:[features["exhibitionist"] == TRUE ? "Yes" : "No"]
"
dat += "Hear Vore Sounds: [(cit_toggles & EATING_NOISES) ? "Yes" : "No"]
"
dat += "Hear Vore Digestion Sounds: [(cit_toggles & DIGESTION_NOISES) ? "Yes" : "No"]
"
+ dat += "Hear Fart Sounds: [(cit_toggles & FARTING_NOISES) ? "Yes" : "No"]
"
dat += "Allow trash forcefeeding (requires Trashcan quirk) [(cit_toggles & TRASH_FORCEFEED) ? "Yes" : "No"]
"
dat += "Lewdchem:[lewdchem == TRUE ? "Enabled" : "Disabled"]
"
dat += "Widescreen: [widescreenpref ? "Enabled ([CONFIG_GET(string/default_view)])" : "Disabled (15x15)"]
"
@@ -2797,14 +2798,14 @@ GLOBAL_LIST_EMPTY(preferences_datums)
// Citadel edit - Prefs don't work outside of this. :c
if("hound_sleeper")
cit_toggles ^= MEDIHOUND_SLEEPER
-
if("toggleeatingnoise")
cit_toggles ^= EATING_NOISES
-
if("toggledigestionnoise")
cit_toggles ^= DIGESTION_NOISES
- if("toggleforcefeedtrash") //gs13 added for flint
+ if("toggleforcefeedtrash") //GS13
cit_toggles ^= TRASH_FORCEFEED
+ if("togglefartingnoise") //GS13
+ cit_toggles ^= FARTING_NOISES
//END CITADEL EDIT
if("ambientocclusion")
diff --git a/modular_citadel/code/modules/client/preferences.dm b/modular_citadel/code/modules/client/preferences.dm
index db072732..d56958c9 100644
--- a/modular_citadel/code/modules/client/preferences.dm
+++ b/modular_citadel/code/modules/client/preferences.dm
@@ -21,6 +21,7 @@
//vore prefs
var/toggleeatingnoise = TRUE
var/toggledigestionnoise = TRUE
+ var/togglefartingnoise = TRUE
var/hound_sleeper = TRUE
var/cit_toggles = TOGGLES_CITADEL
diff --git a/modular_citadel/code/modules/client/preferences_toggles.dm b/modular_citadel/code/modules/client/preferences_toggles.dm
index 350c19ab..84049e05 100644
--- a/modular_citadel/code/modules/client/preferences_toggles.dm
+++ b/modular_citadel/code/modules/client/preferences_toggles.dm
@@ -9,7 +9,6 @@ TOGGLE_CHECKBOX(/datum/verbs/menu/Settings/Sound, toggleeatingnoise)()
/datum/verbs/menu/Settings/Sound/toggleeatingnoise/Get_checked(client/C)
return C.prefs.cit_toggles & EATING_NOISES
-
TOGGLE_CHECKBOX(/datum/verbs/menu/Settings/Sound, toggledigestionnoise)()
set name = "Toggle Digestion Noises"
set category = "Preferences"
@@ -21,6 +20,17 @@ TOGGLE_CHECKBOX(/datum/verbs/menu/Settings/Sound, toggledigestionnoise)()
/datum/verbs/menu/Settings/Sound/toggledigestionnoise/Get_checked(client/C)
return C.prefs.cit_toggles & DIGESTION_NOISES
+TOGGLE_CHECKBOX(/datum/verbs/menu/Settings/Sound, togglefartingnoise)()
+ set name = "Toggle Farting Noises"
+ set category = "Preferences"
+ set desc = "Hear Farting noises"
+ usr.client.prefs.cit_toggles ^= FARTING_NOISES
+ usr.client.prefs.save_preferences()
+ usr.stop_sound_channel(CHANNEL_BRAP)
+ to_chat(usr, "You will [(usr.client.prefs.cit_toggles & FARTING_NOISES) ? "now" : "no longer"] hear farting noises.")
+/datum/verbs/menu/Settings/Sound/togglefartingnoise/Get_checked(client/C)
+ return C.prefs.cit_toggles & FARTING_NOISES
+
TOGGLE_CHECKBOX(/datum/verbs/menu/Settings/Sound, togglehoundsleeper)()
set name = "Toggle Voracious Hound Sleepers"
set category = "Preferences"