diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm
index 67fcacbe91a..d4d5f4aa213 100644
--- a/code/game/objects/items/toys.dm
+++ b/code/game/objects/items/toys.dm
@@ -1187,7 +1187,7 @@ obj/item/toy/cards/deck/syndicate/black
if(!cooldown) //for the sanity of everyone
var/message = pick("You won't get away this time, Griffin!", "Stop right there, criminal!", "Hoot! Hoot!", "I am the night!")
to_chat(user, "You pull the string on the [src].")
- playsound(user, 'sound/misc/hoot.ogg', 25, 1)
+ playsound(user, 'sound/creatures/hoot.ogg', 25, 1)
visible_message("[bicon(src)] [message]")
cooldown = 1
spawn(30) cooldown = 0
@@ -1206,7 +1206,7 @@ obj/item/toy/cards/deck/syndicate/black
if(!cooldown) //for the sanity of everyone
var/message = pick("You can't stop me, Owl!", "My plan is flawless! The vault is mine!", "Caaaawwww!", "You will never catch me!")
to_chat(user, "You pull the string on the [src].")
- playsound(user, 'sound/misc/caw.ogg', 25, 1)
+ playsound(user, 'sound/creatures/caw.ogg', 25, 1)
visible_message("[bicon(src)] [message]")
cooldown = 1
spawn(30) cooldown = 0
diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm
index 5bc13912a04..62873252ad1 100644
--- a/code/modules/clothing/head/misc.dm
+++ b/code/modules/clothing/head/misc.dm
@@ -430,7 +430,7 @@
/obj/item/clothing/head/griffin/proc/caw()
if(cooldown < world.time - 20) // A cooldown, to stop people being jerks
- playsound(src.loc, 'sound/misc/caw.ogg', 50, 1)
+ playsound(src.loc, 'sound/creatures/caw.ogg', 50, 1)
cooldown = world.time
diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm
index 38f54b1067a..0c4dba9ae49 100644
--- a/code/modules/clothing/masks/gasmask.dm
+++ b/code/modules/clothing/masks/gasmask.dm
@@ -188,7 +188,7 @@
/obj/item/clothing/mask/gas/owl_mask/proc/hoot()
if(cooldown < world.time - 35) // A cooldown, to stop people being jerks
- playsound(src.loc, 'sound/misc/hoot.ogg', 50, 1)
+ playsound(src.loc, 'sound/creatures/hoot.ogg', 50, 1)
cooldown = world.time
// ********************************************************************
diff --git a/code/modules/mob/living/simple_animal/friendly/cat.dm b/code/modules/mob/living/simple_animal/friendly/cat.dm
index c37b54938ac..9532daabab8 100644
--- a/code/modules/mob/living/simple_animal/friendly/cat.dm
+++ b/code/modules/mob/living/simple_animal/friendly/cat.dm
@@ -11,6 +11,7 @@
speak_emote = list("purrs", "meows")
emote_hear = list("meows", "mews")
emote_see = list("shakes its head", "shivers")
+ var/meow_sound = 'sound/creatures/cat_meow.ogg' //Used in emote.
speak_chance = 1
turns_per_move = 5
see_in_dark = 6
@@ -146,6 +147,40 @@
stop_automated_movement = 1
walk_to(src,movement_target,0,3)
+/mob/living/simple_animal/pet/cat/emote(act, m_type=1, message = null)
+ if(stat != CONSCIOUS)
+ return
+
+ var/on_CD = 0
+ act = lowertext(act)
+ switch(act)
+ if("meow")
+ on_CD = handle_emote_CD()
+ if("hiss")
+ on_CD = handle_emote_CD()
+ if("purr")
+ on_CD = handle_emote_CD()
+ else
+ on_CD = 0
+
+ if(on_CD == 1)
+ return
+
+ switch(act)
+ if("meow")
+ message = "[src] [pick(emote_hear)]!"
+ m_type = 2 //audible
+ playsound(src, meow_sound, 50, 0.75)
+ if("hiss")
+ message = "[src] hisses!"
+ m_type = 2
+ if("purr")
+ message = "[src] purrs."
+ m_type = 2
+ if("help")
+ to_chat(src, "scream, meow, hiss, purr")
+
+ ..()
/mob/living/simple_animal/pet/cat/Proc
name = "Proc"
@@ -168,6 +203,7 @@
icon_living = "Syndicat"
icon_dead = "Syndicat_dead"
icon_resting = "Syndicat_rest"
+ meow_sound = null //Need robo-meow.
gender = FEMALE
mutations = list(BREATHLESS)
faction = list("syndicate")
diff --git a/code/modules/mob/living/simple_animal/friendly/corgi.dm b/code/modules/mob/living/simple_animal/friendly/corgi.dm
index 4d7ff459563..832d92c9d8f 100644
--- a/code/modules/mob/living/simple_animal/friendly/corgi.dm
+++ b/code/modules/mob/living/simple_animal/friendly/corgi.dm
@@ -13,6 +13,8 @@
speak_emote = list("barks", "woofs")
emote_hear = list("barks", "woofs", "yaps","pants")
emote_see = list("shakes its head", "shivers")
+ var/bark_sound = list('sound/creatures/dog_bark1.ogg','sound/creatures/dog_bark2.ogg') //Used in emote.
+ var/yelp_sound = 'sound/creatures/dog_yelp.ogg' //Used on death.
speak_chance = 1
turns_per_move = 10
butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/corgi = 3)
@@ -401,6 +403,40 @@
return valid
+/mob/living/simple_animal/pet/corgi/death(gibbed)
+ playsound(src, yelp_sound, 75, 1)
+ ..()
+
+/mob/living/simple_animal/pet/corgi/emote(act, m_type=1, message = null)
+ if(stat != CONSCIOUS)
+ return
+
+ var/on_CD = 0
+ act = lowertext(act)
+ switch(act)
+ if("bark")
+ on_CD = handle_emote_CD()
+ if("growl")
+ on_CD = handle_emote_CD()
+ else
+ on_CD = 0
+
+ if(on_CD == 1)
+ return
+
+ switch(act)
+ if("bark")
+ message = "[src] [pick(src.speak_emote)]!"
+ m_type = 2 //audible
+ playsound(src, pick(src.bark_sound), 50, 0.85)
+ if("growl")
+ message = "[src] growls!"
+ m_type = 2 //audible
+ if("help")
+ to_chat(src, "scream, bark, growl")
+
+ ..()
+
//IAN! SQUEEEEEEEEE~
/mob/living/simple_animal/pet/corgi/Ian
@@ -574,6 +610,8 @@
desc = "It's a borgi."
icon_state = "borgi"
icon_living = "borgi"
+ bark_sound = null //No robo-bjork...
+ yelp_sound = null //Or robo-Yelp.
var/emagged = 0
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
minbodytemp = 0
diff --git a/code/modules/mob/living/simple_animal/friendly/diona.dm b/code/modules/mob/living/simple_animal/friendly/diona.dm
index 89dc02d54b9..9e848f5e18c 100644
--- a/code/modules/mob/living/simple_animal/friendly/diona.dm
+++ b/code/modules/mob/living/simple_animal/friendly/diona.dm
@@ -32,7 +32,7 @@
melee_damage_upper = 8
attacktext = "bites"
attack_sound = 'sound/weapons/bite.ogg'
- var/chirp_sound = 'sound/misc/nymphchirp.ogg' //used in emote
+ var/chirp_sound = 'sound/creatures/nymphchirp.ogg' //used in emote
speed = 0
stop_automated_movement = 0
diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm
index 28dfe0520ea..c84947c7363 100644
--- a/code/modules/mob/living/simple_animal/friendly/mouse.dm
+++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm
@@ -10,7 +10,7 @@
speak_emote = list("squeeks","squeaks","squiks")
emote_hear = list("squeeks","squeaks","squiks")
emote_see = list("runs in a circle", "shakes", "scritches at something")
- var/squeak_sound = 'sound/effects/mousesqueek.ogg'
+ var/squeak_sound = 'sound/creatures/mousesqueak.ogg'
speak_chance = 1
turns_per_move = 5
see_in_dark = 6
@@ -74,7 +74,6 @@
desc = "It's a small [mouse_color] rodent, often seen hiding in maintenance areas and making a nuisance of itself."
/mob/living/simple_animal/mouse/proc/splat()
- playsound(src, squeak_sound, 40, 1)
src.health = 0
src.stat = DEAD
src.icon_dead = "mouse_[mouse_color]_splat"
@@ -102,6 +101,7 @@
/mob/living/simple_animal/mouse/death(gibbed)
// Only execute the below if we successfully died
+ playsound(src, squeak_sound, 40, 1)
. = ..(gibbed)
if(!.)
return FALSE
@@ -126,7 +126,7 @@
switch(act)
if("squeak")
- message = "\The [src] squeaks!"
+ message = "\The [src] [pick(emote_hear)]!"
m_type = 2 //audible
playsound(src, squeak_sound, 40, 1)
if("help")
diff --git a/sound/Attributions.txt b/sound/Attributions.txt
index 262699e9c3f..729562855ba 100644
--- a/sound/Attributions.txt
+++ b/sound/Attributions.txt
@@ -1 +1,5 @@
-items/thermal_drill.ogg was sampled from Builders Drilling.wav under a Sampling Plus 1.0 license. It was uploaded by Koops on 2010-05-10. Source (http://soundbible.com/1420-Builders-Drilling.html)
\ No newline at end of file
+items/thermal_drill.ogg was sampled from Builders Drilling.wav under a Sampling Plus 1.0 license. It was uploaded by Koops on 2010-05-10. Source (http://soundbible.com/1420-Builders-Drilling.html)
+
+ambience/aurora_caelus.ogg is Music for Manatees by Kevin Macleod. It is under a CC-BY 3.0 license. It has been cropped and fades out.
+
+creatures/dog_yelp.ogg is DogYelp.wav. It is under a CC-BY 3.0 license. It has been cropped, EQ'd, and compressed to .ogg. Source (https://freesound.org/people/TobiasKosmos/sounds/163280/)
\ No newline at end of file
diff --git a/sound/ambience/license.txt b/sound/ambience/license.txt
deleted file mode 100644
index 5376422f21f..00000000000
--- a/sound/ambience/license.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-aurora_caelus.ogg is Music for Manatees, by Kevin Macleod. It has been licensed under CC-BY 3.0 license.
- It has been cropped for use ingame, and also fades out.
\ No newline at end of file
diff --git a/sound/creatures/cat_meow.ogg b/sound/creatures/cat_meow.ogg
new file mode 100644
index 00000000000..f52cbd2a172
Binary files /dev/null and b/sound/creatures/cat_meow.ogg differ
diff --git a/sound/misc/caw.ogg b/sound/creatures/caw.ogg
similarity index 100%
rename from sound/misc/caw.ogg
rename to sound/creatures/caw.ogg
diff --git a/sound/creatures/dog_bark1.ogg b/sound/creatures/dog_bark1.ogg
new file mode 100644
index 00000000000..809f3897c88
Binary files /dev/null and b/sound/creatures/dog_bark1.ogg differ
diff --git a/sound/creatures/dog_bark2.ogg b/sound/creatures/dog_bark2.ogg
new file mode 100644
index 00000000000..e4e27b0f862
Binary files /dev/null and b/sound/creatures/dog_bark2.ogg differ
diff --git a/sound/creatures/dog_yelp.ogg b/sound/creatures/dog_yelp.ogg
new file mode 100644
index 00000000000..22f1586014d
Binary files /dev/null and b/sound/creatures/dog_yelp.ogg differ
diff --git a/sound/misc/hoot.ogg b/sound/creatures/hoot.ogg
similarity index 100%
rename from sound/misc/hoot.ogg
rename to sound/creatures/hoot.ogg
diff --git a/sound/effects/mousesqueek.ogg b/sound/creatures/mousesqueak.ogg
similarity index 100%
rename from sound/effects/mousesqueek.ogg
rename to sound/creatures/mousesqueak.ogg
diff --git a/sound/misc/nymphchirp.ogg b/sound/creatures/nymphchirp.ogg
similarity index 100%
rename from sound/misc/nymphchirp.ogg
rename to sound/creatures/nymphchirp.ogg