From aaae77f3bcb0a93b6fd34bbb82784ba046726083 Mon Sep 17 00:00:00 2001 From: Fabien Romano Date: Fri, 9 Jan 2026 19:13:37 +0100 Subject: 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. --- src/engine/mods/ModManager.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'src/engine/mods/ModManager.cpp') 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>> 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 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 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(); } -- cgit v1.2.3