Adds Sound Environments: Reverb and Echo (#15378)

This commit is contained in:
Fox McCloud
2021-02-23 06:52:34 -05:00
committed by GitHub
parent 8c7e847174
commit 64064019d8
16 changed files with 163 additions and 18 deletions
+44
View File
@@ -70,3 +70,47 @@
'sound/hallucinations/growl3.ogg', 'sound/hallucinations/im_here1.ogg', 'sound/hallucinations/im_here2.ogg', 'sound/hallucinations/i_see_you1.ogg', 'sound/hallucinations/i_see_you2.ogg',\
'sound/hallucinations/look_up1.ogg', 'sound/hallucinations/look_up2.ogg', 'sound/hallucinations/over_here1.ogg', 'sound/hallucinations/over_here2.ogg', 'sound/hallucinations/over_here3.ogg',\
'sound/hallucinations/turn_around1.ogg', 'sound/hallucinations/turn_around2.ogg', 'sound/hallucinations/veryfar_noise.ogg', 'sound/hallucinations/wail.ogg')
//default byond sound environments
#define SOUND_ENVIRONMENT_NONE -1
#define SOUND_ENVIRONMENT_GENERIC 0
#define SOUND_ENVIRONMENT_PADDED_CELL 1
#define SOUND_ENVIRONMENT_ROOM 2
#define SOUND_ENVIRONMENT_BATHROOM 3
#define SOUND_ENVIRONMENT_LIVINGROOM 4
#define SOUND_ENVIRONMENT_STONEROOM 5
#define SOUND_ENVIRONMENT_AUDITORIUM 6
#define SOUND_ENVIRONMENT_CONCERT_HALL 7
#define SOUND_ENVIRONMENT_CAVE 8
#define SOUND_ENVIRONMENT_ARENA 9
#define SOUND_ENVIRONMENT_HANGAR 10
#define SOUND_ENVIRONMENT_CARPETED_HALLWAY 11
#define SOUND_ENVIRONMENT_HALLWAY 12
#define SOUND_ENVIRONMENT_STONE_CORRIDOR 13
#define SOUND_ENVIRONMENT_ALLEY 14
#define SOUND_ENVIRONMENT_FOREST 15
#define SOUND_ENVIRONMENT_CITY 16
#define SOUND_ENVIRONMENT_MOUNTAINS 17
#define SOUND_ENVIRONMENT_QUARRY 18
#define SOUND_ENVIRONMENT_PLAIN 19
#define SOUND_ENVIRONMENT_PARKING_LOT 20
#define SOUND_ENVIRONMENT_SEWER_PIPE 21
#define SOUND_ENVIRONMENT_UNDERWATER 22
#define SOUND_ENVIRONMENT_DRUGGED 23
#define SOUND_ENVIRONMENT_DIZZY 24
#define SOUND_ENVIRONMENT_PSYCHOTIC 25
//If we ever make custom ones add them here
//"sound areas": easy way of keeping different types of areas consistent.
#define SOUND_AREA_STANDARD_STATION SOUND_ENVIRONMENT_PARKING_LOT
#define SOUND_AREA_LARGE_ENCLOSED SOUND_ENVIRONMENT_QUARRY
#define SOUND_AREA_SMALL_ENCLOSED SOUND_ENVIRONMENT_BATHROOM
#define SOUND_AREA_TUNNEL_ENCLOSED SOUND_ENVIRONMENT_STONEROOM
#define SOUND_AREA_LARGE_SOFTFLOOR SOUND_ENVIRONMENT_CARPETED_HALLWAY
#define SOUND_AREA_MEDIUM_SOFTFLOOR SOUND_ENVIRONMENT_LIVINGROOM
#define SOUND_AREA_SMALL_SOFTFLOOR SOUND_ENVIRONMENT_ROOM
#define SOUND_AREA_ASTEROID SOUND_ENVIRONMENT_CAVE
#define SOUND_AREA_SPACE SOUND_ENVIRONMENT_UNDERWATER
#define SOUND_AREA_LAVALAND SOUND_ENVIRONMENT_MOUNTAINS
#define SOUND_AREA_ICEMOON SOUND_ENVIRONMENT_CAVE
#define SOUND_AREA_WOODFLOOR SOUND_ENVIRONMENT_CITY
+1 -1
View File
@@ -67,7 +67,7 @@
H.dna.species.stamina_mod *= 0.1
add_attack_logs(owner, owner, "gained blood-drunk stun immunity", ATKLOG_ALL)
owner.add_stun_absorption("blooddrunk", INFINITY, 4)
owner.playsound_local(get_turf(owner), 'sound/effects/singlebeat.ogg', 40, 1)
owner.playsound_local(get_turf(owner), 'sound/effects/singlebeat.ogg', 40, TRUE, use_reverb = FALSE)
/datum/status_effect/blooddrunk/on_remove()
if(ishuman(owner))
+1
View File
@@ -2,6 +2,7 @@
name = "AI Monitored Area"
var/list/motioncameras = list()
var/list/motionTargets = list()
sound_environment = SOUND_ENVIRONMENT_ROOM
/area/ai_monitored/Initialize(mapload)
. = ..()
+2
View File
@@ -67,6 +67,8 @@
var/moving = FALSE
/// "Haunted" areas such as the morgue and chapel are easier to boo. Because flavor.
var/is_haunted = FALSE
///Used to decide what kind of reverb the area makes sound have
var/sound_environment = SOUND_ENVIRONMENT_NONE
/area/Initialize(mapload)
GLOB.all_areas += src
+2
View File
@@ -16,6 +16,7 @@
outdoors = TRUE
ambientsounds = MINING_SOUNDS
flags = NONE
sound_environment = SOUND_AREA_STANDARD_STATION
/area/mine/dangerous/explored/golem
name = "Small Asteroid"
@@ -90,6 +91,7 @@
/area/lavaland
icon_state = "mining"
has_gravity = TRUE
sound_environment = SOUND_AREA_LAVALAND
/area/lavaland/surface
name = "Lavaland"
+51
View File
@@ -42,6 +42,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
valid_territory = FALSE
outdoors = TRUE
ambientsounds = SPACE_SOUNDS
sound_environment = SOUND_AREA_SPACE
/area/space/nearstation
icon_state = "space_near"
@@ -66,6 +67,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
valid_territory = FALSE
dynamic_lighting = DYNAMIC_LIGHTING_FORCED
parallax_movedir = NORTH
sound_environment = SOUND_ENVIRONMENT_ROOM
/area/shuttle/arrival
name = "\improper Arrival Shuttle"
@@ -477,6 +479,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
valid_territory = FALSE
dynamic_lighting = DYNAMIC_LIGHTING_FORCED
ambientsounds = MINING_SOUNDS
sound_environment = SOUND_AREA_ASTEROID
/area/asteroid/cave // -- TLE
name = "\improper Asteroid - Underground"
@@ -594,6 +597,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area/maintenance
ambientsounds = MAINTENANCE_SOUNDS
valid_territory = FALSE
sound_environment = SOUND_AREA_TUNNEL_ENCLOSED
/area/maintenance/atmos_control
name = "Atmospherics Maintenance"
@@ -696,6 +700,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area/hallway
valid_territory = FALSE //too many areas with similar/same names, also not very interesting summon spots
sound_environment = SOUND_AREA_STANDARD_STATION
/area/hallway/primary/fore
name = "\improper Fore Primary Hallway"
@@ -762,14 +767,17 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
name = "\improper Bridge"
icon_state = "bridge"
ambientsounds = list('sound/ambience/signal.ogg')
sound_environment = SOUND_AREA_STANDARD_STATION
/area/bridge/meeting_room
name = "\improper Heads of Staff Meeting Room"
icon_state = "meeting"
sound_environment = SOUND_AREA_MEDIUM_SOFTFLOOR
/area/crew_quarters/captain
name = "\improper Captain's Office"
icon_state = "captain"
sound_environment = SOUND_AREA_WOODFLOOR
/area/crew_quarters/captain/bedroom
name = "\improper Captain's Bedroom"
@@ -826,10 +834,12 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area/comms
name = "\improper Communications Relay"
icon_state = "tcomsatcham"
sound_environment = SOUND_AREA_STANDARD_STATION
/area/server
name = "\improper Messaging Server Room"
icon_state = "server"
sound_environment = SOUND_AREA_STANDARD_STATION
/area/ntrep
name = "\improper Nanotrasen Representative's Office"
@@ -848,10 +858,12 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area/crew_quarters
name = "\improper Dormitories"
icon_state = "Sleep"
sound_environment = SOUND_AREA_STANDARD_STATION
/area/crew_quarters/toilet
name = "\improper Dormitory Toilets"
icon_state = "toilet"
sound_environment = SOUND_AREA_SMALL_ENCLOSED
/area/crew_quarters/sleep
name = "\improper Dormitories"
@@ -905,6 +917,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area/crew_quarters/bar
name = "\improper Bar"
icon_state = "bar"
sound_environment = SOUND_AREA_WOODFLOOR
/area/crew_quarters/bar/atrium
name = "Atrium"
@@ -913,6 +926,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area/crew_quarters/theatre
name = "\improper Theatre"
icon_state = "Theatre"
sound_environment = SOUND_AREA_WOODFLOOR
/area/crew_quarters/mrchangs
name = "\improper Mr Chang's"
@@ -921,6 +935,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area/library
name = "\improper Library"
icon_state = "library"
sound_environment = SOUND_AREA_LARGE_SOFTFLOOR
/area/library/abandoned
name = "\improper Abandoned Library"
@@ -930,6 +945,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
icon_state = "chapel"
ambientsounds = HOLY_SOUNDS
is_haunted = TRUE
sound_environment = SOUND_AREA_LARGE_ENCLOSED
/area/chapel/main
name = "\improper Chapel"
@@ -945,10 +961,12 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area/lawoffice
name = "\improper Law Office"
icon_state = "law"
sound_environment = SOUND_AREA_SMALL_SOFTFLOOR
/area/magistrateoffice
name = "\improper Magistrate's Office"
icon_state = "magistrate"
sound_environment = SOUND_AREA_SMALL_SOFTFLOOR
/area/clownoffice
name = "\improper Clown's Office"
@@ -974,6 +992,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
name = "\improper Holodeck"
icon_state = "Holodeck"
dynamic_lighting = DYNAMIC_LIGHTING_DISABLED
sound_environment = SOUND_ENVIRONMENT_PADDED_CELL
/area/holodeck/alphadeck
name = "\improper Holodeck Alpha"
@@ -1068,6 +1087,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
//Engineering
/area/engine
ambientsounds = ENGINEERING_SOUNDS
sound_environment = SOUND_AREA_LARGE_ENCLOSED
/area/engine/engine_smes
name = "\improper Engineering SMES"
@@ -1082,10 +1102,12 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area/engine/break_room
name = "\improper Engineering Foyer"
icon_state = "engine"
sound_environment = SOUND_AREA_SMALL_ENCLOSED
/area/engine/equipmentstorage
name = "\improper Engineering Equipment Storage"
icon_state = "storage"
sound_environment = SOUND_AREA_SMALL_ENCLOSED
/area/engine/hardsuitstorage
name = "\improper Engineering Hardsuit Storage"
@@ -1114,6 +1136,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area/engine/supermatter
name = "\improper Supermatter Engine"
icon_state = "engine"
sound_environment = SOUND_AREA_SMALL_ENCLOSED
//Solars
@@ -1122,6 +1145,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
valid_territory = FALSE
dynamic_lighting = DYNAMIC_LIGHTING_IFSTARLIGHT
ambientsounds = ENGINEERING_SOUNDS
sound_environment = SOUND_AREA_SPACE
/area/solar/auxport
name = "\improper Fore Port Solar Array"
@@ -1194,6 +1218,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
name = "\improper Gateway"
icon_state = "teleporter"
ambientsounds = ENGINEERING_SOUNDS
sound_environment = SOUND_AREA_STANDARD_STATION
/area/AIsattele
name = "\improper Abandoned Teleporter"
@@ -1213,6 +1238,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area/medical
ambientsounds = MEDICAL_SOUNDS
sound_environment = SOUND_AREA_STANDARD_STATION
/area/medical/medbay
name = "\improper Medbay"
@@ -1247,6 +1273,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area/medical/patients_rooms
name = "\improper Patient's Rooms"
icon_state = "patients"
sound_environment = SOUND_AREA_SMALL_SOFTFLOOR
/area/medical/ward
name = "\improper Medbay Patient Ward"
@@ -1301,6 +1328,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
icon_state = "morgue"
ambientsounds = SPOOKY_SOUNDS
is_haunted = TRUE
sound_environment = SOUND_AREA_SMALL_ENCLOSED
/area/medical/chemistry
name = "\improper Chemistry"
@@ -1350,6 +1378,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area/security
ambientsounds = HIGHSEC_SOUNDS
sound_environment = SOUND_AREA_STANDARD_STATION
/area/security/main
name = "\improper Security Office"
@@ -1432,6 +1461,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area/security/courtroomdandp
name = "\improper Courtroom Defense and Prosecution"
icon_state = "seccourt"
sound_environment = SOUND_AREA_LARGE_ENCLOSED
/area/security/interrogationobs
name = "\improper Interrogation Observation"
@@ -1459,6 +1489,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area/security/warden
name = "\improper Warden's Office"
icon_state = "Warden"
sound_environment = SOUND_AREA_SMALL_SOFTFLOOR
/area/security/armoury
name = "\improper Armory"
@@ -1536,12 +1567,14 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area/quartermaster
name = "\improper Quartermasters"
icon_state = "quart"
sound_environment = SOUND_AREA_STANDARD_STATION
///////////WORK IN PROGRESS//////////
/area/quartermaster/sorting
name = "\improper Delivery Office"
icon_state = "quartstorage"
sound_environment = SOUND_AREA_STANDARD_STATION
////////////WORK IN PROGRESS//////////
@@ -1552,6 +1585,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area/quartermaster/storage
name = "\improper Cargo Bay"
icon_state = "quartstorage"
sound_environment = SOUND_AREA_LARGE_ENCLOSED
/area/quartermaster/qm
name = "\improper Quartermaster's Office"
@@ -1572,17 +1606,23 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area/janitor
name = "\improper Custodial Closet"
icon_state = "janitor"
sound_environment = SOUND_AREA_SMALL_ENCLOSED
/area/hydroponics
name = "\improper Hydroponics"
icon_state = "hydro"
sound_environment = SOUND_AREA_STANDARD_STATION
/area/hydroponics/abandoned_garden
name = "\improper Abandoned Garden"
icon_state = "hydro"
sound_environment = SOUND_AREA_SMALL_ENCLOSED
//Toxins
/area/toxins
sound_environment = SOUND_AREA_STANDARD_STATION
/area/toxins/lab
name = "\improper Research and Development"
icon_state = "toxlab"
@@ -1650,6 +1690,8 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
icon_state = "toxmisc"
//Storage
/area/storage
sound_environment = SOUND_AREA_STANDARD_STATION
/area/storage/tools
name = "Auxiliary Tool Storage"
@@ -1837,6 +1879,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
name = "\improper Construction Area"
icon_state = "yellow"
ambientsounds = ENGINEERING_SOUNDS
sound_environment = SOUND_AREA_STANDARD_STATION
/area/mining_construction
name = "Auxillary Base Construction"
@@ -1925,6 +1968,8 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
//AI
/area/ai_monitored
sound_environment = SOUND_AREA_STANDARD_STATION
/area/ai_monitored/storage/eva
name = "EVA Storage"
@@ -1945,10 +1990,12 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area/turret_protected/ai_upload
name = "\improper AI Upload Chamber"
icon_state = "ai_upload"
sound_environment = SOUND_AREA_SMALL_ENCLOSED
/area/turret_protected/ai_upload_foyer
name = "AI Upload Access"
icon_state = "ai_foyer"
sound_environment = SOUND_AREA_SMALL_ENCLOSED
/area/turret_protected/ai
name = "\improper AI Chamber"
@@ -1957,6 +2004,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area/turret_protected/aisat
name = "\improper AI Satellite"
icon_state = "ai"
sound_environment = SOUND_ENVIRONMENT_ROOM
/area/aisat
name = "\improper AI Satellite Exterior"
@@ -1973,6 +2021,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area/turret_protected/aisat_interior
name = "\improper AI Satellite Antechamber"
icon_state = "ai"
sound_environment = SOUND_AREA_LARGE_ENCLOSED
//Misc
@@ -2033,6 +2082,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area/tcommsat/computer
name = "\improper Telecoms Control Room"
icon_state = "tcomsatcomp"
sound_environment = SOUND_AREA_MEDIUM_SOFTFLOOR
/area/tcommsat/server
name = "\improper Telecoms Server Room"
@@ -2052,6 +2102,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
icon_state = "away"
report_alerts = FALSE
ambientsounds = AWAY_MISSION_SOUNDS
sound_environment = SOUND_ENVIRONMENT_ROOM
/area/awaymission/example
name = "\improper Strange Station"
@@ -170,7 +170,7 @@
AM.upgrade(A)
possible_modules -= AM
to_chat(A, AM.unlock_text)
A.playsound_local(A, AM.unlock_sound, 50, 0)
A.playsound_local(A, AM.unlock_sound, 50, FALSE, use_reverb = FALSE)
else
if(AM.power_type)
if(!action) //Unlocking for the first time
@@ -183,7 +183,7 @@
if(AM.unlock_text)
to_chat(A, AM.unlock_text)
if(AM.unlock_sound)
A.playsound_local(A, AM.unlock_sound, 50, 0)
A.playsound_local(A, AM.unlock_sound, 50, FALSE, use_reverb = FALSE)
else //Adding uses to an existing module
action.uses += initial(action.uses)
action.desc = "[initial(action.desc)] It has [action.uses] use\s remaining."
@@ -394,7 +394,7 @@
RCD.detonate_pulse()
to_chat(owner, "<span class='danger'>RCD detonation pulse emitted.</span>")
owner.playsound_local(owner, 'sound/machines/twobeep.ogg', 50, 0)
owner.playsound_local(owner, 'sound/machines/twobeep.ogg', 50, FALSE, use_reverb = FALSE)
//Unlock Mech Domination: Unlocks the ability to dominate mechs. Big shocker, right?
/datum/AI_Module/large/mecha_domination
@@ -433,7 +433,7 @@
continue
F.emagged = TRUE
to_chat(owner, "<span class='notice'>All thermal sensors on the station have been disabled. Fire alerts will no longer be recognized.</span>")
owner.playsound_local(owner, 'sound/machines/terminal_off.ogg', 50, 0)
owner.playsound_local(owner, 'sound/machines/terminal_off.ogg', 50, FALSE, use_reverb = FALSE)
//Air Alarm Safety Override: Unlocks the ability to enable flooding on all air alarms.
/datum/AI_Module/large/break_air_alarms
@@ -458,7 +458,7 @@
continue
AA.emagged = TRUE
to_chat(owner, "<span class='notice'>All air alarm safeties on the station have been overriden. Air alarms may now use the Flood environmental mode.")
owner.playsound_local(owner, 'sound/machines/terminal_off.ogg', 50, 0)
owner.playsound_local(owner, 'sound/machines/terminal_off.ogg', 50, FALSE, use_reverb = FALSE)
//Overload Machine: Allows the AI to overload a machine, detonating it after a delay. Two uses per purchase.
@@ -504,7 +504,7 @@
to_chat(ranged_ability_user, "<span class='warning'>You can only overload machines!</span>")
return
ranged_ability_user.playsound_local(ranged_ability_user, "sparks", 50, 0)
ranged_ability_user.playsound_local(ranged_ability_user, "sparks", 50, FALSE, use_reverb = FALSE)
attached_action.adjust_uses(-1)
if(attached_action && attached_action.uses)
attached_action.desc = "[initial(attached_action.desc)] It has [attached_action.uses] use\s remaining."
@@ -559,7 +559,7 @@
to_chat(ranged_ability_user, "<span class='warning'>That machine can't be overridden!</span>")
return
ranged_ability_user.playsound_local(ranged_ability_user, 'sound/misc/interference.ogg', 50, 0)
ranged_ability_user.playsound_local(ranged_ability_user, 'sound/misc/interference.ogg', 50, FALSE, use_reverb = FALSE)
attached_action.adjust_uses(-1)
if(attached_action && attached_action.uses)
attached_action.desc = "[initial(attached_action.desc)] It has [attached_action.uses] use\s remaining."
@@ -673,7 +673,7 @@
else
apc.overload++
to_chat(owner, "<span class='notice'>Overcurrent applied to the powernet.</span>")
owner.playsound_local(owner, "sparks", 50, 0)
owner.playsound_local(owner, "sparks", 50, FALSE, use_reverb = FALSE)
adjust_uses(-1)
if(src && uses) //Not sure if not having src here would cause a runtime, so it's here to be safe
desc = "[initial(desc)] It has [uses] use\s remaining."
@@ -714,7 +714,7 @@
fixed_cameras++
uses-- //Not adjust_uses() so it doesn't automatically delete or show a message
to_chat(owner, "<span class='notice'>Diagnostic complete! Cameras reactivated: <b>[fixed_cameras]</b>. Reactivations remaining: <b>[uses]</b>.</span>")
owner.playsound_local(owner, 'sound/items/wirecutter.ogg', 50, 0)
owner.playsound_local(owner, 'sound/items/wirecutter.ogg', 50, FALSE, use_reverb = FALSE)
adjust_uses(0, TRUE) //Checks the uses remaining
if(src && uses) //Not sure if not having src here would cause a runtime, so it's here to be safe
desc = "[initial(desc)] It has [uses] use\s remaining."
+1 -1
View File
@@ -467,7 +467,7 @@
if(!M.client || M.client.prefs.sound & SOUND_DISCO)
if(!(M in rangers))
rangers[M] = TRUE
M.playsound_local(get_turf(M), null, 100, channel = CHANNEL_JUKEBOX, S = song_played)
M.playsound_local(get_turf(M), null, 100, channel = CHANNEL_JUKEBOX, S = song_played, use_reverb = FALSE)
for(var/mob/L in rangers)
if(get_dist(src, L) > 10)
rangers -= L
+41 -3
View File
@@ -1,4 +1,29 @@
/proc/playsound(atom/source, soundin, vol as num, vary, extrarange as num, falloff, frequency = null, channel = 0, pressure_affected = TRUE, ignore_walls = TRUE)
///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
/proc/playsound(atom/source, soundin, vol as num, vary, extrarange as num, falloff, frequency = null, channel = 0, pressure_affected = TRUE, ignore_walls = TRUE, use_reverb = TRUE)
if(isarea(source))
error("[source] is an area and is trying to make the sound: [soundin]")
return
@@ -32,9 +57,9 @@
var/distance = get_dist(M, turf_source)
if(distance <= maxdistance)
M.playsound_local(turf_source, soundin, vol, vary, frequency, falloff, channel, pressure_affected, S)
M.playsound_local(turf_source, soundin, vol, vary, frequency, falloff, channel, pressure_affected, S, 1, use_reverb)
/mob/proc/playsound_local(turf/turf_source, soundin, vol as num, vary, frequency, falloff, channel = 0, pressure_affected = TRUE, sound/S, distance_multiplier = 1)
/mob/proc/playsound_local(turf/turf_source, soundin, vol as num, vary, frequency, falloff, channel = 0, pressure_affected = TRUE, sound/S, distance_multiplier = 1, use_reverb = TRUE)
if(!client || !can_hear())
return
@@ -90,6 +115,19 @@
S.y = 1
S.falloff = (falloff ? falloff : FALLOFF_SOUNDS)
// 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)
S.environment = sound_environment_override
else
var/area/A = get_area(src)
S.environment = A.sound_environment
if(use_reverb && S.environment != SOUND_ENVIRONMENT_NONE) //We have reverb, reset our echo setting
S.echo[3] = 0 //Room setting, 0 means normal reverb
S.echo[4] = 0 //RoomHF setting, 0 means normal reverb.
SEND_SOUND(src, S)
/proc/sound_to_playing_players(soundin, volume = 100, vary = FALSE, frequency = 0, falloff = FALSE, channel = 0, pressure_affected = FALSE, sound/S)
@@ -75,7 +75,7 @@
/datum/contractor_hub/proc/first_login(mob/user)
if(!is_user_authorized(user))
return
user.playsound_local(user, 'sound/effects/contractstartup.ogg', 30, FALSE)
user.playsound_local(user, 'sound/effects/contractstartup.ogg', 30, FALSE, use_reverb = FALSE)
generate_contracts()
SStgui.update_uis(src)
@@ -39,4 +39,4 @@
to_chat(M, "<span class='notice'>[bicon(src)] Incoming encrypted transmission from your handlers. Message as follows:</span><br />"\
+ "<span class='boldnotice'>[text]</span>")
if(sndfile)
M.playsound_local(get_turf(M), sndfile, 30, FALSE)
M.playsound_local(get_turf(M), sndfile, 30, FALSE, use_reverb = FALSE)
@@ -272,13 +272,13 @@
switch(traitor_kind)
if(TRAITOR_AI)
add_law_zero()
owner.current.playsound_local(get_turf(owner.current), 'sound/ambience/antag/malf.ogg', 100, FALSE, pressure_affected = FALSE)
owner.current.playsound_local(get_turf(owner.current), 'sound/ambience/antag/malf.ogg', 100, FALSE, pressure_affected = FALSE, use_reverb = FALSE)
var/mob/living/silicon/ai/A = owner.current
A.show_laws()
if(TRAITOR_HUMAN)
if(should_equip)
equip_traitor()
owner.current.playsound_local(get_turf(owner.current), 'sound/ambience/antag/tatoralert.ogg', 100, FALSE, pressure_affected = FALSE)
owner.current.playsound_local(get_turf(owner.current), 'sound/ambience/antag/tatoralert.ogg', 100, FALSE, pressure_affected = FALSE, use_reverb = FALSE)
/datum/antagonist/traitor/proc/give_codewords()
+2
View File
@@ -340,8 +340,10 @@
if(slurring && drunk)
throw_alert("drunk", /obj/screen/alert/drunk)
sound_environment_override = SOUND_ENVIRONMENT_PSYCHOTIC
else
clear_alert("drunk")
sound_environment_override = SOUND_ENVIRONMENT_NONE
/mob/living/AdjustSlur(amount, bound_lower = 0, bound_upper = INFINITY)
var/new_value = directional_bounded_sum(slurring, amount, bound_lower, bound_upper)
+2
View File
@@ -20,9 +20,11 @@
if(druggy)
overlay_fullscreen("high", /obj/screen/fullscreen/high)
throw_alert("high", /obj/screen/alert/high)
sound_environment_override = SOUND_ENVIRONMENT_DRUGGED
else
clear_fullscreen("high")
clear_alert("high")
sound_environment_override = SOUND_ENVIRONMENT_NONE
/mob/living/update_nearsighted_effects()
if(HAS_TRAIT(src, TRAIT_NEARSIGHT))
+2
View File
@@ -115,6 +115,8 @@
var/has_enabled_antagHUD = 0 // Whether antagHUD was ever enabled. Not a true boolean - sometimes it is set to 2, because reasons.
var/antagHUD = FALSE // Whether AntagHUD is active right now
var/can_change_intents = 1 //all mobs can change intents by default.
///Override for sound_environments. If this is set the user will always hear a specific type of reverb (Instead of the area defined reverb)
var/sound_environment_override = SOUND_ENVIRONMENT_NONE
//Generic list for proc holders. Only way I can see to enable certain verbs/procs. Should be modified if needed.
var/proc_holder_list[] = list()
+1
View File
@@ -7,6 +7,7 @@
there_can_be_many = TRUE
dynamic_lighting = DYNAMIC_LIGHTING_FORCED
ambientsounds = RUINS_SOUNDS
sound_environment = SOUND_ENVIRONMENT_STONEROOM
/area/ruin/unpowered
always_unpowered = FALSE