diff --git a/code/__defines/misc.dm b/code/__defines/misc.dm index 0cd3dcaa79..db25cb850e 100644 --- a/code/__defines/misc.dm +++ b/code/__defines/misc.dm @@ -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" diff --git a/code/__defines/sound.dm b/code/__defines/sound.dm index 570170bb93..db58865d72 100644 --- a/code/__defines/sound.dm +++ b/code/__defines/sound.dm @@ -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. diff --git a/code/datums/looping_sounds/_looping_sound.dm b/code/datums/looping_sounds/_looping_sound.dm index be6ccd4fa5..020b98e478 100644 --- a/code/datums/looping_sounds/_looping_sound.dm +++ b/code/datums/looping_sounds/_looping_sound.dm @@ -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) diff --git a/code/datums/looping_sounds/environment_sounds.dm b/code/datums/looping_sounds/environment_sounds.dm new file mode 100644 index 0000000000..3943e246bc --- /dev/null +++ b/code/datums/looping_sounds/environment_sounds.dm @@ -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 + +/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// \ No newline at end of file diff --git a/code/datums/looping_sounds/weather_sounds.dm b/code/datums/looping_sounds/weather_sounds.dm index 67a97c71f1..bc61e7b45c 100644 --- a/code/datums/looping_sounds/weather_sounds.dm +++ b/code/datums/looping_sounds/weather_sounds.dm @@ -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' - volume = 20 - -/datum/looping_sound/weather/rain/heavy - volume = 40 + 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 + +// 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 \ No newline at end of file +// CHOMPEdit End: Proper storm sounds! + +/datum/looping_sound/weather/storm/indoors + volume = 20 \ No newline at end of file diff --git a/code/game/turfs/simulated/lava.dm b/code/game/turfs/simulated/lava.dm index f7d0644819..f2b41bfbe1 100644 --- a/code/game/turfs/simulated/lava.dm +++ b/code/game/turfs/simulated/lava.dm @@ -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,7 +27,15 @@ 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() ..() diff --git a/code/game/turfs/simulated/water.dm b/code/game/turfs/simulated/water.dm index e986e085a5..3554b176e2 100644 --- a/code/game/turfs/simulated/water.dm +++ b/code/game/turfs/simulated/water.dm @@ -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. diff --git a/code/modules/planet/sif.dm b/code/modules/planet/sif.dm index d86f2ce82f..e8a467e24c 100644 --- a/code/modules/planet/sif.dm +++ b/code/modules/planet/sif.dm @@ -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, diff --git a/sound/ambience/snow_and_ice/Snowbirds_loop1.ogg b/sound/ambience/snow_and_ice/Snowbirds_loop1.ogg new file mode 100644 index 0000000000..05a3afa556 Binary files /dev/null and b/sound/ambience/snow_and_ice/Snowbirds_loop1.ogg differ diff --git a/sound/ambience/snow_and_ice/Snowbirds_loop2.ogg b/sound/ambience/snow_and_ice/Snowbirds_loop2.ogg new file mode 100644 index 0000000000..d46fc81a36 Binary files /dev/null and b/sound/ambience/snow_and_ice/Snowbirds_loop2.ogg differ diff --git a/sound/ambience/snow_and_ice/Snowbirds_loop3.ogg b/sound/ambience/snow_and_ice/Snowbirds_loop3.ogg new file mode 100644 index 0000000000..a2c6ff25bd Binary files /dev/null and b/sound/ambience/snow_and_ice/Snowbirds_loop3.ogg differ diff --git a/sound/ambience/snow_and_ice/Snowbirds_loop4.ogg b/sound/ambience/snow_and_ice/Snowbirds_loop4.ogg new file mode 100644 index 0000000000..2e1bdccc12 Binary files /dev/null and b/sound/ambience/snow_and_ice/Snowbirds_loop4.ogg differ diff --git a/sound/ambience/underground/underground_synthrumble1.ogg b/sound/ambience/underground/underground_synthrumble1.ogg new file mode 100644 index 0000000000..d12affbbe4 Binary files /dev/null and b/sound/ambience/underground/underground_synthrumble1.ogg differ diff --git a/sound/ambience/underground/underground_synthrumble2.ogg b/sound/ambience/underground/underground_synthrumble2.ogg new file mode 100644 index 0000000000..affeeb9823 Binary files /dev/null and b/sound/ambience/underground/underground_synthrumble2.ogg differ diff --git a/sound/ambience/underground/underground_synthrumble3.ogg b/sound/ambience/underground/underground_synthrumble3.ogg new file mode 100644 index 0000000000..29d63e3792 Binary files /dev/null and b/sound/ambience/underground/underground_synthrumble3.ogg differ diff --git a/sound/effects/lava/lava_mid1.ogg b/sound/effects/lava/lava_mid1.ogg new file mode 100644 index 0000000000..7d1eeb3276 Binary files /dev/null and b/sound/effects/lava/lava_mid1.ogg differ diff --git a/sound/effects/lava/lava_mid2.ogg b/sound/effects/lava/lava_mid2.ogg new file mode 100644 index 0000000000..b4d0d87e50 Binary files /dev/null and b/sound/effects/lava/lava_mid2.ogg differ diff --git a/sound/effects/lava/lava_mid3.ogg b/sound/effects/lava/lava_mid3.ogg new file mode 100644 index 0000000000..12f2c99873 Binary files /dev/null and b/sound/effects/lava/lava_mid3.ogg differ diff --git a/sound/effects/lava/lava_mid4.ogg b/sound/effects/lava/lava_mid4.ogg new file mode 100644 index 0000000000..21c25cb6a5 Binary files /dev/null and b/sound/effects/lava/lava_mid4.ogg differ diff --git a/sound/effects/lava/lava_mid5.ogg b/sound/effects/lava/lava_mid5.ogg new file mode 100644 index 0000000000..d710181d5e Binary files /dev/null and b/sound/effects/lava/lava_mid5.ogg differ diff --git a/sound/effects/weather/rain/end_rain.ogg b/sound/effects/weather/rain/end_rain.ogg new file mode 100644 index 0000000000..2a8be7186f Binary files /dev/null and b/sound/effects/weather/rain/end_rain.ogg differ diff --git a/sound/effects/weather/rain/rain_new_1.ogg b/sound/effects/weather/rain/rain_new_1.ogg new file mode 100644 index 0000000000..3470612315 Binary files /dev/null and b/sound/effects/weather/rain/rain_new_1.ogg differ diff --git a/sound/effects/weather/rain/rain_new_2.ogg b/sound/effects/weather/rain/rain_new_2.ogg new file mode 100644 index 0000000000..e2f146a2c9 Binary files /dev/null and b/sound/effects/weather/rain/rain_new_2.ogg differ diff --git a/sound/effects/weather/rain/start_rain.ogg b/sound/effects/weather/rain/start_rain.ogg new file mode 100644 index 0000000000..98e545cdfd Binary files /dev/null and b/sound/effects/weather/rain/start_rain.ogg differ diff --git a/sound/effects/weather/storm/new storm.ogg b/sound/effects/weather/storm/new storm.ogg new file mode 100644 index 0000000000..08a63863a7 Binary files /dev/null and b/sound/effects/weather/storm/new storm.ogg differ diff --git a/sound/effects/weather/storm/storm_end1.ogg b/sound/effects/weather/storm/storm_end1.ogg new file mode 100644 index 0000000000..98eacd57f0 Binary files /dev/null and b/sound/effects/weather/storm/storm_end1.ogg differ diff --git a/sound/effects/weather/storm/storm_end2.ogg b/sound/effects/weather/storm/storm_end2.ogg new file mode 100644 index 0000000000..8d01e6c41d Binary files /dev/null and b/sound/effects/weather/storm/storm_end2.ogg differ diff --git a/sound/effects/weather/storm/storm_loop.ogg b/sound/effects/weather/storm/storm_loop.ogg new file mode 100644 index 0000000000..096ffd4572 Binary files /dev/null and b/sound/effects/weather/storm/storm_loop.ogg differ diff --git a/sound/effects/weather/storm/storm_start1.ogg b/sound/effects/weather/storm/storm_start1.ogg new file mode 100644 index 0000000000..ded7fe0154 Binary files /dev/null and b/sound/effects/weather/storm/storm_start1.ogg differ diff --git a/sound/effects/weather/storm/storm_start2.ogg b/sound/effects/weather/storm/storm_start2.ogg new file mode 100644 index 0000000000..1c6ee13066 Binary files /dev/null and b/sound/effects/weather/storm/storm_start2.ogg differ diff --git a/sound/effects/weather/water_loop.ogg b/sound/effects/weather/water_loop.ogg new file mode 100644 index 0000000000..fc9008d931 Binary files /dev/null and b/sound/effects/weather/water_loop.ogg differ diff --git a/vorestation.dme b/vorestation.dme index 784c9844b9..0fb510093b 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -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"