Improve launch, fix touch

This commit is contained in:
mittorn 2016-05-04 21:02:09 +00:00
parent 76cac2a352
commit cd81aa82ea

View file

@ -28,7 +28,10 @@ public class XashActivity extends Activity {
// Main components
protected static XashActivity mSingleton;
private static EngineSurface mSurface;
private static String mArgv;
private static String mArgv[];
// Preferences
public static SharedPreferences mPref = null;
// Audio
private static Thread mAudioThread;
@ -52,7 +55,44 @@ public class XashActivity extends Activity {
setContentView(mSurface);
SurfaceHolder holder = mSurface.getHolder();
holder.setType(SurfaceHolder.SURFACE_TYPE_GPU);
setenv( "XASH3D_BASEDIR", "/sdcard/xash", true );
mPref = this.getSharedPreferences("engine", 0);
String argv = intent.getStringExtra("argv");
if(argv == null) argv = mPref.getString("argv", "-dev 3 -log");
if(argv == null) argv = "-dev 3 -log";
mArgv= argv.split(" ");
String gamelibdir = intent.getStringExtra("gamelibdir");
if(gamelibdir == null)
gamelibdir = getFilesDir().getParentFile().getPath() + "/lib";
String gamedir = intent.getStringExtra("gamedir");
if(gamedir == null)
gamedir = "valve";
String basedir = intent.getStringExtra("basedir");
if(basedir == null)
basedir = mPref.getString("basedir","/sdcard/xash/");
setenv("XASH3D_BASEDIR", basedir, true);
setenv("XASH3D_ENGLIBDIR", getFilesDir().getParentFile().getPath() + "/lib", true);
setenv("XASH3D_GAMELIBDIR", gamelibdir, true);
setenv("XASH3D_GAMEDIR", gamedir, true);
//extractPAK(this, false);
setenv("XASH3D_EXTRAS_PAK1", getFilesDir().getPath() + "/extras.pak", true);
String pakfile = intent.getStringExtra("pakfile");
if( pakfile != null && pakfile != "" )
setenv("XASH3D_EXTRAS_PAK2", pakfile, true);
String[] env = intent.getStringArrayExtra("env");
try
{
if( env != null )
for(int i = 0; i+1 < env.length; i+=2)
{
setenv(env[i],env[i+1], true);
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
// Events
@ -89,7 +129,7 @@ public class XashActivity extends Activity {
{
return "-dev 5 -log -noch".split(" ");
return "-dev 5 -log +map crossfire -noch +deathmatch 1 +map crossfire".split(" ");
}
// C functions we call
public static native int nativeInit(Object arguments);
@ -97,9 +137,9 @@ public class XashActivity extends Activity {
public static native void onNativeResize(int x, int y);
public static native void onNativeKeyDown(int keycode);
public static native void onNativeKeyUp(int keycode);
public static native void onNativeTouch(int touchDevId, int pointerFingerId,
public static native void nativeTouch(int pointerFingerId,
int action, float x,
float y, float p);
float y);
public static native void onNativeAccel(float x, float y, float z);
public static native void nativeRunAudioThread();
public static native int setenv(String key, String value, boolean overwrite);
@ -461,7 +501,6 @@ View.OnKeyListener, View.OnTouchListener {
// Touch events
public boolean onTouch(View v, MotionEvent event) {
/*
final int touchDevId = event.getDeviceId();
final int pointerCount = event.getPointerCount();
// touchId, pointerId, action, x, y, pressure
@ -471,7 +510,6 @@ View.OnKeyListener, View.OnTouchListener {
float x = event.getX(actionPointerIndex);
float y = event.getY(actionPointerIndex);
float p = event.getPressure(actionPointerIndex);
if (action == MotionEvent.ACTION_MOVE && pointerCount > 1) {
// TODO send motion to every pointer if its position has
@ -480,14 +518,11 @@ View.OnKeyListener, View.OnTouchListener {
pointerFingerId = event.getPointerId(i);
x = event.getX(i);
y = event.getY(i);
p = event.getPressure(i);
XashActivity.onNativeTouch(touchDevId, pointerFingerId, action, x, y, p);
XashActivity.nativeTouch(pointerFingerId, action, x, y);
}
} else {
XashActivity.onNativeTouch(touchDevId, pointerFingerId, action, x, y, p);
XashActivity.nativeTouch(pointerFingerId, action, x, y);
}
}*/
//XashActivity.controlInterp.onTouchEvent(event);
return true;
}