diff --git a/Projects/Android/jni/OpenJK/JKXR/VrInputDefault.cpp b/Projects/Android/jni/OpenJK/JKXR/VrInputDefault.cpp index b58d57b..a82372f 100644 --- a/Projects/Android/jni/OpenJK/JKXR/VrInputDefault.cpp +++ b/Projects/Android/jni/OpenJK/JKXR/VrInputDefault.cpp @@ -121,6 +121,14 @@ void HandleInput_Default( ovrInputStateTrackedRemote *pDominantTrackedRemoteNew, Cvar_Set("vr_control_scheme", "99"); } + static int cinCameraTimestamp = -1; + if (vr.cin_camera && cinCameraTimestamp == -1) { + cinCameraTimestamp = Sys_Milliseconds(); + } + else if (!vr.cin_camera) { + cinCameraTimestamp = -1; + } + //Set controller angles - We need to calculate all those we might need (including adjustments) for the client to then take its pick { vec3_t rotation = {0}; @@ -212,6 +220,28 @@ void HandleInput_Default( ovrInputStateTrackedRemote *pDominantTrackedRemoteNew, static float menuYaw = 0; if (VR_UseScreenLayer() && !vr.misc_camera) { + if (vr.cin_camera && cinCameraTimestamp + 1000 < Sys_Milliseconds()) + { + // To skip cinematic use any thumb or trigger (but wait a while + // to prevent skipping when cinematic is started during action) + if ((primaryButtonsNew & primaryThumb) != (primaryButtonsOld & primaryThumb)) { + sendButtonAction("+use", (primaryButtonsNew & primaryThumb)); + } + if ((secondaryButtonsNew & secondaryThumb) != (secondaryButtonsOld & secondaryThumb)) { + sendButtonAction("+use", (secondaryButtonsNew & secondaryThumb)); + } + if ((pDominantTrackedRemoteNew->Buttons & xrButton_Trigger) != (pDominantTrackedRemoteOld->Buttons & xrButton_Trigger)) { + sendButtonAction("+use", (pDominantTrackedRemoteNew->Buttons & xrButton_Trigger)); + // mark button as already pressed to prevent firing after entering the game + pDominantTrackedRemoteOld->Buttons |= xrButton_Trigger; + } + if ((pOffTrackedRemoteNew->Buttons & xrButton_Trigger) != (pOffTrackedRemoteOld->Buttons & xrButton_Trigger)) { + sendButtonAction("+use", (pOffTrackedRemoteNew->Buttons & xrButton_Trigger)); + // mark button as already pressed to prevent firing after entering the game + pOffTrackedRemoteOld->Buttons |= xrButton_Trigger; + } + } + bool controlsLeftHanded = vr_control_scheme->integer >= 10; if (controlsLeftHanded == vr.menu_right_handed) { interactWithTouchScreen(menuYaw, vr.offhandangles[ANGLES_DEFAULT]); @@ -377,12 +407,6 @@ void HandleInput_Default( ovrInputStateTrackedRemote *pDominantTrackedRemoteNew, } } - static int cinCameraTimestamp = -1; - if (vr.cin_camera && cinCameraTimestamp == -1) { - cinCameraTimestamp = Sys_Milliseconds(); - } else if (!vr.cin_camera) { - cinCameraTimestamp = -1; - } if (vr.cin_camera && cinCameraTimestamp + 1000 < Sys_Milliseconds()) { // To skip cinematic use any thumb or trigger (but wait a while @@ -472,6 +496,7 @@ void HandleInput_Default( ovrInputStateTrackedRemote *pDominantTrackedRemoteNew, } //Switch movement speed + if (!vr.cgzoommode) { static bool switched = false; if (between(-0.2f, primaryJoystickX, 0.2f) && diff --git a/Projects/Android/jni/OpenJK/JKXR/windows/JKXR_SurfaceView.cpp b/Projects/Android/jni/OpenJK/JKXR/windows/JKXR_SurfaceView.cpp index e98ff43..2c34468 100644 --- a/Projects/Android/jni/OpenJK/JKXR/windows/JKXR_SurfaceView.cpp +++ b/Projects/Android/jni/OpenJK/JKXR/windows/JKXR_SurfaceView.cpp @@ -138,10 +138,10 @@ void VR_GetMove(float *forward, float *side, float *pos_forward, float *pos_side } else if (vr.cgzoommode == 2 || vr.cgzoommode == 4) { - *forward = 0.0f; + *forward = remote_movementForward / 3.0f; *pos_forward = 0.0f; *up = 0.0f; - *side = 0.0f; + *side = remote_movementSideways / 3.0f; *pos_side = 0.0f; *yaw = vr.snapTurn; *pitch = vr.weaponangles[ANGLES_ADJUSTED][PITCH]; diff --git a/Projects/Android/jni/OpenJK/code/cgame/cg_draw.cpp b/Projects/Android/jni/OpenJK/code/cgame/cg_draw.cpp index ac0e44e..7eda1fc 100644 --- a/Projects/Android/jni/OpenJK/code/cgame/cg_draw.cpp +++ b/Projects/Android/jni/OpenJK/code/cgame/cg_draw.cpp @@ -4117,15 +4117,24 @@ CG_DrawVignette float currentComfortVignetteValue = 0.0f; float filteredViewYawDelta = 0.0f; -static void CG_DrawVignette( void ) +static void CG_DrawVignette( bool force ) { playerState_t *ps; ps = &cg.snap->ps; + float vignetteValue; cvar_t *vr_comfort_vignette = gi.cvar("vr_comfort_vignette", "0.0", CVAR_ARCHIVE); // defined in VrCvars.h - if (vr_comfort_vignette->value <= 0.0f || vr_comfort_vignette->value > 1.0f || !cg.zoomMode == 0) + if (!force) { - return; + if (vr_comfort_vignette->value <= 0.0f || vr_comfort_vignette->value > 1.0f || !cg.zoomMode == 0) + { + return; + } + vignetteValue = vr_comfort_vignette->value; + } + else + { + vignetteValue = 0.3f; } bool isMoving = VectorLength(cg.predicted_player_state.velocity) > 30.0; @@ -4144,17 +4153,17 @@ static void CG_DrawVignette( void ) isTurning = filteredViewYawDelta > 1; } - if (isMoving || isInAir || isTurning) + if (isMoving || isInAir || isTurning || force) { - if (currentComfortVignetteValue < vr_comfort_vignette->value) + if (currentComfortVignetteValue < vignetteValue) { - currentComfortVignetteValue += vr_comfort_vignette->value * 0.05; + currentComfortVignetteValue += vignetteValue * 0.05; if (currentComfortVignetteValue > 1.0f) currentComfortVignetteValue = 1.0f; } } else{ if (currentComfortVignetteValue > 0.0f) - currentComfortVignetteValue -= vr_comfort_vignette->value * 0.05; + currentComfortVignetteValue -= vignetteValue * 0.05; } if (currentComfortVignetteValue > 0.0f && currentComfortVignetteValue <= 1.0f) @@ -4335,7 +4344,8 @@ static void CG_Draw2D( void ) {//force sight is on //indicate this with sight cone thingy cg.drawingHUD = CG_HUD_NORMAL; - CG_DrawPic( 35, 50, 570, 400, cgi_R_RegisterShader( "gfx/2d/jsense" )); + CG_DrawVignette(true); + CG_DrawPic( 50, 40, 540, 400, cgi_R_RegisterShader( "gfx/2d/jsense" )); cg.drawingHUD = CG_HUD_SCALED; CG_DrawHealthBars(); } @@ -4348,7 +4358,7 @@ static void CG_Draw2D( void ) // don't draw any status if dead if ( cg.snap->ps.stats[STAT_HEALTH] > 0 ) { - CG_DrawVignette(); + CG_DrawVignette(false); if ( !(cent->gent && cent->gent->s.eFlags & (EF_LOCKED_TO_WEAPON )))//|EF_IN_ATST { @@ -4384,7 +4394,10 @@ static void CG_Draw2D( void ) CG_UseIcon(); } + + cg.drawingHUD = CG_HUD_NORMAL; CG_SaberClashFlare(); + cg.drawingHUD = CG_HUD_SCALED; float y = 0; if (cg_drawSnapshot.integer) { diff --git a/Projects/Android/jni/OpenJK/codeJK2/cgame/cg_draw.cpp b/Projects/Android/jni/OpenJK/codeJK2/cgame/cg_draw.cpp index 3a89765..80aea05 100644 --- a/Projects/Android/jni/OpenJK/codeJK2/cgame/cg_draw.cpp +++ b/Projects/Android/jni/OpenJK/codeJK2/cgame/cg_draw.cpp @@ -2841,7 +2841,10 @@ static void CG_Draw2D( void ) CG_UseIcon(); } + + cg.drawingHUD = CG_HUD_NORMAL; CG_SaberClashFlare(); + cg.drawingHUD = CG_HUD_SCALED; float y = 0; if (cg_drawSnapshot.integer) {