Vore sound tweaks (#491)

* sound overhaul

* renaming folders correctly

* sound code and compile fixes

* sounds working

testing prey-induced loop, as well

* loops should stop upon ejections
This commit is contained in:
Poojawa
2017-04-20 09:08:26 -05:00
committed by GitHub
parent 5732fa5b2d
commit e760a8a472
137 changed files with 165 additions and 68 deletions
+5 -2
View File
@@ -4,8 +4,11 @@
#define CHANNEL_VOX 1022
#define CHANNEL_JUKEBOX 1021
//Citadel code
#define CHANNEL_PRED 1020
#define CHANNEL_PREY 1019
//THIS SHOULD ALWAYS BE THE LOWEST ONE!
//KEEP IT UPDATED
#define CHANNEL_HIGHEST_AVAILABLE 1020
#define CHANNEL_HIGHEST_AVAILABLE 1018
+103 -49
View File
@@ -10,58 +10,112 @@
/* // removing sizeplay again
GLOBAL_LIST_INIT(player_sizes_list, list("Macro" = SIZESCALE_HUGE, "Big" = SIZESCALE_BIG, "Normal" = SIZESCALE_NORMAL, "Small" = SIZESCALE_SMALL, "Tiny" = SIZESCALE_TINY))
// moved to sound.dm // Edited to make the new travis check go away
// Edited to make the new travis check go away
GLOBAL_LIST_INIT(digestion_sounds = list(
'sound/vore/digest1.ogg',
'sound/vore/digest2.ogg',
'sound/vore/digest3.ogg',
'sound/vore/digest4.ogg',
'sound/vore/digest5.ogg',
'sound/vore/digest6.ogg',
'sound/vore/digest7.ogg',
'sound/vore/digest8.ogg',
'sound/vore/digest9.ogg',
'sound/vore/digest10.ogg',
'sound/vore/digest11.ogg',
'sound/vore/digest12.ogg')
GLOBAL_LIST_INIT(death_sounds = list(
'sound/vore/death1.ogg',
'sound/vore/death2.ogg',
'sound/vore/death3.ogg',
'sound/vore/death4.ogg',
'sound/vore/death5.ogg',
'sound/vore/death6.ogg',
'sound/vore/death7.ogg',
'sound/vore/death8.ogg',
'sound/vore/death9.ogg',
'sound/vore/death10.ogg') */
GLOBAL_LIST_INIT(digest_pred, list(
'sound/vore/pred/digest_01.ogg',
'sound/vore/pred/digest_02.ogg',
'sound/vore/pred/digest_03.ogg',
'sound/vore/pred/digest_04.ogg',
'sound/vore/pred/digest_05.ogg',
'sound/vore/pred/digest_06.ogg',
'sound/vore/pred/digest_07.ogg',
'sound/vore/pred/digest_08.ogg',
'sound/vore/pred/digest_09.ogg',
'sound/vore/pred/digest_10.ogg',
'sound/vore/pred/digest_11.ogg',
'sound/vore/pred/digest_12.ogg',
'sound/vore/pred/digest_13.ogg',
'sound/vore/pred/digest_14.ogg',
'sound/vore/pred/digest_15.ogg',
'sound/vore/pred/digest_16.ogg',
'sound/vore/pred/digest_17.ogg',
'sound/vore/pred/digest_18.ogg'))
GLOBAL_LIST_INIT(vore_sounds, list(
"Gulp" = 'sound/vore/gulp.ogg',
"Insert" = 'sound/vore/insert.ogg',
"Insertion1" = 'sound/vore/insertion1.ogg',
"Insertion2" = 'sound/vore/insertion2.ogg',
"Insertion3" = 'sound/vore/insertion3.ogg',
"Schlorp" = 'sound/vore/schlorp.ogg',
"Squish1" = 'sound/vore/squish1.ogg',
"Squish2" = 'sound/vore/squish2.ogg',
"Squish3" = 'sound/vore/squish3.ogg',
"Squish4" = 'sound/vore/squish4.ogg'))
GLOBAL_LIST_INIT(struggle_sounds, list(
"Squish1" = 'sound/vore/squish1.ogg',
"Squish2" = 'sound/vore/squish2.ogg',
"Squish3" = 'sound/vore/squish3.ogg',
"Squish4" = 'sound/vore/squish4.ogg'))
GLOBAL_LIST_INIT(death_pred, list(
'sound/vore/pred/death_01.ogg',
'sound/vore/pred/death_02.ogg',
'sound/vore/pred/death_03.ogg',
'sound/vore/pred/death_04.ogg',
'sound/vore/pred/death_05.ogg',
'sound/vore/pred/death_06.ogg',
'sound/vore/pred/death_07.ogg',
'sound/vore/pred/death_08.ogg',
'sound/vore/pred/death_09.ogg',
'sound/vore/pred/death_10.ogg'))
*/
/* also moved to sound.dmi
GLOBAL_LIST_INIT(pred_vore_sounds, list(
"Gulp" = 'sound/vore/pred/swallow_01.ogg',
"Swallow" = 'sound/vore/pred/swallow_02.ogg',
"Insertion1" = 'sound/vore/pred/insertion_01.ogg',
"Insertion2" = 'sound/vore/pred/insertion_02.ogg',
"Tauric Swallow" = 'sound/vore/pred/taurswallow.ogg',
"Schlorp" = 'sound/vore/pred/schlorp.ogg',
"Squish1" = 'sound/vore/pred/squish_01.ogg',
"Squish2" = 'sound/vore/pred/squish_02.ogg',
"Squish3" = 'sound/vore/pred/squish_03.ogg',
"Squish4" = 'sound/vore/pred/squish_04.ogg',
"Rustle (cloth)" = 'sound/effects/rustle5.ogg',
"None" = null))
/*
GLOBAL_LIST_INIT(pred_struggle_sounds, list(
"Struggle1" = 'sound/vore/pred/struggle_01.ogg',
"Struggle2" = 'sound/vore/pred/struggle_02.ogg',
"Struggle3" = 'sound/vore/pred/struggle_03.ogg',
"Struggle4" = 'sound/vore/pred/struggle_04.ogg',
"Struggle5" = 'sound/vore/pred/struggle_05.ogg'))
*/
GLOBAL_LIST_INIT(prey_vore_sounds, list(
"Gulp" = 'sound/vore/prey/swallow_01.ogg',
"Swallow" = 'sound/vore/prey/swallow_02.ogg',
"Insertion1" = 'sound/vore/prey/insertion_01.ogg',
"Insertion2" = 'sound/vore/prey/insertion_02.ogg',
"Tauric Swallow" = 'sound/vore/prey/taurswallow.ogg',
"Schlorp" = 'sound/vore/prey/schlorp.ogg',
"Squish1" = 'sound/vore/prey/squish_01.ogg',
"Squish2" = 'sound/vore/prey/squish_02.ogg',
"Squish3" = 'sound/vore/prey/squish_03.ogg',
"Squish4" = 'sound/vore/prey/squish_04.ogg'))
/proc/log_debug(text)
if (config.log_debug)
diary << "\[[time_stamp()]]DEBUG: [text][log_end]"
/*
GLOBAL_LIST_INIT(prey_struggle_sounds, list(
"Struggle1" = 'sound/vore/prey/struggle_01.ogg',
"Struggle2" = 'sound/vore/prey/struggle_02.ogg',
"Struggle3" = 'sound/vore/prey/struggle_03.ogg',
"Struggle4" = 'sound/vore/prey/struggle_04.ogg',
"Struggle5" = 'sound/vore/prey/struggle_05.ogg'))
for(var/client/C in admins)
if(C.prefs.toggles & CHAT_DEBUGLOGS)
C << "DEBUG: [text]" */
GLOBAL_LIST_INIT(digest_prey, list(
"digest1" = 'sound/vore/prey/digest_01.ogg',
"digest2" = 'sound/vore/prey/digest_02.ogg',
"digest3" = 'sound/vore/prey/digest_03.ogg',
"digest4" = 'sound/vore/prey/digest_04.ogg',
"digest5" = 'sound/vore/prey/digest_05.ogg',
"digest6" = 'sound/vore/prey/digest_06.ogg',
"digest7" = 'sound/vore/prey/digest_07.ogg',
"digest8" = 'sound/vore/prey/digest_08.ogg',
"digest9" = 'sound/vore/prey/digest_09.ogg',
"digest10" = 'sound/vore/prey/digest_10.ogg',
"digest11" = 'sound/vore/prey/digest_11.ogg',
"digest12" = 'sound/vore/prey/digest_12.ogg',
"digest13" = 'sound/vore/prey/digest_13.ogg',
"digest14" = 'sound/vore/prey/digest_14.ogg',
"digest15" = 'sound/vore/prey/digest_15.ogg',
"digest16" = 'sound/vore/prey/digest_16.ogg',
"digest17" = 'sound/vore/prey/digest_17.ogg',
"digest18" = 'sound/vore/prey/digest_18.ogg'))
GLOBAL_LIST_INIT(death_prey, list(
"death1" = 'sound/vore/prey/death_01.ogg',
"death2" = 'sound/vore/prey/death_02.ogg',
"death3" = 'sound/vore/prey/death_03.ogg',
"death4" = 'sound/vore/prey/death_04.ogg',
"death5" = 'sound/vore/prey/death_05.ogg',
"death6" = 'sound/vore/prey/death_06.ogg',
"death7" = 'sound/vore/prey/death_07.ogg',
"death8" = 'sound/vore/prey/death_08.ogg',
"death9" = 'sound/vore/prey/death_09.ogg',
"death10" = 'sound/vore/prey/death_10.ogg'))
*/
+29
View File
@@ -134,6 +134,35 @@
soundin = pick('sound/machines/terminal_button01.ogg', 'sound/machines/terminal_button02.ogg', 'sound/machines/terminal_button03.ogg', \
'sound/machines/terminal_button04.ogg', 'sound/machines/terminal_button05.ogg', 'sound/machines/terminal_button06.ogg', \
'sound/machines/terminal_button07.ogg', 'sound/machines/terminal_button08.ogg')
if ("struggle_sound")
soundin = pick( 'sound/vore/pred/struggle_01.ogg','sound/vore/pred/struggle_02.ogg','sound/vore/pred/struggle_03.ogg',
'sound/vore/pred/struggle_04.ogg','sound/vore/pred/struggle_05.ogg')
if ("digest_pred")
soundin = pick( 'sound/vore/pred/digest_01.ogg','sound/vore/pred/digest_02.ogg','sound/vore/pred/digest_03.ogg',
'sound/vore/pred/digest_04.ogg','sound/vore/pred/digest_05.ogg','sound/vore/pred/digest_06.ogg',
'sound/vore/pred/digest_07.ogg','sound/vore/pred/digest_08.ogg','sound/vore/pred/digest_09.ogg',
'sound/vore/pred/digest_10.ogg','sound/vore/pred/digest_11.ogg','sound/vore/pred/digest_12.ogg',
'sound/vore/pred/digest_13.ogg','sound/vore/pred/digest_14.ogg','sound/vore/pred/digest_15.ogg',
'sound/vore/pred/digest_16.ogg','sound/vore/pred/digest_17.ogg','sound/vore/pred/digest_18.ogg')
if ("death_pred")
soundin = pick( 'sound/vore/pred/death_01.ogg','sound/vore/pred/death_02.ogg','sound/vore/pred/death_03.ogg',
'sound/vore/pred/death_04.ogg','sound/vore/pred/death_05.ogg','sound/vore/pred/death_06.ogg',
'sound/vore/pred/death_07.ogg','sound/vore/pred/death_08.ogg','sound/vore/pred/death_09.ogg',
'sound/vore/pred/death_10.ogg')
if ("digest_prey")
soundin = pick( 'sound/vore/prey/digest_01.ogg','sound/vore/prey/digest_02.ogg','sound/vore/prey/digest_03.ogg',
'sound/vore/prey/digest_04.ogg','sound/vore/prey/digest_05.ogg','sound/vore/prey/digest_06.ogg',
'sound/vore/prey/digest_07.ogg','sound/vore/prey/digest_08.ogg','sound/vore/prey/digest_09.ogg',
'sound/vore/prey/digest_10.ogg','sound/vore/prey/digest_11.ogg','sound/vore/prey/digest_12.ogg',
'sound/vore/prey/digest_13.ogg','sound/vore/prey/digest_14.ogg','sound/vore/prey/digest_15.ogg',
'sound/vore/prey/digest_16.ogg','sound/vore/prey/digest_17.ogg','sound/vore/prey/digest_18.ogg')
if ("death_prey")
soundin = pick( 'sound/vore/prey/death_01.ogg','sound/vore/prey/death_02.ogg','sound/vore/prey/death_03.ogg',
'sound/vore/prey/death_04.ogg','sound/vore/prey/death_05.ogg','sound/vore/prey/death_06.ogg',
'sound/vore/prey/death_07.ogg','sound/vore/prey/death_08.ogg','sound/vore/prey/death_09.ogg',
'sound/vore/prey/death_10.ogg')
return soundin
/proc/playsound_global(file, repeat=0, wait, channel, volume)
+7 -4
View File
@@ -11,7 +11,7 @@
/datum/belly
var/name // Name of this location
var/inside_flavor // Flavor text description of inside sight/sound/smells/feels.
var/vore_sound = 'sound/vore/gulp.ogg' // Sound when ingesting someone
var/vore_sound = 'sound/vore/pred/swallow_01.ogg' // Sound when ingesting someone
var/vore_verb = "ingest" // Verb for eating with this in messages
var/human_prey_swallow_time = 100 // Time in deciseconds to swallow /mob/living/carbon/human
var/nonhuman_prey_swallow_time = 60 // Time in deciseconds to swallow anything else
@@ -106,6 +106,7 @@
return 0
for (var/atom/movable/M in internal_contents)
M.forceMove(owner.loc) // Move the belly contents into the same location as belly's owner.
M << sound(null, repeat = 0, wait = 0, volume = 80, channel = 50)
internal_contents.Remove(M) // Remove from the belly contents
var/datum/belly/B = check_belly(owner) // This makes sure that the mob behaves properly if released into another mob
@@ -123,6 +124,7 @@
return FALSE // They weren't in this belly anyway
M.forceMove(owner.loc) // Move the belly contents into the same location as belly's owner.
M << sound(null, repeat = 0, wait = 0, volume = 80, channel = 50)
src.internal_contents.Add(M) // Remove from the belly contents
var/datum/belly/B = check_belly(owner)
if(B)
@@ -141,6 +143,7 @@
prey.forceMove(owner)
internal_contents.Add(prey)
prey << sound('sound/vore/prey/loop.ogg', repeat = 1, wait = 0, volume = 80, channel = 50)
if(inside_flavor)
prey << "<span class='notice'><B>[inside_flavor]</B></span>"
@@ -221,7 +224,7 @@
/datum/belly/proc/digestion_death(var/mob/living/M)
is_full = TRUE
internal_contents.Remove(M)
M << sound(null, repeat = 0, wait = 0, volume = 80, channel = 50)
// If digested prey is also a pred... anyone inside their bellies gets moved up.
if (is_vore_predator(M))
for (var/bellytype in M.vore_organs)
@@ -285,7 +288,7 @@
// for(var/mob/M in hearers(4, owner))
// M.visible_message(struggle_outer_message) // hearable
R.visible_message( "<span class='alert'>[struggle_outer_message]</span>", "<span class='alert'>[struggle_user_message]</span>")
playsound(R.loc, "struggle_sounds", 50, 0, -5)
playsound(R.loc, "struggle_sound", 80, 0, -5)
if(escapable && R.a_intent != "help") //If the stomach has escapable enabled and the person is actually trying to kick out
to_chat(R, "<span class='warning'>You attempt to climb out of \the [name].</span>")
@@ -296,7 +299,7 @@
release_specific_contents(R)
to_chat(R, "<span class='warning'>You climb out of \the [name].</span>")
to_chat(owner, "<span class='warning'>[R] climbs out of your [name]!</span>")
for(var/mob/M in hearers(4, owner))
for(var/mob/M in viewers(4, owner))
M.visible_message("<span class='warning'>[R] climbs out of [owner]'s [name]!</span>", 2)
return
else if(!(R in internal_contents)) //Aren't even in the belly. Quietly fail.
+16 -8
View File
@@ -18,11 +18,13 @@
//////////////////////////// DM_DIGEST ////////////////////////////
if(digest_mode == DM_DIGEST)
if(prob(50))
playsound(owner.loc, "digestion_sounds", 50, 0, -5)
for (var/mob/living/M in internal_contents)
if(prob(50))
M.stop_sound_channel(CHANNEL_PRED)
playsound(owner.loc,"digest_pred",75,0,-5,channel=CHANNEL_PRED)
M.stop_sound_channel(CHANNEL_PRED)
M.playsound_local(get_turf(M),"digest_prey",80, channel=CHANNEL_PREY)
//Pref protection!
if (!M.digestable)
continue
@@ -46,7 +48,10 @@
M.visible_message("<span class='notice'>You watch as [owner]'s form loses its additions.</span>", "<span class='warning'>[digest_alert_prey]</span>")
owner.nutrition += 400 // so eating dead mobs gives you *something*.
playsound(owner.loc, "death_gurgles", 50, 0, -5)
M.stop_sound_channel(CHANNEL_PRED)
playsound(owner.loc,"death_pred",75,0,-5,channel=CHANNEL_PRED)
M.stop_sound_channel(CHANNEL_PRED)
M.playsound_local(get_turf(M),"death_prey",80, channel=CHANNEL_PREY)
digestion_death(M)
owner.update_icons()
continue
@@ -60,10 +65,13 @@
///////////////////////////// DM_HEAL /////////////////////////////
if(digest_mode == DM_HEAL)
if(prob(50))
playsound(owner.loc, "digestion_sounds", 45, 0, -6) //very quiet gurgles, supposedly.
for (var/mob/living/M in internal_contents)
if(prob(50))
M.stop_sound_channel(CHANNEL_PRED)
playsound(owner.loc,"digest_pred",75,0,-5,channel=CHANNEL_PRED)
M.stop_sound_channel(CHANNEL_PRED)
M.playsound_local(get_turf(M),"digest_prey",80, channel=CHANNEL_PREY)
if(M.stat != DEAD)
if(owner.nutrition >= NUTRITION_LEVEL_STARVING && (M.health < M.maxHealth))
M.adjustBruteLoss(-1)
+5 -5
View File
@@ -231,7 +231,7 @@
return TRUE
selected.release_all_contents()
playsound(user, 'sound/effects/splat.ogg', 50, 1)
playsound(user, 'sound/vore/pred/escape.ogg', volume=80)
user.loc << "<span class='danger'>Everything is released from [user]!</span>"
if("Move all")
@@ -252,7 +252,7 @@
to_chat(tgt, "<span class='warning'>You're squished from [user]'s [selected] to their [B]!</span>")
for(var/mob/hearer in range(1,user))
hearer << sound('sound/vore/squish2.ogg',volume=80)
hearer << sound('sound/vore/pred/stomachmove.ogg',volume=80)
return TRUE
@@ -288,7 +288,7 @@
to_chat(tgt, "<span class='warning'>You're squished from [user]'s [lowertext(selected.name)] to their [lowertext(B.name)]!</span>")
for(var/mob/hearer in range(1,user))
hearer << sound('sound/vore/squish2.ogg',volume=80)
hearer << sound('sound/vore/pred/stomachmove.ogg',volume=80)
if(href_list["newbelly"])
if(user.vore_organs.len >= 10)
@@ -414,12 +414,12 @@
selected.vore_verb = new_verb
if(href_list["b_sound"])
var/choice = input(user,"Currently set to [selected.vore_sound]","Select Sound") in GLOB.vore_sounds + "Cancel - No Changes"
var/choice = input(user,"Currently set to [selected.vore_sound]","Select Sound") in GLOB.pred_vore_sounds + "Cancel - No Changes"
if(choice == "Cancel")
return 1
selected.vore_sound = GLOB.vore_sounds[choice]
selected.vore_sound = GLOB.pred_vore_sounds[choice]
if(href_list["b_soundtest"])
user << selected.vore_sound