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_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_draw_hud = Cvar_Get ("vr_draw_hud", "1", CVAR_ARCHIVE);
//Defaults
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_gesture_triggered_use;
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.teleportenabled = vr_teleport->integer != 0;
vr.visible_hud = vr_draw_hud->integer;
static qboolean dominantGripPushed = false;
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
//in meantime, then it wouldn't stop the gun firing and it would get stuck
static qboolean firing = false;
if (dominantGripPushed && vr.backpackitemactive == 0)
{
if ((pDominantTrackedRemoteNew->Buttons & ovrButton_Trigger) !=
(pDominantTrackedRemoteOld->Buttons & ovrButton_Trigger))
{
if (!vr.scopedweapon) {
if (pDominantTrackedRemoteNew->Buttons & ovrButton_Trigger) {
ALOGV("**WEAPON EVENT** weapalt");
sendButtonActionSimple("weapalt");
}
else if (firing)
{
//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;
//Fire Primary
if (vr.backpackitemactive != 3 && !vr.binocularsActive && // Can't fire while holding binoculars
!vr.velocitytriggered && // Don't fire velocity triggered weapons
(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.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
else if (binocularsactive) // trigger can zoom-in binoculars, remove from face to reset
{
//Fire Primary
if (vr.backpackitemactive != 3 && !vr.binocularsActive && // Can't fire while holding binoculars
!vr.velocitytriggered && // Don't fire velocity triggered weapons
(pDominantTrackedRemoteNew->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;
if (pDominantTrackedRemoteNew->Buttons & ovrButton_Trigger) {
sendButtonActionSimple(zoomin ? "weapnext" : "weapprev");
} else if (pDominantTrackedRemoteOld->Buttons & ovrButton_Trigger)
{
static qboolean zoomin = true;
if (pDominantTrackedRemoteNew->Buttons & ovrButton_Trigger) {
sendButtonActionSimple(zoomin ? "weapnext" : "weapprev");
} else if (pDominantTrackedRemoteOld->Buttons & ovrButton_Trigger)
{
zoomin = !zoomin;
}
zoomin = !zoomin;
}
}
@ -722,31 +668,28 @@ void HandleInput_Default( ovrInputStateGamepad *pFootTrackingNew, ovrInputStateG
stopUseItemNextFrame = false;
}
// Detach scopes, draw akimbo
if (!canUseQuickSave) {
if (((secondaryButtonsNew & secondaryButton1) !=
(secondaryButtonsOld & secondaryButton1)) &&
(secondaryButtonsNew & secondaryButton1)) {
if (dominantGripPushed) {
Cbuf_AddText("+useitem\n");
stopUseItemNextFrame = qtrue;
} else {
vr.visible_hud = !vr.visible_hud;
if (!vr.scopedweapon) {
ALOGV("**WEAPON EVENT** weapalt");
sendButtonActionSimple("weapalt");
} else if (vr.detachablescope) {
//See if we are able to detach the scope
ALOGV("**WEAPON EVENT** weapdetachscope");
sendButtonActionSimple("weapdetachscope");
}
}
}
//notebook or select "item"
// Notebook
if (!canUseQuickSave) {
if (((secondaryButtonsNew & secondaryButton2) !=
(secondaryButtonsOld & secondaryButton2)) &&
(secondaryButtonsNew & secondaryButton2)) {
if (dominantGripPushed) {
sendButtonActionSimple("itemprev");
} else {
sendButtonActionSimple("notebook");
}
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
//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) {
// Fire off-hand weapon

View file

@ -396,6 +396,23 @@ itemDef
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 //
itemDef

View file

@ -369,6 +369,23 @@ itemDef
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 {
name yesno_message