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