Merge branch 'master' of https://github.com/FWGS/xash3d-android-project
This commit is contained in:
commit
b923b3d6b6
2 changed files with 78 additions and 7 deletions
|
@ -1 +1 @@
|
||||||
Subproject commit a3a1dab6d8bcac63fa07838832d6af9f05ac1d0e
|
Subproject commit 0e60d806543a2464f048a5b1f40b68656fba3a49
|
|
@ -36,6 +36,7 @@ import in.celest.xash3d.JoystickHandler;
|
||||||
import android.provider.Settings.Secure;
|
import android.provider.Settings.Secure;
|
||||||
|
|
||||||
import su.xash.fwgslib.*;
|
import su.xash.fwgslib.*;
|
||||||
|
import android.sax.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Xash Activity
|
Xash Activity
|
||||||
|
@ -59,7 +60,7 @@ public class XashActivity extends Activity {
|
||||||
public static Vibrator mVibrator;
|
public static Vibrator mVibrator;
|
||||||
public static boolean fMouseShown = true;
|
public static boolean fMouseShown = true;
|
||||||
public static boolean fGDBSafe = false;
|
public static boolean fGDBSafe = false;
|
||||||
public static float mScale = 0, mTouchScaleX = 1, mTouchScaleY = 1;
|
public static float mScale = 0.0f, mTouchScaleX = 1.0f, mTouchScaleY = 1.0f;
|
||||||
public static int mForceHeight = 0, mForceWidth = 0;
|
public static int mForceHeight = 0, mForceWidth = 0;
|
||||||
public static int mMinHeight = 240, mMinWidth = 320; // hl1 support 320 width, but mods may not.
|
public static int mMinHeight = 240, mMinWidth = 320; // hl1 support 320 width, but mods may not.
|
||||||
public static boolean bIsCstrike = false;
|
public static boolean bIsCstrike = false;
|
||||||
|
@ -1509,7 +1510,7 @@ class EngineTouchListener_v5 implements View.OnTouchListener
|
||||||
// Touch events
|
// Touch events
|
||||||
public boolean onTouch( View v, MotionEvent event )
|
public boolean onTouch( View v, MotionEvent event )
|
||||||
{
|
{
|
||||||
final int touchDevId = event.getDeviceId();
|
//final int touchDevId = event.getDeviceId();
|
||||||
final int pointerCount = event.getPointerCount();
|
final int pointerCount = event.getPointerCount();
|
||||||
int action = event.getActionMasked();
|
int action = event.getActionMasked();
|
||||||
int pointerFingerId, mouseButton, i = -1;
|
int pointerFingerId, mouseButton, i = -1;
|
||||||
|
@ -1735,6 +1736,9 @@ class Wrap_NVMouseExtensions
|
||||||
{
|
{
|
||||||
private static Object inputManager;
|
private static Object inputManager;
|
||||||
private static Method mInputManager_setCursorVisibility;
|
private static Method mInputManager_setCursorVisibility;
|
||||||
|
private static Method mView_setPointerIcon;
|
||||||
|
private static Class mPointerIcon;
|
||||||
|
private static Object mEmptyIcon;
|
||||||
public static int nMotionEvent_AXIS_RELATIVE_X = 0;
|
public static int nMotionEvent_AXIS_RELATIVE_X = 0;
|
||||||
public static int nMotionEvent_AXIS_RELATIVE_Y = 0;
|
public static int nMotionEvent_AXIS_RELATIVE_Y = 0;
|
||||||
|
|
||||||
|
@ -1749,12 +1753,22 @@ class Wrap_NVMouseExtensions
|
||||||
inputManager = XashActivity.mSingleton.getSystemService( "input" );
|
inputManager = XashActivity.mSingleton.getSystemService( "input" );
|
||||||
}
|
}
|
||||||
catch( Exception ex )
|
catch( Exception ex )
|
||||||
{
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
mPointerIcon=Class.forName("android.view.PointerIcon");
|
||||||
|
mEmptyIcon = mPointerIcon.getDeclaredMethod("getSystemIcon",android.content.Context.class, int.class).invoke(null,XashActivity.mSingleton.getContext(),0);
|
||||||
|
mView_setPointerIcon = View.class.getMethod("setPointerIcon",mPointerIcon);
|
||||||
|
}
|
||||||
|
catch( Exception ex1 )
|
||||||
|
{
|
||||||
|
ex1.printStackTrace();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
/* DO THE SAME FOR RELATIVEY */
|
/* DO THE SAME FOR RELATIVEY */
|
||||||
}
|
}
|
||||||
|
|
||||||
//**************************************************************************
|
//*************************************************************************
|
||||||
public static void checkAvailable() throws Exception
|
public static void checkAvailable() throws Exception
|
||||||
{
|
{
|
||||||
Field fieldMotionEvent_AXIS_RELATIVE_X = MotionEvent.class.getField( "AXIS_RELATIVE_X" );
|
Field fieldMotionEvent_AXIS_RELATIVE_X = MotionEvent.class.getField( "AXIS_RELATIVE_X" );
|
||||||
|
@ -1763,15 +1777,67 @@ class Wrap_NVMouseExtensions
|
||||||
nMotionEvent_AXIS_RELATIVE_Y = ( Integer )fieldMotionEvent_AXIS_RELATIVE_Y.get( null );
|
nMotionEvent_AXIS_RELATIVE_Y = ( Integer )fieldMotionEvent_AXIS_RELATIVE_Y.get( null );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void setPointerIcon( View view, boolean fVisibility )
|
||||||
|
{
|
||||||
|
Log.v("XashInput", "SET CURSOR VISIBILITY " + fVisibility + " obj " + mEmptyIcon.toString() );
|
||||||
|
try
|
||||||
|
{
|
||||||
|
mView_setPointerIcon.invoke(view,fVisibility?null:mEmptyIcon);
|
||||||
|
}
|
||||||
|
catch( Exception e)
|
||||||
|
{
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
static void setGroupPointerIcon( ViewGroup parent, boolean fVisibility )
|
||||||
|
{
|
||||||
|
for( int i = parent.getChildCount() - 1; i >= 0; i-- )
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
final View child = parent.getChildAt(i);
|
||||||
|
|
||||||
|
if( child == null )
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if( child instanceof ViewGroup )
|
||||||
|
{
|
||||||
|
setGroupPointerIcon((ViewGroup) child, fVisibility);
|
||||||
|
}
|
||||||
|
setPointerIcon( child, fVisibility);
|
||||||
|
|
||||||
|
}
|
||||||
|
catch( Exception ex )
|
||||||
|
{
|
||||||
|
ex.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//**************************************************************************
|
//**************************************************************************
|
||||||
public static void setCursorVisibility( boolean fVisibility )
|
public static void setCursorVisibility( boolean fVisibility )
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
mInputManager_setCursorVisibility.invoke( inputManager, fVisibility );
|
mInputManager_setCursorVisibility.invoke( inputManager, fVisibility );
|
||||||
|
|
||||||
}
|
}
|
||||||
catch( Exception e )
|
catch( Exception e )
|
||||||
{
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
ViewGroup rootViewGroup = (ViewGroup) XashActivity.mSingleton.getWindow().getDecorView();
|
||||||
|
setGroupPointerIcon(rootViewGroup, fVisibility);
|
||||||
|
setGroupPointerIcon((ViewGroup)XashActivity.mDecorView, fVisibility);
|
||||||
|
for (int i = 0; i < rootViewGroup.getChildCount(); i++) {
|
||||||
|
View view = rootViewGroup.getChildAt(i);
|
||||||
|
setPointerIcon(view, fVisibility);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch( Exception ex)
|
||||||
|
{
|
||||||
|
ex.printStackTrace();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1793,6 +1859,7 @@ class JoystickHandler_v12 extends JoystickHandler
|
||||||
|
|
||||||
public static boolean mNVMouseExtensions = false;
|
public static boolean mNVMouseExtensions = false;
|
||||||
|
|
||||||
|
static int mouseId;
|
||||||
static
|
static
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
@ -1822,6 +1889,8 @@ class JoystickHandler_v12 extends JoystickHandler
|
||||||
@Override
|
@Override
|
||||||
public int getSource( MotionEvent event )
|
public int getSource( MotionEvent event )
|
||||||
{
|
{
|
||||||
|
if( event.getDeviceId() == mouseId )
|
||||||
|
return InputDevice.SOURCE_MOUSE;
|
||||||
return event.getSource();
|
return event.getSource();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1897,11 +1966,13 @@ class JoystickHandler_v12 extends JoystickHandler
|
||||||
{
|
{
|
||||||
final int source = XashActivity.handler.getSource( event );
|
final int source = XashActivity.handler.getSource( event );
|
||||||
final int axisDevices = InputDevice.SOURCE_CLASS_JOYSTICK | InputDevice.SOURCE_GAMEPAD;
|
final int axisDevices = InputDevice.SOURCE_CLASS_JOYSTICK | InputDevice.SOURCE_GAMEPAD;
|
||||||
|
|
||||||
if( ( ( source & InputDevice.SOURCE_MOUSE ) == InputDevice.SOURCE_MOUSE ) && mNVMouseExtensions )
|
if( mNVMouseExtensions )
|
||||||
{
|
{
|
||||||
float x = event.getAxisValue( Wrap_NVMouseExtensions.getAxisRelativeX(), 0 );
|
float x = event.getAxisValue( Wrap_NVMouseExtensions.getAxisRelativeX(), 0 );
|
||||||
float y = event.getAxisValue( Wrap_NVMouseExtensions.getAxisRelativeY(), 0 );
|
float y = event.getAxisValue( Wrap_NVMouseExtensions.getAxisRelativeY(), 0 );
|
||||||
|
if( ( source & InputDevice.SOURCE_MOUSE) != InputDevice.SOURCE_MOUSE && (x != 0 || y != 0 ))
|
||||||
|
mouseId = event.getDeviceId();
|
||||||
switch( event.getAction() )
|
switch( event.getAction() )
|
||||||
{
|
{
|
||||||
case MotionEvent.ACTION_SCROLL:
|
case MotionEvent.ACTION_SCROLL:
|
||||||
|
|
Loading…
Add table
Reference in a new issue