Add haptics for menu

This commit is contained in:
Petr Bartos 2023-10-14 16:54:59 +02:00
parent 5367d94db4
commit 22bfd58616
4 changed files with 12 additions and 0 deletions

View file

@ -1507,6 +1507,7 @@ void RTCWVR_Init()
vr_irl_crouch_enabled = Cvar_Get ("vr_irl_crouch_enabled", "0", CVAR_ARCHIVE);
vr_irl_crouch_to_stand_ratio = Cvar_Get ("vr_irl_crouch_to_stand_ratio", "0.65", CVAR_ARCHIVE);
vr_haptic_intensity = Cvar_Get ("vr_haptic_intensity", "1.0", CVAR_ARCHIVE);
vr_menu_item_touched = Cvar_Get ("vr_menu_item_touched", "0", CVAR_TEMP);
//Defaults
vr_control_scheme = Cvar_Get( "vr_control_scheme", "0", CVAR_ARCHIVE);

View file

@ -19,3 +19,4 @@ cvar_t *vr_draw_hud;
cvar_t *vr_irl_crouch_enabled;
cvar_t *vr_irl_crouch_to_stand_ratio;
cvar_t *vr_haptic_intensity;
cvar_t *vr_menu_item_touched;

View file

@ -147,6 +147,7 @@ void HandleInput_Default( ovrInputStateGamepad *pFootTrackingNew, ovrInputStateG
handleTrackedControllerButton(pOffTrackedRemoteNew, pOffTrackedRemoteOld, offButton2, K_ESCAPE);
if ((pDominantTrackedRemoteNew->Buttons & ovrButton_Trigger) != (pDominantTrackedRemoteOld->Buttons & ovrButton_Trigger) && (pDominantTrackedRemoteNew->Buttons & ovrButton_Trigger)) {
vr.menu_right_handed = !vr.menu_right_handed;
RTCWVR_Vibrate(40, vr.menu_right_handed ? 1 : 0, 0.5);
}
} else {
interactWithTouchScreen(menuYaw, vr.dominanthandangles);
@ -155,8 +156,13 @@ void HandleInput_Default( ovrInputStateGamepad *pFootTrackingNew, ovrInputStateG
handleTrackedControllerButton(pDominantTrackedRemoteNew, pDominantTrackedRemoteOld, domButton2, K_ESCAPE);
if ((pOffTrackedRemoteNew->Buttons & ovrButton_Trigger) != (pOffTrackedRemoteOld->Buttons & ovrButton_Trigger) && (pOffTrackedRemoteNew->Buttons & ovrButton_Trigger)) {
vr.menu_right_handed = !vr.menu_right_handed;
RTCWVR_Vibrate(40, vr.menu_right_handed ? 1 : 0, 0.5);
}
}
if (vr_menu_item_touched->integer) {
RTCWVR_Vibrate(40, vr.menu_right_handed ? 1 : 0, 0.5);
Cvar_SetValue("vr_menu_item_touched", 0);
}
}
else
{

View file

@ -1674,6 +1674,10 @@ qboolean Item_SetFocus( itemDef_t *item, float x, float y ) {
if ( playSound && sfx ) {
DC->startLocalSound( *sfx, CHAN_LOCAL_SOUND );
// Ugly hack for haptics but i didn't manage to make
// vr_client_info_t structure and vibrate function
// accessible here :-(
DC->setCVar("vr_menu_item_touched", "1");
}
for ( i = 0; i < parent->itemCount; i++ ) {