Update Ambient Sounds 3.0

Adds Lava/Water Idle sounds
Adds Snowbirds loops for use on Sif, currently meant to be looped
Adds better rain FX, gives storms their own FX too
Adds unused rumbly noises for underground
This commit is contained in:
Rykka
2021-10-05 19:52:01 -07:00
parent bc382a60c4
commit fd232ce45c
32 changed files with 91 additions and 24 deletions

View File

@@ -423,6 +423,7 @@ GLOBAL_LIST_EMPTY(##LIST_NAME);\
#define VOLUME_CHANNEL_VORE "Vore"
#define VOLUME_CHANNEL_DOORS "Doors"
#define VOLUME_CHANNEL_INSTRUMENTS "Instruments"
#define VOLUME_CHANNEL_WEATHER "Weather"
// Make sure you update this or clients won't be able to adjust the channel
GLOBAL_LIST_INIT(all_volume_channels, list(
@@ -431,7 +432,8 @@ GLOBAL_LIST_INIT(all_volume_channels, list(
VOLUME_CHANNEL_ALARMS,
VOLUME_CHANNEL_VORE,
VOLUME_CHANNEL_DOORS,
VOLUME_CHANNEL_INSTRUMENTS
VOLUME_CHANNEL_INSTRUMENTS,
VOLUME_CHANNEL_WEATHER
))
#define APPEARANCECHANGER_CHANGED_RACE "Race"

View File

@@ -182,9 +182,12 @@
'sound/ambience/foreboding/foreboding2.ogg'\
)
// Ambience heard when aboveground on Sif and not in a Point of Interest.
// Ambience heard when aboveground on Sif and not in a Point of Interest. // CHOMPEdit: Changed to Snowbirds Loops 1-4
#define AMBIENCE_SIF list(\
'sound/ambience/sif/sif1.ogg'\
'sound/ambience/snow_and_ice/Snowbirds_loop1.ogg',\
'sound/ambience/snow_and_ice/Snowbirds_loop2.ogg',\
'sound/ambience/snow_and_ice/Snowbirds_loop3.ogg',\
'sound/ambience/snow_and_ice/Snowbirds_loop4.ogg'\
)
// If we ever add geothermal PoIs or other places that are really hot, this will do.

View File

@@ -16,6 +16,7 @@
direct (bool) If true plays directly to provided atoms instead of from them
opacity_check (bool) If true, things behind walls/opaque things won't hear the sounds.
pref_check (type) If set to a /datum/client_preference type, will check if the hearer has that preference active before playing it to them.
volume_chan (type) If set to a specific volume channel via the incoming argument, we tell the playsound proc to modulate volume based on that channel
*/
/datum/looping_sound
var/list/atom/output_atoms
@@ -32,6 +33,7 @@
var/extra_range
var/opacity_check
var/pref_check
var/volume_chan
var/timerid
@@ -91,7 +93,7 @@
continue
SEND_SOUND(thing, S)
else
playsound(thing, S, volume, vary, extra_range, ignore_walls = !opacity_check, preference = pref_check)
playsound(thing, S, volume, vary, extra_range, ignore_walls = !opacity_check, preference = pref_check, volume_channel = volume_chan) // CHOMPEdit - Weather volume channel
/datum/looping_sound/proc/get_sound(starttime, _mid_sounds)
if(!_mid_sounds)

View File

@@ -0,0 +1,28 @@
/*
* The purpose of this file is to house environment sound loops that originate from TURFS OR OBJECTS SOLELY FOR ENVIRONMENTAL AMBIENCE.
* Lava bubbling is one such thing, the water rushing through a stream is another.
*/
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/datum/looping_sound/water
mid_sounds = list('sound/effects/weather/water_loop.ogg'=1)
mid_length = 6 SECONDS
volume = 10
volume_chan = VOLUME_CHANNEL_AMBIENCE
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/datum/looping_sound/lava
mid_sounds = list(
'sound/effects/lava/lava_mid1.ogg'=1,
'sound/effects/lava/lava_mid2.ogg'=1,
'sound/effects/lava/lava_mid3.ogg'=1,
'sound/effects/lava/lava_mid4.ogg'=1,
'sound/effects/lava/lava_mid5.ogg'=1
)
mid_length = 9 SECONDS
volume = 40
volume_chan = VOLUME_CHANNEL_AMBIENCE
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

View File

@@ -1,5 +1,6 @@
/datum/looping_sound/weather
pref_check = /datum/client_preference/weather_sounds
volume_chan = VOLUME_CHANNEL_WEATHER // CHOMPEdit - Weather Volume Channel
/datum/looping_sound/weather/outside_blizzard
mid_sounds = list(
@@ -71,28 +72,40 @@
/datum/looping_sound/weather/wind/gentle/indoors
volume = 5
// CHOMPEdit Start: Replace Rain sounds with something not-garbage.
/datum/looping_sound/weather/rain
mid_sounds = list(
'sound/effects/weather/acidrain_mid.ogg' = 1
'sound/effects/weather/rain/rain_new_1.ogg' = 1,
'sound/effects/weather/rain/rain_new_2.ogg' = 1
)
mid_length = 15 SECONDS
start_sound = 'sound/effects/weather/acidrain_start.ogg'
start_length = 13 SECONDS
end_sound = 'sound/effects/weather/acidrain_end.ogg'
mid_length = 3 SECONDS
start_sound = 'sound/effects/weather/rain/start_rain.ogg'
start_length = 3 SECONDS
end_sound = 'sound/effects/weather/rain/end_rain.ogg'
volume = 50
// CHOMPEdit End: Replace Rain sounds with something not-garbage.
/datum/looping_sound/weather/rain/indoors
volume = 20
/datum/looping_sound/weather/rain/heavy
volume = 40
/datum/looping_sound/weather/rain/indoors
// CHOMPEdit Start: Proper storm sounds!
/datum/looping_sound/weather/storm
mid_sounds = list(
'sound/effects/weather/indoorrain_mid.ogg' = 1
'sound/effects/weather/storm/storm_loop.ogg' = 1
)
mid_length = 15 SECONDS
start_sound = 'sound/effects/weather/indoorrain_start.ogg'
start_length = 13 SECONDS
end_sound = 'sound/effects/weather/indoorrain_end.ogg'
volume = 20 //Sound is already quieter in file
mid_length = 3 SECONDS
start_sound = list(
'sound/effects/weather/storm/storm_start1.ogg' = 1,
'sound/effects/weather/storm/storm_start2.ogg' = 1
)
start_length = 4 SECONDS
end_sound = list(
'sound/effects/weather/storm/storm_end1.ogg' = 1,
'sound/effects/weather/storm/storm_end2.ogg' = 1
)
volume = 60
/datum/looping_sound/weather/rain/indoors/heavy
volume = 40
// CHOMPEdit End: Proper storm sounds!
/datum/looping_sound/weather/storm/indoors
volume = 20

View File

@@ -16,6 +16,7 @@
can_dirty = FALSE
initial_flooring = /decl/flooring/lava // Defining this in case someone DOES step on lava and survive. Somehow.
flags = TURF_ACID_IMMUNE
var/datum/looping_sound/lava/soundloop
/turf/simulated/floor/lava/outdoors
outdoors = OUTDOORS_YES
@@ -26,8 +27,16 @@
name = "magma"
update_icon()
update_light()
soundloop = new(list(src), FALSE)
soundloop.start()
return ..()
/turf/simulated/floor/lava/Destroy()
soundloop.stop()
QDEL_NULL(soundloop)
. = ..()
/turf/simulated/floor/lava/make_outdoors()
..()
name = "lava"

View File

@@ -18,6 +18,7 @@
var/depth = 1 // Higher numbers indicates deeper water.
var/reagent_type = "water"
var/datum/looping_sound/water/soundloop
/turf/simulated/floor/water/Initialize()
. = ..()
@@ -25,6 +26,14 @@
footstep_sounds = F?.footstep_sounds
update_icon()
handle_fish()
soundloop = new(list(src), FALSE)
soundloop.start()
/turf/simulated/floor/water/Destroy()
soundloop.stop()
QDEL_NULL(soundloop)
. = ..()
/turf/simulated/floor/water/update_icon()
..() // To get the edges.

View File

@@ -333,9 +333,9 @@ var/datum/planet/sif/planet_sif = null
"Loud thunder is heard in the distance.",
"A bright flash heralds the approach of a storm."
)
outdoor_sounds_type = /datum/looping_sound/weather/rain/heavy
indoor_sounds_type = /datum/looping_sound/weather/rain/indoors/heavy
outdoor_sounds_type = /datum/looping_sound/weather/storm
indoor_sounds_type = /datum/looping_sound/weather/storm/indoors
// CHOMPEdit - change weather sounds to proper storm sounds
transition_chances = list(
WEATHER_RAIN = 45,

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -393,6 +393,7 @@
#include "code\datums\locations\uueoa_esa.dm"
#include "code\datums\locations\vir.dm"
#include "code\datums\looping_sounds\_looping_sound.dm"
#include "code\datums\looping_sounds\environment_sounds.dm"
#include "code\datums\looping_sounds\item_sounds.dm"
#include "code\datums\looping_sounds\machinery_sounds.dm"
#include "code\datums\looping_sounds\sequence.dm"