aboutsummaryrefslogtreecommitdiff
path: root/NorthstarDedicatedTest/modmanager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'NorthstarDedicatedTest/modmanager.cpp')
-rw-r--r--NorthstarDedicatedTest/modmanager.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/NorthstarDedicatedTest/modmanager.cpp b/NorthstarDedicatedTest/modmanager.cpp
index c5f1bf49..2e287dcd 100644
--- a/NorthstarDedicatedTest/modmanager.cpp
+++ b/NorthstarDedicatedTest/modmanager.cpp
@@ -2,6 +2,7 @@
#include "modmanager.h"
#include "convar.h"
#include "concommand.h"
+#include "audio.h"
#include "masterserver.h"
#include "rapidjson/error/en.h"
#include "rapidjson/document.h"
@@ -330,6 +331,22 @@ void ModManager::LoadMods()
mod.Pdiff = pdiffStringStream.str();
}
}
+
+ // try to load audio
+ if (fs::exists(mod.ModDirectory / "audio"))
+ {
+ for (fs::directory_entry file : fs::directory_iterator(mod.ModDirectory / "audio"))
+ {
+ if (fs::is_regular_file(file) && file.path().extension().string() == ".json")
+ {
+ if (!g_CustomAudioManager.TryLoadAudioOverride(file.path()))
+ {
+ spdlog::warn("Mod {} has an invalid audio def {}", mod.Name, file.path().filename().string());
+ continue;
+ }
+ }
+ }
+ }
}
// in a seperate loop because we register mod files in reverse order, since mods loaded later should have their files prioritised
@@ -390,6 +407,8 @@ void ModManager::UnloadMods()
m_modFiles.clear();
fs::remove_all(COMPILED_ASSETS_PATH);
+ g_CustomAudioManager.ClearAudioOverrides();
+
if (!m_hasEnabledModsCfg)
m_enabledModsCfg.SetObject();