Adds area soundproofing for dorms.

Areas can now be soundproofed to block sounds from other areas from entering or sounds within the area from leaving. Will send upstream tomorrow.
This commit is contained in:
Verkister
2021-02-14 00:51:17 +02:00
parent 3d1ec8ce42
commit 0bb7c6b046
3 changed files with 50 additions and 2 deletions
+3 -2
View File
@@ -50,6 +50,7 @@
var/turf/base_turf //The base turf type of the area, which can be used to override the z-level's base turf
var/forbid_events = FALSE // If true, random events will not start inside this area.
var/no_spoilers = FALSE // If true, makes it much more difficult to see what is inside an area with things like mesons.
var/soundproofed = FALSE // If true, blocks sounds from other areas and prevents hearers on other areas from hearing the sounds within.
/area/Initialize()
. = ..()
@@ -379,9 +380,9 @@ var/list/mob/living/forced_ambiance_list = new
// Ambience goes down here -- make sure to list each area seperately for ease of adding things in later, thanks! Note: areas adjacent to each other should have the same sounds to prevent cutoff when possible.- LastyScratch
if(!(L && L.is_preference_enabled(/datum/client_preference/play_ambiance)))
return
var/volume_mod = L.get_preference_volume_channel(VOLUME_CHANNEL_AMBIENCE)
// If we previously were in an area with force-played ambiance, stop it.
if((L in forced_ambiance_list) && initial)
L << sound(null, channel = CHANNEL_AMBIENCE_FORCED)
+4
View File
@@ -4,6 +4,7 @@
return
var/turf/turf_source = get_turf(source)
var/area/area_source = turf_source.loc
//allocate a channel if necessary now so its the same for everyone
channel = channel || open_sound_channel()
@@ -19,6 +20,9 @@
if(!M || !M.client)
continue
var/turf/T = get_turf(M)
var/area/A = T.loc
if((A.soundproofed || area_source.soundproofed) && (A != area_source))
continue
var/distance = get_dist(T, turf_source)
if(distance <= maxdistance)
+43
View File
@@ -983,157 +983,200 @@
name = "\improper Construction Dorm 1"
icon_state = "Sleep"
flags = RAD_SHIELDED
soundproofed = TRUE
/area/crew_quarters/sleep/maintDorm2
name = "\improper Construction Dorm 2"
icon_state = "Sleep"
flags = RAD_SHIELDED
soundproofed = TRUE
/area/crew_quarters/sleep/maintDorm3
name = "\improper Construction Dorm 3"
icon_state = "Sleep"
flags = RAD_SHIELDED
soundproofed = TRUE
/area/crew_quarters/sleep/maintDorm4
name = "\improper Construction Dorm 4"
icon_state = "Sleep"
flags = RAD_SHIELDED
soundproofed = TRUE
//TFF 28/8/19 - cleanup of areas placement
/area/crew_quarters/sleep/vistor_room_1
flags = RAD_SHIELDED | BLUE_SHIELDED
soundproofed = TRUE
/area/crew_quarters/sleep/vistor_room_2
flags = RAD_SHIELDED | BLUE_SHIELDED
soundproofed = TRUE
/area/crew_quarters/sleep/vistor_room_3
flags = RAD_SHIELDED | BLUE_SHIELDED
soundproofed = TRUE
/area/crew_quarters/sleep/vistor_room_4
flags = RAD_SHIELDED | BLUE_SHIELDED
soundproofed = TRUE
/area/crew_quarters/sleep/vistor_room_5
flags = RAD_SHIELDED | BLUE_SHIELDED
soundproofed = TRUE
/area/crew_quarters/sleep/vistor_room_6
flags = RAD_SHIELDED | BLUE_SHIELDED
soundproofed = TRUE
/area/crew_quarters/sleep/vistor_room_7
flags = RAD_SHIELDED | BLUE_SHIELDED
soundproofed = TRUE
/area/crew_quarters/sleep/vistor_room_8
flags = RAD_SHIELDED | BLUE_SHIELDED
soundproofed = TRUE
/area/crew_quarters/sleep/vistor_room_9
flags = RAD_SHIELDED | BLUE_SHIELDED
soundproofed = TRUE
/area/crew_quarters/sleep/vistor_room_10
flags = RAD_SHIELDED | BLUE_SHIELDED
soundproofed = TRUE
/area/crew_quarters/sleep/vistor_room_11
flags = RAD_SHIELDED | BLUE_SHIELDED
soundproofed = TRUE
/area/crew_quarters/sleep/vistor_room_12
flags = RAD_SHIELDED | BLUE_SHIELDED
soundproofed = TRUE
/area/crew_quarters/sleep/Dorm_1
flags = RAD_SHIELDED | BLUE_SHIELDED
soundproofed = TRUE
/area/crew_quarters/sleep/Dorm_2
flags = RAD_SHIELDED | BLUE_SHIELDED
soundproofed = TRUE
/area/crew_quarters/sleep/Dorm_3
flags = RAD_SHIELDED | BLUE_SHIELDED
soundproofed = TRUE
/area/crew_quarters/sleep/Dorm_4
flags = RAD_SHIELDED | BLUE_SHIELDED
soundproofed = TRUE
/area/crew_quarters/sleep/Dorm_5
flags = RAD_SHIELDED | BLUE_SHIELDED
soundproofed = TRUE
/area/crew_quarters/sleep/Dorm_6
flags = RAD_SHIELDED | BLUE_SHIELDED
soundproofed = TRUE
/area/crew_quarters/sleep/Dorm_7
flags = RAD_SHIELDED | BLUE_SHIELDED
soundproofed = TRUE
/area/crew_quarters/sleep/Dorm_8
flags = RAD_SHIELDED | BLUE_SHIELDED
soundproofed = TRUE
/area/crew_quarters/sleep/Dorm_9
flags = RAD_SHIELDED | BLUE_SHIELDED
soundproofed = TRUE
/area/crew_quarters/sleep/Dorm_10
flags = RAD_SHIELDED | BLUE_SHIELDED
soundproofed = TRUE
/area/crew_quarters/sleep/Dorm_1/holo
name = "\improper Dorm 1 Holodeck"
icon_state = "dk_yellow"
flags = RAD_SHIELDED | BLUE_SHIELDED
soundproofed = TRUE
/area/crew_quarters/sleep/Dorm_3/holo
name = "\improper Dorm 3 Holodeck"
icon_state = "dk_yellow"
flags = RAD_SHIELDED | BLUE_SHIELDED
soundproofed = TRUE
/area/crew_quarters/sleep/Dorm_5/holo
name = "\improper Dorm 5 Holodeck"
icon_state = "dk_yellow"
flags = RAD_SHIELDED | BLUE_SHIELDED
soundproofed = TRUE
/area/crew_quarters/sleep/Dorm_7/holo
name = "\improper Dorm 7 Holodeck"
icon_state = "dk_yellow"
flags = RAD_SHIELDED | BLUE_SHIELDED
soundproofed = TRUE
/area/crew_quarters/sleep/spacedorm1
name = "\improper Visitor Lodging 1"
icon_state = "dk_yellow"
lightswitch = 0
flags = RAD_SHIELDED | BLUE_SHIELDED
soundproofed = TRUE
/area/crew_quarters/sleep/spacedorm2
name = "\improper Visitor Lodging 2"
icon_state = "dk_yellow"
lightswitch = 0
flags = RAD_SHIELDED | BLUE_SHIELDED
soundproofed = TRUE
/area/crew_quarters/sleep/spacedorm3
name = "\improper Visitor Lodging 3"
icon_state = "dk_yellow"
lightswitch = 0
flags = RAD_SHIELDED | BLUE_SHIELDED
soundproofed = TRUE
/area/crew_quarters/sleep/spacedorm4
name = "\improper Visitor Lodging 4"
icon_state = "dk_yellow"
lightswitch = 0
flags = RAD_SHIELDED | BLUE_SHIELDED
soundproofed = TRUE
/area/holodeck/holodorm/source_basic
name = "\improper Holodeck Source"
flags = RAD_SHIELDED | BLUE_SHIELDED
soundproofed = TRUE
/area/holodeck/holodorm/source_desert
name = "\improper Holodeck Source"
flags = RAD_SHIELDED | BLUE_SHIELDED
soundproofed = TRUE
/area/holodeck/holodorm/source_seating
name = "\improper Holodeck Source"
flags = RAD_SHIELDED | BLUE_SHIELDED
soundproofed = TRUE
/area/holodeck/holodorm/source_beach
name = "\improper Holodeck Source"
flags = RAD_SHIELDED | BLUE_SHIELDED
soundproofed = TRUE
/area/holodeck/holodorm/source_garden
name = "\improper Holodeck Source"
flags = RAD_SHIELDED | BLUE_SHIELDED
soundproofed = TRUE
/area/holodeck/holodorm/source_boxing
name = "\improper Holodeck Source"
flags = RAD_SHIELDED | BLUE_SHIELDED
soundproofed = TRUE
/area/holodeck/holodorm/source_snow
name = "\improper Holodeck Source"
flags = RAD_SHIELDED | BLUE_SHIELDED
soundproofed = TRUE
/area/holodeck/holodorm/source_space
name = "\improper Holodeck Source"
flags = RAD_SHIELDED | BLUE_SHIELDED
soundproofed = TRUE
/area/holodeck/holodorm/source_off
name = "\improper Holodeck Source"
flags = RAD_SHIELDED | BLUE_SHIELDED
soundproofed = TRUE
/area/ai_core_foyer
name = "\improper AI Core Access"