mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-01-29 10:41:34 +00:00
* Added maintenance and large maintenance panels to various areas around the ship. These are fluff objects that have no mechanical impact, but serve as RP tools engineers can use to go to and interact with departments. https://github.com/user-attachments/assets/52d49e82-ba98-411f-901e-d9210f0ad6d0 --------- Co-authored-by: Hazelrat <ric.whe.don@gmail.com> Co-authored-by: hazelrat <83198434+hazelrat@users.noreply.github.com>
1029 lines
32 KiB
Plaintext
1029 lines
32 KiB
Plaintext
///Default override for echo
|
|
/sound
|
|
echo = list(
|
|
0, // Direct
|
|
0, // DirectHF
|
|
-10000, // Room, -10000 means no low frequency sound reverb
|
|
-10000, // RoomHF, -10000 means no high frequency sound reverb
|
|
0, // Obstruction
|
|
0, // ObstructionLFRatio
|
|
0, // Occlusion
|
|
0.25, // OcclusionLFRatio
|
|
1.5, // OcclusionRoomRatio
|
|
1.0, // OcclusionDirectRatio
|
|
0, // Exclusion
|
|
1.0, // ExclusionLFRatio
|
|
0, // OutsideVolumeHF
|
|
0, // DopplerFactor
|
|
0, // RolloffFactor
|
|
0, // RoomRolloffFactor
|
|
1.0, // AirAbsorptionFactor
|
|
0, // Flags (1 = Auto Direct, 2 = Auto Room, 4 = Auto RoomHF)
|
|
)
|
|
environment = SOUND_ENVIRONMENT_NONE //Default to none so sounds without overrides dont get reverb
|
|
|
|
/**
|
|
* playsound is a proc used to play a 3D sound in a specific range. This uses SOUND_RANGE + extra_range to determine that.
|
|
*
|
|
* * source - Origin of sound.
|
|
* * soundin - Either a file, or a string that can be used to get an SFX.
|
|
* * vol - The volume of the sound, excluding falloff and pressure affection.
|
|
* * vary - bool that determines if the sound changes pitch every time it plays.
|
|
* * extrarange - modifier for sound range. This gets added on top of SOUND_RANGE.
|
|
* * falloff_exponent - Rate of falloff for the audio. Higher means quicker drop to low volume. Should generally be over 1 to indicate a quick dive to 0 rather than a slow dive.
|
|
* * frequency - playback speed of audio.
|
|
* * channel - The channel the sound is played at.
|
|
* * pressure_affected - Whether or not difference in pressure affects the sound (E.g. if you can hear in space).
|
|
* * ignore_walls - Whether or not the sound can pass through walls.
|
|
* * falloff_distance - Distance at which falloff begins. Sound is at peak volume (in regards to falloff) aslong as it is in this range.
|
|
*
|
|
* Aurora snowflake parameters:
|
|
*
|
|
* * required_preferences - What preference is required to be on on the client, for the sound to play
|
|
* * required_asfx_toggles - What toggles are required to be on on the client, for the sound to play
|
|
*/
|
|
/proc/playsound(atom/source, soundin, vol as num, vary, extrarange as num, falloff_exponent = SOUND_FALLOFF_EXPONENT, frequency = null, channel = 0, pressure_affected = TRUE, ignore_walls = TRUE, falloff_distance = SOUND_DEFAULT_FALLOFF_DISTANCE, use_reverb = TRUE, required_preferences, required_asfx_toggles)
|
|
if(isarea(source))
|
|
CRASH("playsound(): source is an area")
|
|
|
|
var/turf/turf_source = get_turf(source)
|
|
|
|
if (!turf_source || !soundin || !vol)
|
|
return
|
|
|
|
//allocate a channel if necessary now so its the same for everyone
|
|
channel = channel || SSsounds.random_available_channel()
|
|
|
|
var/sound/S = isdatum(soundin) ? soundin : sound(get_sfx(soundin))
|
|
var/maxdistance = SOUND_RANGE + extrarange
|
|
var/source_z = turf_source.z
|
|
var/list/listeners = list()
|
|
|
|
var/list/players_by_zlevel[world.maxz][1]
|
|
var/list/dead_players_by_zlevel[world.maxz][1]
|
|
|
|
for(var/mob/player as anything in GLOB.player_list)
|
|
if(required_preferences && (player.client.prefs.toggles & required_preferences) != required_preferences)
|
|
continue
|
|
|
|
if(required_asfx_toggles && (player.client.prefs.sfx_toggles & required_asfx_toggles) != required_asfx_toggles)
|
|
continue
|
|
|
|
//This is because your Z is 0 if you are inside eg. a mech
|
|
var/turf/player_turf = get_turf(player)
|
|
if(!player_turf)
|
|
continue
|
|
|
|
if(player_turf.z == source_z)
|
|
listeners += player
|
|
|
|
if(player_turf.z)
|
|
players_by_zlevel[player_turf.z] += player
|
|
|
|
if(isobserver(player) && player_turf.z)
|
|
dead_players_by_zlevel[player_turf.z] += player
|
|
|
|
. = list()//output everything that successfully heard the sound
|
|
|
|
var/turf/above_turf = GET_TURF_ABOVE(turf_source)
|
|
var/turf/below_turf = GET_TURF_BELOW(turf_source)
|
|
|
|
if(ignore_walls)
|
|
|
|
if(above_turf && istype(above_turf, /turf/simulated/open))
|
|
listeners += players_by_zlevel[above_turf.z]
|
|
|
|
if(below_turf && istype(turf_source, /turf/simulated/open))
|
|
listeners += players_by_zlevel[below_turf.z]
|
|
|
|
else //these sounds don't carry through walls
|
|
listeners = get_hearers_in_view(maxdistance, turf_source)
|
|
|
|
if(above_turf && istype(above_turf, /turf/simulated/open))
|
|
listeners += get_hearers_in_view(maxdistance, above_turf)
|
|
|
|
if(below_turf && istype(turf_source, /turf/simulated/open))
|
|
listeners += get_hearers_in_view(maxdistance, below_turf)
|
|
|
|
for(var/mob/listening_mob in listeners | dead_players_by_zlevel[source_z])//observers always hear through walls
|
|
if(get_dist(listening_mob, turf_source) <= maxdistance)
|
|
//Aurora snowflake, if we don't ignore the walls, account for wall-like obstacles to dampen the sound
|
|
if(ignore_walls)
|
|
listening_mob.playsound_local(turf_source, soundin, vol, vary, frequency, falloff_exponent, channel, pressure_affected, S, maxdistance, falloff_distance, 1, use_reverb)
|
|
else
|
|
adjust_sound_based_on_path_obstacles(listening_mob, turf_source, soundin, vol, vary, frequency, falloff_exponent, channel, pressure_affected, S, maxdistance, falloff_distance, use_reverb)
|
|
|
|
. += listening_mob
|
|
|
|
/**
|
|
* This proc takes into account walls, windows and similar when deciding the received sound for a mob,
|
|
*
|
|
* this is *NOT* meant to be called directly, use `playsound()`
|
|
*
|
|
* Use this to tweak what happens with the sound along the path from the emitter to the receiver of said sound
|
|
*/
|
|
/proc/adjust_sound_based_on_path_obstacles(mob/listening_mob, turf/turf_source, soundin, vol, vary, frequency, falloff_exponent, channel, pressure_affected, S, maxdistance, falloff_distance, use_reverb)
|
|
var/turf/inbetween_turf = get_turf(listening_mob)
|
|
|
|
for(var/step_counter in 1 to get_dist(listening_mob, turf_source))
|
|
inbetween_turf = get_step_towards(inbetween_turf, turf_source)
|
|
|
|
if(istype(inbetween_turf, /turf/simulated/wall))
|
|
vol *= 0.6
|
|
|
|
if(locate(/obj/machinery/door) in inbetween_turf)
|
|
vol *= 0.7
|
|
|
|
if(locate(/obj/structure/window) in inbetween_turf)
|
|
vol *= 0.75
|
|
|
|
//If we're at or below zero, no point continuing, no sound
|
|
if(vol <= 0)
|
|
return
|
|
|
|
listening_mob.playsound_local(turf_source, soundin, vol, vary, frequency, falloff_exponent, channel, pressure_affected, S, maxdistance, falloff_distance, 1, use_reverb)
|
|
|
|
|
|
/mob/proc/playsound_local(turf/turf_source, soundin, vol as num, vary, frequency, falloff_exponent = SOUND_FALLOFF_EXPONENT, channel = 0, pressure_affected = TRUE, sound/sound_to_use, max_distance, falloff_distance = SOUND_DEFAULT_FALLOFF_DISTANCE, distance_multiplier = 1, use_reverb = TRUE)
|
|
if(!client || !can_hear())
|
|
return
|
|
|
|
if(!sound_to_use)
|
|
sound_to_use = sound(get_sfx(soundin))
|
|
|
|
sound_to_use.wait = 0 //No queue
|
|
sound_to_use.channel = channel || SSsounds.random_available_channel()
|
|
sound_to_use.volume = vol
|
|
|
|
if(vary)
|
|
if(frequency)
|
|
sound_to_use.frequency = frequency
|
|
else
|
|
sound_to_use.frequency = get_rand_frequency()
|
|
|
|
if(isturf(turf_source))
|
|
var/turf/turf_loc = get_turf(src)
|
|
|
|
//sound volume falloff with distance
|
|
var/distance = get_dist(turf_loc, turf_source) * distance_multiplier
|
|
|
|
if(max_distance) //If theres no max_distance we're not a 3D sound, so no falloff.
|
|
sound_to_use.volume -= (max(distance - falloff_distance, 0) ** (1 / falloff_exponent)) / ((max(max_distance, distance) - falloff_distance) ** (1 / falloff_exponent)) * sound_to_use.volume
|
|
//https://www.desmos.com/calculator/sqdfl8ipgf
|
|
|
|
if(pressure_affected)
|
|
//Atmosphere affects sound
|
|
var/pressure_factor = 1
|
|
var/datum/gas_mixture/hearer_env = turf_loc.return_air()
|
|
var/datum/gas_mixture/source_env = turf_source.return_air()
|
|
|
|
if(hearer_env && source_env)
|
|
var/pressure = min(hearer_env.return_pressure(), source_env.return_pressure())
|
|
if(pressure < ONE_ATMOSPHERE)
|
|
pressure_factor = max((pressure - SOUND_MINIMUM_PRESSURE)/(ONE_ATMOSPHERE - SOUND_MINIMUM_PRESSURE), 0)
|
|
else //space
|
|
pressure_factor = 0
|
|
|
|
if(distance <= 1)
|
|
pressure_factor = max(pressure_factor, 0.15) //touching the source of the sound
|
|
|
|
sound_to_use.volume *= pressure_factor
|
|
//End Atmosphere affecting sound
|
|
|
|
if(sound_to_use.volume <= 0)
|
|
return //No sound
|
|
|
|
var/dx = turf_source.x - turf_loc.x // Hearing from the right/left
|
|
sound_to_use.x = dx * distance_multiplier
|
|
var/dz = turf_source.y - turf_loc.y // Hearing from infront/behind
|
|
sound_to_use.z = dz * distance_multiplier
|
|
var/dy = (turf_source.z - turf_loc.z) * 5 * distance_multiplier // Hearing from above / below, multiplied by 5 because we assume height is further along coords.
|
|
sound_to_use.y = dy
|
|
|
|
sound_to_use.falloff = max_distance || 1 //use max_distance, else just use 1 as we are a direct sound so falloff isnt relevant.
|
|
|
|
// Sounds can't have their own environment. A sound's environment will be:
|
|
// 1. the mob's
|
|
// 2. the area's (defaults to SOUND_ENVRIONMENT_NONE)
|
|
if(sound_environment_override != SOUND_ENVIRONMENT_NONE)
|
|
sound_to_use.environment = sound_environment_override
|
|
else
|
|
var/area/A = get_area(src)
|
|
sound_to_use.environment = A.sound_environment
|
|
|
|
if(use_reverb && sound_to_use.environment != SOUND_ENVIRONMENT_NONE) //We have reverb, reset our echo setting
|
|
sound_to_use.echo[3] = 0 //Room setting, 0 means normal reverb
|
|
sound_to_use.echo[4] = 0 //RoomHF setting, 0 means normal reverb.
|
|
|
|
SEND_SOUND(src, sound_to_use)
|
|
|
|
/proc/sound_to_playing_players(soundin, volume = 100, vary = FALSE, frequency = 0, channel = 0, pressure_affected = FALSE, sound/S)
|
|
if(!S)
|
|
S = sound(get_sfx(soundin))
|
|
for(var/m in GLOB.player_list)
|
|
if(ismob(m) && !isnewplayer(m))
|
|
var/mob/M = m
|
|
M.playsound_local(M, null, volume, vary, frequency, null, channel, pressure_affected, S)
|
|
|
|
/mob/proc/stop_sound_channel(chan)
|
|
SEND_SOUND(src, sound(null, repeat = 0, wait = 0, channel = chan))
|
|
|
|
/mob/proc/set_sound_channel_volume(channel, volume)
|
|
var/sound/S = sound(null, FALSE, FALSE, channel, volume)
|
|
S.status = SOUND_UPDATE
|
|
SEND_SOUND(src, S)
|
|
|
|
/client/proc/playtitlemusic(vol = 85)
|
|
set waitfor = FALSE
|
|
UNTIL(SSticker.login_music) //wait for SSticker init to set the login music
|
|
|
|
if(prefs.toggles & SOUND_LOBBY)
|
|
SEND_SOUND(src, sound(SSticker.login_music, repeat = 0, wait = 0, volume = vol, channel = CHANNEL_LOBBYMUSIC)) // MAD JAMS
|
|
|
|
/proc/get_rand_frequency()
|
|
return rand(32000, 55000) //Frequency stuff only works with 45kbps oggs.
|
|
|
|
//Unlike TG, we use singletons here, so this is different, for now
|
|
/proc/get_sfx(soundin)
|
|
if(isfile(soundin) || (istext(soundin) && !ispath(soundin)) || istype(soundin, /sound))
|
|
return soundin
|
|
|
|
var/singleton/sound_category/SC = GET_SINGLETON(soundin)
|
|
if(!istype(SC))
|
|
CRASH("Non-decl path in get_sfx: [soundin]")
|
|
return SC.get_sound()
|
|
|
|
/singleton/sound_category
|
|
var/list/sounds = list()
|
|
|
|
/singleton/sound_category/proc/get_sound()
|
|
return pick(sounds)
|
|
|
|
/singleton/sound_category/blank_footsteps
|
|
sounds = list('sound/effects/footstep/blank.ogg')
|
|
|
|
/singleton/sound_category/catwalk_footstep
|
|
sounds = list(
|
|
'sound/effects/footstep/catwalk1.ogg',
|
|
'sound/effects/footstep/catwalk2.ogg',
|
|
'sound/effects/footstep/catwalk3.ogg',
|
|
'sound/effects/footstep/catwalk4.ogg',
|
|
'sound/effects/footstep/catwalk5.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/wood_footstep
|
|
sounds = list(
|
|
'sound/effects/footstep/wood1.ogg',
|
|
'sound/effects/footstep/wood2.ogg',
|
|
'sound/effects/footstep/wood3.ogg',
|
|
'sound/effects/footstep/wood4.ogg',
|
|
'sound/effects/footstep/wood5.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/tiles_footstep
|
|
sounds = list(
|
|
'sound/effects/footstep/floor1.ogg',
|
|
'sound/effects/footstep/floor2.ogg',
|
|
'sound/effects/footstep/floor3.ogg',
|
|
'sound/effects/footstep/floor4.ogg',
|
|
'sound/effects/footstep/floor5.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/plating_footstep
|
|
sounds = list(
|
|
'sound/effects/footstep/plating1.ogg',
|
|
'sound/effects/footstep/plating2.ogg',
|
|
'sound/effects/footstep/plating3.ogg',
|
|
'sound/effects/footstep/plating4.ogg',
|
|
'sound/effects/footstep/plating5.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/carpet_footstep
|
|
sounds = list(
|
|
'sound/effects/footstep/carpet1.ogg',
|
|
'sound/effects/footstep/carpet2.ogg',
|
|
'sound/effects/footstep/carpet3.ogg',
|
|
'sound/effects/footstep/carpet4.ogg',
|
|
'sound/effects/footstep/carpet5.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/asteroid_footstep
|
|
sounds = list(
|
|
'sound/effects/footstep/asteroid1.ogg',
|
|
'sound/effects/footstep/asteroid2.ogg',
|
|
'sound/effects/footstep/asteroid3.ogg',
|
|
'sound/effects/footstep/asteroid4.ogg',
|
|
'sound/effects/footstep/asteroid5.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/grass_footstep
|
|
sounds = list(
|
|
'sound/effects/footstep/grass1.ogg',
|
|
'sound/effects/footstep/grass2.ogg',
|
|
'sound/effects/footstep/grass3.ogg',
|
|
'sound/effects/footstep/grass4.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/water_footstep
|
|
sounds = list(
|
|
'sound/effects/footstep/water1.ogg',
|
|
'sound/effects/footstep/water2.ogg',
|
|
'sound/effects/footstep/water3.ogg',
|
|
'sound/effects/footstep/water4.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/lava_footstep
|
|
sounds = list(
|
|
'sound/effects/footstep/lava1.ogg',
|
|
'sound/effects/footstep/lava2.ogg',
|
|
'sound/effects/footstep/lava3.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/snow_footstep
|
|
sounds = list(
|
|
'sound/effects/footstep/snow1.ogg',
|
|
'sound/effects/footstep/snow2.ogg',
|
|
'sound/effects/footstep/snow3.ogg',
|
|
'sound/effects/footstep/snow4.ogg',
|
|
'sound/effects/footstep/snow5.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/sand_footstep
|
|
sounds = list(
|
|
'sound/effects/footstep/sand1.ogg',
|
|
'sound/effects/footstep/sand2.ogg',
|
|
'sound/effects/footstep/sand3.ogg',
|
|
'sound/effects/footstep/sand4.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/glass_break_sound
|
|
sounds = list(
|
|
'sound/effects/glass_break1.ogg',
|
|
'sound/effects/glass_break2.ogg',
|
|
'sound/effects/glass_break3.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/cardboard_break_sound
|
|
sounds = list(
|
|
'sound/effects/cardboard_break1.ogg',
|
|
'sound/effects/cardboard_break2.ogg',
|
|
'sound/effects/cardboard_break3.ogg',
|
|
)
|
|
|
|
/singleton/sound_category/wood_break_sound
|
|
sounds = list(
|
|
'sound/effects/wood_break1.ogg',
|
|
'sound/effects/wood_break2.ogg',
|
|
'sound/effects/wood_break3.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/explosion_sound
|
|
sounds = list(
|
|
'sound/effects/Explosion1.ogg',
|
|
'sound/effects/Explosion2.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/spark_sound
|
|
sounds = list(
|
|
'sound/effects/sparks1.ogg',
|
|
'sound/effects/sparks2.ogg',
|
|
'sound/effects/sparks3.ogg',
|
|
'sound/effects/sparks4.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/rustle_sound
|
|
sounds = list(
|
|
'sound/items/storage/rustle1.ogg',
|
|
'sound/items/storage/rustle2.ogg',
|
|
'sound/items/storage/rustle3.ogg',
|
|
'sound/items/storage/rustle4.ogg',
|
|
'sound/items/storage/rustle5.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/punch_sound
|
|
sounds = list(
|
|
'sound/weapons/punch1.ogg',
|
|
'sound/weapons/punch2.ogg',
|
|
'sound/weapons/punch3.ogg',
|
|
'sound/weapons/punch4.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/punch_bassy_sound
|
|
sounds = list(
|
|
'sound/weapons/punch1_bass.ogg',
|
|
'sound/weapons/punch2_bass.ogg',
|
|
'sound/weapons/punch3_bass.ogg',
|
|
'sound/weapons/punch4_bass.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/punchmiss_sound
|
|
sounds = list(
|
|
'sound/weapons/punchmiss1.ogg',
|
|
'sound/weapons/punchmiss2.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/swing_hit_sound
|
|
sounds = list(
|
|
'sound/weapons/genhit1.ogg',
|
|
'sound/weapons/genhit2.ogg',
|
|
'sound/weapons/genhit3.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/hiss_sound
|
|
sounds = list(
|
|
'sound/voice/hiss1.ogg',
|
|
'sound/voice/hiss2.ogg',
|
|
'sound/voice/hiss3.ogg',
|
|
'sound/voice/hiss4.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/page_sound
|
|
sounds = list(
|
|
'sound/effects/pageturn1.ogg',
|
|
'sound/effects/pageturn2.ogg',
|
|
'sound/effects/pageturn3.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/fracture_sound
|
|
sounds = list(
|
|
'sound/effects/bonebreak1.ogg',
|
|
'sound/effects/bonebreak2.ogg',
|
|
'sound/effects/bonebreak3.ogg',
|
|
'sound/effects/bonebreak4.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/button_sound
|
|
sounds = list(
|
|
'sound/machines/button1.ogg',
|
|
'sound/machines/button2.ogg',
|
|
'sound/machines/button3.ogg',
|
|
'sound/machines/button4.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/computerbeep_sound
|
|
sounds = list(
|
|
'sound/machines/compbeep1.ogg',
|
|
'sound/machines/compbeep2.ogg',
|
|
'sound/machines/compbeep3.ogg',
|
|
'sound/machines/compbeep4.ogg',
|
|
'sound/machines/compbeep5.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/switch_sound
|
|
sounds = list(
|
|
'sound/machines/switch1.ogg',
|
|
'sound/machines/switch2.ogg',
|
|
'sound/machines/switch3.ogg',
|
|
'sound/machines/switch4.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/keyboard_sound
|
|
sounds = list(
|
|
'sound/machines/keyboard/keyboard1.ogg',
|
|
'sound/machines/keyboard/keyboard2.ogg',
|
|
'sound/machines/keyboard/keyboard3.ogg',
|
|
'sound/machines/keyboard/keyboard4.ogg',
|
|
'sound/machines/keyboard/keyboard5.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/pickaxe_sound
|
|
sounds = list(
|
|
'sound/weapons/mine/pickaxe1.ogg',
|
|
'sound/weapons/mine/pickaxe2.ogg',
|
|
'sound/weapons/mine/pickaxe3.ogg',
|
|
'sound/weapons/mine/pickaxe4.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/glasscrack_sound
|
|
sounds = list(
|
|
'sound/effects/glass_crack1.ogg',
|
|
'sound/effects/glass_crack2.ogg',
|
|
'sound/effects/glass_crack3.ogg',
|
|
'sound/effects/glass_crack4.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/bodyfall_sound
|
|
sounds = list(
|
|
'sound/effects/bodyfall1.ogg',
|
|
'sound/effects/bodyfall2.ogg',
|
|
'sound/effects/bodyfall3.ogg',
|
|
'sound/effects/bodyfall4.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/bodyfall_skrell_sound
|
|
sounds = list(
|
|
'sound/effects/bodyfall_skrell1.ogg',
|
|
'sound/effects/bodyfall_skrell2.ogg',
|
|
'sound/effects/bodyfall_skrell3.ogg',
|
|
'sound/effects/bodyfall_skrell4.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/bodyfall_machine_sound
|
|
sounds = list(
|
|
'sound/effects/bodyfall_machine1.ogg',
|
|
'sound/effects/bodyfall_machine2.ogg'
|
|
)
|
|
/singleton/sound_category/bulletflyby_sound
|
|
sounds = list(
|
|
'sound/effects/bulletflyby1.ogg',
|
|
'sound/effects/bulletflyby2.ogg',
|
|
'sound/effects/bulletflyby3.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/screwdriver_sound
|
|
sounds = list(
|
|
'sound/items/Screwdriver.ogg',
|
|
'sound/items/Screwdriver2.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/crowbar_sound
|
|
sounds = list(
|
|
'sound/items/crowbar1.ogg',
|
|
'sound/items/crowbar2.ogg',
|
|
'sound/items/crowbar3.ogg',
|
|
'sound/items/crowbar4.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/casing_drop_sound
|
|
sounds = list(
|
|
'sound/items/drop/casing1.ogg',
|
|
'sound/items/drop/casing2.ogg',
|
|
'sound/items/drop/casing3.ogg',
|
|
'sound/items/drop/casing4.ogg',
|
|
'sound/items/drop/casing5.ogg',
|
|
'sound/items/drop/casing6.ogg',
|
|
'sound/items/drop/casing7.ogg',
|
|
'sound/items/drop/casing8.ogg',
|
|
'sound/items/drop/casing9.ogg',
|
|
'sound/items/drop/casing10.ogg',
|
|
'sound/items/drop/casing11.ogg',
|
|
'sound/items/drop/casing12.ogg',
|
|
'sound/items/drop/casing13.ogg',
|
|
'sound/items/drop/casing15.ogg',
|
|
'sound/items/drop/casing16.ogg',
|
|
'sound/items/drop/casing17.ogg',
|
|
'sound/items/drop/casing18.ogg',
|
|
'sound/items/drop/casing19.ogg',
|
|
'sound/items/drop/casing20.ogg',
|
|
'sound/items/drop/casing21.ogg',
|
|
'sound/items/drop/casing22.ogg',
|
|
'sound/items/drop/casing23.ogg',
|
|
'sound/items/drop/casing24.ogg',
|
|
'sound/items/drop/casing25.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/casing_drop_sound_shotgun
|
|
sounds = list(
|
|
'sound/items/drop/casing_shotgun1.ogg',
|
|
'sound/items/drop/casing_shotgun2.ogg',
|
|
'sound/items/drop/casing_shotgun3.ogg',
|
|
'sound/items/drop/casing_shotgun4.ogg',
|
|
'sound/items/drop/casing_shotgun5.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/out_of_ammo
|
|
sounds = list(
|
|
'sound/weapons/empty/empty2.ogg',
|
|
'sound/weapons/empty/empty3.ogg',
|
|
'sound/weapons/empty/empty4.ogg',
|
|
'sound/weapons/empty/empty5.ogg',
|
|
'sound/weapons/empty/empty6.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/out_of_ammo_revolver
|
|
sounds = list(
|
|
'sound/weapons/empty/empty_revolver.ogg',
|
|
'sound/weapons/empty/empty_revolver3.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/out_of_ammo_rifle
|
|
sounds = list(
|
|
'sound/weapons/empty/empty_rifle1.ogg',
|
|
'sound/weapons/empty/empty_rifle2.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/out_of_ammo_shotgun
|
|
sounds = list(
|
|
'sound/weapons/empty/empty_shotgun1.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/metal_slide_reload
|
|
sounds = list(
|
|
'sound/weapons/reloads/pistol_metal_slide1.ogg',
|
|
'sound/weapons/reloads/pistol_metal_slide2.ogg',
|
|
'sound/weapons/reloads/pistol_metal_slide3.ogg',
|
|
'sound/weapons/reloads/pistol_metal_slide4.ogg',
|
|
'sound/weapons/reloads/pistol_metal_slide5.ogg',
|
|
'sound/weapons/reloads/pistol_metal_slide6.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/polymer_slide_reload
|
|
sounds = list(
|
|
'sound/weapons/reloads/pistol_polymer_slide1.ogg',
|
|
'sound/weapons/reloads/pistol_polymer_slide2.ogg',
|
|
'sound/weapons/reloads/pistol_polymer_slide3.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/rifle_slide_reload
|
|
sounds = list(
|
|
'sound/weapons/reloads/rifle_slide.ogg',
|
|
'sound/weapons/reloads/rifle_slide2.ogg',
|
|
'sound/weapons/reloads/rifle_slide3.ogg',
|
|
'sound/weapons/reloads/rifle_slide4.ogg',
|
|
'sound/weapons/reloads/rifle_slide5.ogg',
|
|
'sound/weapons/reloads/rifle_slide6.ogg',
|
|
'sound/weapons/reloads/rifle_slide7.ogg',
|
|
'sound/weapons/reloads/rifle_slide8.ogg',
|
|
'sound/weapons/reloads/rifle_slide9.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/revolver_reload
|
|
sounds = list(
|
|
'sound/weapons/reloads/revolver_reload.ogg'
|
|
)
|
|
/singleton/sound_category/shotgun_pump
|
|
sounds = list(
|
|
'sound/weapons/reloads/shotgun_pump2.ogg',
|
|
'sound/weapons/reloads/shotgun_pump3.ogg',
|
|
'sound/weapons/reloads/shotgun_pump4.ogg',
|
|
'sound/weapons/reloads/shotgun_pump5.ogg',
|
|
'sound/weapons/reloads/shotgun_pump6.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/shotgun_reload
|
|
sounds = list(
|
|
'sound/weapons/reloads/reload_shell.ogg',
|
|
'sound/weapons/reloads/reload_shell2.ogg',
|
|
'sound/weapons/reloads/reload_shell3.ogg',
|
|
'sound/weapons/reloads/reload_shell4.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/heavy_machine_gun_reload
|
|
sounds = list(
|
|
'sound/weapons/reloads/hmg_reload1.ogg',
|
|
'sound/weapons/reloads/hmg_reload2.ogg',
|
|
'sound/weapons/reloads/hmg_reload3.ogg'
|
|
)
|
|
/singleton/sound_category/drillhit_sound
|
|
sounds = list(
|
|
'sound/weapons/saw/drillhit1.ogg',
|
|
'sound/weapons/saw/drillhit2.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/generic_drop_sound
|
|
sounds = list(
|
|
'sound/items/drop/generic1.ogg',
|
|
'sound/items/drop/generic2.ogg'
|
|
)
|
|
/singleton/sound_category/generic_pickup_sound
|
|
sounds = list(
|
|
'sound/items/pickup/generic1.ogg',
|
|
'sound/items/pickup/generic2.ogg',
|
|
'sound/items/pickup/generic3.ogg'
|
|
)
|
|
/singleton/sound_category/generic_wield_sound
|
|
sounds = list(
|
|
'sound/items/wield/generic1.ogg',
|
|
'sound/items/wield/generic2.ogg',
|
|
'sound/items/wield/generic3.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/generic_pour_sound
|
|
sounds = list(
|
|
'sound/effects/pour1.ogg',
|
|
'sound/effects/pour2.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/wield_generic_sound
|
|
sounds = list(
|
|
'sound/items/wield/generic1.ogg',
|
|
'sound/items/wield/generic2.ogg',
|
|
'sound/items/wield/generic3.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/sword_pickup_sound
|
|
sounds = list(
|
|
'sound/items/pickup/sword1.ogg',
|
|
'sound/items/pickup/sword2.ogg',
|
|
'sound/items/pickup/sword3.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/sword_equip_sound
|
|
sounds = list(
|
|
'sound/items/equip/sword1.ogg',
|
|
'sound/items/equip/sword2.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/gauss_fire_sound
|
|
sounds = list(
|
|
'sound/weapons/gaussrifle1.ogg',
|
|
'sound/weapons/gaussrifle2.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/bottle_hit_intact_sound
|
|
sounds = list(
|
|
'sound/weapons/bottlehit_intact1.ogg',
|
|
'sound/weapons/bottlehit_intact2.ogg',
|
|
'sound/weapons/bottlehit_intact3.ogg'
|
|
)
|
|
/singleton/sound_category/bottle_hit_broken
|
|
sounds = list(
|
|
'sound/weapons/bottlehit_broken1.ogg',
|
|
'sound/weapons/bottlehit_broken2.ogg',
|
|
'sound/weapons/bottlehit_broken3.ogg'
|
|
)
|
|
/singleton/sound_category/tray_hit_sound
|
|
sounds = list(
|
|
'sound/items/trayhit1.ogg',
|
|
'sound/items/trayhit2.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/grab_sound
|
|
sounds = list(
|
|
'sound/weapons/grab/grab1.ogg',
|
|
'sound/weapons/grab/grab2.ogg',
|
|
'sound/weapons/grab/grab3.ogg',
|
|
'sound/weapons/grab/grab4.ogg',
|
|
'sound/weapons/grab/grab5.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/gunshots
|
|
sounds = list(
|
|
'sound/weapons/gunshot/bolter.ogg',
|
|
'sound/weapons/laser1.ogg',
|
|
'sound/weapons/Laser2.ogg',
|
|
'sound/weapons/laser3.ogg',
|
|
'sound/weapons/lasercannonfire.ogg',
|
|
'sound/weapons/marauder.ogg',
|
|
'sound/weapons/laserdeep.ogg',
|
|
'sound/weapons/laserstrong.ogg',
|
|
'sound/weapons/gunshot/gunshot_dmr.ogg',
|
|
'sound/weapons/gunshot/gunshot_light.ogg',
|
|
'sound/weapons/gunshot/gunshot_mateba.ogg',
|
|
'sound/weapons/gunshot/gunshot_pistol.ogg',
|
|
'sound/weapons/gunshot/gunshot_revolver.ogg',
|
|
'sound/weapons/gunshot/gunshot_rifle.ogg',
|
|
'sound/weapons/gunshot/gunshot_saw.ogg',
|
|
'sound/weapons/gunshot/gunshot_shotgun.ogg',
|
|
'sound/weapons/gunshot/gunshot_shotgun2.ogg',
|
|
'sound/weapons/gunshot/gunshot_smg.ogg',
|
|
'sound/weapons/gunshot/gunshot_strong.ogg',
|
|
'sound/weapons/gunshot/gunshot_suppressed.ogg',
|
|
'sound/weapons/gunshot/gunshot_svd.ogg',
|
|
'sound/weapons/gunshot/gunshot_tommygun.ogg',
|
|
'sound/weapons/gunshot/gunshot1.ogg',
|
|
'sound/weapons/gunshot/gunshot2.ogg',
|
|
'sound/weapons/gunshot/gunshot3.ogg',
|
|
'sound/weapons/gunshot/musket.ogg',
|
|
'sound/weapons/gunshot/slammer.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/gunshots/ballistic
|
|
sounds = list(
|
|
'sound/weapons/gunshot/gunshot_dmr.ogg',
|
|
'sound/weapons/gunshot/gunshot_light.ogg',
|
|
'sound/weapons/gunshot/gunshot_mateba.ogg',
|
|
'sound/weapons/gunshot/gunshot_pistol.ogg',
|
|
'sound/weapons/gunshot/gunshot_revolver.ogg',
|
|
'sound/weapons/gunshot/gunshot_rifle.ogg',
|
|
'sound/weapons/gunshot/gunshot_saw.ogg',
|
|
'sound/weapons/gunshot/gunshot_shotgun.ogg',
|
|
'sound/weapons/gunshot/gunshot_shotgun2.ogg',
|
|
'sound/weapons/gunshot/gunshot_smg.ogg',
|
|
'sound/weapons/gunshot/gunshot_strong.ogg',
|
|
'sound/weapons/gunshot/gunshot_suppressed.ogg',
|
|
'sound/weapons/gunshot/gunshot_svd.ogg',
|
|
'sound/weapons/gunshot/gunshot_tommygun.ogg',
|
|
'sound/weapons/gunshot/gunshot1.ogg',
|
|
'sound/weapons/gunshot/gunshot2.ogg',
|
|
'sound/weapons/gunshot/gunshot3.ogg',
|
|
'sound/weapons/gunshot/musket.ogg',
|
|
'sound/weapons/gunshot/slammer.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/gunshots/energy
|
|
sounds = list(
|
|
'sound/weapons/gunshot/bolter.ogg',
|
|
'sound/weapons/laser1.ogg',
|
|
'sound/weapons/Laser2.ogg',
|
|
'sound/weapons/laser3.ogg',
|
|
'sound/weapons/lasercannonfire.ogg',
|
|
'sound/weapons/marauder.ogg',
|
|
'sound/weapons/laserdeep.ogg',
|
|
'sound/weapons/laserstrong.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/shaker_shaking
|
|
sounds = list(
|
|
'sound/items/shaking1.ogg',
|
|
'sound/items/shaking2.ogg',
|
|
'sound/items/shaking3.ogg',
|
|
'sound/items/shaking4.ogg',
|
|
'sound/items/shaking5.ogg',
|
|
'sound/items/shaking6.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/shaker_lid_off
|
|
sounds = list(
|
|
'sound/items/shaker_lid_off1.ogg',
|
|
'sound/items/shaker_lid_off2.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/boops
|
|
sounds = list(
|
|
'sound/machines/boop1.ogg',
|
|
'sound/machines/boop2.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/quick_arcade // quick punchy arcade sounds
|
|
sounds = list(
|
|
'sound/arcade/get_fuel.ogg',
|
|
'sound/arcade/heal.ogg',
|
|
'sound/arcade/hit.ogg',
|
|
'sound/arcade/kill_crew.ogg',
|
|
'sound/arcade/lose_fuel.ogg',
|
|
'sound/arcade/mana.ogg',
|
|
'sound/arcade/steal.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/footstep_skrell_sound
|
|
sounds = list(
|
|
'sound/effects/footstep_skrell1.ogg',
|
|
'sound/effects/footstep_skrell2.ogg',
|
|
'sound/effects/footstep_skrell3.ogg',
|
|
'sound/effects/footstep_skrell4.ogg',
|
|
'sound/effects/footstep_skrell5.ogg',
|
|
'sound/effects/footstep_skrell6.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/footstep_unathi_sound
|
|
sounds = list(
|
|
'sound/effects/footstep_unathi1.ogg',
|
|
'sound/effects/footstep_unathi2.ogg',
|
|
'sound/effects/footstep_unathi3.ogg',
|
|
'sound/effects/footstep_unathi4.ogg',
|
|
'sound/effects/footstep_unathi5.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/hammer_sound
|
|
sounds = list(
|
|
'sound/items/tools/hammer1.ogg',
|
|
'sound/items/tools/hammer2.ogg',
|
|
'sound/items/tools/hammer3.ogg',
|
|
'sound/items/tools/hammer4.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/shovel_sound
|
|
sounds = list(
|
|
'sound/items/tools/shovel1.ogg',
|
|
'sound/items/tools/shovel2.ogg',
|
|
'sound/items/tools/shovel3.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/supermatter_calm
|
|
sounds = list(
|
|
'sound/machines/sm/accent/normal/1.ogg',
|
|
'sound/machines/sm/accent/normal/2.ogg',
|
|
'sound/machines/sm/accent/normal/3.ogg',
|
|
'sound/machines/sm/accent/normal/4.ogg',
|
|
'sound/machines/sm/accent/normal/5.ogg',
|
|
'sound/machines/sm/accent/normal/6.ogg',
|
|
'sound/machines/sm/accent/normal/7.ogg',
|
|
'sound/machines/sm/accent/normal/8.ogg',
|
|
'sound/machines/sm/accent/normal/9.ogg',
|
|
'sound/machines/sm/accent/normal/10.ogg',
|
|
'sound/machines/sm/accent/normal/11.ogg',
|
|
'sound/machines/sm/accent/normal/12.ogg',
|
|
'sound/machines/sm/accent/normal/13.ogg',
|
|
'sound/machines/sm/accent/normal/14.ogg',
|
|
'sound/machines/sm/accent/normal/15.ogg',
|
|
'sound/machines/sm/accent/normal/16.ogg',
|
|
'sound/machines/sm/accent/normal/17.ogg',
|
|
'sound/machines/sm/accent/normal/18.ogg',
|
|
'sound/machines/sm/accent/normal/19.ogg',
|
|
'sound/machines/sm/accent/normal/20.ogg',
|
|
'sound/machines/sm/accent/normal/21.ogg',
|
|
'sound/machines/sm/accent/normal/22.ogg',
|
|
'sound/machines/sm/accent/normal/23.ogg',
|
|
'sound/machines/sm/accent/normal/24.ogg',
|
|
'sound/machines/sm/accent/normal/25.ogg',
|
|
'sound/machines/sm/accent/normal/26.ogg',
|
|
'sound/machines/sm/accent/normal/27.ogg',
|
|
'sound/machines/sm/accent/normal/28.ogg',
|
|
'sound/machines/sm/accent/normal/29.ogg',
|
|
'sound/machines/sm/accent/normal/30.ogg',
|
|
'sound/machines/sm/accent/normal/31.ogg',
|
|
'sound/machines/sm/accent/normal/32.ogg',
|
|
'sound/machines/sm/accent/normal/33.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/supermatter_delam
|
|
sounds = list(
|
|
'sound/machines/sm/accent/delam/1.ogg',
|
|
'sound/machines/sm/accent/delam/2.ogg',
|
|
'sound/machines/sm/accent/delam/3.ogg',
|
|
'sound/machines/sm/accent/delam/4.ogg',
|
|
'sound/machines/sm/accent/delam/5.ogg',
|
|
'sound/machines/sm/accent/delam/6.ogg',
|
|
'sound/machines/sm/accent/delam/7.ogg',
|
|
'sound/machines/sm/accent/delam/8.ogg',
|
|
'sound/machines/sm/accent/delam/9.ogg',
|
|
'sound/machines/sm/accent/delam/10.ogg',
|
|
'sound/machines/sm/accent/delam/11.ogg',
|
|
'sound/machines/sm/accent/delam/12.ogg',
|
|
'sound/machines/sm/accent/delam/13.ogg',
|
|
'sound/machines/sm/accent/delam/14.ogg',
|
|
'sound/machines/sm/accent/delam/15.ogg',
|
|
'sound/machines/sm/accent/delam/16.ogg',
|
|
'sound/machines/sm/accent/delam/17.ogg',
|
|
'sound/machines/sm/accent/delam/18.ogg',
|
|
'sound/machines/sm/accent/delam/19.ogg',
|
|
'sound/machines/sm/accent/delam/20.ogg',
|
|
'sound/machines/sm/accent/delam/21.ogg',
|
|
'sound/machines/sm/accent/delam/22.ogg',
|
|
'sound/machines/sm/accent/delam/23.ogg',
|
|
'sound/machines/sm/accent/delam/24.ogg',
|
|
'sound/machines/sm/accent/delam/25.ogg',
|
|
'sound/machines/sm/accent/delam/26.ogg',
|
|
'sound/machines/sm/accent/delam/27.ogg',
|
|
'sound/machines/sm/accent/delam/28.ogg',
|
|
'sound/machines/sm/accent/delam/29.ogg',
|
|
'sound/machines/sm/accent/delam/30.ogg',
|
|
'sound/machines/sm/accent/delam/31.ogg',
|
|
'sound/machines/sm/accent/delam/32.ogg',
|
|
'sound/machines/sm/accent/delam/33.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/rip_sound
|
|
sounds = list(
|
|
'sound/items/rip1.ogg',
|
|
'sound/items/rip2.ogg',
|
|
'sound/items/rip3.ogg',
|
|
'sound/items/rip4.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/ointment_sound
|
|
sounds = list(
|
|
'sound/items/ointment1.ogg',
|
|
'sound/items/ointment2.ogg',
|
|
'sound/items/ointment3.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/clown_sound
|
|
sounds = list(
|
|
'sound/effects/clownstep1.ogg',
|
|
'sound/effects/clownstep2.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/hivebot_melee
|
|
sounds = list(
|
|
'sound/effects/creatures/hivebot/hivebot-attack.ogg',
|
|
'sound/effects/creatures/hivebot/hivebot-attack-001.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/hivebot_wail
|
|
sounds = list(
|
|
'sound/effects/creatures/hivebot/hivebot-bark-001.ogg',
|
|
'sound/effects/creatures/hivebot/hivebot-bark-003.ogg',
|
|
'sound/effects/creatures/hivebot/hivebot-bark-005.ogg',
|
|
)
|
|
|
|
/singleton/sound_category/print_sound
|
|
sounds = list(
|
|
'sound/items/polaroid1.ogg',
|
|
'sound/items/polaroid2.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/hatch_open
|
|
sounds = list(
|
|
'sound/machines/hatch_open1.ogg',
|
|
'sound/machines/hatch_open2.ogg',
|
|
'sound/machines/hatch_open3.ogg',
|
|
'sound/machines/hatch_open4.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/hatch_close
|
|
sounds = list(
|
|
'sound/machines/hatch_close1.ogg',
|
|
'sound/machines/hatch_close2.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/electrical_hum
|
|
sounds = list(
|
|
'sound/machines/electrical_hum1.ogg',
|
|
'sound/machines/electrical_hum2.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/electrical_spark
|
|
sounds = list(
|
|
'sound/machines/electrical_spark1.ogg'
|
|
)
|
|
|
|
/singleton/sound_category/steam_pipe
|
|
sounds = list(
|
|
'sound/machines/steam_pipe1.ogg',
|
|
'sound/machines/steam_pipe2.ogg',
|
|
'sound/machines/steam_pipe3.ogg',
|
|
'sound/machines/steam_pipe4.ogg'
|
|
)
|