diff --git a/Content.IntegrationTests/Tests/Announcers/AnnouncerAudioTest.cs b/Content.IntegrationTests/Tests/Announcers/AnnouncerAudioTest.cs new file mode 100644 index 00000000000..87e8caf6ecd --- /dev/null +++ b/Content.IntegrationTests/Tests/Announcers/AnnouncerAudioTest.cs @@ -0,0 +1,76 @@ +using System.Collections.Generic; +using System.Linq; +using Content.Server.Announcements.Systems; +using Content.Server.StationEvents; +using Content.Shared.Announcements.Prototypes; +using Robust.Client.ResourceManagement; +using Robust.Shared.GameObjects; +using Robust.Shared.IoC.Exceptions; +using Robust.Shared.Localization; +using Robust.Shared.Prototypes; +using Serilog; + +namespace Content.IntegrationTests.Tests.Announcers; + +/// +/// Checks if every station event using the announcerSystem has a valid audio file associated with it +/// +[TestFixture] +[TestOf(typeof(AnnouncerPrototype))] +public sealed class AnnouncerAudioTest +{ + /// + [Test] + public async Task TestEventSounds() + { + await using var pair = await PoolManager.GetServerClient(new PoolSettings { Connected = true }); + var server = pair.Server; + var client = pair.Client; + + var entSysMan = server.ResolveDependency(); + var proto = server.ResolveDependency(); + var cache = client.ResolveDependency(); + var announcer = entSysMan.GetEntitySystem(); + var events = entSysMan.GetEntitySystem(); + + await server.WaitAssertion(() => + { + var succeeded = true; + var why = new List(); + + foreach (var announcerProto in proto.EnumeratePrototypes().OrderBy(a => a.ID)) + { + foreach (var ev in events.AllEvents()) + { + if (ev.Value.StartAnnouncement) + { + var announcementId = announcer.GetAnnouncementId(ev.Key.ID); + var path = announcer.GetAnnouncementPath(announcementId, announcerProto); + + if (!cache.ContentFileExists(path)) + { + succeeded = false; + why.Add($"\"{announcerProto.ID}\", \"{announcementId}\": \"{path}\""); + } + } + + if (ev.Value.EndAnnouncement) + { + var announcementId = announcer.GetAnnouncementId(ev.Key.ID, true); + var path = announcer.GetAnnouncementPath(announcementId, announcerProto); + + if (!cache.ContentFileExists(path)) + { + succeeded = false; + why.Add($"\"{announcerProto.ID}\", \"{announcementId}\": \"{path}\""); + } + } + } + } + + Assert.That(succeeded, Is.True, $"The following announcements do not have a valid announcement audio:\n {string.Join("\n ", why)}"); + }); + + await pair.CleanReturnAsync(); + } +} diff --git a/Content.IntegrationTests/Tests/Announcers/AnnouncerFallbackTest.cs b/Content.IntegrationTests/Tests/Announcers/AnnouncerFallbackTest.cs index ac0a23b09fc..948f40e7908 100644 --- a/Content.IntegrationTests/Tests/Announcers/AnnouncerFallbackTest.cs +++ b/Content.IntegrationTests/Tests/Announcers/AnnouncerFallbackTest.cs @@ -5,15 +5,17 @@ namespace Content.IntegrationTests.Tests.Announcers; +/// +/// Checks if every announcer has a fallback announcement +/// [TestFixture] [TestOf(typeof(AnnouncerPrototype))] -public sealed class AnnouncerPrototypeTests +public sealed class AnnouncerPrototypeTest { + /// [Test] public async Task TestAnnouncerFallbacks() { - // Checks if every announcer has a fallback announcement - await using var pair = await PoolManager.GetServerClient(); var server = pair.Server; @@ -24,13 +26,13 @@ await server.WaitAssertion(() => var success = true; var why = new List(); - foreach (var announcer in prototype.EnumeratePrototypes()) + foreach (var announcer in prototype.EnumeratePrototypes().OrderBy(a => a.ID)) { - if (announcer.Announcements.All(a => a.ID.ToLower() != "fallback")) - { - success = false; - why.Add(announcer.ID); - } + if (announcer.Announcements.Any(a => a.ID.ToLower() == "fallback")) + continue; + + success = false; + why.Add(announcer.ID); } Assert.That(success, Is.True, $"The following announcers do not have a fallback announcement:\n {string.Join("\n ", why)}"); diff --git a/Content.IntegrationTests/Tests/Announcers/AnnouncerLocalizationTest.cs b/Content.IntegrationTests/Tests/Announcers/AnnouncerLocalizationTest.cs index 74e14475bc4..c9ac18bc68c 100644 --- a/Content.IntegrationTests/Tests/Announcers/AnnouncerLocalizationTest.cs +++ b/Content.IntegrationTests/Tests/Announcers/AnnouncerLocalizationTest.cs @@ -1,28 +1,33 @@ using System.Collections.Generic; +using System.Linq; using Content.Server.Announcements.Systems; using Content.Server.StationEvents; using Content.Shared.Announcements.Prototypes; using Robust.Shared.GameObjects; using Robust.Shared.Localization; +using Robust.Shared.Prototypes; namespace Content.IntegrationTests.Tests.Announcers; +/// +/// Checks if every station event wanting the announcerSystem to send messages has a localization string +/// If an event doesn't have startAnnouncement or endAnnouncement set to true +/// it will be expected for that system to handle the announcements if it wants them +/// [TestFixture] [TestOf(typeof(AnnouncerPrototype))] public sealed class AnnouncerLocalizationTest { + /// [Test] public async Task TestEventLocalization() { - // Checks if every station event wanting the announcerSystem to send messages has a localization string - // If an event doesn't have startAnnouncement or endAnnouncement set to true - // it will be expected for that system to handle the announcements if it wants them - await using var pair = await PoolManager.GetServerClient(); var server = pair.Server; var locale = server.ResolveDependency(); var entSysMan = server.ResolveDependency(); + var proto = server.ResolveDependency(); var announcer = entSysMan.GetEntitySystem(); var events = entSysMan.GetEntitySystem(); @@ -31,29 +36,34 @@ await server.WaitAssertion(() => var succeeded = true; var why = new List(); - foreach (var ev in events.AllEvents()) + foreach (var announcerProto in proto.EnumeratePrototypes().OrderBy(a => a.ID)) { - if (ev.Value.StartAnnouncement) + foreach (var ev in events.AllEvents()) { - var announcementId = announcer.GetAnnouncementId(ev.Key.ID); - var eventLocaleString = announcer.GetEventLocaleString(announcementId); - - if (locale.GetString(eventLocaleString) == eventLocaleString) + if (ev.Value.StartAnnouncement) { - succeeded = false; - why.Add($"\"{announcementId}\": \"{eventLocaleString}\""); - } - } + var announcementId = announcer.GetAnnouncementId(ev.Key.ID); + var eventLocaleString = announcer.GetAnnouncementMessage(announcementId, announcerProto.ID) + ?? announcer.GetEventLocaleString(announcementId); - if (ev.Value.EndAnnouncement) - { - var announcementId = announcer.GetAnnouncementId(ev.Key.ID, true); - var eventLocaleString = announcer.GetEventLocaleString(announcementId); + if (locale.GetString(eventLocaleString) == eventLocaleString) + { + succeeded = false; + why.Add($"\"{announcerProto.ID}\", \"{announcementId}\": \"{eventLocaleString}\""); + } + } - if (locale.GetString(eventLocaleString) == eventLocaleString) + if (ev.Value.EndAnnouncement) { - succeeded = false; - why.Add($"\"{announcementId}\": \"{eventLocaleString}\""); + var announcementId = announcer.GetAnnouncementId(ev.Key.ID, true); + var eventLocaleString = announcer.GetAnnouncementMessage(announcementId, announcerProto.ID) + ?? announcer.GetEventLocaleString(announcementId); + + if (locale.GetString(eventLocaleString) == eventLocaleString) + { + succeeded = false; + why.Add($"\"{announcerProto.ID}\", \"{announcementId}\": \"{eventLocaleString}\""); + } } } } diff --git a/Content.Server/Announcements/Systems/AnnouncerSystem.Announce.cs b/Content.Server/Announcements/Systems/AnnouncerSystem.Announce.cs index d705b86384d..3342bc9aef8 100644 --- a/Content.Server/Announcements/Systems/AnnouncerSystem.Announce.cs +++ b/Content.Server/Announcements/Systems/AnnouncerSystem.Announce.cs @@ -59,8 +59,8 @@ public void SendAnnouncementMessage(string announcementId, string locale, string sender ??= Loc.GetString($"announcer-{announcerOverride?.ID ?? Announcer.ID}-name"); // If the announcement has a message override, use that instead of the message parameter - if (GetAnnouncementMessage(announcementId, announcerOverride?.ID ?? Announcer.ID, localeArgs) is { } announcementMessage) - locale = announcementMessage; + if (GetAnnouncementMessage(announcementId, announcerOverride?.ID ?? Announcer.ID) is { } announcementMessage) + locale = Loc.GetString(announcementMessage, localeArgs); else locale = Loc.GetString(locale, localeArgs); diff --git a/Content.Shared/Announcements/Systems/SharedAnnouncerSystem.cs b/Content.Shared/Announcements/Systems/SharedAnnouncerSystem.cs index c29513285e1..5e02b602d06 100644 --- a/Content.Shared/Announcements/Systems/SharedAnnouncerSystem.cs +++ b/Content.Shared/Announcements/Systems/SharedAnnouncerSystem.cs @@ -92,7 +92,7 @@ public string GetAnnouncementId(string announcementId, bool ended = false) announcer.Announcements.First(a => a.ID == "fallback"); // Return the announcer.BaseAudioParams if the announcementType doesn't have an override - return announcementType.AudioParams ?? announcer.BaseAudioParams ?? null; // For some reason the formatter doesn't warn me about "?? null" being redundant, so it stays + return announcementType.AudioParams ?? announcer.BaseAudioParams ?? null; // For some reason the formatter doesn't warn me about "?? null" being redundant, so it stays for the funnies } /// @@ -117,9 +117,7 @@ public string GetAnnouncementId(string announcementId, bool ended = false) /// /// ID of the announcement from the announcer to get information from /// ID of the announcer to get information from - /// Locale arguments to pass to the overwritten announcement - public string? GetAnnouncementMessage(string announcementId, string announcerId, - params (string, object)[] localeArgs) + public string? GetAnnouncementMessage(string announcementId, string announcerId) { if (!_proto.TryIndex(announcerId, out var announcer)) return null; @@ -130,7 +128,7 @@ public string GetAnnouncementId(string announcementId, bool ended = false) announcer.Announcements.First(a => a.ID == "fallback"); // Return the announcementType.MessageOverride if it exists, otherwise return null - return announcementType.MessageOverride != null ? Loc.GetString(announcementType.MessageOverride, localeArgs) : null; + return announcementType.MessageOverride != null ? announcementType.MessageOverride : null; } /// diff --git a/Resources/Audio/Announcements/Intern/aliens.ogg b/Resources/Audio/Announcements/Intern/aliens.ogg deleted file mode 100644 index 9dd3c076978..00000000000 Binary files a/Resources/Audio/Announcements/Intern/aliens.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/Intern/animes.ogg b/Resources/Audio/Announcements/Intern/animes.ogg deleted file mode 100644 index 36102c3e60e..00000000000 Binary files a/Resources/Audio/Announcements/Intern/animes.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/Intern/announce.ogg b/Resources/Audio/Announcements/Intern/announce.ogg deleted file mode 100644 index 0ee0f36d56f..00000000000 Binary files a/Resources/Audio/Announcements/Intern/announce.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/Intern/announce/1.ogg b/Resources/Audio/Announcements/Intern/announce/1.ogg deleted file mode 100644 index c4d182bc8c9..00000000000 Binary files a/Resources/Audio/Announcements/Intern/announce/1.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/Intern/announce/10.ogg b/Resources/Audio/Announcements/Intern/announce/10.ogg deleted file mode 100644 index 7380ccdeefd..00000000000 Binary files a/Resources/Audio/Announcements/Intern/announce/10.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/Intern/announce/11.ogg b/Resources/Audio/Announcements/Intern/announce/11.ogg deleted file mode 100644 index ca548dcc20a..00000000000 Binary files a/Resources/Audio/Announcements/Intern/announce/11.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/Intern/announce/12.ogg b/Resources/Audio/Announcements/Intern/announce/12.ogg deleted file mode 100644 index 8d71419798f..00000000000 Binary files a/Resources/Audio/Announcements/Intern/announce/12.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/Intern/announce/13.ogg b/Resources/Audio/Announcements/Intern/announce/13.ogg deleted file mode 100644 index 128c7aa424d..00000000000 Binary files a/Resources/Audio/Announcements/Intern/announce/13.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/Intern/announce/14.ogg b/Resources/Audio/Announcements/Intern/announce/14.ogg deleted file mode 100644 index 81d54101be5..00000000000 Binary files a/Resources/Audio/Announcements/Intern/announce/14.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/Intern/announce/2.ogg b/Resources/Audio/Announcements/Intern/announce/2.ogg deleted file mode 100644 index a2ef615d56c..00000000000 Binary files a/Resources/Audio/Announcements/Intern/announce/2.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/Intern/announce/3.ogg b/Resources/Audio/Announcements/Intern/announce/3.ogg deleted file mode 100644 index 51613ff0367..00000000000 Binary files a/Resources/Audio/Announcements/Intern/announce/3.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/Intern/announce/4.ogg b/Resources/Audio/Announcements/Intern/announce/4.ogg deleted file mode 100644 index 874536ca72f..00000000000 Binary files a/Resources/Audio/Announcements/Intern/announce/4.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/Intern/announce/5.ogg b/Resources/Audio/Announcements/Intern/announce/5.ogg deleted file mode 100644 index 0af0d28ce18..00000000000 Binary files a/Resources/Audio/Announcements/Intern/announce/5.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/Intern/announce/6.ogg b/Resources/Audio/Announcements/Intern/announce/6.ogg deleted file mode 100644 index a65006a8c01..00000000000 Binary files a/Resources/Audio/Announcements/Intern/announce/6.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/Intern/announce/7.ogg b/Resources/Audio/Announcements/Intern/announce/7.ogg deleted file mode 100644 index 4a1d3f013ae..00000000000 Binary files a/Resources/Audio/Announcements/Intern/announce/7.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/Intern/announce/8.ogg b/Resources/Audio/Announcements/Intern/announce/8.ogg deleted file mode 100644 index 83ca80f4939..00000000000 Binary files a/Resources/Audio/Announcements/Intern/announce/8.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/Intern/announce/9.ogg b/Resources/Audio/Announcements/Intern/announce/9.ogg deleted file mode 100644 index 3c0c45b25d0..00000000000 Binary files a/Resources/Audio/Announcements/Intern/announce/9.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/Intern/anomaly.ogg b/Resources/Audio/Announcements/Intern/anomaly.ogg deleted file mode 100644 index 9bed8eae3aa..00000000000 Binary files a/Resources/Audio/Announcements/Intern/anomaly.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/Intern/commandreport/1.ogg b/Resources/Audio/Announcements/Intern/commandreport/1.ogg deleted file mode 100644 index e3108b13d17..00000000000 Binary files a/Resources/Audio/Announcements/Intern/commandreport/1.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/Intern/commandreport/2.ogg b/Resources/Audio/Announcements/Intern/commandreport/2.ogg deleted file mode 100644 index cd67500426c..00000000000 Binary files a/Resources/Audio/Announcements/Intern/commandreport/2.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/Intern/commandreport/3.ogg b/Resources/Audio/Announcements/Intern/commandreport/3.ogg deleted file mode 100644 index 94241c5ba52..00000000000 Binary files a/Resources/Audio/Announcements/Intern/commandreport/3.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/Intern/intercept.ogg b/Resources/Audio/Announcements/Intern/intercept.ogg deleted file mode 100644 index a87274abd97..00000000000 Binary files a/Resources/Audio/Announcements/Intern/intercept.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/Intern/ionstorm.ogg b/Resources/Audio/Announcements/Intern/ionstorm.ogg deleted file mode 100644 index 9e7b5c6b23e..00000000000 Binary files a/Resources/Audio/Announcements/Intern/ionstorm.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/Intern/meteors.ogg b/Resources/Audio/Announcements/Intern/meteors.ogg deleted file mode 100644 index c68c4bd8cc4..00000000000 Binary files a/Resources/Audio/Announcements/Intern/meteors.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/Intern/newai.ogg b/Resources/Audio/Announcements/Intern/newai.ogg deleted file mode 100644 index c40b0990206..00000000000 Binary files a/Resources/Audio/Announcements/Intern/newai.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/Intern/outbreak7.ogg b/Resources/Audio/Announcements/Intern/outbreak7.ogg deleted file mode 100644 index 297a1bbe8db..00000000000 Binary files a/Resources/Audio/Announcements/Intern/outbreak7.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/Intern/poweroff.ogg b/Resources/Audio/Announcements/Intern/poweroff.ogg deleted file mode 100644 index 4b71053653f..00000000000 Binary files a/Resources/Audio/Announcements/Intern/poweroff.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/Intern/poweron.ogg b/Resources/Audio/Announcements/Intern/poweron.ogg deleted file mode 100644 index 509cd398e6e..00000000000 Binary files a/Resources/Audio/Announcements/Intern/poweron.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/Intern/radiation.ogg b/Resources/Audio/Announcements/Intern/radiation.ogg deleted file mode 100644 index 08db53ebfd2..00000000000 Binary files a/Resources/Audio/Announcements/Intern/radiation.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/Intern/shuttlecalled.ogg b/Resources/Audio/Announcements/Intern/shuttlecalled.ogg deleted file mode 100644 index c903367cdff..00000000000 Binary files a/Resources/Audio/Announcements/Intern/shuttlecalled.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/Intern/shuttledock.ogg b/Resources/Audio/Announcements/Intern/shuttledock.ogg deleted file mode 100644 index 9f6ccd1a937..00000000000 Binary files a/Resources/Audio/Announcements/Intern/shuttledock.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/Intern/shuttlerecalled.ogg b/Resources/Audio/Announcements/Intern/shuttlerecalled.ogg deleted file mode 100644 index e259a79f35e..00000000000 Binary files a/Resources/Audio/Announcements/Intern/shuttlerecalled.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/Intern/welcome/1.ogg b/Resources/Audio/Announcements/Intern/welcome/1.ogg deleted file mode 100644 index 758f1967e09..00000000000 Binary files a/Resources/Audio/Announcements/Intern/welcome/1.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/Intern/welcome/2.ogg b/Resources/Audio/Announcements/Intern/welcome/2.ogg deleted file mode 100644 index c2e72be510e..00000000000 Binary files a/Resources/Audio/Announcements/Intern/welcome/2.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/Intern/welcome/3.ogg b/Resources/Audio/Announcements/Intern/welcome/3.ogg deleted file mode 100644 index 004f57371de..00000000000 Binary files a/Resources/Audio/Announcements/Intern/welcome/3.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/Intern/welcome/4.ogg b/Resources/Audio/Announcements/Intern/welcome/4.ogg deleted file mode 100644 index c4e1f7667cd..00000000000 Binary files a/Resources/Audio/Announcements/Intern/welcome/4.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/Intern/welcome/5.ogg b/Resources/Audio/Announcements/Intern/welcome/5.ogg deleted file mode 100644 index 641b8208a4e..00000000000 Binary files a/Resources/Audio/Announcements/Intern/welcome/5.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/Intern/welcome/6.ogg b/Resources/Audio/Announcements/Intern/welcome/6.ogg deleted file mode 100644 index b0fc38237f8..00000000000 Binary files a/Resources/Audio/Announcements/Intern/welcome/6.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/MedBot/aliens.ogg b/Resources/Audio/Announcements/MedBot/aliens.ogg deleted file mode 100644 index 57fa70c3cae..00000000000 Binary files a/Resources/Audio/Announcements/MedBot/aliens.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/MedBot/animes.ogg b/Resources/Audio/Announcements/MedBot/animes.ogg deleted file mode 100644 index 7615a744a66..00000000000 Binary files a/Resources/Audio/Announcements/MedBot/animes.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/MedBot/announce.ogg b/Resources/Audio/Announcements/MedBot/announce.ogg deleted file mode 100644 index 0ee0f36d56f..00000000000 Binary files a/Resources/Audio/Announcements/MedBot/announce.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/MedBot/anomaly.ogg b/Resources/Audio/Announcements/MedBot/anomaly.ogg deleted file mode 100644 index d710999e1e1..00000000000 Binary files a/Resources/Audio/Announcements/MedBot/anomaly.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/MedBot/attention.ogg b/Resources/Audio/Announcements/MedBot/attention.ogg deleted file mode 100644 index d4d5a270852..00000000000 Binary files a/Resources/Audio/Announcements/MedBot/attention.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/MedBot/commandreport.ogg b/Resources/Audio/Announcements/MedBot/commandreport.ogg deleted file mode 100644 index 4e5c2e1d1ff..00000000000 Binary files a/Resources/Audio/Announcements/MedBot/commandreport.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/MedBot/fallback.ogg b/Resources/Audio/Announcements/MedBot/fallback.ogg deleted file mode 100644 index d4d5a270852..00000000000 Binary files a/Resources/Audio/Announcements/MedBot/fallback.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/MedBot/intercept.ogg b/Resources/Audio/Announcements/MedBot/intercept.ogg deleted file mode 100644 index c59d0455c1c..00000000000 Binary files a/Resources/Audio/Announcements/MedBot/intercept.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/MedBot/ionstorm.ogg b/Resources/Audio/Announcements/MedBot/ionstorm.ogg deleted file mode 100644 index 15aeac9f7ff..00000000000 Binary files a/Resources/Audio/Announcements/MedBot/ionstorm.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/MedBot/meteors.ogg b/Resources/Audio/Announcements/MedBot/meteors.ogg deleted file mode 100644 index 91208cae122..00000000000 Binary files a/Resources/Audio/Announcements/MedBot/meteors.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/MedBot/newai.ogg b/Resources/Audio/Announcements/MedBot/newai.ogg deleted file mode 100644 index c40b0990206..00000000000 Binary files a/Resources/Audio/Announcements/MedBot/newai.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/MedBot/outbreak7.ogg b/Resources/Audio/Announcements/MedBot/outbreak7.ogg deleted file mode 100644 index 1fc542534db..00000000000 Binary files a/Resources/Audio/Announcements/MedBot/outbreak7.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/MedBot/poweroff.ogg b/Resources/Audio/Announcements/MedBot/poweroff.ogg deleted file mode 100644 index 875df350025..00000000000 Binary files a/Resources/Audio/Announcements/MedBot/poweroff.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/MedBot/poweron.ogg b/Resources/Audio/Announcements/MedBot/poweron.ogg deleted file mode 100644 index 4b1605b1c74..00000000000 Binary files a/Resources/Audio/Announcements/MedBot/poweron.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/MedBot/radiation.ogg b/Resources/Audio/Announcements/MedBot/radiation.ogg deleted file mode 100644 index 5c48830b5f2..00000000000 Binary files a/Resources/Audio/Announcements/MedBot/radiation.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/MedBot/shuttlecalled.ogg b/Resources/Audio/Announcements/MedBot/shuttlecalled.ogg deleted file mode 100644 index a775567abed..00000000000 Binary files a/Resources/Audio/Announcements/MedBot/shuttlecalled.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/MedBot/shuttledock.ogg b/Resources/Audio/Announcements/MedBot/shuttledock.ogg deleted file mode 100644 index 933928db067..00000000000 Binary files a/Resources/Audio/Announcements/MedBot/shuttledock.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/MedBot/shuttlerecalled.ogg b/Resources/Audio/Announcements/MedBot/shuttlerecalled.ogg deleted file mode 100644 index 53b622576d4..00000000000 Binary files a/Resources/Audio/Announcements/MedBot/shuttlerecalled.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/MedBot/welcome.ogg b/Resources/Audio/Announcements/MedBot/welcome.ogg deleted file mode 100644 index f9a698fd080..00000000000 Binary files a/Resources/Audio/Announcements/MedBot/welcome.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/NEIL/announce.ogg b/Resources/Audio/Announcements/NEIL/announce.ogg deleted file mode 100644 index 0ee0f36d56f..00000000000 Binary files a/Resources/Audio/Announcements/NEIL/announce.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/NEIL/attention.ogg b/Resources/Audio/Announcements/NEIL/attention.ogg deleted file mode 100644 index 310fad3ef63..00000000000 Binary files a/Resources/Audio/Announcements/NEIL/attention.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/NEIL/code_blue.ogg b/Resources/Audio/Announcements/NEIL/code_blue.ogg deleted file mode 100644 index 48d9c6548b6..00000000000 Binary files a/Resources/Audio/Announcements/NEIL/code_blue.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/NEIL/code_delta.ogg b/Resources/Audio/Announcements/NEIL/code_delta.ogg deleted file mode 100644 index 70826719156..00000000000 Binary files a/Resources/Audio/Announcements/NEIL/code_delta.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/NEIL/code_epsilon.ogg b/Resources/Audio/Announcements/NEIL/code_epsilon.ogg deleted file mode 100644 index a8db858b1af..00000000000 Binary files a/Resources/Audio/Announcements/NEIL/code_epsilon.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/NEIL/code_gamma.ogg b/Resources/Audio/Announcements/NEIL/code_gamma.ogg deleted file mode 100644 index 3351acc2e0d..00000000000 Binary files a/Resources/Audio/Announcements/NEIL/code_gamma.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/NEIL/code_green.ogg b/Resources/Audio/Announcements/NEIL/code_green.ogg deleted file mode 100644 index 3c0031833be..00000000000 Binary files a/Resources/Audio/Announcements/NEIL/code_green.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/NEIL/code_red.ogg b/Resources/Audio/Announcements/NEIL/code_red.ogg deleted file mode 100644 index 209eb36ba11..00000000000 Binary files a/Resources/Audio/Announcements/NEIL/code_red.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/NEIL/code_violet.ogg b/Resources/Audio/Announcements/NEIL/code_violet.ogg deleted file mode 100644 index c1681c1edb8..00000000000 Binary files a/Resources/Audio/Announcements/NEIL/code_violet.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/NEIL/code_white.ogg b/Resources/Audio/Announcements/NEIL/code_white.ogg deleted file mode 100644 index 24c942dfcb2..00000000000 Binary files a/Resources/Audio/Announcements/NEIL/code_white.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/NEIL/code_yellow.ogg b/Resources/Audio/Announcements/NEIL/code_yellow.ogg deleted file mode 100644 index 9139446d2b6..00000000000 Binary files a/Resources/Audio/Announcements/NEIL/code_yellow.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/NEIL/fallback.ogg b/Resources/Audio/Announcements/NEIL/fallback.ogg deleted file mode 100644 index 310fad3ef63..00000000000 Binary files a/Resources/Audio/Announcements/NEIL/fallback.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/NEIL/kudzu.ogg b/Resources/Audio/Announcements/NEIL/kudzu.ogg deleted file mode 100644 index 4ddd2f636bc..00000000000 Binary files a/Resources/Audio/Announcements/NEIL/kudzu.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/NEIL/meteors.ogg b/Resources/Audio/Announcements/NEIL/meteors.ogg deleted file mode 100644 index cf525441745..00000000000 Binary files a/Resources/Audio/Announcements/NEIL/meteors.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/NEIL/newai.ogg b/Resources/Audio/Announcements/NEIL/newai.ogg deleted file mode 100644 index 35aba34564f..00000000000 Binary files a/Resources/Audio/Announcements/NEIL/newai.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/NEIL/outbreak7.ogg b/Resources/Audio/Announcements/NEIL/outbreak7.ogg deleted file mode 100644 index 91067960125..00000000000 Binary files a/Resources/Audio/Announcements/NEIL/outbreak7.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/NEIL/poweroff.ogg b/Resources/Audio/Announcements/NEIL/poweroff.ogg deleted file mode 100644 index 7d7a43825fe..00000000000 Binary files a/Resources/Audio/Announcements/NEIL/poweroff.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/NEIL/poweron.ogg b/Resources/Audio/Announcements/NEIL/poweron.ogg deleted file mode 100644 index 961b50a5031..00000000000 Binary files a/Resources/Audio/Announcements/NEIL/poweron.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/NEIL/radiation.ogg b/Resources/Audio/Announcements/NEIL/radiation.ogg deleted file mode 100644 index 3ea2928c1d9..00000000000 Binary files a/Resources/Audio/Announcements/NEIL/radiation.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/NEIL/shuttlecalled.ogg b/Resources/Audio/Announcements/NEIL/shuttlecalled.ogg deleted file mode 100644 index 482bf133193..00000000000 Binary files a/Resources/Audio/Announcements/NEIL/shuttlecalled.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/NEIL/shuttledock.ogg b/Resources/Audio/Announcements/NEIL/shuttledock.ogg deleted file mode 100644 index 0615536555b..00000000000 Binary files a/Resources/Audio/Announcements/NEIL/shuttledock.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/NEIL/shuttlerecalled.ogg b/Resources/Audio/Announcements/NEIL/shuttlerecalled.ogg deleted file mode 100644 index 5a198ca5fe4..00000000000 Binary files a/Resources/Audio/Announcements/NEIL/shuttlerecalled.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/NEIL/welcome.ogg b/Resources/Audio/Announcements/NEIL/welcome.ogg deleted file mode 100644 index 00c8991276c..00000000000 Binary files a/Resources/Audio/Announcements/NEIL/welcome.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/VoxFem/aliens.ogg b/Resources/Audio/Announcements/VoxFem/aliens.ogg deleted file mode 100644 index f7d1746247f..00000000000 Binary files a/Resources/Audio/Announcements/VoxFem/aliens.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/VoxFem/announce.ogg b/Resources/Audio/Announcements/VoxFem/announce.ogg deleted file mode 100644 index 0ee0f36d56f..00000000000 Binary files a/Resources/Audio/Announcements/VoxFem/announce.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/VoxFem/anomaly.ogg b/Resources/Audio/Announcements/VoxFem/anomaly.ogg deleted file mode 100644 index 7680726f153..00000000000 Binary files a/Resources/Audio/Announcements/VoxFem/anomaly.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/VoxFem/attention.ogg b/Resources/Audio/Announcements/VoxFem/attention.ogg deleted file mode 100644 index 912be4425eb..00000000000 Binary files a/Resources/Audio/Announcements/VoxFem/attention.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/VoxFem/commandreport.ogg b/Resources/Audio/Announcements/VoxFem/commandreport.ogg deleted file mode 100644 index 82e4ca425de..00000000000 Binary files a/Resources/Audio/Announcements/VoxFem/commandreport.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/VoxFem/fallback.ogg b/Resources/Audio/Announcements/VoxFem/fallback.ogg deleted file mode 100644 index 912be4425eb..00000000000 Binary files a/Resources/Audio/Announcements/VoxFem/fallback.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/VoxFem/ionstorm.ogg b/Resources/Audio/Announcements/VoxFem/ionstorm.ogg deleted file mode 100644 index 9f39713de6e..00000000000 Binary files a/Resources/Audio/Announcements/VoxFem/ionstorm.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/VoxFem/meteors.ogg b/Resources/Audio/Announcements/VoxFem/meteors.ogg deleted file mode 100644 index 8f1c3aeacbb..00000000000 Binary files a/Resources/Audio/Announcements/VoxFem/meteors.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/VoxFem/newai.ogg b/Resources/Audio/Announcements/VoxFem/newai.ogg deleted file mode 100644 index 35aba34564f..00000000000 Binary files a/Resources/Audio/Announcements/VoxFem/newai.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/VoxFem/outbreak7.ogg b/Resources/Audio/Announcements/VoxFem/outbreak7.ogg deleted file mode 100644 index f21d4fca443..00000000000 Binary files a/Resources/Audio/Announcements/VoxFem/outbreak7.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/VoxFem/poweroff.ogg b/Resources/Audio/Announcements/VoxFem/poweroff.ogg deleted file mode 100644 index 1c6377c9d8d..00000000000 Binary files a/Resources/Audio/Announcements/VoxFem/poweroff.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/VoxFem/poweron.ogg b/Resources/Audio/Announcements/VoxFem/poweron.ogg deleted file mode 100644 index 9d18797d6ea..00000000000 Binary files a/Resources/Audio/Announcements/VoxFem/poweron.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/VoxFem/radiation.ogg b/Resources/Audio/Announcements/VoxFem/radiation.ogg deleted file mode 100644 index ef395af3101..00000000000 Binary files a/Resources/Audio/Announcements/VoxFem/radiation.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/VoxFem/shuttlecalled.ogg b/Resources/Audio/Announcements/VoxFem/shuttlecalled.ogg deleted file mode 100644 index 716bf824654..00000000000 Binary files a/Resources/Audio/Announcements/VoxFem/shuttlecalled.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/VoxFem/shuttledock.ogg b/Resources/Audio/Announcements/VoxFem/shuttledock.ogg deleted file mode 100644 index 0f70bebc751..00000000000 Binary files a/Resources/Audio/Announcements/VoxFem/shuttledock.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/VoxFem/shuttlerecalled.ogg b/Resources/Audio/Announcements/VoxFem/shuttlerecalled.ogg deleted file mode 100644 index 5f6db404b87..00000000000 Binary files a/Resources/Audio/Announcements/VoxFem/shuttlerecalled.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/VoxFem/welcome.ogg b/Resources/Audio/Announcements/VoxFem/welcome.ogg deleted file mode 100644 index c7013dcbd5f..00000000000 Binary files a/Resources/Audio/Announcements/VoxFem/welcome.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/NEIL/bureaucraticerror.ogg b/Resources/Audio/Announcers/NEIL/events/bureaucratic_error.ogg similarity index 100% rename from Resources/Audio/Announcements/NEIL/bureaucraticerror.ogg rename to Resources/Audio/Announcers/NEIL/events/bureaucratic_error.ogg diff --git a/Resources/Audio/Announcers/NEIL/events/bureaucraticerror.ogg b/Resources/Audio/Announcers/NEIL/events/bureaucraticerror.ogg deleted file mode 100644 index 0cbafcf6276..00000000000 Binary files a/Resources/Audio/Announcers/NEIL/events/bureaucraticerror.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/NEIL/gasleak.ogg b/Resources/Audio/Announcers/NEIL/events/gas_leak.ogg similarity index 100% rename from Resources/Audio/Announcements/NEIL/gasleak.ogg rename to Resources/Audio/Announcers/NEIL/events/gas_leak.ogg diff --git a/Resources/Audio/Announcers/NEIL/events/gasleak.ogg b/Resources/Audio/Announcers/NEIL/events/gasleak.ogg deleted file mode 100644 index 8efffd02c45..00000000000 Binary files a/Resources/Audio/Announcers/NEIL/events/gasleak.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/NEIL/noosphericstorm.ogg b/Resources/Audio/Announcers/NEIL/events/noospheric_storm.ogg similarity index 100% rename from Resources/Audio/Announcements/NEIL/noosphericstorm.ogg rename to Resources/Audio/Announcers/NEIL/events/noospheric_storm.ogg diff --git a/Resources/Audio/Announcers/NEIL/events/noosphericstorm.ogg b/Resources/Audio/Announcers/NEIL/events/noosphericstorm.ogg deleted file mode 100644 index 47b52f7cb47..00000000000 Binary files a/Resources/Audio/Announcers/NEIL/events/noosphericstorm.ogg and /dev/null differ diff --git a/Resources/Audio/Announcements/NEIL/ventclog.ogg b/Resources/Audio/Announcers/NEIL/events/vent_clog.ogg similarity index 100% rename from Resources/Audio/Announcements/NEIL/ventclog.ogg rename to Resources/Audio/Announcers/NEIL/events/vent_clog.ogg diff --git a/Resources/Audio/Announcers/NEIL/events/ventclog.ogg b/Resources/Audio/Announcers/NEIL/events/ventclog.ogg deleted file mode 100644 index 90350f0e359..00000000000 Binary files a/Resources/Audio/Announcers/NEIL/events/ventclog.ogg and /dev/null differ