summaryrefslogtreecommitdiff
path: root/src/engine/mods/ModManager.cpp
diff options
context:
space:
mode:
authorFabien Romano <fabienromano@gmail.com>2026-01-09 19:13:37 +0100
committerGitHub <noreply@github.com>2026-01-09 11:13:37 -0700
commitaaae77f3bcb0a93b6fd34bbb82784ba046726083 (patch)
tree3f7ec4acfc4168606d0d6ab4a755323b08fadc2e /src/engine/mods/ModManager.cpp
parente71c422afbadb49aef7fbcaae02b74eb214f72c1 (diff)
Fix NON_PORTABLE build. Ship::Context needs to be initialized first. (#618)
* Fix NON_PORTABLE build. Ship::Context needs to be initialized before resolving files. Move offending calls inside functions where they are used. Those will always be called after GameEngine() which runs Ship::Context::CreateUninitializedInstance() early. * Replace hardcoded string mk64.o2r and spaghetti.o2r with variables game_asset_file and engine_asset_file.
Diffstat (limited to 'src/engine/mods/ModManager.cpp')
-rw-r--r--src/engine/mods/ModManager.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/engine/mods/ModManager.cpp b/src/engine/mods/ModManager.cpp
index a94d8f558..137fb9743 100644
--- a/src/engine/mods/ModManager.cpp
+++ b/src/engine/mods/ModManager.cpp
@@ -19,8 +19,6 @@ void DetectOutdatedDependencies();
void SortModsByDependencies();
std::vector<std::tuple<ModMetadata, std::shared_ptr<Ship::Archive>>> Mods = {};
-const std::string main_path = Ship::Context::GetPathRelativeToAppDirectory("mk64.o2r");
-const std::string assets_path = Ship::Context::LocateFileAcrossAppDirs("spaghetti.o2r");
void InitModsSystem() {
CheckMK64O2RExists();
@@ -65,6 +63,9 @@ void GenerateAssetsMods() {
}
std::vector<std::string> ListMods() {
+ const std::string main_path = Ship::Context::GetPathRelativeToAppDirectory(game_asset_file);
+ const std::string assets_path = Ship::Context::LocateFileAcrossAppDirs(engine_asset_file);
+
std::vector<std::string> archiveFiles;
if (std::filesystem::exists(main_path)) {
archiveFiles.push_back(main_path);
@@ -202,6 +203,8 @@ void AddCoreDependencies() {
}
void CheckMK64O2RExists() {
+ const std::string main_path = Ship::Context::GetPathRelativeToAppDirectory(game_asset_file);
+
if (!std::filesystem::exists(main_path)) {
GenerateAssetsMods();
}