diff --git a/code/__defines/misc.dm b/code/__defines/misc.dm
index ed8a687759..70453f57ce 100644
--- a/code/__defines/misc.dm
+++ b/code/__defines/misc.dm
@@ -439,7 +439,7 @@ GLOBAL_LIST_EMPTY(##LIST_NAME);\
#define VOLUME_CHANNEL_DOORS "Doors"
#define VOLUME_CHANNEL_INSTRUMENTS "Instruments"
#define VOLUME_CHANNEL_WEATHER "Weather"
-#define VOLUME_CHANNEL_INJ_DEATH "Mob Injury Sounds"
+#define VOLUME_CHANNEL_SPECIES_SOUNDS "Species Sounds"
// Make sure you update this or clients won't be able to adjust the channel
GLOBAL_LIST_INIT(all_volume_channels, list(
@@ -450,7 +450,7 @@ GLOBAL_LIST_INIT(all_volume_channels, list(
VOLUME_CHANNEL_DOORS,
VOLUME_CHANNEL_INSTRUMENTS,
VOLUME_CHANNEL_WEATHER,
- VOLUME_CHANNEL_INJ_DEATH
+ VOLUME_CHANNEL_SPECIES_SOUNDS
))
#define APPEARANCECHANGER_CHANGED_RACE "Race"
diff --git a/code/game/sound.dm b/code/game/sound.dm
index 1a88189962..46bb795a00 100644
--- a/code/game/sound.dm
+++ b/code/game/sound.dm
@@ -309,17 +309,25 @@ var/list/goon_speak_pugg_sound = list('sound/talksounds/goon/pugg.ogg', 'sound/t
var/list/goon_speak_roach_sound = list('sound/talksounds/goon/roach.ogg', 'sound/talksounds/goon/roach_ask.ogg', 'sound/talksounds/goon/roach_exclaim.ogg')
var/list/goon_speak_skelly_sound = list('sound/talksounds/goon/skelly.ogg', 'sound/talksounds/goon/skelly_ask.ogg', 'sound/talksounds/goon/skelly_exclaim.ogg')
-// CHOMPEdit Start: Species Pain/Scream/Death sounds. This is probably inefficient, but I'm sure someone will yell at me or just do it better later:tm:
-#define canine_sounds list("scream" = list('modular_chomp/sound/voice/scream/canine/wolf_scream.ogg', 'modular_chomp/sound/voice/scream/canine/wolf_scream2.ogg', 'modular_chomp/sound/voice/scream/canine/wolf_scream3.ogg', 'modular_chomp/sound/voice/scream/canine/wolf_scream4.ogg', 'modular_chomp/sound/voice/scream/canine/wolf_scream5.ogg', 'modular_chomp/sound/voice/scream/canine/wolf_scream6.ogg'), "pain" = list('modular_chomp/sound/voice/pain/canine/wolf_pain.ogg', 'modular_chomp/sound/voice/pain/canine/wolf_pain2.ogg', 'modular_chomp/sound/voice/pain/canine/wolf_pain3.ogg', 'modular_chomp/sound/voice/pain/canine/wolf_pain4.ogg'), "gasp" = list('modular_chomp/sound/voice/gasp/canine/wolf_gasp.ogg'), "death" = list('modular_chomp/sound/voice/death/canine/wolf_death1.ogg', 'modular_chomp/sound/voice/death/canine/wolf_death2.ogg', 'modular_chomp/sound/voice/death/canine/wolf_death3.ogg', 'modular_chomp/sound/voice/death/canine/wolf_death4.ogg', 'modular_chomp/sound/voice/death/canine/wolf_death5.ogg'))
-#define feline_sounds list("scream" = list('modular_chomp/sound/voice/scream/feline/feline_scream.ogg'), "pain" = list('modular_chomp/sound/voice/pain/feline/feline_pain.ogg'), "gasp" = list('modular_chomp/sound/voice/gasp/feline/feline_gasp.ogg'), "death" = list('modular_chomp/sound/voice/death/feline/feline_death.ogg'))
-#define cervine_sounds list("scream" = list('modular_chomp/sound/voice/scream/cervine/cervine_scream.ogg'), "pain" = null, "gasp" = null, "death" = list('modular_chomp/sound/voice/death/cervine/cervine_death.ogg'))
-#define robot_sounds list("scream" = list('modular_chomp/sound/voice/scream_silicon.ogg', 'modular_chomp/sound/voice/android_scream.ogg', 'modular_chomp/sound/voice/scream/robotic/robot_scream1.ogg', 'modular_chomp/sound/voice/scream/robotic/robot_scream2.ogg', 'modular_chomp/sound/voice/scream/robotic/robot_scream3.ogg'), "pain" = list('modular_chomp/sound/voice/pain/robotic/robot_pain1.ogg', 'modular_chomp/sound/voice/pain/robotic/robot_pain2.ogg', 'modular_chomp/sound/voice/pain/robotic/robot_pain3.ogg'), "gasp" = null, "death" = list('modular_chomp/sound/voice/borg_deathsound.ogg'))
-#define male_generic_sounds list("scream" = list('modular_chomp/sound/voice/scream/generic/male/male_scream_1.ogg', 'modular_chomp/sound/voice/scream/generic/male/male_scream_2.ogg', 'modular_chomp/sound/voice/scream/generic/male/male_scream_3.ogg', 'modular_chomp/sound/voice/scream/generic/male/male_scream_4.ogg', 'modular_chomp/sound/voice/scream/generic/male/male_scream_5.ogg', 'modular_chomp/sound/voice/scream/generic/male/male_scream_6.ogg'), "pain" = list('modular_chomp/sound/voice/pain/generic/male/male_pain_1.ogg', 'modular_chomp/sound/voice/pain/generic/male/male_pain_2.ogg', 'modular_chomp/sound/voice/pain/generic/male/male_pain_3.ogg', 'modular_chomp/sound/voice/pain/generic/male/male_pain_4.ogg', 'modular_chomp/sound/voice/pain/generic/male/male_pain_5.ogg', 'modular_chomp/sound/voice/pain/generic/male/male_pain_6.ogg', 'modular_chomp/sound/voice/pain/generic/male/male_pain_7.ogg', 'modular_chomp/sound/voice/pain/generic/male/male_pain_8.ogg'), "gasp" = list('modular_chomp/sound/voice/gasp/generic/male/male_gasp1.ogg', 'modular_chomp/sound/voice/gasp/generic/male/male_gasp2.ogg', 'modular_chomp/sound/voice/gasp/generic/male/male_gasp3.ogg'), "death" = list('modular_chomp/sound/voice/death/generic/male/male_death_1.ogg', 'modular_chomp/sound/voice/death/generic/male/male_death_2.ogg', 'modular_chomp/sound/voice/death/generic/male/male_death_3.ogg', 'modular_chomp/sound/voice/death/generic/male/male_death_4.ogg', 'modular_chomp/sound/voice/death/generic/male/male_death_5.ogg', 'modular_chomp/sound/voice/death/generic/male/male_death_6.ogg', 'modular_chomp/sound/voice/death/generic/male/male_death_7.ogg'))
-#define female_generic_sounds list("scream" = list('modular_chomp/sound/voice/scream/generic/female/female_scream_1.ogg', 'modular_chomp/sound/voice/scream/generic/female/female_scream_2.ogg', 'modular_chomp/sound/voice/scream/generic/female/female_scream_3.ogg', 'modular_chomp/sound/voice/scream/generic/female/female_scream_4.ogg', 'modular_chomp/sound/voice/scream/generic/female/female_scream_5.ogg'), "pain" = list('modular_chomp/sound/voice/pain/generic/female/female_pain_1.ogg', 'modular_chomp/sound/voice/pain/generic/female/female_pain_2.ogg', 'modular_chomp/sound/voice/pain/generic/female/female_pain_3.ogg'), "gasp" = list('modular_chomp/sound/voice/gasp/generic/female/female_gasp1.ogg', 'modular_chomp/sound/voice/gasp/generic/female/female_gasp2.ogg'), "death" = list('modular_chomp/sound/voice/death/generic/female/female_death_1.ogg', 'modular_chomp/sound/voice/death/generic/female/female_death_2.ogg', 'modular_chomp/sound/voice/death/generic/female/female_death_3.ogg', 'modular_chomp/sound/voice/death/generic/female/female_death_4.ogg', 'modular_chomp/sound/voice/death/generic/female/female_death_5.ogg', 'modular_chomp/sound/voice/death/generic/female/female_death_6.ogg'))
-#define spider_sounds list("scream" = list('sound/voice/spiderchitter.ogg'), "pain" = null, "gasp" = null, "death" = list('modular_chomp/sound/voice/death/spider/spider_death.ogg'))
-#define mouse_sounds list("scream" = list('sound/effects/mouse_squeak_loud.ogg'), "pain" = list('sound/effects/mouse_squeak.ogg'), "gasp" = list('sound/effects/mouse_squeak.ogg'), "death" = list('sound/effects/mouse_squeak_loud.ogg'))
-#define no_sounds list("scream" = null, "pain" = null, "gasp" = null, "death" = null)
-#define use_default list("scream" = null, "pain" = null, "gasp" = null, "death" = null)
+// CHOMPEdit Start: Species sounds. This is probably inefficient, but I'm sure someone will yell at me or just do it better later:tm:
+#define canine_sounds list("cough" = null, "sneeze" = null, "scream" = list('modular_chomp/sound/voice/scream/canine/wolf_scream.ogg', 'modular_chomp/sound/voice/scream/canine/wolf_scream2.ogg', 'modular_chomp/sound/voice/scream/canine/wolf_scream3.ogg', 'modular_chomp/sound/voice/scream/canine/wolf_scream4.ogg', 'modular_chomp/sound/voice/scream/canine/wolf_scream5.ogg', 'modular_chomp/sound/voice/scream/canine/wolf_scream6.ogg'), "pain" = list('modular_chomp/sound/voice/pain/canine/wolf_pain.ogg', 'modular_chomp/sound/voice/pain/canine/wolf_pain2.ogg', 'modular_chomp/sound/voice/pain/canine/wolf_pain3.ogg', 'modular_chomp/sound/voice/pain/canine/wolf_pain4.ogg'), "gasp" = list('modular_chomp/sound/voice/gasp/canine/wolf_gasp.ogg'), "death" = list('modular_chomp/sound/voice/death/canine/wolf_death1.ogg', 'modular_chomp/sound/voice/death/canine/wolf_death2.ogg', 'modular_chomp/sound/voice/death/canine/wolf_death3.ogg', 'modular_chomp/sound/voice/death/canine/wolf_death4.ogg', 'modular_chomp/sound/voice/death/canine/wolf_death5.ogg'))
+#define feline_sounds list("cough" = null, "sneeze" = null, "scream" = list('modular_chomp/sound/voice/scream/feline/feline_scream.ogg'), "pain" = list('modular_chomp/sound/voice/pain/feline/feline_pain.ogg'), "gasp" = list('modular_chomp/sound/voice/gasp/feline/feline_gasp.ogg'), "death" = list('modular_chomp/sound/voice/death/feline/feline_death.ogg'))
+#define cervine_sounds list("cough" = null, "sneeze" = null, "scream" = list('modular_chomp/sound/voice/scream/cervine/cervine_scream.ogg'), "pain" = null, "gasp" = null, "death" = list('modular_chomp/sound/voice/death/cervine/cervine_death.ogg'))
+#define robot_sounds list("cough" = list('sound/effects/mob_effects/m_machine_cougha.ogg', 'sound/effects/mob_effects/m_machine_coughb.ogg', 'sound/effects/mob_effects/m_machine_coughc.ogg'), "sneeze" = list('sound/effects/mob_effects/machine_sneeze.ogg'), "scream" = list('modular_chomp/sound/voice/scream_silicon.ogg', 'modular_chomp/sound/voice/android_scream.ogg', 'modular_chomp/sound/voice/scream/robotic/robot_scream1.ogg', 'modular_chomp/sound/voice/scream/robotic/robot_scream2.ogg', 'modular_chomp/sound/voice/scream/robotic/robot_scream3.ogg'), "pain" = list('modular_chomp/sound/voice/pain/robotic/robot_pain1.ogg', 'modular_chomp/sound/voice/pain/robotic/robot_pain2.ogg', 'modular_chomp/sound/voice/pain/robotic/robot_pain3.ogg'), "gasp" = null, "death" = list('modular_chomp/sound/voice/borg_deathsound.ogg'))
+#define male_generic_sounds list("cough" = list('sound/effects/mob_effects/m_cougha.ogg','sound/effects/mob_effects/m_coughb.ogg', 'sound/effects/mob_effects/m_coughc.ogg'), "sneeze" = list('sound/effects/mob_effects/sneeze.ogg'), "scream" = list('modular_chomp/sound/voice/scream/generic/male/male_scream_1.ogg', 'modular_chomp/sound/voice/scream/generic/male/male_scream_2.ogg', 'modular_chomp/sound/voice/scream/generic/male/male_scream_3.ogg', 'modular_chomp/sound/voice/scream/generic/male/male_scream_4.ogg', 'modular_chomp/sound/voice/scream/generic/male/male_scream_5.ogg', 'modular_chomp/sound/voice/scream/generic/male/male_scream_6.ogg'), "pain" = list('modular_chomp/sound/voice/pain/generic/male/male_pain_1.ogg', 'modular_chomp/sound/voice/pain/generic/male/male_pain_2.ogg', 'modular_chomp/sound/voice/pain/generic/male/male_pain_3.ogg', 'modular_chomp/sound/voice/pain/generic/male/male_pain_4.ogg', 'modular_chomp/sound/voice/pain/generic/male/male_pain_5.ogg', 'modular_chomp/sound/voice/pain/generic/male/male_pain_6.ogg', 'modular_chomp/sound/voice/pain/generic/male/male_pain_7.ogg', 'modular_chomp/sound/voice/pain/generic/male/male_pain_8.ogg'), "gasp" = list('modular_chomp/sound/voice/gasp/generic/male/male_gasp1.ogg', 'modular_chomp/sound/voice/gasp/generic/male/male_gasp2.ogg', 'modular_chomp/sound/voice/gasp/generic/male/male_gasp3.ogg'), "death" = list('modular_chomp/sound/voice/death/generic/male/male_death_1.ogg', 'modular_chomp/sound/voice/death/generic/male/male_death_2.ogg', 'modular_chomp/sound/voice/death/generic/male/male_death_3.ogg', 'modular_chomp/sound/voice/death/generic/male/male_death_4.ogg', 'modular_chomp/sound/voice/death/generic/male/male_death_5.ogg', 'modular_chomp/sound/voice/death/generic/male/male_death_6.ogg', 'modular_chomp/sound/voice/death/generic/male/male_death_7.ogg'))
+#define female_generic_sounds list("cough" = list('sound/effects/mob_effects/f_cougha.ogg','sound/effects/mob_effects/f_coughb.ogg'), "sneeze" = list('sound/effects/mob_effects/f_sneeze.ogg'), "scream" = list('modular_chomp/sound/voice/scream/generic/female/female_scream_1.ogg', 'modular_chomp/sound/voice/scream/generic/female/female_scream_2.ogg', 'modular_chomp/sound/voice/scream/generic/female/female_scream_3.ogg', 'modular_chomp/sound/voice/scream/generic/female/female_scream_4.ogg', 'modular_chomp/sound/voice/scream/generic/female/female_scream_5.ogg'), "pain" = list('modular_chomp/sound/voice/pain/generic/female/female_pain_1.ogg', 'modular_chomp/sound/voice/pain/generic/female/female_pain_2.ogg', 'modular_chomp/sound/voice/pain/generic/female/female_pain_3.ogg'), "gasp" = list('modular_chomp/sound/voice/gasp/generic/female/female_gasp1.ogg', 'modular_chomp/sound/voice/gasp/generic/female/female_gasp2.ogg'), "death" = list('modular_chomp/sound/voice/death/generic/female/female_death_1.ogg', 'modular_chomp/sound/voice/death/generic/female/female_death_2.ogg', 'modular_chomp/sound/voice/death/generic/female/female_death_3.ogg', 'modular_chomp/sound/voice/death/generic/female/female_death_4.ogg', 'modular_chomp/sound/voice/death/generic/female/female_death_5.ogg', 'modular_chomp/sound/voice/death/generic/female/female_death_6.ogg'))
+#define spider_sounds list("cough" = null, "sneeze" = null, "scream" = list('sound/voice/spiderchitter.ogg'), "pain" = list('sound/voice/spiderchitter.ogg'), "gasp" = null, "death" = list('modular_chomp/sound/voice/death/spider/spider_death.ogg'))
+#define mouse_sounds list("cough" = list('sound/effects/mouse_squeak.ogg'), "sneeze" = list('sound/effects/mouse_squeak.ogg'), "scream" = list('sound/effects/mouse_squeak_loud.ogg'), "pain" = list('sound/effects/mouse_squeak.ogg'), "gasp" = list('sound/effects/mouse_squeak.ogg'), "death" = list('sound/effects/mouse_squeak_loud.ogg'))
+#define lizard_sounds list("cough" = null, "sneeze" = null, "scream" = list('sound/effects/mob_effects/una_scream1.ogg','sound/effects/mob_effects/una_scream2.ogg'), "pain" = list('modular_chomp/sound/voice/pain/lizard/lizard_pain.ogg'), "gasp" = null, "death" = list('modular_chomp/sound/voice/death/lizard/lizard_death.ogg'))
+#define vox_sounds list("cough" = list('sound/voice/shriekcough.ogg'), "sneeze" = list('sound/voice/shrieksneeze.ogg'), "scream" = list('sound/voice/shriek1.ogg'), "pain" = list('sound/voice/shriek1.ogg'), "gasp" = null, "death" = null)
+#define slime_sounds list("cough" = list('sound/effects/slime_squish.ogg'), "sneeze" = null, "scream" = null, "pain" = null, "gasp" = null, "death" = null)
+#define xeno_sounds list("cough" = null, "sneeze" = null, "scream" = list('sound/effects/mob_effects/x_scream1.ogg','sound/effects/mob_effects/x_scream2.ogg','sound/effects/mob_effects/x_scream3.ogg'), "pain" = list('modular_chomp/sound/voice/pain/xeno/alien_roar1.ogg', 'modular_chomp/sound/voice/pain/xeno/alien_roar2.ogg', 'modular_chomp/sound/voice/pain/xeno/alien_roar3.ogg', 'modular_chomp/sound/voice/pain/xeno/alien_roar4.ogg', 'modular_chomp/sound/voice/pain/xeno/alien_roar5.ogg', 'modular_chomp/sound/voice/pain/xeno/alien_roar6.ogg', 'modular_chomp/sound/voice/pain/xeno/alien_roar7.ogg', 'modular_chomp/sound/voice/pain/xeno/alien_roar8.ogg', 'modular_chomp/sound/voice/pain/xeno/alien_roar9.ogg', 'modular_chomp/sound/voice/pain/xeno/alien_roar10.ogg', 'modular_chomp/sound/voice/pain/xeno/alien_roar11.ogg', 'modular_chomp/sound/voice/pain/xeno/alien_roar12.ogg'), "gasp" = list('modular_chomp/sound/voice/gasp/xeno/alien_hiss1.ogg'), "death" = list('modular_chomp/sound/voice/death/xeno/xeno_death.ogg', 'modular_chomp/sound/voice/death/xeno/xeno_death2.ogg'))
+#define teshari_sounds list("cough" = list('sound/effects/mob_effects/tesharicougha.ogg','sound/effects/mob_effects/tesharicoughb.ogg'), "sneeze" = list('sound/effects/mob_effects/tesharisneeze.ogg'), "scream" = list('sound/effects/mob_effects/teshariscream.ogg'), "pain" = null, "gasp" = null, "death" = null)
+#define raccoon_sounds list("cough" = null, "sneeze" = null, "scream" = list('sound/voice/raccoon.ogg'), "pain" = list('sound/voice/raccoon.ogg'), "gasp" = null, "death" = list('sound/voice/raccoon.ogg'))
+#define metroid_sounds list("cough" = null, "sneeze" = null, "scream" = list('sound/metroid/metroidsee.ogg'), "pain" = list('sound/metroid/metroidsee.ogg'), "gasp" = null, "death" = list('sound/metroid/metroiddeath.ogg'))
+#define vulpine_sounds list("cough" = null, "sneeze" = null, "scream" = list('modular_chomp/sound/voice/scream/vulpine/fox_yip1.ogg', 'modular_chomp/sound/voice/scream/vulpine/fox_yip2.ogg', 'modular_chomp/sound/voice/scream/vulpine/fox_yip3.ogg'), "pain" = list('modular_chomp/sound/voice/pain/vulpine/fox_pain1.ogg', 'modular_chomp/sound/voice/pain/vulpine/fox_pain2.ogg', 'modular_chomp/sound/voice/pain/vulpine/fox_pain3.ogg', 'modular_chomp/sound/voice/pain/vulpine/fox_pain4.ogg'), "gasp" = list('modular_chomp/sound/voice/gasp/canine/wolf_gasp.ogg'), "death" = list('modular_chomp/sound/voice/death/canine/wolf_death1.ogg', 'modular_chomp/sound/voice/death/canine/wolf_death2.ogg', 'modular_chomp/sound/voice/death/canine/wolf_death3.ogg', 'modular_chomp/sound/voice/death/canine/wolf_death4.ogg', 'modular_chomp/sound/voice/death/canine/wolf_death5.ogg'))
+#define no_sounds list("cough" = null, "sneeze" = null, "scream" = null, "pain" = null, "gasp" = null, "death" = null)
+#define use_default list("cough" = null, "sneeze" = null, "scream" = null, "pain" = null, "gasp" = null, "death" = null)
/*
* TBD Sound Defines below
*/
@@ -350,30 +358,82 @@ var/list/goon_speak_skelly_sound = list('sound/talksounds/goon/skelly.ogg', 'sou
)
*/
-var/list/species_sounds = list()
+// Not sure we even really need this
+// var/list/species_sounds = list()
+// Global list containing all of our sound options.
var/list/species_sound_map = list(
"Canine" = canine_sounds,
- "Feline" = feline_sounds,
"Cervine" = cervine_sounds,
- "Robotic" = robot_sounds,
+ "Feline" = feline_sounds,
"Human Male" = male_generic_sounds,
"Human Female" = female_generic_sounds,
- "Spider" = spider_sounds,
+ "Lizard" = lizard_sounds,
+ "Metroid" = metroid_sounds,
"Mouse" = mouse_sounds,
+ "Raccoon" = raccoon_sounds,
+ "Robotic" = robot_sounds,
+ "Slime" = slime_sounds,
+ "Spider" = spider_sounds,
+ "Teshari" = teshari_sounds,
+ "Vox" = vox_sounds,
+ "Vulpine" = vulpine_sounds,
+ "Xeno" = xeno_sounds,
"None" = no_sounds,
"Unset" = use_default
)
+/* // Not sure we even really need this
/hook/startup/proc/Init_species_sounds() // The entries we're checking over MUST have unique keys.
for(var/i in species_sound_map)
species_sounds |= species_sound_map[i]
return 1
+*/
+/*
+ * Call this for when you need a sound from an already-identified list - IE, "Canine". pick() cannot parse procs.
+ * Indexes must be pre-calculated by the time it reaches here - for instance;
+ * var/mob/living/M = user
+ * get_species_sound(M.client.pref.species_sound)["scream"] will return get_species_sound("Robotic")["scream"]
+ * This can be paired with get_gendered_sound, like so: get_species_sound(get_gendered_sound(M))["emote"] <- get_gendered_sound will return whatever we have of the 3 valid options, and then get_species_sound will match that to the actual sound list.
+ * The get_species_sound proc will retrieve and return the list based on the key given - get_species_sound("Robotic")["scream"] will return list('modular_chomp/sound/voice/scream_silicon.ogg', 'modular_chomp/sound/voice/android_scream.ogg', etc)
+ * If you are adding new calls of this, follow the syntax of get_species_sound(species)["scream"] - you must attach ["emote"] to the end, outside the ()
+ * If your species has a gendered sound, DON'T PANIC. Simply set the gender_specific_species_sounds var on the species to true, and when you call this, do it like so:
+ * get_species_sound(H.species.species_sounds_male)["emote"] // If we're male, and want an emote sound gendered correctly.
+*/
/proc/get_species_sound(var/sounds)
- /*
- if(user.pref.species_sounds == "Unset")
- return species_sound_map[coalesce(user.pref.custom_base, user.pref.species)]
- */
return species_sound_map[sounds]
+
+/*
+ * The following helper proc will select a species' default sounds - useful for if we're set to "Unset"
+ * Yes it's a one-line proc, but I wanted to reduce duplicated lines as much as possible.
+*/
+/proc/select_default_species_sound(var/datum/preferences/pref) // Called in character setup. This is similar to check_gendered_sounds, except here we pull from the prefs.
+ var/datum/species/valid = coalesce(GLOB.all_species[pref.custom_base], GLOB.all_species[pref.species])
+ if(valid.gender_specific_species_sounds) // Do we have gender-specific sounds?
+ if(pref.identifying_gender == FEMALE && valid.species_sounds_female)
+ return valid.species_sounds_female
+ else if(pref.identifying_gender == MALE && valid.species_sounds_male)
+ return valid.species_sounds_male
+ else // Failsafe. Update if there's ever gendered sounds for HERM/Neuter/etc
+ return valid.species_sounds
+ else
+ return valid.species_sounds
+
+/proc/get_gendered_sound(var/mob/living/user) // Called anywhere we need gender-specific species sounds. Gets the gender-specific sound if one exists, but otherwise, will return the species-generic sound list.
+ var/mob/living/carbon/human/H = user
+ if(ishuman(H))
+ if(H.species.gender_specific_species_sounds) // Do we have gender-specific sounds?
+ if(H.identifying_gender == FEMALE && H.species.species_sounds_female)
+ return H.species.species_sounds_female
+ else if(H.identifying_gender == MALE && H.species.species_sounds_male)
+ return H.species.species_sounds_male
+ else // Failsafe. Update if there's ever gendered sounds for HERM/Neuter/etc
+ return H.species.species_sounds
+ else
+ return H.species.species_sounds
+ else
+ return user.species_sounds
+
+
// CHOMPEdit End
diff --git a/code/modules/client/preference_setup/vore/02_size.dm b/code/modules/client/preference_setup/vore/02_size.dm
index 7b3c1ae991..276034e29f 100644
--- a/code/modules/client/preference_setup/vore/02_size.dm
+++ b/code/modules/client/preference_setup/vore/02_size.dm
@@ -124,7 +124,9 @@
// var/datum/species/selected_species = GLOB.all_species[pref.species]
// if(selected_species.selects_bodytype)
. += "
"
- . += "Species Injury Sounds: [pref.species_sound]
"
+ . += "Species Sounds: [pref.species_sound]
"
+ . += "Test Cough Sounds
"
+ . += "Test Sneeze Sounds
"
. += "Test Scream Sounds
"
. += "Test Pain Sounds
"
. += "Test Gasp Sounds
"
@@ -275,256 +277,101 @@
// CHOMPEdit Start: Pain/Scream/Death sounds
else if(href_list["species_sound_options"]) // You shouldn't be able to see this option if you don't have the option to select a custom icon base, so we don't need to re-check for safety here.
var/list/possible_species_sound_types = species_sound_map
- testing("Loading species sound types for selection.")
- var/choice = tgui_input_list(usr, "Which set of sounds would you like to use for your character's pain, death, gasp, and scream sounds?", "Species Sounds", possible_species_sound_types)
+ var/choice = tgui_input_list(usr, "Which set of sounds would you like to use for your character's species sounds? (Cough, Sneeze, Scream, Pain, Gasp, Death)", "Species Sounds", possible_species_sound_types)
if(!choice)
return TOPIC_REFRESH // No choice? Don't reset our selection
else
pref.species_sound = choice
- testing("Setting species sound type to [choice].")
return TOPIC_REFRESH
- else if(href_list["scream_test"])
- var/datum/species/selected_species = GLOB.all_species[pref.species]
- // if(selected_species.selects_bodytype)
+ else if(href_list["cough_test"])
var/sound/S
- testing("About to test our voice. User is [user]. Our chosen species sound is [pref.species_sound].")
- testing("Species Sound map returns [get_species_sound(pref.species_sound)].")
- testing("We are fetching a sound, and will get [pick(species_sound_map[pref.species_sound["scream"]])].")
- S = sound(pick(species_sound_map[pref.species_sound["scream"]]))
- //S = sound(pick(get_species_sound(pref.species_sound["scream"])))
- /*
- switch(pref.species_sound)
- if("Canine")
- S = sound(pick(canine_sounds["scream"]))
- if("Feline")
- S = sound(pick(feline_scream_sounds))
- if("Cervine")
- S = sound(pick(cervine_scream_sounds))
- if("Generic/Human")
- if(pref.identifying_gender == FEMALE)
- S = sound(pick(female_generic_scream_sounds))
- else
- S = sound(pick(male_generic_scream_sounds))
- if("Unset")
- var/datum/species/os
- if(!pref.custom_base) // Safety
- os = selected_species
- else
- os = GLOB.all_species[pref.custom_base]
- if(pref.identifying_gender == FEMALE)
- S = sound(pick(os.female_scream_sound))
- else
- S = sound(pick(os.male_scream_sound))
- if("Robotic")
- S = sound(pick(robot_scream_sounds))
- if("None" || null)
- to_chat(user, "This set does not have scream sounds!")
- return TOPIC_REFRESH
- */
+ var/ourpref = pref.species_sound
+ var/oursound = get_species_sound(ourpref)["cough"]
+ S = sound(pick(oursound))
if(pref.species_sound == "Unset")
- S = sound(pick(get_species_sound(coalesce(pref.species_sound, pref.custom_base, pref.species))["scream"]))
- if(pref.species_sound == "None" || pref.species_sound["scream"] == null || S == null)
+ oursound = get_species_sound(select_default_species_sound(user))["cough"]
+ S = sound(pick(oursound))
+ if(pref.species_sound == "None" || oursound == null)
+ to_chat(user, "This set does not have cough sounds!")
+ return TOPIC_REFRESH
+ S.frequency = pick(pref.voice_freq)
+ S.volume = 20
+ SEND_SOUND(user, S)
+ return TOPIC_REFRESH
+ else if(href_list["sneeze_test"])
+ var/sound/S
+ var/ourpref = pref.species_sound
+ var/oursound = get_species_sound(ourpref)["sneeze"]
+ S = sound(pick(oursound))
+ if(pref.species_sound == "Unset")
+ oursound = get_species_sound(select_default_species_sound(user))["sneeze"]
+ S = sound(pick(oursound))
+ if(pref.species_sound == "None" || oursound == null)
+ to_chat(user, "This set does not have sneeze sounds!")
+ return TOPIC_REFRESH
+ S.frequency = pick(pref.voice_freq)
+ S.volume = 20
+ SEND_SOUND(user, S)
+ return TOPIC_REFRESH
+ else if(href_list["scream_test"])
+ var/sound/S
+ var/ourpref = pref.species_sound
+ var/oursound = get_species_sound(ourpref)["scream"]
+ S = sound(pick(oursound))
+ if(pref.species_sound == "Unset")
+ oursound = get_species_sound(select_default_species_sound(user))["scream"]
+ S = sound(pick(oursound))
+ if(pref.species_sound == "None" || oursound == null)
to_chat(user, "This set does not have scream sounds!")
return TOPIC_REFRESH
S.frequency = pick(pref.voice_freq)
S.volume = 20
SEND_SOUND(user, S)
return TOPIC_REFRESH
- /*
- else
- var/sound/S
- if(pref.identifying_gender == FEMALE)
- S = sound(pick(selected_species.female_scream_sound))
- else
- S = sound(pick(selected_species.male_scream_sound))
- if(S == null)
- to_chat(user, "This species does not have scream sounds!")
- return TOPIC_REFRESH
- S.frequency = pick(pref.voice_freq)
- S.volume = 20
- SEND_SOUND(user, S)
- return TOPIC_REFRESH
- */
-
else if(href_list["pain_test"])
- var/datum/species/selected_species = GLOB.all_species[pref.species]
- //if(selected_species.selects_bodytype)
var/sound/S
- S = sound(pick(species_sound_map[pref.species_sound["pain"]]))
- //S = sound(pick(get_species_sound(pref.species_sound["pain"])))
- /*
- switch(pref.species_sound)
- if("Canine")
- S = sound(pick(canine_pain_sounds))
- if("Feline")
- S = sound(pick(feline_pain_sounds))
- if("Cervine")
- to_chat(user, "This set does not have pain sounds!")
- return TOPIC_REFRESH
- if("Generic/Human")
- if(pref.identifying_gender == FEMALE)
- S = sound(pick(female_generic_pain_sounds))
- else
- S = sound(pick(male_generic_pain_sounds))
- if("Unset")
- var/datum/species/os
- if(!pref.custom_base) // Safety
- os = selected_species
- else
- os = GLOB.all_species[pref.custom_base]
- if(pref.identifying_gender == FEMALE)
- S = sound(pick(os.female_pain_sound))
- else
- S = sound(pick(os.male_pain_sound))
- if("Robotic")
- S = sound(pick(robot_pain_sounds))
- if("None" || null)
- to_chat(user, "This set does not have pain sounds!")
- return TOPIC_REFRESH
- */
+ var/ourpref = pref.species_sound
+ var/oursound = get_species_sound(ourpref)["pain"]
+ S = sound(pick(oursound))
if(pref.species_sound == "Unset")
- S = sound(pick(get_species_sound(coalesce(pref.species_sound, pref.custom_base, pref.species))["pain"]))
- if(pref.species_sound == "None" || pref.species_sound["pain"] == null || S == null)
+ oursound = get_species_sound(select_default_species_sound(user))["pain"]
+ S = sound(pick(oursound))
+ if(pref.species_sound == "None" || oursound == null)
to_chat(user, "This set does not have pain sounds!")
return TOPIC_REFRESH
S.frequency = pick(pref.voice_freq)
S.volume = 20
SEND_SOUND(user, S)
return TOPIC_REFRESH
- /*
- else
- var/sound/S
- if(pref.identifying_gender == FEMALE)
- S = sound(pick(selected_species.female_pain_sound))
- else
- S = sound(pick(selected_species.male_pain_sound))
- if(S == null)
- to_chat(user, "This species does not have pain sounds!")
- return TOPIC_REFRESH
- S.frequency = pick(pref.voice_freq)
- S.volume = 20
- SEND_SOUND(user, S)
- return TOPIC_REFRESH
- */
else if(href_list["gasp_test"])
- var/datum/species/selected_species = GLOB.all_species[pref.species]
- // if(selected_species.selects_bodytype)
var/sound/S
- S = sound(pick(species_sound_map[pref.species_sound["gasp"]]))
- //S = sound(pick(get_species_sound(pref.species_sound["gasp"])))
- /*
- switch(pref.species_sound)
- if("Canine")
- S = sound(pick(canine_gasp_sounds))
- if("Feline")
- S = sound(pick(feline_gasp_sounds))
- if("Cervine")
- to_chat(user, "This set does not have gasp sounds!")
- return TOPIC_REFRESH
- if("Generic/Human")
- if(pref.identifying_gender == FEMALE)
- S = sound(pick(female_generic_gasp_sounds))
- else
- S = sound(pick(male_generic_gasp_sounds))
- if("Unset")
- var/datum/species/os
- if(!pref.custom_base) // Safety
- os = selected_species
- else
- os = GLOB.all_species[pref.custom_base]
- if(pref.identifying_gender == FEMALE)
- S = sound(pick(os.female_gasp_sound))
- else
- S = sound(pick(os.male_gasp_sound))
- if("Robotic")
- to_chat(user, "This set does not have gasp sounds!")
- return TOPIC_REFRESH
- if("None" || null)
- to_chat(user, "This set does not have gasp sounds!")
- return TOPIC_REFRESH
- */
+ var/ourpref = pref.species_sound
+ var/oursound = get_species_sound(ourpref)["gasp"]
+ S = sound(pick(oursound))
if(pref.species_sound == "Unset")
- S = sound(pick(get_species_sound(coalesce(pref.species_sound, pref.custom_base, pref.species))["gasp"]))
- if(pref.species_sound == "None" || pref.species_sound["gasp"] == null || S == null)
+ oursound = get_species_sound(select_default_species_sound(user))["gasp"]
+ S = sound(pick(oursound))
+ if(pref.species_sound == "None" || oursound == null)
to_chat(user, "This set does not have gasp sounds!")
return TOPIC_REFRESH
S.frequency = pick(pref.voice_freq)
S.volume = 20
SEND_SOUND(user, S)
return TOPIC_REFRESH
- /*
- else
- var/sound/S
- if(pref.identifying_gender == FEMALE)
- S = sound(pick(selected_species.female_gasp_sound))
- else
- S = sound(pick(selected_species.male_gasp_sound))
- if(S == null)
- to_chat(user, "This species does not have gasp sounds!")
- return TOPIC_REFRESH
- S.frequency = pick(pref.voice_freq)
- S.volume = 20
- SEND_SOUND(user, S)
- return TOPIC_REFRESH
- */
else if(href_list["death_test"])
- var/datum/species/selected_species = GLOB.all_species[pref.species]
- // if(selected_species.selects_bodytype)
var/sound/S
- S = sound(pick(species_sound_map[pref.species_sound["death"]]))
- // S = sound(pick(get_species_sound(pref.species_sound["death"])))
- /*
- switch(pref.species_sound)
- if("Canine")
- S = sound(pick(canine_death_sounds))
- if("Feline")
- S = sound(pick(feline_death_sounds))
- if("Cervine")
- S = sound(pick(cervine_death_sounds))
- if("Generic/Human")
- if(pref.identifying_gender == FEMALE)
- S = sound(pick(female_generic_death_sounds))
- else
- S = sound(pick(male_generic_death_sounds))
- if("Unset")
- var/datum/species/os
- if(!pref.custom_base) // Safety
- os = selected_species
- else
- os = GLOB.all_species[pref.custom_base]
- if(pref.identifying_gender == FEMALE)
- S = sound(pick(os.female_death_sound))
- else
- S = sound(pick(os.male_death_sound))
- if("Robotic")
- S = sound(pick(robot_death_sounds))
- if("None" || null)
- to_chat(user, "This set does not have death sounds!")
- return TOPIC_REFRESH
- */
+ var/ourpref = pref.species_sound
+ var/oursound = get_species_sound(ourpref)["death"]
+ S = sound(pick(oursound))
if(pref.species_sound == "Unset")
- S = sound(pick(get_species_sound(coalesce(pref.species_sound, pref.custom_base, pref.species))["death"]))
- if(pref.species_sound == "None" || pref.species_sound["gasp"] == null || S == null)
- to_chat(user, "This set does not have gasp sounds!")
+ oursound = get_species_sound(select_default_species_sound(user))["death"]
+ S = sound(pick(oursound))
+ if(pref.species_sound == "None" || oursound == null)
+ to_chat(user, "This set does not have death sounds!")
return TOPIC_REFRESH
S.frequency = pick(pref.voice_freq)
S.volume = 20
SEND_SOUND(user, S)
return TOPIC_REFRESH
- /*
- else
- var/sound/S
- if(pref.identifying_gender == FEMALE)
- S = sound(pick(selected_species.female_death_sound))
- else
- S = sound(pick(selected_species.male_death_sound))
- if(S == null)
- to_chat(user, "This species does not have death sounds!")
- return TOPIC_REFRESH
- S.frequency = pick(pref.voice_freq)
- S.volume = 20
- SEND_SOUND(user, S)
- return TOPIC_REFRESH
- */
// CHOMPEdit End
return ..();
diff --git a/code/modules/client/preference_setup/vore/07_traits.dm b/code/modules/client/preference_setup/vore/07_traits.dm
index c6f1905f2c..a668d1f1e7 100644
--- a/code/modules/client/preference_setup/vore/07_traits.dm
+++ b/code/modules/client/preference_setup/vore/07_traits.dm
@@ -262,7 +262,11 @@
new_S.copy_species_sounds(new_S, pref.species_sound, pref.custom_base) // CHOMPEdit: Custom Scream/Death/Gasp/Pain Sounds
*/
// CHOMPEdit: Custom Scream/Death/Gasp/Pain Sounds.
- new_S.species_sounds = coalesce(pref.species_sound, pref.custom_base, pref.species)
+ var/species_sounds_to_copy = pref.species_sound // What sounds are we using?
+ if(species_sounds_to_copy == "Unset") // Are we unset?
+ species_sounds_to_copy = select_default_species_sound(pref) // This will also grab gendered versions of the sounds, if they exist.
+
+ new_S.species_sounds = species_sounds_to_copy // Now we send our sounds over to the mob
if(pref.species == SPECIES_CUSTOM)
//Statistics for this would be nice
diff --git a/code/modules/emotes/definitions/audible_cough.dm b/code/modules/emotes/definitions/audible_cough.dm
index 4e28d1db91..e30b0be3fd 100644
--- a/code/modules/emotes/definitions/audible_cough.dm
+++ b/code/modules/emotes/definitions/audible_cough.dm
@@ -12,41 +12,23 @@
emote_volume_synthetic = 50
conscious = FALSE
- emote_sound_synthetic = list(
- FEMALE = list(
- 'sound/effects/mob_effects/f_machine_cougha.ogg',
- 'sound/effects/mob_effects/f_machine_coughb.ogg'
- ),
- MALE = list(
- 'sound/effects/mob_effects/m_machine_cougha.ogg',
- 'sound/effects/mob_effects/m_machine_coughb.ogg',
- 'sound/effects/mob_effects/m_machine_coughc.ogg'
- ),
- NEUTER = list(
- 'sound/effects/mob_effects/m_machine_cougha.ogg',
- 'sound/effects/mob_effects/m_machine_coughb.ogg',
- 'sound/effects/mob_effects/m_machine_coughc.ogg'
- ),
- PLURAL = list(
- 'sound/effects/mob_effects/m_machine_cougha.ogg',
- 'sound/effects/mob_effects/m_machine_coughb.ogg',
- 'sound/effects/mob_effects/m_machine_coughc.ogg'
- )
- )
+// CHOMPEdit Start: Standardize Species Sounds
+ // emote_sound_synthetic = list()
/decl/emote/audible/cough/get_emote_sound(var/atom/user)
if(ishuman(user) && !check_synthetic(user))
var/mob/living/carbon/human/H = user
- if(H.get_gender() == FEMALE)
- if(length(H.species.female_cough_sounds))
- return list(
- "sound" = H.species.female_cough_sounds,
- "vol" = emote_volume
- )
- else
- if(length(H.species.male_cough_sounds))
- return list(
- "sound" = H.species.male_cough_sounds,
- "vol" = emote_volume
- )
+ var/vol = H.species.cough_volume
+ return list(
+ "sound" = get_species_sound(get_gendered_sound(H))["cough"],
+ "vol" = vol,
+ "volchannel" = VOLUME_CHANNEL_SPECIES_SOUNDS
+ )
+ if(check_synthetic(user))
+ return list(
+ "sound" = get_species_sound("Robotic")["cough"],
+ "vol" = emote_volume,
+ "volchannel" = VOLUME_CHANNEL_SPECIES_SOUNDS
+ )
+// CHOMPEdit End
return ..()
diff --git a/code/modules/emotes/definitions/audible_scream_ch.dm b/code/modules/emotes/definitions/audible_scream_ch.dm
index 591fb31d73..91b3fbf85f 100644
--- a/code/modules/emotes/definitions/audible_scream_ch.dm
+++ b/code/modules/emotes/definitions/audible_scream_ch.dm
@@ -2,19 +2,12 @@
..()
if(ishuman(user))
var/mob/living/carbon/human/H = user
- if(H.get_gender() == FEMALE)
- return list(
- "sound" = H.species.female_scream_sound,
- "vol" = 60,
+ var/vol = H.species.scream_volume
+ return list(
+ "sound" = get_species_sound(get_gendered_sound(H))["scream"],
+ "vol" = vol,
"exr" = 20,
- "volchannel" = VOLUME_CHANNEL_INJ_DEATH
- )
- else
- return list(
- "sound" = H.species.male_scream_sound,
- "vol" = 60,
- "exr" = 20,
- "volchannel" = VOLUME_CHANNEL_INJ_DEATH
+ "volchannel" = VOLUME_CHANNEL_SPECIES_SOUNDS
)
/* // Not sure if needed, screams are a carbon-only thing rn.
else
@@ -23,18 +16,18 @@
return list(
"sound" = female_scream_sound,
"vol" = 60,
- "volchannel" = VOLUME_CHANNEL_INJ_DEATH
+ "volchannel" = VOLUME_CHANNEL_SPECIES_SOUNDS
)
else if((M.get_gender() == MALE) && male_scream_sound) // If our mob has custom sounds per-gender defined, most won't.
return list(
"sound" = male_scream_sound,
"vol" = 60,
- "volchannel" = VOLUME_CHANNEL_INJ_DEATH
+ "volchannel" = VOLUME_CHANNEL_SPECIES_SOUNDS
)
else
return list(
"sound" = scream_sound,
"vol" = 60,
- "volchannel" = VOLUME_CHANNEL_INJ_DEATH
+ "volchannel" = VOLUME_CHANNEL_SPECIES_SOUNDS
)
*/
diff --git a/code/modules/emotes/definitions/audible_scream_vr.dm b/code/modules/emotes/definitions/audible_scream_vr.dm
index c063a87a17..a8635c0166 100644
--- a/code/modules/emotes/definitions/audible_scream_vr.dm
+++ b/code/modules/emotes/definitions/audible_scream_vr.dm
@@ -1,6 +1,8 @@
/decl/emote/audible/scream/get_emote_sound(var/atom/user)
if(ishuman(user))
var/mob/living/carbon/human/H = user
+ // CHOMPEdit Start: Commenting out bc _ch calls parent.
+ /*
if(H.get_gender() == FEMALE)
return list(
"sound" = H.species.female_scream_sound,
@@ -10,4 +12,11 @@
return list(
"sound" = H.species.male_scream_sound,
"vol" = emote_volume
- )
\ No newline at end of file
+ */
+ var/vol = H.species.scream_volume
+ return list(
+ "sound" = get_species_sound(get_gendered_sound(H))["scream"],
+ "vol" = vol,
+ "exr" = 20,
+ "volchannel" = VOLUME_CHANNEL_SPECIES_SOUNDS
+ )
diff --git a/code/modules/emotes/definitions/audible_sneeze.dm b/code/modules/emotes/definitions/audible_sneeze.dm
index a15cbaf46d..3d745fa1b7 100644
--- a/code/modules/emotes/definitions/audible_sneeze.dm
+++ b/code/modules/emotes/definitions/audible_sneeze.dm
@@ -2,12 +2,6 @@
key = "sneeze"
emote_message_1p = "You sneeze."
emote_message_3p = "sneezes."
- emote_sound_synthetic = list(
- FEMALE = 'sound/effects/mob_effects/machine_sneeze.ogg',
- MALE = 'sound/effects/mob_effects/f_machine_sneeze.ogg',
- NEUTER = 'sound/effects/mob_effects/f_machine_sneeze.ogg',
- PLURAL = 'sound/effects/mob_effects/f_machine_sneeze.ogg'
- )
emote_message_synthetic_1p = "You emit a robotic sneeze."
emote_message_synthetic_1p_target = "You emit a robotic sneeze towards TARGET."
emote_message_synthetic_3p = "emits a robotic sneeze."
@@ -16,14 +10,13 @@
/decl/emote/audible/sneeze/get_emote_sound(var/atom/user)
if(ishuman(user) && !check_synthetic(user))
var/mob/living/carbon/human/H = user
- if(H.get_gender() == FEMALE)
- return list(
- "sound" = H.species.female_sneeze_sound,
- "vol" = emote_volume
- )
- else
- return list(
- "sound" = H.species.male_sneeze_sound,
- "vol" = emote_volume
+ // CHOMPEdit Start: Standardize Species Sounds
+ var/vol = H.species.sneeze_volume
+ return list(
+ "sound" = get_species_sound(get_gendered_sound(H))["sneeze"],
+ "vol" = vol,
+ "exr" = 20,
+ "volchannel" = VOLUME_CHANNEL_SPECIES_SOUNDS
)
+ // CHOMPEdit End
return ..()
diff --git a/code/modules/emotes/definitions/human.dm b/code/modules/emotes/definitions/human.dm
index b8571fa164..7addc1222c 100644
--- a/code/modules/emotes/definitions/human.dm
+++ b/code/modules/emotes/definitions/human.dm
@@ -4,12 +4,21 @@
/decl/emote/human/deathgasp
key = "deathgasp"
+/decl/emote/human/deathgasp/get_emote_sound(user)
+ var/mob/living/carbon/human/H = user
+ var/vol = H.species.death_volume
+ return list(
+ "sound" = get_species_sound(get_gendered_sound(H))["death"],
+ "vol" = vol,
+ "volchannel" = VOLUME_CHANNEL_SPECIES_SOUNDS
+ )
+
/decl/emote/human/deathgasp/do_emote(mob/living/carbon/human/user)
if(istype(user) && user.species.get_death_message(user) == DEATHGASP_NO_MESSAGE)
to_chat(user, SPAN_WARNING("Your species has no deathgasp."))
return
- . = ..()
-
+ . = ..()
+
/decl/emote/human/deathgasp/get_emote_message_3p(var/mob/living/carbon/human/user)
return "[user.species.get_death_message(user)]"
diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm
index 0f0d2dc53d..0eb409370a 100644
--- a/code/modules/mob/living/carbon/human/death.dm
+++ b/code/modules/mob/living/carbon/human/death.dm
@@ -91,16 +91,8 @@
if(!gibbed && species.death_sound)
playsound(src, species.death_sound, 80, 1, 1)
*/
- if(!gibbed && (species.male_death_sound || species.female_death_sound) && !isbelly(loc))
- var/gender = src.gender
- if(gender == FEMALE)
- playsound(src, pick(species.female_death_sound), 40, 1, 20, volume_channel = VOLUME_CHANNEL_INJ_DEATH)
- else // Until we get more, sorry. :c
- playsound(src, pick(species.male_death_sound), 40, 1, 20, volume_channel = VOLUME_CHANNEL_INJ_DEATH)
- /*
- if(HERM) // TBD if we ever get sounds for non male/female. Not a focus rn.
- playsound(src, species.male_death_sound, 80, 1, 20)
- */
+ if(!gibbed && !isbelly(loc))
+ playsound(src, pick(get_species_sound(get_gendered_sound(src))["death"]), src.species.death_volume, 1, 20, volume_channel = VOLUME_CHANNEL_SPECIES_SOUNDS)
// CHOMPEdit End
if(ticker && ticker.mode)
diff --git a/code/modules/mob/living/carbon/human/species/outsider/shadow.dm b/code/modules/mob/living/carbon/human/species/outsider/shadow.dm
index 8e129555b0..b49645029b 100644
--- a/code/modules/mob/living/carbon/human/species/outsider/shadow.dm
+++ b/code/modules/mob/living/carbon/human/species/outsider/shadow.dm
@@ -12,8 +12,9 @@
has_organ = list()
siemens_coefficient = 0
- male_scream_sound = null //CHOMPedit It has no mouth yet it must scream
- female_scream_sound = null //CHOMPedit
+ // CHOMPedit: No sounds for this species
+ // male_scream_sound = null //CHOMPedit It has no mouth yet it must scream
+ // female_scream_sound = null //CHOMPedit
blood_color = "#CCCCCC"
flesh_color = "#AAAAAA"
@@ -33,4 +34,4 @@
/datum/species/shadow/handle_death(var/mob/living/carbon/human/H)
spawn(1)
new /obj/effect/decal/cleanable/ash(H.loc)
- qdel(H)
\ No newline at end of file
+ qdel(H)
diff --git a/code/modules/mob/living/carbon/human/species/outsider/skeleton.dm b/code/modules/mob/living/carbon/human/species/outsider/skeleton.dm
index ebc5237c08..14109882dc 100644
--- a/code/modules/mob/living/carbon/human/species/outsider/skeleton.dm
+++ b/code/modules/mob/living/carbon/human/species/outsider/skeleton.dm
@@ -15,8 +15,9 @@
spawn_flags = SPECIES_IS_RESTRICTED
appearance_flags = null
- male_scream_sound = null //CHOMPedit Screaming skeletons would be funny, but needs better sounds
- female_scream_sound = null //CHOMPedit
+ // CHOMPedit: No sounds for this species
+ // male_scream_sound = null //CHOMPedit Screaming skeletons would be funny, but needs better sounds
+ // female_scream_sound = null //CHOMPedit
show_ssd = null
@@ -53,4 +54,4 @@
heat_level_2 = 3000
heat_level_3 = 4000
- body_temperature = T20C
\ No newline at end of file
+ body_temperature = T20C
diff --git a/code/modules/mob/living/carbon/human/species/outsider/vox.dm b/code/modules/mob/living/carbon/human/species/outsider/vox.dm
index 29dae36b85..7a7844efe6 100644
--- a/code/modules/mob/living/carbon/human/species/outsider/vox.dm
+++ b/code/modules/mob/living/carbon/human/species/outsider/vox.dm
@@ -28,19 +28,16 @@
scream_verb_1p = "shriek"
scream_verb_3p = "shrieks"
- male_scream_sound = list('sound/voice/shriek1.ogg') // CHOMPEdit: List-ified
- female_scream_sound = list('sound/voice/shriek1.ogg') // CHOMPEdit: List-ified
- male_cough_sounds = list('sound/voice/shriekcough.ogg')
- female_cough_sounds = list('sound/voice/shriekcough.ogg')
- male_sneeze_sound = 'sound/voice/shrieksneeze.ogg'
- female_sneeze_sound = 'sound/voice/shrieksneeze.ogg'
- // CHOMPEdit Start: Missing Sounds, so limited/substitutes for this race.
- male_gasp_sound = null
- female_gasp_sound = null
- male_pain_sound = list('sound/voice/shriek1.ogg')
- female_pain_sound = list('sound/voice/shriek1.ogg')
- male_death_sound = null
- female_death_sound = null
+ pain_verb_1p = "shriek"
+ pain_verb_3p = "shrieks"
+ species_sounds = "Vox"
+ // CHOMPedit: Species Sounds Standardization
+ // male_scream_sound = list('sound/voice/shriek1.ogg') // CHOMPEdit: List-ified
+ // female_scream_sound = list('sound/voice/shriek1.ogg') // CHOMPEdit: List-ified
+ // male_cough_sounds = list('sound/voice/shriekcough.ogg')
+ // female_cough_sounds = list('sound/voice/shriekcough.ogg')
+ // male_sneeze_sound = 'sound/voice/shrieksneeze.ogg'
+ // female_sneeze_sound = 'sound/voice/shrieksneeze.ogg'
// CHOMPEdit End
warning_low_pressure = 50
diff --git a/code/modules/mob/living/carbon/human/species/shadekin/shadekin.dm b/code/modules/mob/living/carbon/human/species/shadekin/shadekin.dm
index 2b8edb450f..836194f2e0 100644
--- a/code/modules/mob/living/carbon/human/species/shadekin/shadekin.dm
+++ b/code/modules/mob/living/carbon/human/species/shadekin/shadekin.dm
@@ -22,8 +22,8 @@
unarmed_types = list(/datum/unarmed_attack/stomp, /datum/unarmed_attack/kick, /datum/unarmed_attack/claws/shadekin, /datum/unarmed_attack/bite/sharp/shadekin)
rarity_value = 15 //INTERDIMENSIONAL FLUFFERS
- male_scream_sound = null //CHOMPedit
- female_scream_sound = null //CHOMPedit
+ // male_scream_sound = null //CHOMPedit
+ // female_scream_sound = null //CHOMPedit
inherent_verbs = list(/mob/proc/adjust_hive_range)
@@ -63,10 +63,10 @@
// has_glowing_eyes = TRUE //Applicable through neutral taits.
death_message = "phases to somewhere far away!"
- male_cough_sounds = null
- female_cough_sounds = null
- male_sneeze_sound = null
- female_sneeze_sound = null
+ // male_cough_sounds = null
+ // female_cough_sounds = null
+ // male_sneeze_sound = null
+ // female_sneeze_sound = null
speech_bubble_appearance = "ghost"
diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm
index 20646a16f6..04cc78d436 100644
--- a/code/modules/mob/living/carbon/human/species/species.dm
+++ b/code/modules/mob/living/carbon/human/species/species.dm
@@ -80,12 +80,32 @@
//Soundy emotey things.
var/scream_verb_1p = "scream"
var/scream_verb_3p = "screams"
+ // CHOMPEdit Start: Overriding with our own species-specific sounds.
+ // If you're wanting to know where the lists are per-species, go to sound.dm
+ /*
var/male_scream_sound = list('sound/effects/mob_effects/m_scream_1.ogg','sound/effects/mob_effects/m_scream_2.ogg','sound/effects/mob_effects/m_scream_3.ogg','sound/effects/mob_effects/m_scream_4.ogg') //CHOMpedit start : Added tgstation screams
var/female_scream_sound = list('sound/effects/mob_effects/f_scream_1.ogg','sound/effects/mob_effects/f_scream_2.ogg','sound/effects/mob_effects/f_scream_3.ogg','sound/effects/mob_effects/f_scream_4.ogg') //CHOMPedit end
var/male_cough_sounds = list('sound/effects/mob_effects/m_cougha.ogg','sound/effects/mob_effects/m_coughb.ogg', 'sound/effects/mob_effects/m_coughc.ogg')
var/female_cough_sounds = list('sound/effects/mob_effects/f_cougha.ogg','sound/effects/mob_effects/f_coughb.ogg')
var/male_sneeze_sound = 'sound/effects/mob_effects/sneeze.ogg'
var/female_sneeze_sound = 'sound/effects/mob_effects/f_sneeze.ogg'
+ */
+ /* Our base species sounds.
+ * Note that species_sounds is meant to be used in the place of gendered sound.
+ * If your species has gendered sounds, set 'gender_specific_species_sounds' to TRUE, and define your gendered sounds below.
+ */
+ var/species_sounds = "None"
+ var/gender_specific_species_sounds = FALSE // This variable controls if our audible emotes pick based off of gender. Only humans have these so far.
+ var/species_sounds_male = "None" // Safely ignored if the above is set FALSE
+ var/species_sounds_female = "None" // Safely ignored if the above is set FALSE
+ var/cough_volume = 50 // Self-explanatory, define this separately on your species if the sound files are louder.
+ var/sneeze_volume = 50 // Self-explanatory, define this separately on your species if the sound files are louder.
+ var/scream_volume = 60 // Self-explanatory, define this separately on your species if the sound files are louder.
+ var/pain_volume = 50 // Self-explanatory, define this separately on your species if the sound files are louder.
+ var/gasp_volume = 50 // Self-explanatory, define this separately on your species if the sound files are louder.
+ var/death_volume = 50 // Self-explanatory, define this separately on your species if the sound files are louder.
+ // var/species_sounds_herm // If you want a custom sound played for other genders, just add them like so
+ // CHOMPEdit End
// Combat/health/chem/etc. vars.
var/total_health = 100 // How much damage the mob can take before entering crit.
@@ -575,4 +595,3 @@
/datum/species/proc/post_spawn_special(mob/living/carbon/human/H)
return
-
diff --git a/code/modules/mob/living/carbon/human/species/station/alraune.dm b/code/modules/mob/living/carbon/human/species/station/alraune.dm
index 665408704a..74ad9920b4 100644
--- a/code/modules/mob/living/carbon/human/species/station/alraune.dm
+++ b/code/modules/mob/living/carbon/human/species/station/alraune.dm
@@ -17,8 +17,8 @@
base_species = SPECIES_ALRAUNE
selects_bodytype = SELECTS_BODYTYPE_CUSTOM //VOREStation edit
- male_scream_sound = null //CHOMPedit
- female_scream_sound = null //CHOMPedit
+ // male_scream_sound = null //CHOMPedit
+ // female_scream_sound = null //CHOMPedit
wikilink="https://wiki.chompstation13.net/index.php?title=Alraune" //CHOMPedit: add wiki link
body_temperature = T20C
diff --git a/code/modules/mob/living/carbon/human/species/station/blank_vr.dm b/code/modules/mob/living/carbon/human/species/station/blank_vr.dm
index 0bee807c7e..b8b3fd357b 100644
--- a/code/modules/mob/living/carbon/human/species/station/blank_vr.dm
+++ b/code/modules/mob/living/carbon/human/species/station/blank_vr.dm
@@ -16,16 +16,8 @@
you select and set this species as your species. Please look at the VORE tab if you select this species."
catalogue_data = list(/datum/category_item/catalogue/fauna/custom_species)
- male_scream_sound = null //CHOMPedit These are going to be a hassle for custom species if not null
- female_scream_sound = null //CHOMPedit
- // CHOMPEdit Start: Missing Sounds, so none for this race.
- male_gasp_sound = null
- female_gasp_sound = null
- male_pain_sound = null
- female_pain_sound = null
- male_death_sound = null
- female_death_sound = null
- // CHOMPEdit End
+ // male_scream_sound = null //CHOMPedit These are going to be a hassle for custom species if not null
+ // female_scream_sound = null //CHOMPedit
name_language = null // Use the first-name last-name generator rather than a language scrambler
min_age = 18
diff --git a/code/modules/mob/living/carbon/human/species/station/golem.dm b/code/modules/mob/living/carbon/human/species/station/golem.dm
index 738ab468cd..f08eddeb8a 100644
--- a/code/modules/mob/living/carbon/human/species/station/golem.dm
+++ b/code/modules/mob/living/carbon/human/species/station/golem.dm
@@ -11,16 +11,8 @@
spawn_flags = SPECIES_IS_RESTRICTED
siemens_coefficient = 0
- male_scream_sound = null //CHOMPedit
- female_scream_sound = null //CHOMPedit
- // CHOMPEdit Start: Missing Sounds, so none for this race.
- male_gasp_sound = null
- female_gasp_sound = null
- male_pain_sound = null
- female_pain_sound = null
- male_death_sound = null
- female_death_sound = null
- // CHOMPEdit End
+ // male_scream_sound = null //CHOMPedit
+ // female_scream_sound = null //CHOMPedit
assisted_langs = list()
diff --git a/code/modules/mob/living/carbon/human/species/station/greyYW.dm b/code/modules/mob/living/carbon/human/species/station/greyYW.dm
index 21a909d990..852186daef 100644
--- a/code/modules/mob/living/carbon/human/species/station/greyYW.dm
+++ b/code/modules/mob/living/carbon/human/species/station/greyYW.dm
@@ -27,16 +27,8 @@
darksight = 5
reagent_tag = IS_GREY
- male_scream_sound = null //CHOMPedit
- female_scream_sound = null //CHOMPedit
- // CHOMPEdit Start: Missing Sounds, so none for this race.
- male_gasp_sound = null
- female_gasp_sound = null
- male_pain_sound = null
- female_pain_sound = null
- male_death_sound = null
- female_death_sound = null
- // CHOMPEdit End
+ // male_scream_sound = null //CHOMPedit
+ // female_scream_sound = null //CHOMPedit
min_age = 18
max_age = 130
diff --git a/code/modules/mob/living/carbon/human/species/station/monkey.dm b/code/modules/mob/living/carbon/human/species/station/monkey.dm
index 5e71d724e1..6efc9b4220 100644
--- a/code/modules/mob/living/carbon/human/species/station/monkey.dm
+++ b/code/modules/mob/living/carbon/human/species/station/monkey.dm
@@ -22,16 +22,8 @@
tail = "chimptail"
fire_icon_state = "monkey"
- male_scream_sound = null //CHOMPedit
- female_scream_sound = null //CHOMPedit
- // CHOMPEdit Start: Missing Sounds, so none for this race.
- male_gasp_sound = null
- female_gasp_sound = null
- male_pain_sound = null
- female_pain_sound = null
- male_death_sound = null
- female_death_sound = null
- // CHOMPEdit End
+ // male_scream_sound = null //CHOMPedit
+ // female_scream_sound = null //CHOMPedit
unarmed_types = list(/datum/unarmed_attack/bite, /datum/unarmed_attack/claws)
inherent_verbs = list(/mob/living/proc/ventcrawl)
diff --git a/code/modules/mob/living/carbon/human/species/station/monkey_vr.dm b/code/modules/mob/living/carbon/human/species/station/monkey_vr.dm
index 583d7798db..7e6546f84a 100644
--- a/code/modules/mob/living/carbon/human/species/station/monkey_vr.dm
+++ b/code/modules/mob/living/carbon/human/species/station/monkey_vr.dm
@@ -6,8 +6,8 @@
tail = null //The tail is part of its body due to tail using the "icons/effects/species.dmi" file. It must be null, or they'll have a chimp tail.
greater_form = "Akula"
default_language = "Skrellian" //Closest we have.
- male_scream_sound = null //CHOMPedit
- female_scream_sound = null //CHOMPedit
+ // male_scream_sound = null //CHOMPedit
+ // female_scream_sound = null //CHOMPedit
/datum/species/monkey/sergal
name = SPECIES_MONKEY_SERGAL
@@ -16,8 +16,8 @@
deform = 'icons/mob/human_races/monkeys/r_sergaling_vr.dmi'
tail = null
default_language = LANGUAGE_SAGARU
- male_scream_sound = null //CHOMPedit
- female_scream_sound = null //CHOMPedit
+ // male_scream_sound = null //CHOMPedit
+ // female_scream_sound = null //CHOMPedit
/datum/species/monkey/sparra
name = SPECIES_MONKEY_NEVREAN
@@ -27,8 +27,8 @@
icobase = 'icons/mob/human_races/monkeys/r_sparra_vr.dmi'
deform = 'icons/mob/human_races/monkeys/r_sparra_vr.dmi'
default_language = LANGUAGE_BIRDSONG
- male_scream_sound = null //CHOMPedit
- female_scream_sound = null //CHOMPedit
+ // male_scream_sound = null //CHOMPedit
+ // female_scream_sound = null //CHOMPedit
/* Example from Polaris code
@@ -58,8 +58,9 @@
flesh_color = "#966464"
base_color = "#000000"
tail = null
- male_scream_sound = null //CHOMPedit
- female_scream_sound = null //CHOMPedit
+ species_sounds = "Canine"
+ // male_scream_sound = null //CHOMPedit
+ // female_scream_sound = null //CHOMPedit
//INSERT CODE HERE SO MONKEYS CAN BE SPAWNED.
//Also, M was added to the end of the spawn names to signify that it's a monkey, since some names were conflicting.
@@ -74,4 +75,4 @@
..(new_loc, "Sparra")
/mob/living/carbon/human/wolpin/New(var/new_loc)
- ..(new_loc, "Wolpin")
\ No newline at end of file
+ ..(new_loc, "Wolpin")
diff --git a/code/modules/mob/living/carbon/human/species/station/prometheans.dm b/code/modules/mob/living/carbon/human/species/station/prometheans.dm
index dc843d4ad2..8433d47e46 100644
--- a/code/modules/mob/living/carbon/human/species/station/prometheans.dm
+++ b/code/modules/mob/living/carbon/human/species/station/prometheans.dm
@@ -42,24 +42,17 @@ var/datum/species/shapeshifter/promethean/prometheans
speech_bubble_appearance = "slime"
- male_cough_sounds = list('sound/effects/slime_squish.ogg')
- female_cough_sounds = list('sound/effects/slime_squish.ogg')
+ // male_cough_sounds = list('sound/effects/slime_squish.ogg')
+ // female_cough_sounds = list('sound/effects/slime_squish.ogg')
+ species_sounds = "Slime"
min_age = 1
max_age = 16
economic_modifier = 3
- male_scream_sound = null //CHOMPedit
- female_scream_sound = null //CHOMPedit
- // CHOMPEdit Start: Missing Sounds, so none for this race.
- male_gasp_sound = null
- female_gasp_sound = null
- male_pain_sound = null
- female_pain_sound = null
- male_death_sound = null
- female_death_sound = null
- // CHOMPEdit End
+ // male_scream_sound = null //CHOMPedit
+ // female_scream_sound = null //CHOMPedit
gluttonous = 1
virus_immune = 1
diff --git a/code/modules/mob/living/carbon/human/species/station/station.dm b/code/modules/mob/living/carbon/human/species/station/station.dm
index 1d170c78a3..437255541c 100644
--- a/code/modules/mob/living/carbon/human/species/station/station.dm
+++ b/code/modules/mob/living/carbon/human/species/station/station.dm
@@ -39,6 +39,13 @@
O_INTESTINE = /obj/item/organ/internal/intestine
)
+ // CHOMPEdit: Species Specific Sounds
+ species_sounds = "Human Male"
+ gender_specific_species_sounds = TRUE
+ species_sounds_male = "Human Male"
+ species_sounds_female = "Human Female"
+ // CHOMPEdit End
+
inherent_verbs = list(
/mob/living/carbon/human/proc/tie_hair)
@@ -78,8 +85,9 @@
economic_modifier = 10
- male_scream_sound = list ('sound/effects/mob_effects/una_scream1.ogg','sound/effects/mob_effects/una_scream2.ogg') //CHOMPedit added unathi scream
- female_scream_sound = list ('sound/effects/mob_effects/una_scream1.ogg','sound/effects/mob_effects/una_scream2.ogg') //CHOMPedit
+ // CHOMPEdit: Reverted these back to Polaris, but commented them out. We're using species-specific sounds instead.
+ // male_scream_sound = list ('sound/effects/mob_effects/una_scream1.ogg','sound/effects/mob_effects/una_scream2.ogg')
+ // female_scream_sound = list ('sound/effects/mob_effects/una_scream1.ogg','sound/effects/mob_effects/una_scream2.ogg')
pain_verb_1p = list("hiss", "growl") // CHOMPEdit: Unathi pain emotes
pain_verb_3p = list("hisses", "growls") // CHOMPEdit: Pain emotes
@@ -209,15 +217,10 @@
economic_modifier = 10
- male_scream_sound = list('modular_chomp/sound/voice/scream/feline/feline_scream.ogg') //CHOMPedit: Scream sounds, finally, 3 years later.
- female_scream_sound = list('modular_chomp/sound/voice/scream/feline/feline_scream.ogg') //CHOMPedit: Scream sounds, finally, 3 years later.
- // CHOMPEdit Start: Gasp/Pain/Death Sounds
- male_gasp_sound = list('modular_chomp/sound/voice/gasp/feline/feline_gasp.ogg')
- female_gasp_sound = list('modular_chomp/sound/voice/gasp/feline/feline_gasp.ogg')
- male_pain_sound = list('modular_chomp/sound/voice/pain/feline/feline_pain.ogg')
- female_pain_sound = list('modular_chomp/sound/voice/pain/feline/feline_pain.ogg')
- male_death_sound = list('modular_chomp/sound/voice/death/feline/feline_death.ogg')
- female_death_sound = list('modular_chomp/sound/voice/death/feline/feline_death.ogg')
+ // CHOMPEdit Start: Species sounds
+ species_sounds = "Feline"
+ // male_scream_sound = list('modular_chomp/sound/voice/scream/feline/feline_scream.ogg') //CHOMPedit: Scream sounds, finally, 3 years later.
+ //female_scream_sound = list('modular_chomp/sound/voice/scream/feline/feline_scream.ogg') //CHOMPedit: Scream sounds, finally, 3 years later.
pain_verb_1p = list("hiss", "growl", "yowl") // CHOMPEdit: Unathi pain emotes
pain_verb_3p = list("hisses", "growls", "yowls") // CHOMPEdit: Pain emotes
@@ -329,16 +332,8 @@
economic_modifier = 10
- male_scream_sound = null //CHOMPedit
- female_scream_sound = null //CHOMPedit
- // CHOMPEdit Start: Missing Sounds, so none for this race.
- male_gasp_sound = null
- female_gasp_sound = null
- male_pain_sound = null
- female_pain_sound = null
- male_death_sound = null
- female_death_sound = null
- // CHOMPEdit End
+ // male_scream_sound = null //CHOMPedit
+ // female_scream_sound = null //CHOMPedit
darksight = 4
flash_mod = 1.2
@@ -442,16 +437,8 @@
min_age = 16
max_age = 90
- male_scream_sound = null //CHOMPedit
- female_scream_sound = null //CHOMPedit
- // CHOMPEdit Start: Missing Sounds, so none for this race.
- male_gasp_sound = null
- female_gasp_sound = null
- male_pain_sound = null
- female_pain_sound = null
- male_death_sound = null
- female_death_sound = null
- // CHOMPEdit End
+ // male_scream_sound = null //CHOMPedit
+ // female_scream_sound = null //CHOMPedit
blurb = "The Zaddat are an Unathi client race only recently introduced to SolGov space. Having evolved on \
the high-pressure and post-apocalyptic world of Xohok, Zaddat require an environmental suit called a Shroud \
@@ -571,16 +558,9 @@
economic_modifier = 10
- male_scream_sound = null //CHOMPedit
- female_scream_sound = null //CHOMPedit
- // CHOMPEdit Start: Missing Sounds, so none for this race.
- male_gasp_sound = null
- female_gasp_sound = null
- male_pain_sound = null
- female_pain_sound = null
- male_death_sound = null
- female_death_sound = null
- // CHOMPEdit End
+ // CHOMPEdit: For shits and giggles, I want someone to give the Diona plant sounds from like, WoW. lmao
+ // male_scream_sound = null //CHOMPedit
+ // female_scream_sound = null //CHOMPedit
blurb = "Commonly referred to (erroneously) as 'plant people', the Dionaea are a strange space-dwelling collective \
species hailing from Epsilon Ursae Minoris. Each 'diona' is a cluster of numerous cat-sized organisms called nymphs; \
diff --git a/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm b/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm
index 05ff087b6f..7b4d4563e4 100644
--- a/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm
+++ b/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm
@@ -35,16 +35,7 @@
min_age = 18
max_age = 80
- male_scream_sound = null //CHOMPedit
- female_scream_sound = null //CHOMPedit
- // CHOMPEdit Start: Missing Sounds, so none for this race.
- male_gasp_sound = null
- female_gasp_sound = null
- male_pain_sound = null
- female_pain_sound = null
- male_death_sound = null
- female_death_sound = null
- // CHOMPEdit End
+ species_sounds = "Unset" // CHOMPEdit: Chimera get a default/safety of unset, going off their icon base if there's none overriding.
blurb = "Some amalgamation of different species from across the universe,with extremely unstable DNA, making them unfit for regular cloners. \
Widely known for their voracious nature and violent tendencies when stressed or left unfed for long periods of time. \
@@ -365,16 +356,9 @@
min_age = 18
max_age = 80
- male_scream_sound = null //CHOMPedit
- female_scream_sound = null //CHOMPedit
- // CHOMPEdit Start: Missing Sounds, so none for this race.
- male_gasp_sound = null
- female_gasp_sound = null
- male_pain_sound = null
- female_pain_sound = null
- male_death_sound = null
- female_death_sound = null
- // CHOMPEdit End
+ species_sounds = "Spider"
+ // male_scream_sound = null //CHOMPedit
+ // female_scream_sound = null //CHOMPedit
blurb = "Vasilissans are a tall, lanky, spider like people. \
Each having four eyes, an extra four, large legs sprouting from their back, and a chitinous plating on their body, and the ability to spit webs \
@@ -453,15 +437,10 @@
min_age = 18
max_age = 200
- male_scream_sound = list('modular_chomp/sound/voice/scream/canine/wolf_scream.ogg','modular_chomp/sound/voice/scream/canine/wolf_scream2.ogg','modular_chomp/sound/voice/scream/canine/wolf_scream3.ogg','modular_chomp/sound/voice/scream/canine/wolf_scream4.ogg','modular_chomp/sound/voice/scream/canine/wolf_scream5.ogg','modular_chomp/sound/voice/scream/canine/wolf_scream6.ogg') //CHOMPedit: Scream sounds, finally, 3 years later.
- female_scream_sound = list('modular_chomp/sound/voice/scream/canine/wolf_scream.ogg','modular_chomp/sound/voice/scream/canine/wolf_scream2.ogg','modular_chomp/sound/voice/scream/canine/wolf_scream3.ogg','modular_chomp/sound/voice/scream/canine/wolf_scream4.ogg','modular_chomp/sound/voice/scream/canine/wolf_scream5.ogg','modular_chomp/sound/voice/scream/canine/wolf_scream6.ogg') //CHOMPedit: Scream sounds, finally, 3 years later.
- // CHOMPEdit Start: Add Pain/Gasp/Death sounds
- male_pain_sound = list('modular_chomp/sound/voice/pain/canine/wolf_pain.ogg', 'modular_chomp/sound/voice/pain/canine/wolf_pain2.ogg', 'modular_chomp/sound/voice/pain/canine/wolf_pain3.ogg', 'modular_chomp/sound/voice/pain/canine/wolf_pain4.ogg')
- female_pain_sound = list('modular_chomp/sound/voice/pain/canine/wolf_pain.ogg', 'modular_chomp/sound/voice/pain/canine/wolf_pain2.ogg', 'modular_chomp/sound/voice/pain/canine/wolf_pain3.ogg', 'modular_chomp/sound/voice/pain/canine/wolf_pain4.ogg')
- male_gasp_sound = list('modular_chomp/sound/voice/gasp/canine/wolf_gasp.ogg')
- female_gasp_sound = list('modular_chomp/sound/voice/gasp/canine/wolf_gasp.ogg')
- male_death_sound = list('modular_chomp/sound/voice/death/canine/wolf_death1.ogg', 'modular_chomp/sound/voice/death/canine/wolf_death2.ogg', 'modular_chomp/sound/voice/death/canine/wolf_death3.ogg', 'modular_chomp/sound/voice/death/canine/wolf_death4.ogg', 'modular_chomp/sound/voice/death/canine/wolf_death5.ogg')
- female_death_sound = list('modular_chomp/sound/voice/death/canine/wolf_death1.ogg', 'modular_chomp/sound/voice/death/canine/wolf_death2.ogg', 'modular_chomp/sound/voice/death/canine/wolf_death3.ogg', 'modular_chomp/sound/voice/death/canine/wolf_death4.ogg', 'modular_chomp/sound/voice/death/canine/wolf_death5.ogg')
+ // CHOMPEdit Start: Species Sounds
+ species_sounds = "Canine"
+ // male_scream_sound = null
+ // female_scream_sound = null
// CHOMPEdit End
blurb = "Big buff werewolves. These are a limited functionality event species that are not balanced for regular gameplay. Adminspawn only."
diff --git a/code/modules/mob/living/carbon/human/species/station/station_vr.dm b/code/modules/mob/living/carbon/human/species/station/station_vr.dm
index e9b93d75cd..097e95e4dc 100644
--- a/code/modules/mob/living/carbon/human/species/station/station_vr.dm
+++ b/code/modules/mob/living/carbon/human/species/station/station_vr.dm
@@ -21,16 +21,9 @@
min_age = 18
max_age = 110
- male_scream_sound = null //CHOMPedit
- female_scream_sound = null //CHOMPedit
- // CHOMPEdit Start: Missing Sounds, so none for this race.
- male_gasp_sound = null
- female_gasp_sound = null
- male_pain_sound = null
- female_pain_sound = null
- male_death_sound = null
- female_death_sound = null
- // CHOMPEdit End
+ species_sounds = "Canine" // CHOMPEdit: Species sounds
+ // male_scream_sound = null //CHOMPedit
+ // female_scream_sound = null //CHOMPedit
blurb = "There are two subspecies of Sergal; Southern and Northern. Northern sergals are a highly aggressive race \
that lives in the plains and tundra of their homeworld. They are characterized by long, fluffy fur bodies with cold colors; \
@@ -99,16 +92,8 @@
min_age = 18
max_age = 110
- male_scream_sound = null //CHOMPedit
- female_scream_sound = null //CHOMPedit
- // CHOMPEdit Start: Missing Sounds, so none for this race.
- male_gasp_sound = null
- female_gasp_sound = null
- male_pain_sound = null
- female_pain_sound = null
- male_death_sound = null
- female_death_sound = null
- // CHOMPEdit End
+ // male_scream_sound = null //CHOMPedit
+ // female_scream_sound = null //CHOMPedit
blurb = "The Akula are a species of amphibious humanoids like the Skrell, but have an appearance very similar to that of a shark. \
They were first discovered as a primitive race of underwater dwelling tribal creatures by the Skrell. At first they were not believed \
@@ -163,16 +148,9 @@
min_age = 18
max_age = 110
- male_scream_sound = null //CHOMPedit
- female_scream_sound = null //CHOMPedit
+ // male_scream_sound = null //CHOMPedit
+ // female_scream_sound = null //CHOMPedit
// CHOMPEdit Start: Missing Sounds, so none for this race.
- male_gasp_sound = null
- female_gasp_sound = null
- male_pain_sound = null
- female_pain_sound = null
- male_death_sound = null
- female_death_sound = null
- // CHOMPEdit End
blurb = "Nevreans are a race of avian and dinosaur-like creatures living on Tal. They belong to a group of races that hails from Eltus, \
in the Vilous system. Unlike sergals whom they share a star system with, their species is a very peaceful one. They possess remarkable \
@@ -221,16 +199,9 @@
min_age = 18
max_age = 110
- male_scream_sound = null //CHOMPedit
- female_scream_sound = null //CHOMPedit
- // CHOMPEdit Start: Missing Sounds, so none for this race.
- male_gasp_sound = null
- female_gasp_sound = null
- male_pain_sound = null
- female_pain_sound = null
- male_death_sound = null
- female_death_sound = null
- // CHOMPEdit End
+ // male_scream_sound = null //CHOMPedit
+ // female_scream_sound = null //CHOMPedit
+ species_sounds = "Vulpine" // CHOMPEdit: Species Sounds
blurb = "The fox-like Zorren are native to Virgo-Prime, however there are two distinct varieties of Zorren one with large ears and shorter fur, \
and the other with longer fur that is a bit more vibrant. The long-eared, short-furred Zorren have come to be known as Flatland Zorren as that \
@@ -287,18 +258,14 @@
inherent_verbs = list(/mob/living/carbon/human/proc/lick_wounds,
/mob/living/carbon/human/proc/tie_hair)
- male_scream_sound = list('modular_chomp/sound/voice/scream/canine/wolf_scream.ogg', 'modular_chomp/sound/voice/scream/canine/wolf_scream2.ogg', 'modular_chomp/sound/voice/scream/canine/wolf_scream3.ogg', 'modular_chomp/sound/voice/scream/canine/wolf_scream4.ogg', 'modular_chomp/sound/voice/scream/canine/wolf_scream5.ogg', 'modular_chomp/sound/voice/scream/canine/wolf_scream6.ogg') //CHOMPedit: Scream sounds, finally, 3 years later.
- female_scream_sound = list('modular_chomp/sound/voice/scream/canine/wolf_scream.ogg', 'modular_chomp/sound/voice/scream/canine/wolf_scream2.ogg', 'modular_chomp/sound/voice/scream/canine/wolf_scream3.ogg', 'modular_chomp/sound/voice/scream/canine/wolf_scream4.ogg', 'modular_chomp/sound/voice/scream/canine/wolf_scream5.ogg', 'modular_chomp/sound/voice/scream/canine/wolf_scream6.ogg') //CHOMPedit: Scream sounds, finally, 3 years later.
+ // male_scream_sound = list('modular_chomp/sound/voice/scream/canine/wolf_scream.ogg', 'modular_chomp/sound/voice/scream/canine/wolf_scream2.ogg', 'modular_chomp/sound/voice/scream/canine/wolf_scream3.ogg', 'modular_chomp/sound/voice/scream/canine/wolf_scream4.ogg', 'modular_chomp/sound/voice/scream/canine/wolf_scream5.ogg', 'modular_chomp/sound/voice/scream/canine/wolf_scream6.ogg') //CHOMPedit: Scream sounds, finally, 3 years later.
+ // female_scream_sound = list('modular_chomp/sound/voice/scream/canine/wolf_scream.ogg', 'modular_chomp/sound/voice/scream/canine/wolf_scream2.ogg', 'modular_chomp/sound/voice/scream/canine/wolf_scream3.ogg', 'modular_chomp/sound/voice/scream/canine/wolf_scream4.ogg', 'modular_chomp/sound/voice/scream/canine/wolf_scream5.ogg', 'modular_chomp/sound/voice/scream/canine/wolf_scream6.ogg') //CHOMPedit: Scream sounds, finally, 3 years later.
// CHOMPEdit Start: Add Pain/Gasp/Death sounds
- male_pain_sound = list('modular_chomp/sound/voice/pain/canine/wolf_pain.ogg', 'modular_chomp/sound/voice/pain/canine/wolf_pain2.ogg', 'modular_chomp/sound/voice/pain/canine/wolf_pain3.ogg', 'modular_chomp/sound/voice/pain/canine/wolf_pain4.ogg')
- female_pain_sound = list('modular_chomp/sound/voice/pain/canine/wolf_pain.ogg', 'modular_chomp/sound/voice/pain/canine/wolf_pain2.ogg', 'modular_chomp/sound/voice/pain/canine/wolf_pain3.ogg', 'modular_chomp/sound/voice/pain/canine/wolf_pain4.ogg')
- male_gasp_sound = list('modular_chomp/sound/voice/gasp/canine/wolf_gasp.ogg')
- female_gasp_sound = list('modular_chomp/sound/voice/gasp/canine/wolf_gasp.ogg')
- male_death_sound = list('modular_chomp/sound/voice/death/canine/wolf_death1.ogg', 'modular_chomp/sound/voice/death/canine/wolf_death2.ogg', 'modular_chomp/sound/voice/death/canine/wolf_death3.ogg', 'modular_chomp/sound/voice/death/canine/wolf_death4.ogg', 'modular_chomp/sound/voice/death/canine/wolf_death5.ogg')
- female_death_sound = list('modular_chomp/sound/voice/death/canine/wolf_death1.ogg', 'modular_chomp/sound/voice/death/canine/wolf_death2.ogg', 'modular_chomp/sound/voice/death/canine/wolf_death3.ogg', 'modular_chomp/sound/voice/death/canine/wolf_death4.ogg', 'modular_chomp/sound/voice/death/canine/wolf_death5.ogg')
pain_verb_1p = list("yelp", "growl")
pain_verb_3p = list("yelps", "growls")
+ species_sounds = "Canine"
+
// CHOMPEdit End
//CHOMPStation Removal
@@ -491,16 +458,6 @@
base_color = "#EECEB3"
- male_scream_sound = null //CHOMPedit
- female_scream_sound = null //CHOMPedit
- // CHOMPEdit Start: Missing Sounds, so none for this race.
- male_gasp_sound = null
- female_gasp_sound = null
- male_pain_sound = null
- female_pain_sound = null
- male_death_sound = null
- female_death_sound = null
- // CHOMPEdit End
blurb = "An Avian species, coming from a distant planet, the Rapalas are the very proud race.\
Sol researchers have commented on them having a very close resemblance to the mythical race called 'Harpies',\
@@ -529,8 +486,8 @@
deform = 'icons/mob/human_races/r_shadekin_vr.dmi'
tail = "tail"
icobase_tail = 1
- male_scream_sound = null //CHOMPedit
- female_scream_sound = null //CHOMPedit
+ // male_scream_sound = null //CHOMPedit
+ // female_scream_sound = null //CHOMPedit
blurb = "Very little is known about these creatures. They appear to be largely mammalian in appearance. \
Seemingly very rare to encounter, there have been widespread myths of these creatures the galaxy over, \
but next to no verifiable evidence to their existence. However, they have recently been more verifiably \
@@ -589,10 +546,12 @@
//has_glowing_eyes = TRUE // Applicable through traits.
+ /* // CHOMPEdit: Not defined
male_cough_sounds = null
female_cough_sounds = null
male_sneeze_sound = null
female_sneeze_sound = null
+ */
speech_bubble_appearance = "ghost"
@@ -653,16 +612,9 @@
min_age = 18
max_age = 80
- male_scream_sound = null //CHOMPedit
- female_scream_sound = null //CHOMPedit
- // CHOMPEdit Start: Missing Sounds, so none for this race.
- male_gasp_sound = null
- female_gasp_sound = null
- male_pain_sound = null
- female_pain_sound = null
- male_death_sound = null
- female_death_sound = null
- // CHOMPEdit End
+ // male_scream_sound = null //CHOMPedit
+ // female_scream_sound = null //CHOMPedit
+ species_sounds = "Vulpine" // CHOMPEdit: Species Sounds
//primitive_form = "" //We don't have fennec-monkey sprites.
spawn_flags = SPECIES_IS_RESTRICTED
@@ -695,16 +647,9 @@
min_age = 18
max_age = 80
- male_scream_sound = list('sound/effects/mob_effects/x_scream1.ogg','sound/effects/mob_effects/x_scream2.ogg','sound/effects/mob_effects/x_scream3.ogg') //CHOMPedit Scree
- female_scream_sound = list('sound/effects/mob_effects/x_scream1.ogg','sound/effects/mob_effects/x_scream2.ogg','sound/effects/mob_effects/x_scream3.ogg') //CHOMPedit
- // CHOMPEdit Start: Missing Sounds, so none for this race.
- male_gasp_sound = null
- female_gasp_sound = null
- male_pain_sound = null
- female_pain_sound = null
- male_death_sound = null
- female_death_sound = null
- // CHOMPEdit End
+ species_sounds = "Xeno"
+ // male_scream_sound = list('sound/effects/mob_effects/x_scream1.ogg','sound/effects/mob_effects/x_scream2.ogg','sound/effects/mob_effects/x_scream3.ogg') //CHOMPedit Scree
+ // female_scream_sound = list('sound/effects/mob_effects/x_scream1.ogg','sound/effects/mob_effects/x_scream2.ogg','sound/effects/mob_effects/x_scream3.ogg') //CHOMPedit
blurb = "Xenomorphs hybrids are a mixture of xenomorph DNA and some other humanoid species. \
Xenomorph hyrids mostly have had had their natural aggression removed due to the gene modification process \
@@ -754,6 +699,8 @@
catalogue_data = list(/datum/category_item/catalogue/fauna/altevian)
+ species_sounds = "Mouse" // CHOMPEdit: Species Sounds
+
spawn_flags = SPECIES_CAN_JOIN
appearance_flags = HAS_HAIR_COLOR | HAS_LIPS | HAS_UNDERWEAR | HAS_SKIN_COLOR | HAS_EYE_COLOR
diff --git a/code/modules/mob/living/carbon/human/species/station/teshari.dm b/code/modules/mob/living/carbon/human/species/station/teshari.dm
index 72bc8f68d0..4931596e52 100644
--- a/code/modules/mob/living/carbon/human/species/station/teshari.dm
+++ b/code/modules/mob/living/carbon/human/species/station/teshari.dm
@@ -19,22 +19,16 @@
health_hud_intensity = 3
- male_cough_sounds = list('sound/effects/mob_effects/tesharicougha.ogg','sound/effects/mob_effects/tesharicoughb.ogg')
- female_cough_sounds = list('sound/effects/mob_effects/tesharicougha.ogg','sound/effects/mob_effects/tesharicoughb.ogg')
- male_sneeze_sound = 'sound/effects/mob_effects/tesharisneeze.ogg'
- female_sneeze_sound = 'sound/effects/mob_effects/tesharisneeze.ogg'
+ // CHOMPEdit Start: Species Sounds
+ species_sounds = "Teshari"
+ // male_cough_sounds = list('sound/effects/mob_effects/tesharicougha.ogg','sound/effects/mob_effects/tesharicoughb.ogg')
+ // female_cough_sounds = list('sound/effects/mob_effects/tesharicougha.ogg','sound/effects/mob_effects/tesharicoughb.ogg')
+ // male_sneeze_sound = 'sound/effects/mob_effects/tesharisneeze.ogg'
+ // female_sneeze_sound = 'sound/effects/mob_effects/tesharisneeze.ogg'
//CHOMPStation Add. Y'know I should probably just put this upstream.
- male_scream_sound = 'sound/effects/mob_effects/teshariscream.ogg'
- female_scream_sound = 'sound/effects/mob_effects/teshariscream.ogg'
- // CHOMPEdit Start: Missing Sounds, so none for this race.
- male_gasp_sound = null
- female_gasp_sound = null
- male_pain_sound = null
- female_pain_sound = null
- male_death_sound = null
- female_death_sound = null
- // CHOMPEdit End
+ // male_scream_sound = 'sound/effects/mob_effects/teshariscream.ogg'
+ // female_scream_sound = 'sound/effects/mob_effects/teshariscream.ogg'
center_offset = 0 //CHOMPEdit
//CHOMPStation Add End
diff --git a/code/modules/mob/living/carbon/human/species/virtual_reality/avatar.dm b/code/modules/mob/living/carbon/human/species/virtual_reality/avatar.dm
index c9254c0c9a..0054bbb623 100644
--- a/code/modules/mob/living/carbon/human/species/virtual_reality/avatar.dm
+++ b/code/modules/mob/living/carbon/human/species/virtual_reality/avatar.dm
@@ -18,10 +18,10 @@
assisted_langs = list()
- male_cough_sounds = list('sound/effects/mob_effects/m_cougha.ogg','sound/effects/mob_effects/m_coughb.ogg', 'sound/effects/mob_effects/m_coughc.ogg')
- female_cough_sounds = list('sound/effects/mob_effects/f_cougha.ogg','sound/effects/mob_effects/f_coughb.ogg')
- male_sneeze_sound = 'sound/effects/mob_effects/sneeze.ogg'
- female_sneeze_sound = 'sound/effects/mob_effects/f_sneeze.ogg'
+ // male_cough_sounds = list('sound/effects/mob_effects/m_cougha.ogg','sound/effects/mob_effects/m_coughb.ogg', 'sound/effects/mob_effects/m_coughc.ogg')
+ // female_cough_sounds = list('sound/effects/mob_effects/f_cougha.ogg','sound/effects/mob_effects/f_coughb.ogg')
+ // male_sneeze_sound = 'sound/effects/mob_effects/sneeze.ogg'
+ // female_sneeze_sound = 'sound/effects/mob_effects/f_sneeze.ogg'
valid_transform_species = list(SPECIES_HUMAN, SPECIES_HUMAN_VATBORN, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_SKRELL, SPECIES_DIONA, SPECIES_TESHARI, SPECIES_VOX, SPECIES_MONKEY, SPECIES_SKELETON)
@@ -127,4 +127,4 @@
if(I)
unEquip(I,force = TRUE)
release_vore_contents(include_absorbed = TRUE, silent = TRUE)
- qdel(src)
\ No newline at end of file
+ qdel(src)
diff --git a/code/modules/mob/living/death.dm b/code/modules/mob/living/death.dm
index c81c355617..722062803c 100644
--- a/code/modules/mob/living/death.dm
+++ b/code/modules/mob/living/death.dm
@@ -26,15 +26,12 @@
for(var/datum/soul_link/S as anything in shared_soul_links)
S.sharer_died(gibbed)
- // CHOMPStation Add: All mobs can play a death_sound if set. On carbons, this is going to be handled by species.
- if(!gibbed && (male_death_sound || female_death_sound) && !isbelly(loc))
- var/gender = src.gender
- if(gender == FEMALE)
- playsound(src, pick(female_death_sound), 40, 1, 20, volume_channel = VOLUME_CHANNEL_INJ_DEATH)
- else // Until we get more, sorry. :c
- playsound(src, pick(male_death_sound), 40, 1, 20, volume_channel = VOLUME_CHANNEL_INJ_DEATH)
- else if(!gibbed && death_sound && !isbelly(loc))
- playsound(src, pick(death_sound), 40, 1, 20, volume_channel = VOLUME_CHANNEL_INJ_DEATH)
+ // CHOMPStation Edit: All mobs can play a death_sound if set. On carbons, this is going to be handled by species.
+ if(!gibbed && !isbelly(loc))
+ if(src.death_sound_override) // Do we override the death sounds from our species list - used by only a few specific mobs. If we do, do the next one instead
+ playsound(src, death_sound_override, 50, 1, 20, volume_channel = VOLUME_CHANNEL_SPECIES_SOUNDS)
+ else
+ playsound(src, pick(get_species_sound(get_gendered_sound(src))["death"]), 50, 1, 20, volume_channel = VOLUME_CHANNEL_SPECIES_SOUNDS)
// CHOMPStation Add End
. = ..()
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/_giant_spider.dm b/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/_giant_spider.dm
index 7bd021aa2d..213a5a80db 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/_giant_spider.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/_giant_spider.dm
@@ -118,18 +118,10 @@
)
can_be_drop_prey = FALSE //CHOMP Add
+ species_sounds = "Spider"
pain_emote_1p = list("chitter", "click") //CHOMP Add
pain_emote_3p = list("chitters", "clicks") //CHOMP Add
-// CHOMPAdd: Has to be done on Init or New, bc we can't set a var to a non-constant
-/mob/living/simple_mob/animal/giant_spider/Initialize()
- pain_sound = get_species_sound(spider_sounds["pain"])
- death_sound = get_species_sound(spider_sounds["death"])
-
- . = ..()
-
-// CHOMPAdd End
-
/mob/living/simple_mob/animal/giant_spider/apply_melee_effects(var/atom/A)
if(isliving(A))
var/mob/living/L = A
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/passive/mouse.dm b/code/modules/mob/living/simple_mob/subtypes/animal/passive/mouse.dm
index eea43d2f5c..c9fe11b486 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/passive/mouse.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/passive/mouse.dm
@@ -45,6 +45,7 @@
//CHOMP Addition: Added these vore variables in and swapped the booleans from their defaults too.
can_be_drop_prey = TRUE
can_be_drop_pred = FALSE
+ species_sounds = "Mouse"
pain_emote_1p = list("squeak", "squik") // CHOMP Addition: Pain/etc sounds
pain_emote_1p = list("squeaks", "squiks") // CHOMP Addition: Pain/etc sounds
@@ -52,8 +53,6 @@
/mob/living/simple_mob/animal/passive/mouse/New()
..()
- pain_sound = get_species_sound(mouse_sounds["pain"]) // CHOMP Addition: Pain/etc sounds
-
verbs += /mob/living/proc/ventcrawl
verbs += /mob/living/proc/hide
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/passive/raccoon_ch.dm b/code/modules/mob/living/simple_mob/subtypes/animal/passive/raccoon_ch.dm
index 68b4cd7192..01f8ddc569 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/passive/raccoon_ch.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/passive/raccoon_ch.dm
@@ -33,10 +33,9 @@
vore_icons = SA_ICON_LIVING | SA_ICON_REST
center_offset = 0
- pain_sound = list('sound/voice/raccoon.ogg')
+ species_sounds = "Raccoon"
pain_emote_1p = list("chitter")
pain_emote_3p = list("chitters")
- death_sound = list('sound/voice/raccoon.ogg')
/mob/living/simple_mob/animal/passive/raccoon_ch/Initialize()
. = ..()
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/pets/dog.dm b/code/modules/mob/living/simple_mob/subtypes/animal/pets/dog.dm
index 5032c9bb9a..e0be03396d 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/pets/dog.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/pets/dog.dm
@@ -28,16 +28,10 @@
var/obj/item/inventory_back
// CHOMPAdd: :c
+ species_sounds = "Canine"
pain_emote_1p = list("yelp", "whine", "bark", "growl")
pain_emote_3p = list("yelps", "whines", "barks", "growls")
-// CHOMPAdd: Has to be done on Init or New, bc we can't set a var to a non-constant
-/mob/living/simple_mob/animal/passive/dog/Initialize()
- pain_sound = get_species_sound(canine_sounds["pain"])
- death_sound = get_species_sound(canine_sounds["death"])
-
- . = ..()
-// CHOMPAdd End
/mob/living/simple_mob/animal/passive/dog/attackby(var/obj/item/O as obj, var/mob/user as mob)
if(istype(O, /obj/item/weapon/newspaper))
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/sif/racoon.dm b/code/modules/mob/living/simple_mob/subtypes/animal/sif/racoon.dm
index 07241a97be..6ee3ca8d92 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/sif/racoon.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/sif/racoon.dm
@@ -70,10 +70,9 @@
var/randomize_size = TRUE
can_be_drop_prey = TRUE //CHOMP Add
// CHOMPAdd: Pain/Death Sounds
- pain_sound = list('sound/voice/raccoon.ogg')
+ species_sounds = "Raccoon"
pain_emote_1p = list("chitter")
pain_emote_3p = list("chitters")
- death_sound = list('sound/voice/raccoon.ogg')
/mob/living/simple_mob/animal/sif/sakimm/verb/remove_hat()
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/space/mouse_army_ch.dm b/code/modules/mob/living/simple_mob/subtypes/animal/space/mouse_army_ch.dm
index acebd2dac7..2c1264c69b 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/space/mouse_army_ch.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/space/mouse_army_ch.dm
@@ -64,14 +64,13 @@
var/rank //pyro, operative, ammo, stealth. more to come. Do not leave blank.
can_be_drop_prey = FALSE //CHOMP Add
+ species_sounds = "Mouse"
pain_emote_1p = list("squeak", "squik") // CHOMP Addition: Pain/etc sounds
pain_emote_1p = list("squeaks", "squiks") // CHOMP Addition: Pain/etc sounds
/mob/living/simple_mob/animal/space/mouse_army/New()
..()
- pain_sound = get_species_sound(mouse_sounds["pain"]) // CHOMPAdd: Pain sounds
-
verbs += /mob/living/proc/ventcrawl
verbs += /mob/living/proc/hide
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/vox.dm b/code/modules/mob/living/simple_mob/subtypes/animal/vox.dm
index cb8baa8cd8..4cc3b416d1 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/vox.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/vox.dm
@@ -9,7 +9,7 @@
max_n2 = 0
// CHOMPAdd: Pain sounds
- pain_sound = list('sound/voice/shriek1.ogg')
+ species_sounds = "Vox"
pain_emote_1p = list("shriek")
pain_emote_3p = list("shrieks")
// CHOMPAdd End
diff --git a/code/modules/mob/living/simple_mob/subtypes/blob/blob.dm b/code/modules/mob/living/simple_mob/subtypes/blob/blob.dm
index 7da6ffcbf5..c6e78d0520 100644
--- a/code/modules/mob/living/simple_mob/subtypes/blob/blob.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/blob/blob.dm
@@ -32,7 +32,6 @@
can_be_drop_prey = FALSE //CHOMP Add
can_pain_emote = FALSE // CHOMPEdit: Can't feel pain
- death_sound = null // CHOMPEdit: Shouldn't trigger death sounds
/mob/living/simple_mob/blob/speech_bubble_appearance()
return "slime"
diff --git a/code/modules/mob/living/simple_mob/subtypes/blob/spore.dm b/code/modules/mob/living/simple_mob/subtypes/blob/spore.dm
index 3ddce6c5a0..96012ad12e 100644
--- a/code/modules/mob/living/simple_mob/subtypes/blob/spore.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/blob/spore.dm
@@ -31,7 +31,6 @@
var/is_infesting = FALSE
can_pain_emote = FALSE // CHOMPEdit: Can't feel pain
- death_sound = null // CHOMPEdit: Shouldn't trigger death sounds
/datum/say_list/spore
emote_see = list("sways", "inflates briefly")
diff --git a/code/modules/mob/living/simple_mob/subtypes/horror/horror .dm b/code/modules/mob/living/simple_mob/subtypes/horror/horror .dm
index dcf781d20c..339a6ad606 100644
--- a/code/modules/mob/living/simple_mob/subtypes/horror/horror .dm
+++ b/code/modules/mob/living/simple_mob/subtypes/horror/horror .dm
@@ -5,7 +5,6 @@
icon_gib = "generic_gib"
can_pain_emote = FALSE // CHOMPEdit: Can't feel pain
- death_sound = null // CHOMPEdit: Shouldn't trigger death sounds
/datum/ai_holder/simple_mob/horror
hostile = TRUE // The majority of simplemobs are hostile, gaslamps are nice.
diff --git a/code/modules/mob/living/simple_mob/subtypes/humanoid/humanoid_ch.dm b/code/modules/mob/living/simple_mob/subtypes/humanoid/humanoid_ch.dm
index 192cd4f21f..8abf4fe5e1 100644
--- a/code/modules/mob/living/simple_mob/subtypes/humanoid/humanoid_ch.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/humanoid/humanoid_ch.dm
@@ -2,13 +2,8 @@
/mob/living/simple_mob/humanoid
pain_emote_1p = list("shout out in pain", "growl in pain", "grunt in pain", "gasp out in pain")
pain_emote_3p = list("shouts out in pain", "growls in pain", "grunts in pain", "gasps out in pain")
+ species_sounds = "Human Male" // Yes, we should allow them to differ based on gender, but if someone's making a custom humanoid later:tm: - set your humanoid's species_sounds to match, or var-edit it after spawn.
/mob/living/simple_mob/humanoid/Initialize()
- pain_sound = get_species_sound(male_generic_sounds["pain"])
- female_pain_sound = get_species_sound(female_generic_sounds["pain"])
- male_pain_sound = get_species_sound(male_generic_sounds["pain"])
- death_sound = get_species_sound(male_generic_sounds["death"])
- male_death_sound = get_species_sound(male_generic_sounds["death"])
- female_death_sound = get_species_sound(female_generic_sounds["death"])
. = ..()
diff --git a/code/modules/mob/living/simple_mob/subtypes/humanoid/posessed_ch.dm b/code/modules/mob/living/simple_mob/subtypes/humanoid/posessed_ch.dm
index cb7ccffe66..861e83a0fb 100644
--- a/code/modules/mob/living/simple_mob/subtypes/humanoid/posessed_ch.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/humanoid/posessed_ch.dm
@@ -48,7 +48,6 @@
say_list_type = /datum/say_list/possessed //Set to Null on silenced.
can_pain_emote = FALSE
- death_sound = null
// corpse = /obj/effect/landmark/mobcorpse/possessed
// Will eventually leave a full corpse with an activated RIG on it. But not yet.
diff --git a/code/modules/mob/living/simple_mob/subtypes/illusion/illusion.dm b/code/modules/mob/living/simple_mob/subtypes/illusion/illusion.dm
index e56a37fb41..75497a7b21 100644
--- a/code/modules/mob/living/simple_mob/subtypes/illusion/illusion.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/illusion/illusion.dm
@@ -25,7 +25,6 @@
var/realistic = FALSE // If true, things like bullets and weapons will hit it, to be a bit more convincing from a distance.
can_pain_emote = FALSE // CHOMPEdit: Hallucinations can't feel pain and shouldn't take damage anyways, but, sanity
- death_sound = null // CHOMPEdit: Hallucinations shouldn't trigger death sounds anyways, but, sanity
/mob/living/simple_mob/illusion/update_icon() // We don't want the appearance changing AT ALL unless by copy_appearance().
return
diff --git a/code/modules/mob/living/simple_mob/subtypes/metroid/metBaseType.dm b/code/modules/mob/living/simple_mob/subtypes/metroid/metBaseType.dm
index bc5cc64282..92b99b84f7 100644
--- a/code/modules/mob/living/simple_mob/subtypes/metroid/metBaseType.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/metroid/metBaseType.dm
@@ -63,10 +63,9 @@
can_be_drop_prey = FALSE //CHOMP Add
can_pain_emote = TRUE
- pain_sound = list('sound/metroid/metroidsee.ogg')
+ species_sounds = "Metroid"
pain_emote_1p = list("skree")
pain_emote_3p = list("skrees")
- death_sound = list('sound/metroid/metroiddeath.ogg')
/mob/living/simple_mob/metroid/Initialize()
nutrition = 100 //Have them start off pretty hungry still.
diff --git a/code/modules/mob/living/simple_mob/subtypes/metroid/metTypes.dm b/code/modules/mob/living/simple_mob/subtypes/metroid/metTypes.dm
index fe7a0be005..7a7c14dd4a 100644
--- a/code/modules/mob/living/simple_mob/subtypes/metroid/metTypes.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/metroid/metTypes.dm
@@ -533,7 +533,7 @@ GLOBAL_VAR_INIT(queen_amount, 0) //We only gonna want 1 queen in the world.
evo_limit = 2000
next = "/mob/living/simple_mob/metroid/juvenile/queen"
- death_sound = list('sound/metroid/metroidomegadeath.ogg')
+ death_sound_override = list('sound/metroid/metroidomegadeath.ogg') // We override the death sound to play our custom here
/mob/living/simple_mob/metroid/juvenile/omega/Initialize()
playsound(src, 'sound/metroid/metroidomega.ogg', 100, 1)
@@ -630,7 +630,7 @@ GLOBAL_VAR_INIT(queen_amount, 0) //We only gonna want 1 queen in the world.
next = null
is_queen = TRUE
- death_sound = list('sound/metroid/metroidqueendeath.ogg')
+ death_sound_override = list('sound/metroid/metroidqueendeath.ogg') // We override the death sound to play our custom here
/mob/living/simple_mob/metroid/juvenile/queen/Initialize()
playsound(src, 'sound/metroid/metroidqueen.ogg', 100, 1)
diff --git a/code/modules/mob/living/simple_mob/subtypes/occult/constructs/_construct.dm b/code/modules/mob/living/simple_mob/subtypes/occult/constructs/_construct.dm
index 037d31d35b..08df5b4ad0 100644
--- a/code/modules/mob/living/simple_mob/subtypes/occult/constructs/_construct.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/occult/constructs/_construct.dm
@@ -64,7 +64,6 @@
can_be_drop_prey = FALSE //CHOMP Add
can_pain_emote = FALSE // CHOMPEdit: Can't feel pain
- death_sound = null // CHOMPEdit: Shouldn't trigger death sounds
/mob/living/simple_mob/construct/place_spell_in_hand(var/path)
if(!path || !ispath(path))
diff --git a/code/modules/mob/living/simple_mob/subtypes/occult/creature.dm b/code/modules/mob/living/simple_mob/subtypes/occult/creature.dm
index cbaafa3e22..738cd0f1e2 100644
--- a/code/modules/mob/living/simple_mob/subtypes/occult/creature.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/occult/creature.dm
@@ -32,7 +32,6 @@
can_be_drop_prey = FALSE //CHOMP Add
can_pain_emote = FALSE // CHOMPEdit: Can't feel pain
- death_sound = null // CHOMPEdit: Shouldn't trigger death sounds
// Strong Variant
/mob/living/simple_mob/creature/strong
diff --git a/code/modules/mob/living/simple_mob/subtypes/occult/faithless.dm b/code/modules/mob/living/simple_mob/subtypes/occult/faithless.dm
index 52a122ae6d..86dccd8523 100644
--- a/code/modules/mob/living/simple_mob/subtypes/occult/faithless.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/occult/faithless.dm
@@ -44,7 +44,6 @@
can_be_drop_prey = FALSE //CHOMP Add
can_pain_emote = FALSE // CHOMPEdit: Can't feel pain
- death_sound = null // CHOMPEdit: Shouldn't trigger death sounds
/mob/living/simple_mob/faithless/Process_Spacemove(var/check_drift = 0)
return 1
diff --git a/code/modules/mob/living/simple_mob/subtypes/occult/unknown.dm b/code/modules/mob/living/simple_mob/subtypes/occult/unknown.dm
index 83d05d8fcd..78ca7d4831 100644
--- a/code/modules/mob/living/simple_mob/subtypes/occult/unknown.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/occult/unknown.dm
@@ -43,7 +43,6 @@
can_be_drop_prey = FALSE //CHOMP Add
can_pain_emote = FALSE // CHOMPEdit: Can't feel pain
- death_sound = null // CHOMPEdit: Shouldn't trigger death sounds
/obj/item/projectile/energy/slow_orb
name = "TROJAN"
@@ -320,7 +319,6 @@
ai_holder_type = /datum/ai_holder/simple_mob/ranged/aggressive/bossmob_glitch_fake
can_pain_emote = FALSE // CHOMPEdit: Can't feel pain
- death_sound = null // CHOMPEdit: Shouldn't trigger death sounds
/mob/living/simple_mob/glitch_boss_fake/strong
maxHealth = 100
diff --git a/code/modules/mob/living/simple_mob/subtypes/plant/tomato.dm b/code/modules/mob/living/simple_mob/subtypes/plant/tomato.dm
index b5d833b973..5c8c6003e2 100644
--- a/code/modules/mob/living/simple_mob/subtypes/plant/tomato.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/plant/tomato.dm
@@ -31,7 +31,6 @@
can_be_drop_prey = FALSE //CHOMP Add
can_pain_emote = FALSE // CHOMPEdit: Can't feel pain and shouldn't take damage anyways, but, sanity
- death_sound = null // CHOMPEdit: Shouldn't trigger death sounds anyways, but, sanity
/decl/mob_organ_names/tomato
hit_zones = list("flesh", "leaf", "mouth")
diff --git a/code/modules/mob/living/simple_mob/subtypes/plant/tree.dm b/code/modules/mob/living/simple_mob/subtypes/plant/tree.dm
index 5f48e3171c..db68032789 100644
--- a/code/modules/mob/living/simple_mob/subtypes/plant/tree.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/plant/tree.dm
@@ -34,7 +34,6 @@
can_be_drop_prey = FALSE //CHOMP Add
can_pain_emote = FALSE // CHOMPEdit: Can't feel pain and shouldn't take damage anyways, but, sanity
- death_sound = null // CHOMPEdit: Shouldn't trigger death sounds anyways, but, sanity
/mob/living/simple_mob/animal/space/tree/apply_melee_effects(var/atom/A)
if(isliving(A))
diff --git a/code/modules/mob/living/simple_mob/subtypes/slime/slime.dm b/code/modules/mob/living/simple_mob/subtypes/slime/slime.dm
index 1b886b920f..78b27372a4 100644
--- a/code/modules/mob/living/simple_mob/subtypes/slime/slime.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/slime/slime.dm
@@ -85,7 +85,7 @@ var/list/_slime_default_emotes = list(
can_be_drop_prey = FALSE //CHOMP Add
// CHOMPAdd: Pain Sounds
- pain_sound = 'sound/effects/slime_squish.ogg'
+ species_sounds = "Slime"
pain_emote_1p = list("squish", "squelch")
pain_emote_3p = list("squishes", "squelches")
// CHOMPAdd End
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/fennec.dm b/code/modules/mob/living/simple_mob/subtypes/vore/fennec.dm
index 77c44f2176..94b5780f32 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/fennec.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/fennec.dm
@@ -53,13 +53,7 @@
// CHOMPAdd: :c
pain_emote_1p = list("yelp", "whine", "bark", "growl")
pain_emote_3p = list("yelps", "whines", "barks", "growls")
-
-/mob/living/simple_mob/vore/fennec/Initialize()
- pain_sound = get_species_sound(canine_sounds["pain"])
- death_sound = get_species_sound(canine_sounds["death"])
-
- . = ..()
-// CHOMPAdd End
+ species_sounds = "Vulpine"
// Activate Noms!
/mob/living/simple_mob/vore/fennec
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/goia_ch.dm b/code/modules/mob/living/simple_mob/subtypes/vore/goia_ch.dm
index b2467bfde4..b4a63adb93 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/goia_ch.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/goia_ch.dm
@@ -29,6 +29,7 @@
vore_icons = SA_ICON_LIVING | SA_ICON_REST
// CHOMPAdd: Don't think its checked, but just in case
+ species_sounds = "Canine"
pain_emote_1p = list("yelp", "whine", "bark", "growl")
pain_emote_3p = list("yelps", "whines", "barks", "growls")
@@ -55,8 +56,6 @@
color = "#ff9f00"
if(9)
color = "#393939"
- pain_sound = get_species_sound(canine_sounds["pain"]) // CHOMPAdd: Pain
- death_sound = get_species_sound(canine_sounds["death"]) // CHOMPAdd: Pain
/mob/living/simple_mob/otie/zorgoia/feral //gets the pet2tame feature. starts out hostile tho so get gamblin'
name = "agressive zorgoia"
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/greatwolf.dm b/code/modules/mob/living/simple_mob/subtypes/vore/greatwolf.dm
index 29ab3c228f..aac01fc1af 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/greatwolf.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/greatwolf.dm
@@ -42,15 +42,10 @@
can_be_drop_prey = FALSE //CHOMP Add
// CHOMPAdd: :c
+ species_sounds = "Canine"
pain_emote_1p = list("yelp", "whine", "bark", "growl")
pain_emote_3p = list("yelps", "whines", "barks", "growls")
-
-/mob/living/simple_mob/vore/greatwolf/Initialize()
- pain_sound = get_species_sound(canine_sounds["pain"])
- death_sound = get_species_sound(canine_sounds["death"])
-
- . = ..()
-// CHOMPAdd End
+ // CHOMPAdd End
/mob/living/simple_mob/vore/greatwolf
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/leopardmander_ch.dm b/code/modules/mob/living/simple_mob/subtypes/vore/leopardmander_ch.dm
index b775036594..fb2565b004 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/leopardmander_ch.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/leopardmander_ch.dm
@@ -50,15 +50,10 @@
can_be_drop_prey = FALSE //CHOMP Add
// CHOMPAdd: :c
+ species_sounds = "Canine" // Argue about whether it should have canine or feline later
pain_emote_1p = list("yelp", "whine", "bark", "growl")
pain_emote_3p = list("yelps", "whines", "barks", "growls")
-
-/mob/living/simple_mob/vore/leopardmander/Initialize()
- pain_sound = get_species_sound(canine_sounds["pain"])
- death_sound = get_species_sound(canine_sounds["death"])
-
- . = ..()
-// CHOMPAdd End
+ // CHOMPAdd End
/datum/category_item/catalogue/fauna/leopardmander
name = "Sivian Fauna - Va'aen Drake"
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/otie.dm b/code/modules/mob/living/simple_mob/subtypes/vore/otie.dm
index 1d43792a60..799bf66503 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/otie.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/otie.dm
@@ -49,15 +49,10 @@
can_be_drop_prey = FALSE //CHOMP Add
// CHOMPAdd: :c
+ species_sounds = "Canine"
pain_emote_1p = list("yelp", "whine", "bark", "growl")
pain_emote_3p = list("yelps", "whines", "barks", "growls")
-
-/mob/living/simple_mob/otie/Initialize()
- pain_sound = get_species_sound(canine_sounds["pain"])
- death_sound = get_species_sound(canine_sounds["death"])
-
- . = ..()
-// CHOMPAdd End
+ // CHOMPAdd End
// Activate Noms!
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/panther.dm b/code/modules/mob/living/simple_mob/subtypes/vore/panther.dm
index c1100c6ab2..15c4e21700 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/panther.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/panther.dm
@@ -44,15 +44,10 @@
can_be_drop_prey = FALSE //CHOMP Add
// CHOMPAdd: :c
+ species_sounds = "Feline"
pain_emote_1p = list("yowl", "growl")
pain_emote_3p = list("yowls", "growls")
-
-/mob/living/simple_mob/vore/aggressive/panther/Initialize()
- pain_sound = get_species_sound(feline_sounds["pain"])
- death_sound = get_species_sound(feline_sounds["death"])
-
- . = ..()
-// CHOMPAdd End
+ // CHOMPAdd End
// Activate Noms!
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/wolf.dm b/code/modules/mob/living/simple_mob/subtypes/vore/wolf.dm
index 770e3ca479..450955ca01 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/wolf.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/wolf.dm
@@ -35,15 +35,10 @@
can_be_drop_prey = FALSE //CHOMP Add
// CHOMPAdd: :c
+ species_sounds = "Canine"
pain_emote_1p = list("yelp", "whine", "bark", "growl")
pain_emote_3p = list("yelps", "whines", "barks", "growls")
-
-/mob/living/simple_mob/animal/wolf/Initialize()
- pain_sound = get_species_sound(canine_sounds["pain"])
- death_sound = get_species_sound(canine_sounds["death"])
-
- . = ..()
-// CHOMPAdd End
+ // CHOMPAdd End
// Activate Noms!
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/wolfgirl.dm b/code/modules/mob/living/simple_mob/subtypes/vore/wolfgirl.dm
index 3fddd37946..55ca77dae4 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/wolfgirl.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/wolfgirl.dm
@@ -26,15 +26,10 @@
can_be_drop_prey = FALSE //CHOMP Add
// CHOMPAdd: :c
+ species_sounds = "Canine"
pain_emote_1p = list("yelp", "whine", "bark", "growl")
pain_emote_3p = list("yelps", "whines", "barks", "growls")
-
-/mob/living/simple_mob/vore/wolfgirl/Initialize()
- pain_sound = get_species_sound(canine_sounds["pain"])
- death_sound = get_species_sound(canine_sounds["death"])
-
- . = ..()
-// CHOMPAdd End
+ // CHOMPAdd End
// Activate Noms!
diff --git a/modular_chomp/code/modules/emotes/definitions/audiable.dm b/modular_chomp/code/modules/emotes/definitions/audiable.dm
index c215ecc0e9..b01c5c2f37 100644
--- a/modular_chomp/code/modules/emotes/definitions/audiable.dm
+++ b/modular_chomp/code/modules/emotes/definitions/audiable.dm
@@ -12,17 +12,10 @@
/decl/emote/audible/gasp/get_emote_sound(var/atom/user)
..()
var/mob/living/carbon/human/H = user
- if(H.get_gender() == FEMALE)
- return list(
- "sound" = H.species.female_gasp_sound,
- "vol" = 60,
- "exr" = 10,
- "volchannel" = VOLUME_CHANNEL_INJ_DEATH
- )
- else
- return list(
- "sound" = H.species.male_gasp_sound,
- "vol" = 60,
- "exr" = 10,
- "volchannel" = VOLUME_CHANNEL_INJ_DEATH
+ // CHOMPEdit: Standardize Species Sounds Getters
+ var/vol = H.species.gasp_volume
+ return list(
+ "sound" = get_species_sound(get_gendered_sound(H))["gasp"],
+ "vol" = vol,
+ "volchannel" = VOLUME_CHANNEL_SPECIES_SOUNDS
)
diff --git a/modular_chomp/code/modules/emotes/definitions/audible_pain.dm b/modular_chomp/code/modules/emotes/definitions/audible_pain.dm
index 76620c89b9..6a9ef0f319 100644
--- a/modular_chomp/code/modules/emotes/definitions/audible_pain.dm
+++ b/modular_chomp/code/modules/emotes/definitions/audible_pain.dm
@@ -27,37 +27,18 @@
..()
if(ishuman(user))
var/mob/living/carbon/human/H = user
- if(H.get_gender() == FEMALE)
- return list(
- "sound" = H.species.female_pain_sound,
- "vol" = 60,
- "exr" = 10,
- "volchannel" = VOLUME_CHANNEL_INJ_DEATH
- )
- else
- return list(
- "sound" = H.species.male_pain_sound,
- "vol" = 60,
- "exr" = 10,
- "volchannel" = VOLUME_CHANNEL_INJ_DEATH
+ var/vol = H.species.pain_volume
+ return list(
+ "sound" = get_species_sound(get_gendered_sound(H))["pain"],
+ "vol" = vol,
+ "exr" = 20,
+ "volchannel" = VOLUME_CHANNEL_SPECIES_SOUNDS
)
else
var/mob/living/M = user
- if((M.get_gender() == FEMALE) && M.female_pain_sound) // If our mob has custom sounds per-gender defined, most won't.
- return list(
- "sound" = M.female_pain_sound,
- "vol" = 80,
- "volchannel" = VOLUME_CHANNEL_INJ_DEATH
- )
- else if((M.get_gender() == MALE) && M.male_pain_sound) // If our mob has custom sounds per-gender defined, most won't.
- return list(
- "sound" = M.male_pain_sound,
- "vol" = 80,
- "volchannel" = VOLUME_CHANNEL_INJ_DEATH
- )
- else
- return list(
- "sound" = M.pain_sound,
- "vol" = 80,
- "volchannel" = VOLUME_CHANNEL_INJ_DEATH
+ return list(
+ "sound" = get_species_sound(get_gendered_sound(M))["pain"],
+ "vol" = 50,
+ "exr" = 20,
+ "volchannel" = VOLUME_CHANNEL_SPECIES_SOUNDS
)
diff --git a/modular_chomp/code/modules/mob/living/carbon/human/species/species.dm b/modular_chomp/code/modules/mob/living/carbon/human/species/species.dm
index eaff08ae00..5fdf4d4e35 100644
--- a/modular_chomp/code/modules/mob/living/carbon/human/species/species.dm
+++ b/modular_chomp/code/modules/mob/living/carbon/human/species/species.dm
@@ -19,17 +19,6 @@
var/digi_allowed = FALSE
var/vanity_base_fit //when shapeshifting using vanity_copy_to, this allows you to have add something so they can go back to their original species fit
- var/species_sounds
-
- male_scream_sound = null
- female_scream_sound = null
- var/male_gasp_sound = null
- var/female_gasp_sound = null
- var/male_pain_sound = null
- var/female_pain_sound = null
- var/male_death_sound = null
- var/female_death_sound = null
-
// Handles non-standard eyes when using a species that utilizes a custom base icon set.
// Eye data is stored in the head organ, and this needs to be handled specially.
/datum/species/proc/handle_base_eyes(var/mob/living/carbon/human/H, var/custom_base)
@@ -61,14 +50,3 @@
for(var/datum/trait/env_trait in env_traits)
env_trait.handle_environment_special(H)
return
-
-/datum/species/New()
- male_scream_sound = get_species_sound(male_generic_sounds["scream"])
- female_scream_sound = get_species_sound(female_generic_sounds["scream"])
- male_gasp_sound = get_species_sound(male_generic_sounds["gasp"])
- female_gasp_sound = get_species_sound(female_generic_sounds["gasp"])
- male_pain_sound = get_species_sound(male_generic_sounds["pain"])
- female_pain_sound = get_species_sound(female_generic_sounds["pain"])
- male_death_sound = get_species_sound(male_generic_sounds["death"])
- female_death_sound = get_species_sound(female_generic_sounds["death"])
- ..()
diff --git a/modular_chomp/code/modules/mob/living/carbon/human/species/station/protean/protean_species.dm b/modular_chomp/code/modules/mob/living/carbon/human/species/station/protean/protean_species.dm
index 0a2bfb640c..0e5f76d4dd 100644
--- a/modular_chomp/code/modules/mob/living/carbon/human/species/station/protean/protean_species.dm
+++ b/modular_chomp/code/modules/mob/living/carbon/human/species/station/protean/protean_species.dm
@@ -30,8 +30,8 @@
breath_type = null
poison_type = null
- male_scream_sound = null
- female_scream_sound = null
+ // male_scream_sound = null
+ // female_scream_sound = null
virus_immune = 1
blood_volume = 0
@@ -58,14 +58,7 @@
rarity_value = 5
- female_scream_sound = list('modular_chomp/sound/voice/scream_silicon.ogg', 'modular_chomp/sound/voice/android_scream.ogg', 'modular_chomp/sound/voice/scream/robotic/robot_scream1.ogg', 'modular_chomp/sound/voice/scream/robotic/robot_scream2.ogg', 'modular_chomp/sound/voice/scream/robotic/robot_scream3.ogg')
- male_scream_sound = list('modular_chomp/sound/voice/scream_silicon.ogg', 'modular_chomp/sound/voice/android_scream.ogg', 'modular_chomp/sound/voice/scream/robotic/robot_scream1.ogg', 'modular_chomp/sound/voice/scream/robotic/robot_scream2.ogg', 'modular_chomp/sound/voice/scream/robotic/robot_scream3.ogg')
- male_gasp_sound = null // Missing gasp sounds
- female_gasp_sound = null // Missing gasp sounds
- male_pain_sound = list('modular_chomp/sound/voice/pain/robotic/robot_pain1.ogg', 'modular_chomp/sound/voice/pain/robotic/robot_pain2.ogg', 'modular_chomp/sound/voice/pain/robotic/robot_pain3.ogg')
- female_pain_sound = list('modular_chomp/sound/voice/pain/robotic/robot_pain1.ogg', 'modular_chomp/sound/voice/pain/robotic/robot_pain2.ogg', 'modular_chomp/sound/voice/pain/robotic/robot_pain3.ogg')
- male_death_sound = list('modular_chomp/sound/voice/borg_deathsound.ogg')
- female_death_sound = list('modular_chomp/sound/voice/borg_deathsound.ogg')
+ species_sounds = "Robotic"
crit_mod = 4 //Unable to go crit
var/obj/item/weapon/rig/protean/OurRig
diff --git a/modular_chomp/code/modules/mob/living/living.dm b/modular_chomp/code/modules/mob/living/living.dm
index 40eafd3768..0d66775d9b 100644
--- a/modular_chomp/code/modules/mob/living/living.dm
+++ b/modular_chomp/code/modules/mob/living/living.dm
@@ -22,17 +22,13 @@ Maybe later, gotta figure out a way to click yourself when in a locker etc.
* TBD: Maybe port over from species to mob?
*/
var/can_pain_emote = TRUE
- var/pain_sound = null
- var/female_pain_sound = null
- var/male_pain_sound = null
var/pain_emote_1p = null
var/pain_emote_3p = null
+ var/species_sounds = "None" // By default, we have nothing.
+ var/death_sound_override = null
/* // Not sure if needed, screams aren't a carbon thing rn.
var/scream_sound = null
var/female_scream_sound = null
var/male_scream_sound = null
var/scream_emote = null
*/
- var/death_sound = null
- var/male_death_sound = null
- var/female_death_sound = null
diff --git a/modular_chomp/sound/voice/death/lizard/lizard_death.ogg b/modular_chomp/sound/voice/death/lizard/lizard_death.ogg
new file mode 100644
index 0000000000..d42db48374
Binary files /dev/null and b/modular_chomp/sound/voice/death/lizard/lizard_death.ogg differ
diff --git a/modular_chomp/sound/voice/death/xeno/xeno_death.ogg b/modular_chomp/sound/voice/death/xeno/xeno_death.ogg
new file mode 100644
index 0000000000..3762b1e683
Binary files /dev/null and b/modular_chomp/sound/voice/death/xeno/xeno_death.ogg differ
diff --git a/modular_chomp/sound/voice/death/xeno/xeno_death2.ogg b/modular_chomp/sound/voice/death/xeno/xeno_death2.ogg
new file mode 100644
index 0000000000..9cb00d374d
Binary files /dev/null and b/modular_chomp/sound/voice/death/xeno/xeno_death2.ogg differ
diff --git a/modular_chomp/sound/voice/gasp/xeno/alien_hiss1.ogg b/modular_chomp/sound/voice/gasp/xeno/alien_hiss1.ogg
new file mode 100644
index 0000000000..f29323687b
Binary files /dev/null and b/modular_chomp/sound/voice/gasp/xeno/alien_hiss1.ogg differ
diff --git a/modular_chomp/sound/voice/pain/lizard/lizard_pain.ogg b/modular_chomp/sound/voice/pain/lizard/lizard_pain.ogg
new file mode 100644
index 0000000000..8b1bca088c
Binary files /dev/null and b/modular_chomp/sound/voice/pain/lizard/lizard_pain.ogg differ
diff --git a/modular_chomp/sound/voice/pain/vulpine/fox_pain1.ogg b/modular_chomp/sound/voice/pain/vulpine/fox_pain1.ogg
new file mode 100644
index 0000000000..e3bf86e69f
Binary files /dev/null and b/modular_chomp/sound/voice/pain/vulpine/fox_pain1.ogg differ
diff --git a/modular_chomp/sound/voice/pain/vulpine/fox_pain2.ogg b/modular_chomp/sound/voice/pain/vulpine/fox_pain2.ogg
new file mode 100644
index 0000000000..d45d568757
Binary files /dev/null and b/modular_chomp/sound/voice/pain/vulpine/fox_pain2.ogg differ
diff --git a/modular_chomp/sound/voice/pain/vulpine/fox_pain3.ogg b/modular_chomp/sound/voice/pain/vulpine/fox_pain3.ogg
new file mode 100644
index 0000000000..611a99d849
Binary files /dev/null and b/modular_chomp/sound/voice/pain/vulpine/fox_pain3.ogg differ
diff --git a/modular_chomp/sound/voice/pain/vulpine/fox_pain4.ogg b/modular_chomp/sound/voice/pain/vulpine/fox_pain4.ogg
new file mode 100644
index 0000000000..d94dfefc05
Binary files /dev/null and b/modular_chomp/sound/voice/pain/vulpine/fox_pain4.ogg differ
diff --git a/modular_chomp/sound/voice/pain/xeno/alien_roar1.ogg b/modular_chomp/sound/voice/pain/xeno/alien_roar1.ogg
new file mode 100644
index 0000000000..302ebf8104
Binary files /dev/null and b/modular_chomp/sound/voice/pain/xeno/alien_roar1.ogg differ
diff --git a/modular_chomp/sound/voice/pain/xeno/alien_roar10.ogg b/modular_chomp/sound/voice/pain/xeno/alien_roar10.ogg
new file mode 100644
index 0000000000..1672c58d3e
Binary files /dev/null and b/modular_chomp/sound/voice/pain/xeno/alien_roar10.ogg differ
diff --git a/modular_chomp/sound/voice/pain/xeno/alien_roar11.ogg b/modular_chomp/sound/voice/pain/xeno/alien_roar11.ogg
new file mode 100644
index 0000000000..6a3f694d0c
Binary files /dev/null and b/modular_chomp/sound/voice/pain/xeno/alien_roar11.ogg differ
diff --git a/modular_chomp/sound/voice/pain/xeno/alien_roar12.ogg b/modular_chomp/sound/voice/pain/xeno/alien_roar12.ogg
new file mode 100644
index 0000000000..aa7c0064b1
Binary files /dev/null and b/modular_chomp/sound/voice/pain/xeno/alien_roar12.ogg differ
diff --git a/modular_chomp/sound/voice/pain/xeno/alien_roar2.ogg b/modular_chomp/sound/voice/pain/xeno/alien_roar2.ogg
new file mode 100644
index 0000000000..c670730c4f
Binary files /dev/null and b/modular_chomp/sound/voice/pain/xeno/alien_roar2.ogg differ
diff --git a/modular_chomp/sound/voice/pain/xeno/alien_roar3.ogg b/modular_chomp/sound/voice/pain/xeno/alien_roar3.ogg
new file mode 100644
index 0000000000..73da74d97a
Binary files /dev/null and b/modular_chomp/sound/voice/pain/xeno/alien_roar3.ogg differ
diff --git a/modular_chomp/sound/voice/pain/xeno/alien_roar4.ogg b/modular_chomp/sound/voice/pain/xeno/alien_roar4.ogg
new file mode 100644
index 0000000000..e5c7a6b985
Binary files /dev/null and b/modular_chomp/sound/voice/pain/xeno/alien_roar4.ogg differ
diff --git a/modular_chomp/sound/voice/pain/xeno/alien_roar5.ogg b/modular_chomp/sound/voice/pain/xeno/alien_roar5.ogg
new file mode 100644
index 0000000000..4f96d740c0
Binary files /dev/null and b/modular_chomp/sound/voice/pain/xeno/alien_roar5.ogg differ
diff --git a/modular_chomp/sound/voice/pain/xeno/alien_roar6.ogg b/modular_chomp/sound/voice/pain/xeno/alien_roar6.ogg
new file mode 100644
index 0000000000..868e926f77
Binary files /dev/null and b/modular_chomp/sound/voice/pain/xeno/alien_roar6.ogg differ
diff --git a/modular_chomp/sound/voice/pain/xeno/alien_roar7.ogg b/modular_chomp/sound/voice/pain/xeno/alien_roar7.ogg
new file mode 100644
index 0000000000..5deec41a04
Binary files /dev/null and b/modular_chomp/sound/voice/pain/xeno/alien_roar7.ogg differ
diff --git a/modular_chomp/sound/voice/pain/xeno/alien_roar8.ogg b/modular_chomp/sound/voice/pain/xeno/alien_roar8.ogg
new file mode 100644
index 0000000000..70564ea3d0
Binary files /dev/null and b/modular_chomp/sound/voice/pain/xeno/alien_roar8.ogg differ
diff --git a/modular_chomp/sound/voice/pain/xeno/alien_roar9.ogg b/modular_chomp/sound/voice/pain/xeno/alien_roar9.ogg
new file mode 100644
index 0000000000..1bec52faa0
Binary files /dev/null and b/modular_chomp/sound/voice/pain/xeno/alien_roar9.ogg differ
diff --git a/modular_chomp/sound/voice/scream/vulpine/fox_yip1.ogg b/modular_chomp/sound/voice/scream/vulpine/fox_yip1.ogg
new file mode 100644
index 0000000000..3feea0a467
Binary files /dev/null and b/modular_chomp/sound/voice/scream/vulpine/fox_yip1.ogg differ
diff --git a/modular_chomp/sound/voice/scream/vulpine/fox_yip2.ogg b/modular_chomp/sound/voice/scream/vulpine/fox_yip2.ogg
new file mode 100644
index 0000000000..8478eee546
Binary files /dev/null and b/modular_chomp/sound/voice/scream/vulpine/fox_yip2.ogg differ
diff --git a/modular_chomp/sound/voice/scream/vulpine/fox_yip3.ogg b/modular_chomp/sound/voice/scream/vulpine/fox_yip3.ogg
new file mode 100644
index 0000000000..974f597bbd
Binary files /dev/null and b/modular_chomp/sound/voice/scream/vulpine/fox_yip3.ogg differ