summarylogtreecommitdiffstats
path: root/spaghettikart-non-portable-fix.patch
blob: 272e66a5f14046bb5746b61b12e05a2d5e2001e8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
diff --git a/src/port/Engine.cpp b/src/port/Engine.cpp
index 7deb0c5c9..048f319db 100644
--- a/src/port/Engine.cpp
+++ b/src/port/Engine.cpp
@@ -76,6 +76,8 @@ bool CreateDirectoryRecursive(std::string const& dirName, std::error_code& err)
 }
 
 GameEngine::GameEngine() {
+    // Initialize context properties early to work out for non-portable builds
+    this->context = Ship::Context::CreateUninitializedInstance("Spaghetti Kart", "spaghettify", "spaghettify.cfg.json");
 
     const std::string main_path = Ship::Context::GetPathRelativeToAppDirectory("mk64.o2r");
     const std::string assets_path = Ship::Context::LocateFileAcrossAppDirs("spaghetti.o2r");
@@ -121,8 +123,6 @@ GameEngine::GameEngine() {
         }
     }
 
-    this->context = Ship::Context::CreateUninitializedInstance("Spaghetti Kart", "spaghettify", "spaghettify.cfg.json");
-
     this->context->InitConfiguration();    // without this line InitConsoleVariables fails at Config::Reload()
     this->context->InitConsoleVariables(); // without this line the controldeck constructor failes in
                                            // ShipDeviceIndexMappingManager::UpdateControllerNamesFromConfig()
diff --git a/src/port/GameExtractor.cpp b/src/port/GameExtractor.cpp
index 1fa9e80e8..9e942333d 100644
--- a/src/port/GameExtractor.cpp
+++ b/src/port/GameExtractor.cpp
@@ -56,7 +56,10 @@ std::optional<std::string> GameExtractor::ValidateChecksum() const {
 }
 
 bool GameExtractor::GenerateOTR() const {
-    Companion::Instance = new Companion(this->mGameData, ArchiveType::O2R, false);
+    const std::string assets_path = Ship::Context::GetAppBundlePath();
+    const std::string game_path = Ship::Context::GetAppDirectoryPath();
+
+    Companion::Instance = new Companion(this->mGameData, ArchiveType::O2R, false, assets_path, game_path);
 
     try {
         Companion::Instance->Init(ExportType::Binary);