diff --git a/Projects/Android/jni/src/Lambda1VR/L1VR_SurfaceView.c b/Projects/Android/jni/src/Lambda1VR/L1VR_SurfaceView.c index 42808d9..20a3191 100644 --- a/Projects/Android/jni/src/Lambda1VR/L1VR_SurfaceView.c +++ b/Projects/Android/jni/src/Lambda1VR/L1VR_SurfaceView.c @@ -911,7 +911,7 @@ bool isScopeEngaged() bool isPlayerDead() { - return cl.refdef.health <= 0; + return ( cls.key_dest == key_game ) && cl.frame.client.health <= 0.0; } void Host_BeginFrame(); diff --git a/Projects/Android/jni/src/Lambda1VR/VrInput.h b/Projects/Android/jni/src/Lambda1VR/VrInput.h index 4181296..e6e134f 100644 --- a/Projects/Android/jni/src/Lambda1VR/VrInput.h +++ b/Projects/Android/jni/src/Lambda1VR/VrInput.h @@ -47,6 +47,8 @@ void HandleInput_OneController( ovrInputStateTrackedRemote *pDominantTrackedRemo ovrInputStateTrackedRemote *pOffTrackedRemoteNew, ovrInputStateTrackedRemote *pOffTrackedRemoteOld, ovrTracking* pOffTracking, int domButton1, int domButton2, int offButton1, int offButton2 ); +void handleDeadPlayerClick(ovrInputStateTrackedRemote *pDominantTrackedRemoteNew, ovrInputStateTrackedRemote *pDominantTrackedRemoteOld, int domButton1); + bool stabiliseScope; void updateScopeAngles(float forwardYaw); diff --git a/Projects/Android/jni/src/Lambda1VR/VrInputAlt.c b/Projects/Android/jni/src/Lambda1VR/VrInputAlt.c index 56b5160..b4a51d9 100644 --- a/Projects/Android/jni/src/Lambda1VR/VrInputAlt.c +++ b/Projects/Android/jni/src/Lambda1VR/VrInputAlt.c @@ -78,12 +78,8 @@ void HandleInput_Alt( ovrInputStateTrackedRemote *pDominantTrackedRemoteNew, ovr //Menu button - always on the left controller handleTrackedControllerButton(&leftTrackedRemoteState_new, &leftTrackedRemoteState_old, ovrButton_Enter, K_ESCAPE); - if (isPlayerDead()) - { - //Let player restart using trigger or main button - handleTrackedControllerButton(pDominantTrackedRemoteNew, pDominantTrackedRemoteOld, domButton1, K_SPACE); - handleTrackedControllerButton(pDominantTrackedRemoteNew, pDominantTrackedRemoteOld, ovrButton_Trigger, K_SPACE); - } + handleDeadPlayerClick(pDominantTrackedRemoteNew, pDominantTrackedRemoteOld, domButton1); + //Menu control - Uses "touch" if (useScreenLayer()) diff --git a/Projects/Android/jni/src/Lambda1VR/VrInputAlt2.c b/Projects/Android/jni/src/Lambda1VR/VrInputAlt2.c index 78618ed..5448efa 100644 --- a/Projects/Android/jni/src/Lambda1VR/VrInputAlt2.c +++ b/Projects/Android/jni/src/Lambda1VR/VrInputAlt2.c @@ -89,12 +89,8 @@ void HandleInput_Alt2( ovrInputStateTrackedRemote *pDominantTrackedRemoteNew, ov //Menu button - always on the left controller handleTrackedControllerButton(&leftTrackedRemoteState_new, &leftTrackedRemoteState_old, ovrButton_Enter, K_ESCAPE); - if (isPlayerDead()) - { - //Let player restart using trigger or main button - handleTrackedControllerButton(pDominantTrackedRemoteNew, pDominantTrackedRemoteOld, domButton1, K_SPACE); - handleTrackedControllerButton(pDominantTrackedRemoteNew, pDominantTrackedRemoteOld, ovrButton_Trigger, K_SPACE); - } + handleDeadPlayerClick(pDominantTrackedRemoteNew, pDominantTrackedRemoteOld, domButton1); + //Menu control - Uses "touch" if (useScreenLayer()) diff --git a/Projects/Android/jni/src/Lambda1VR/VrInputCommon.c b/Projects/Android/jni/src/Lambda1VR/VrInputCommon.c index cc677ce..e87d770 100644 --- a/Projects/Android/jni/src/Lambda1VR/VrInputCommon.c +++ b/Projects/Android/jni/src/Lambda1VR/VrInputCommon.c @@ -32,6 +32,15 @@ void handleTrackedControllerButton(ovrInputStateTrackedRemote * trackedRemoteSta } } +void handleDeadPlayerClick(ovrInputStateTrackedRemote *pDominantTrackedRemoteNew, ovrInputStateTrackedRemote *pDominantTrackedRemoteOld, int domButton1) { + if (isPlayerDead()) { + //Let player restart using trigger or main button + handleTrackedControllerButton(pDominantTrackedRemoteNew, pDominantTrackedRemoteOld, + domButton1, K_ENTER); + handleTrackedControllerButton(pDominantTrackedRemoteNew, pDominantTrackedRemoteOld, + ovrButton_Trigger, K_ENTER); + } +} static void Matrix4x4_Transform (const matrix4x4 *in, const float v[3], float out[3]) { diff --git a/Projects/Android/jni/src/Lambda1VR/VrInputDefault.c b/Projects/Android/jni/src/Lambda1VR/VrInputDefault.c index 51c3fe6..753b244 100644 --- a/Projects/Android/jni/src/Lambda1VR/VrInputDefault.c +++ b/Projects/Android/jni/src/Lambda1VR/VrInputDefault.c @@ -89,12 +89,7 @@ void HandleInput_Default( ovrInputStateTrackedRemote *pDominantTrackedRemoteNew, //Menu button - always on the left controller handleTrackedControllerButton(&leftTrackedRemoteState_new, &leftTrackedRemoteState_old, ovrButton_Enter, K_ESCAPE); - if (isPlayerDead()) - { - //Let player restart using trigger or main button - handleTrackedControllerButton(pDominantTrackedRemoteNew, pDominantTrackedRemoteOld, domButton1, K_SPACE); - handleTrackedControllerButton(pDominantTrackedRemoteNew, pDominantTrackedRemoteOld, ovrButton_Trigger, K_SPACE); - } + handleDeadPlayerClick(pDominantTrackedRemoteNew, pDominantTrackedRemoteOld, domButton1); //Menu control - Uses "touch" if (useScreenLayer()) diff --git a/Projects/Android/jni/src/Lambda1VR/VrInputOneController.c b/Projects/Android/jni/src/Lambda1VR/VrInputOneController.c index ec89e4c..d70daf1 100644 --- a/Projects/Android/jni/src/Lambda1VR/VrInputOneController.c +++ b/Projects/Android/jni/src/Lambda1VR/VrInputOneController.c @@ -49,14 +49,9 @@ void HandleInput_OneController( ovrInputStateTrackedRemote *pDominantTrackedRemo //Menu button - always on the left controller - unavoidable handleTrackedControllerButton(&leftTrackedRemoteState_new, &leftTrackedRemoteState_old, ovrButton_Enter, K_ESCAPE); - if (isPlayerDead()) - { - //Let player restart using trigger or main button - handleTrackedControllerButton(pDominantTrackedRemoteNew, pDominantTrackedRemoteOld, domButton1, K_SPACE); - handleTrackedControllerButton(pDominantTrackedRemoteNew, pDominantTrackedRemoteOld, ovrButton_Trigger, K_SPACE); - } + handleDeadPlayerClick(pDominantTrackedRemoteNew, pDominantTrackedRemoteOld, domButton1); - //Menu control - Uses "touch" + //Menu control - Uses "touch" if (useScreenLayer()) { interactWithTouchScreen(pDominantTracking, pDominantTrackedRemoteNew, pDominantTrackedRemoteOld); diff --git a/Projects/Android/jni/src/Xash3D/xash3d/engine/client/cl_scrn.c b/Projects/Android/jni/src/Xash3D/xash3d/engine/client/cl_scrn.c index d014fa2..61ff4a1 100644 --- a/Projects/Android/jni/src/Xash3D/xash3d/engine/client/cl_scrn.c +++ b/Projects/Android/jni/src/Xash3D/xash3d/engine/client/cl_scrn.c @@ -611,6 +611,7 @@ void SCR_RegisterTextures( void ) cls.fillImage = GL_LoadTexture( "*white", NULL, 0, TF_IMAGE, NULL ); // used for FillRGBA cls.vignetteImage = GL_LoadTexture( "sprites/vignette.tga", NULL, 0, TF_IMAGE, NULL ); // used for puke reducing vignette cls.scopeImage = GL_LoadTexture( "sprites/scope.tga", NULL, 0, TF_IMAGE, NULL ); // used for weapons with scopes + cls.pointerImage = GL_LoadTexture( "sprites/pointer.tga", NULL, 0, TF_IMAGE, NULL ); // used for menus cls.particleImage = GL_LoadTexture( "*particle", NULL, 0, TF_IMAGE, NULL ); // register gfx.wad images diff --git a/Projects/Android/jni/src/Xash3D/xash3d/engine/client/client.h b/Projects/Android/jni/src/Xash3D/xash3d/engine/client/client.h index b18bede..5283b13 100644 --- a/Projects/Android/jni/src/Xash3D/xash3d/engine/client/client.h +++ b/Projects/Android/jni/src/Xash3D/xash3d/engine/client/client.h @@ -491,6 +491,7 @@ typedef struct int tileImage; // for draw any areas not covered by the refresh int vignetteImage; int scopeImage; + int pointerImage; HSPRITE hChromeSprite; // this is a really HudSprite handle, not texnum! cl_font_t creditsFont; // shared creditsfont diff --git a/Projects/Android/jni/src/Xash3D/xash3d/engine/client/touch.c b/Projects/Android/jni/src/Xash3D/xash3d/engine/client/touch.c index c77a9a1..6225248 100644 --- a/Projects/Android/jni/src/Xash3D/xash3d/engine/client/touch.c +++ b/Projects/Android/jni/src/Xash3D/xash3d/engine/client/touch.c @@ -1033,12 +1033,12 @@ void Touch_DrawTouchPoint() if( cls.key_dest == key_game ) return; - pglColor4ub( 0, 255, 0, 255 ); - R_DrawStretchPic( TO_SCRN_X(touch.x+0.002f), - TO_SCRN_Y(touch.y+0.003f), - TO_SCRN_X(0.004f), - TO_SCRN_Y(0.006f), - 0, 0, 1, 1, cls.fillImage ); + pglColor4ub( 0, 0, 64, 255 ); + R_DrawStretchPic( TO_SCRN_X(touch.x), + TO_SCRN_Y(touch.y), + TO_SCRN_X(0.02f), + TO_SCRN_Y(0.03f), + 0, 0, 1, 1, cls.pointerImage); } void Touch_DrawTexture ( float x1, float y1, float x2, float y2, int texture, byte r, byte g, byte b, byte a ) diff --git a/java/com/drbeef/lambda1vr/GLES3JNIActivity.java b/java/com/drbeef/lambda1vr/GLES3JNIActivity.java index cb6b7d7..688f764 100644 --- a/java/com/drbeef/lambda1vr/GLES3JNIActivity.java +++ b/java/com/drbeef/lambda1vr/GLES3JNIActivity.java @@ -188,6 +188,10 @@ import static android.system.Os.setenv; copy_asset("/sdcard/xash/" + game + "/", "sprites/vignette.tga", true); copy_asset("/sdcard/xash/valve/", "sprites/vignette.tga", true); //seems to need to be here for some people + //Menu Arrow + copy_asset("/sdcard/xash/" + game + "/", "sprites/pointer.tga", true); + copy_asset("/sdcard/xash/valve/", "sprites/pointer.tga", true); + //Copy modified weapon models - This is the base set if (!(new File("/sdcard/xash/" + game + "/models/no_copy").exists())) {