Updated controls:

- HUD toggle moved to menu
- Removed right grip shortcuts (they were interfering with selector)
  - X/Y for selecting items replaced by selector
  - Trigger to toggle scope/silencer/akimbo moved to X (instead of HUD toggle)
This commit is contained in:
Petr Bartos 2023-10-08 19:16:22 +02:00
parent 0f6d6386e8
commit ce6d680ba9
5 changed files with 72 additions and 94 deletions

View file

@ -1503,6 +1503,7 @@ void RTCWVR_Init()
vr_comfort_vignette = Cvar_Get ("vr_comfort_vignette", "0.0", CVAR_ARCHIVE); vr_comfort_vignette = Cvar_Get ("vr_comfort_vignette", "0.0", CVAR_ARCHIVE);
vr_gesture_triggered_use = Cvar_Get ("vr_gesture_triggered_use", "1", CVAR_ARCHIVE); vr_gesture_triggered_use = Cvar_Get ("vr_gesture_triggered_use", "1", CVAR_ARCHIVE);
vr_use_gesture_boundary = Cvar_Get ("vr_use_gesture_boundary", "0.35", CVAR_ARCHIVE); vr_use_gesture_boundary = Cvar_Get ("vr_use_gesture_boundary", "0.35", CVAR_ARCHIVE);
vr_draw_hud = Cvar_Get ("vr_draw_hud", "1", CVAR_ARCHIVE);
//Defaults //Defaults
vr_control_scheme = Cvar_Get( "vr_control_scheme", "0", CVAR_ARCHIVE); vr_control_scheme = Cvar_Get( "vr_control_scheme", "0", CVAR_ARCHIVE);

View file

@ -15,4 +15,4 @@ cvar_t *vr_cinematic_stereo;
cvar_t *vr_screen_dist; cvar_t *vr_screen_dist;
cvar_t *vr_gesture_triggered_use; cvar_t *vr_gesture_triggered_use;
cvar_t *vr_use_gesture_boundary; cvar_t *vr_use_gesture_boundary;
cvar_t *vr_draw_hud;

View file

@ -43,6 +43,7 @@ void HandleInput_Default( ovrInputStateGamepad *pFootTrackingNew, ovrInputStateG
vr_control_scheme->value == 99; // Always right-handed for weapon calibration vr_control_scheme->value == 99; // Always right-handed for weapon calibration
vr.teleportenabled = vr_teleport->integer != 0; vr.teleportenabled = vr_teleport->integer != 0;
vr.visible_hud = vr_draw_hud->integer;
static qboolean dominantGripPushed = false; static qboolean dominantGripPushed = false;
static float dominantGripPushTime = 0.0f; static float dominantGripPushTime = 0.0f;
@ -553,92 +554,37 @@ void HandleInput_Default( ovrInputStateGamepad *pFootTrackingNew, ovrInputStateG
//We need to record if we have started firing primary so that releasing trigger will stop firing, if user has pushed grip //Fire Primary
//in meantime, then it wouldn't stop the gun firing and it would get stuck if (vr.backpackitemactive != 3 && !vr.binocularsActive && // Can't fire while holding binoculars
static qboolean firing = false; !vr.velocitytriggered && // Don't fire velocity triggered weapons
if (dominantGripPushed && vr.backpackitemactive == 0) (pDominantTrackedRemoteNew->Buttons & ovrButton_Trigger) !=
{ (pDominantTrackedRemoteOld->Buttons & ovrButton_Trigger)) {
if ((pDominantTrackedRemoteNew->Buttons & ovrButton_Trigger) !=
(pDominantTrackedRemoteOld->Buttons & ovrButton_Trigger)) ALOGV("**WEAPON EVENT** Not Grip Pushed %sattack", (pDominantTrackedRemoteNew->Buttons & ovrButton_Trigger) ? "+" : "-");
{ qboolean firing = (pDominantTrackedRemoteNew->Buttons & ovrButton_Trigger);
if (!vr.scopedweapon) { if (vr.weaponid == WP_AKIMBO) {
if (pDominantTrackedRemoteNew->Buttons & ovrButton_Trigger) { if (firing) {
ALOGV("**WEAPON EVENT** weapalt"); vr.akimboTriggerState |= ACTIVE_WEAPON_HAND;
sendButtonActionSimple("weapalt"); sendButtonAction("+attack", firing);
} } else {
else if (firing) vr.akimboTriggerState &= ~ACTIVE_WEAPON_HAND;
{ if (!vr.akimboTriggerState) { // Stop firing only if we are not still firing with off-hand weapon
//no longer firing
vr.akimboTriggerState = 0;
firing = qfalse;
ALOGV("**WEAPON EVENT** Grip Pushed %sattack", (pDominantTrackedRemoteNew->Buttons & ovrButton_Trigger) ? "+" : "-");
sendButtonAction("+attack", firing);
}
}
else if (vr.detachablescope)
{
if (pDominantTrackedRemoteNew->Buttons & ovrButton_Trigger) {
//See if we are able to detach the scope
ALOGV("**WEAPON EVENT** weapdetachscope");
sendButtonActionSimple("weapdetachscope");
}
}
else
{
//Just ignore grip and fire
ALOGV("**WEAPON EVENT** Grip Pushed %sattack", (pDominantTrackedRemoteNew->Buttons & ovrButton_Trigger) ? "+" : "-");
firing = (pDominantTrackedRemoteNew->Buttons & ovrButton_Trigger);
if (vr.weaponid == WP_AKIMBO) {
if (firing) {
vr.akimboTriggerState |= ACTIVE_WEAPON_HAND;
sendButtonAction("+attack", firing);
} else {
vr.akimboTriggerState &= ~ACTIVE_WEAPON_HAND;
if (!vr.akimboTriggerState) { // Stop firing only if we are not firing with off-hand weapon
sendButtonAction("+attack", firing);
}
}
} else {
vr.akimboTriggerState = 0;
sendButtonAction("+attack", firing); sendButtonAction("+attack", firing);
} }
} }
} else {
vr.akimboTriggerState = 0;
sendButtonAction("+attack", firing);
} }
} }
else else if (binocularsactive) // trigger can zoom-in binoculars, remove from face to reset
{ {
//Fire Primary static qboolean zoomin = true;
if (vr.backpackitemactive != 3 && !vr.binocularsActive && // Can't fire while holding binoculars if (pDominantTrackedRemoteNew->Buttons & ovrButton_Trigger) {
!vr.velocitytriggered && // Don't fire velocity triggered weapons sendButtonActionSimple(zoomin ? "weapnext" : "weapprev");
(pDominantTrackedRemoteNew->Buttons & ovrButton_Trigger) != } else if (pDominantTrackedRemoteOld->Buttons & ovrButton_Trigger)
(pDominantTrackedRemoteOld->Buttons & ovrButton_Trigger)) {
ALOGV("**WEAPON EVENT** Not Grip Pushed %sattack", (pDominantTrackedRemoteNew->Buttons & ovrButton_Trigger) ? "+" : "-");
firing = (pDominantTrackedRemoteNew->Buttons & ovrButton_Trigger);
if (vr.weaponid == WP_AKIMBO) {
if (firing) {
vr.akimboTriggerState |= ACTIVE_WEAPON_HAND;
sendButtonAction("+attack", firing);
} else {
vr.akimboTriggerState &= ~ACTIVE_WEAPON_HAND;
if (!vr.akimboTriggerState) { // Stop firing only if we are not still firing with off-hand weapon
sendButtonAction("+attack", firing);
}
}
} else {
vr.akimboTriggerState = 0;
sendButtonAction("+attack", firing);
}
}
else if (binocularsactive) // trigger can zoom-in binoculars, remove from face to reset
{ {
static qboolean zoomin = true; zoomin = !zoomin;
if (pDominantTrackedRemoteNew->Buttons & ovrButton_Trigger) {
sendButtonActionSimple(zoomin ? "weapnext" : "weapprev");
} else if (pDominantTrackedRemoteOld->Buttons & ovrButton_Trigger)
{
zoomin = !zoomin;
}
} }
} }
@ -722,31 +668,28 @@ void HandleInput_Default( ovrInputStateGamepad *pFootTrackingNew, ovrInputStateG
stopUseItemNextFrame = false; stopUseItemNextFrame = false;
} }
// Detach scopes, draw akimbo
if (!canUseQuickSave) { if (!canUseQuickSave) {
if (((secondaryButtonsNew & secondaryButton1) != if (((secondaryButtonsNew & secondaryButton1) !=
(secondaryButtonsOld & secondaryButton1)) && (secondaryButtonsOld & secondaryButton1)) &&
(secondaryButtonsNew & secondaryButton1)) { (secondaryButtonsNew & secondaryButton1)) {
if (!vr.scopedweapon) {
if (dominantGripPushed) { ALOGV("**WEAPON EVENT** weapalt");
Cbuf_AddText("+useitem\n"); sendButtonActionSimple("weapalt");
stopUseItemNextFrame = qtrue; } else if (vr.detachablescope) {
} else { //See if we are able to detach the scope
vr.visible_hud = !vr.visible_hud; ALOGV("**WEAPON EVENT** weapdetachscope");
sendButtonActionSimple("weapdetachscope");
} }
} }
} }
//notebook or select "item" // Notebook
if (!canUseQuickSave) { if (!canUseQuickSave) {
if (((secondaryButtonsNew & secondaryButton2) != if (((secondaryButtonsNew & secondaryButton2) !=
(secondaryButtonsOld & secondaryButton2)) && (secondaryButtonsOld & secondaryButton2)) &&
(secondaryButtonsNew & secondaryButton2)) { (secondaryButtonsNew & secondaryButton2)) {
sendButtonActionSimple("notebook");
if (dominantGripPushed) {
sendButtonActionSimple("itemprev");
} else {
sendButtonActionSimple("notebook");
}
} }
} }
@ -759,7 +702,7 @@ void HandleInput_Default( ovrInputStateGamepad *pFootTrackingNew, ovrInputStateG
//We need to record if we have started firing primary so that releasing trigger will stop definitely firing, if user has pushed grip //We need to record if we have started firing primary so that releasing trigger will stop definitely firing, if user has pushed grip
//in meantime, then it wouldn't stop the gun firing and it would get stuck //in meantime, then it wouldn't stop the gun firing and it would get stuck
if (!vr.teleportenabled) if (!vr.teleportenabled || vr.weaponid == WP_AKIMBO)
{ {
if (vr.weaponid == WP_AKIMBO && vr.backpackitemactive != 3 && !vr.binocularsActive) { if (vr.weaponid == WP_AKIMBO && vr.backpackitemactive != 3 && !vr.binocularsActive) {
// Fire off-hand weapon // Fire off-hand weapon

View file

@ -396,6 +396,23 @@ itemDef
visible 1 visible 1
} }
itemDef {
name vr
group grpControls
type ITEM_TYPE_YESNO
text "Draw HUD: "
cvar "vr_draw_hud"
rect 82 270 290 12
textalign ITEM_ALIGN_RIGHT
textalignx 142
textaligny 10
textscale .23
style WINDOW_STYLE_FILLED
backcolor 1 1 1 .07
forecolor 1 1 1 1
visible 1
}
// TOOLS MESSAGE // // TOOLS MESSAGE //
itemDef itemDef

View file

@ -369,6 +369,23 @@ itemDef
visible 1 visible 1
} }
itemDef {
name ingame_vr
group grpControls
type ITEM_TYPE_YESNO
text "Draw HUD: "
cvar "vr_draw_hud"
rect 82 270 290 12
textalign ITEM_ALIGN_RIGHT
textalignx 142
textaligny 10
textscale .23
style WINDOW_STYLE_FILLED
backcolor 1 1 1 .07
forecolor 1 1 1 1
visible 1
}
itemDef { itemDef {
name yesno_message name yesno_message