From a67e0fd5bdd089d0b8d90523b907cf6f3288c9bd Mon Sep 17 00:00:00 2001 From: izzy2lost Date: Wed, 13 Aug 2025 09:53:43 -0400 Subject: [PATCH] silly rabbit --- .../com/starship/android/MainActivity.java | 2 -- src/port/Engine.cpp | 22 +++++++++---------- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/android/app/src/main/java/com/starship/android/MainActivity.java b/android/app/src/main/java/com/starship/android/MainActivity.java index c1224113..2b87234d 100644 --- a/android/app/src/main/java/com/starship/android/MainActivity.java +++ b/android/app/src/main/java/com/starship/android/MainActivity.java @@ -33,8 +33,6 @@ import android.content.pm.ActivityInfo; import android.view.KeyEvent; public class MainActivity extends SDLActivity { - public static native void nativeSetAppDirs(String internal); - static { System.loadLibrary("Starship"); } diff --git a/src/port/Engine.cpp b/src/port/Engine.cpp index 07f5dbd9..d2dfa418 100644 --- a/src/port/Engine.cpp +++ b/src/port/Engine.cpp @@ -98,18 +98,23 @@ void waitForSetupFromNative() { } #endif + GameEngine::GameEngine() { +#ifdef __ANDROID__ + const char* sdlInternal = SDL_AndroidGetInternalStoragePath(); + const std::string appDir = (sdlInternal && *sdlInternal) ? std::string(sdlInternal) : std::string("."); + const std::string main_path = appDir + "/sf64.o2r"; + const std::string assets_path = appDir + "/starship.o2r"; +#else const std::string main_path = Ship::Context::GetPathRelativeToAppDirectory("sf64.o2r"); const std::string assets_path = Ship::Context::LocateFileAcrossAppDirs("starship.o2r"); +#endif std::vector archiveFiles; - - #ifdef __ANDROID__ { const char* sdlInternal = SDL_AndroidGetInternalStoragePath(); if (sdlInternal && *sdlInternal) { - auto* pm = Ship::Context::GetInstance()->GetPathManager(); - pm->SetAppDirectoryPath(sdlInternal); +pm->SetAppDirectoryPath(sdlInternal); pm->SetUserDirectoryPath(sdlInternal); SPDLOG_INFO("Android app/user dir set to: {}", sdlInternal); } else { @@ -898,13 +903,8 @@ extern "C" void GameEngine_Free(void* ptr) { #ifdef __ANDROID__ extern "C" JNIEXPORT void JNICALL Java_com_starship_android_MainActivity_nativeSetAppDirs(JNIEnv* env, jclass, jstring jpath) { - if (!jpath) return; - const char* p = env->GetStringUTFChars(jpath, nullptr); - if (p) { - auto* pm = Ship::Context::GetInstance()->GetPathManager(); - pm->SetAppDirectoryPath(p); - pm->SetUserDirectoryPath(p); - SPDLOG_INFO("JNI set app/user dir to {}", p); + // No-op: paths resolved via SDL_AndroidGetInternalStoragePath in GameEngine::GameEngine +}", p); env->ReleaseStringUTFChars(jpath, p); } }