From 82c24fc4cbe9196ec7e6086b68046fda67ae195d Mon Sep 17 00:00:00 2001 From: mittorn Date: Sat, 5 Sep 2015 01:51:13 +0700 Subject: [PATCH] Move controls assets and settings to gamedir/controls --- src/com/beloko/touchcontrols/Settings.java | 2 ++ src/org/libsdl/app/SDLActivity.java | 12 +++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/com/beloko/touchcontrols/Settings.java b/src/com/beloko/touchcontrols/Settings.java index 08e317d2..68f55469 100644 --- a/src/com/beloko/touchcontrols/Settings.java +++ b/src/com/beloko/touchcontrols/Settings.java @@ -113,6 +113,8 @@ public class Settings { File d = new File(dir); if (!d.exists()) d.mkdirs(); + else + return; AssetManager assetManager = ctx.getAssets(); String[] files = null; diff --git a/src/org/libsdl/app/SDLActivity.java b/src/org/libsdl/app/SDLActivity.java index 09c7ff6e..434a1815 100644 --- a/src/org/libsdl/app/SDLActivity.java +++ b/src/org/libsdl/app/SDLActivity.java @@ -92,9 +92,12 @@ public class SDLActivity extends Activity { // Touch control interp public static ControlInterpreter controlInterp; - + // Preferences public static SharedPreferences mPref; + + // Controls dir + public static String mControlsDir; /** * This method is called by SDL before loading the native shared libraries. * It can be overridden to provide names of shared libraries to be loaded. @@ -146,6 +149,7 @@ public class SDLActivity extends Activity { mIsPaused = false; mIsSurfaceReady = false; mHasFocus = true; + mControlsDir = null; } // Setup @@ -216,6 +220,7 @@ public class SDLActivity extends Activity { String basedir = intent.getStringExtra("basedir"); if(basedir == null) basedir = mPref.getString("basedir","/sdcard/xash/"); + mControlsDir = basedir + "/" + gamedir + "/controls/"; setenv("XASH3D_BASEDIR", basedir, true); setenv("XASH3D_ENGLIBDIR", getFilesDir().getParentFile().getPath() + "/lib", true); setenv("XASH3D_GAMELIBDIR", gamelibdir, true); @@ -984,7 +989,8 @@ class SDLMain implements Runnable { if(SDLActivity.mUseControls) { NativeLib engine = new NativeLib(); - engine.initTouchControls_if(SDLActivity.mSingleton.getFilesDir().toString() + "/", + + engine.initTouchControls_if(SDLActivity.mControlsDir, (int)SDLSurface.mWidth, (int)SDLSurface.mHeight); SDLActivity.controlInterp = new ControlInterpreter(engine,Settings.IDGame.Doom,Settings.gamePadControlsFile,Settings.gamePadEnabled); @@ -995,7 +1001,7 @@ class SDLMain implements Runnable { TouchControlsSettings.loadSettings(SDLActivity.mSingleton); TouchControlsSettings.sendToQuake(); - Settings.copyPNGAssets(SDLActivity.mSingleton,SDLActivity.mSingleton.getFilesDir().toString() + "/",null); + Settings.copyPNGAssets(SDLActivity.mSingleton, SDLActivity.mControlsDir, null); } SDLActivity.nativeInit(SDLActivity.mSingleton.getArguments());