Implement separate saber pitch adjustment

it uses the OpenXR grip pose and an adjuster separate to the weapon one
This commit is contained in:
Simon 2023-08-12 15:25:23 +01:00
parent bc5fd7073e
commit ca40a99ec1
19 changed files with 324 additions and 139 deletions

View file

@ -19,7 +19,7 @@ XrResult CheckXrResult(XrResult res, const char* originator) {
XrActionSet actionSet = nullptr;
XrAction grabAction;
XrAction poseAction;
XrAction gripAction;
XrAction vibrateAction;
XrAction quitAction;
XrAction touchpadAction;
@ -27,7 +27,7 @@ XrAction AXAction;
XrAction homeAction;
XrAction BYAction;
XrAction backAction;
XrAction sideAction;
XrAction squeezeClickAction;
XrAction triggerAction;
XrAction joystickAction;
XrAction batteryAction;
@ -36,7 +36,7 @@ XrAction BYTouchAction;
XrAction thumbstickTouchAction;
XrAction TriggerTouchAction;
XrAction ThumbrestTouchAction;
XrAction GripAction;
XrAction squeezeAction;
XrAction AAction;
XrAction BAction;
XrAction XAction;
@ -152,7 +152,7 @@ void TBXR_InitActions( void )
CreateAction(actionSet, XR_ACTION_TYPE_POSE_INPUT, "grab_object", "Grab Object", SIDE_COUNT, handSubactionPath, &grabAction);
// Create an input action getting the left and right hand poses.
CreateAction(actionSet, XR_ACTION_TYPE_POSE_INPUT, "hand_pose", "Hand Pose", SIDE_COUNT, handSubactionPath, &poseAction);
CreateAction(actionSet, XR_ACTION_TYPE_POSE_INPUT, "grip_pose", "Grip Pose", SIDE_COUNT, handSubactionPath, &gripAction);
CreateAction(actionSet, XR_ACTION_TYPE_POSE_INPUT, "aim_pose", "Aim Pose", SIDE_COUNT, handSubactionPath, &aimAction);
// Create output actions for vibrating the left and right controller.
@ -165,7 +165,7 @@ void TBXR_InitActions( void )
CreateAction(actionSet, XR_ACTION_TYPE_BOOLEAN_INPUT, "homekey", "Homekey", SIDE_COUNT, handSubactionPath, &homeAction);
CreateAction(actionSet, XR_ACTION_TYPE_BOOLEAN_INPUT, "bykey", "BYkey", SIDE_COUNT, handSubactionPath, &BYAction);
CreateAction(actionSet, XR_ACTION_TYPE_BOOLEAN_INPUT, "backkey", "Backkey", SIDE_COUNT, handSubactionPath, &backAction);
CreateAction(actionSet, XR_ACTION_TYPE_BOOLEAN_INPUT, "sidekey", "Sidekey", SIDE_COUNT, handSubactionPath, &sideAction);
CreateAction(actionSet, XR_ACTION_TYPE_BOOLEAN_INPUT, "sidekey", "Sidekey", SIDE_COUNT, handSubactionPath, &squeezeClickAction);
CreateAction(actionSet, XR_ACTION_TYPE_FLOAT_INPUT, "trigger", "Trigger", SIDE_COUNT, handSubactionPath, &triggerAction);
CreateAction(actionSet, XR_ACTION_TYPE_VECTOR2F_INPUT, "joystick", "Joystick", SIDE_COUNT, handSubactionPath, &joystickAction);
CreateAction(actionSet, XR_ACTION_TYPE_FLOAT_INPUT, "battery", "battery", SIDE_COUNT, handSubactionPath, &batteryAction);
@ -174,7 +174,7 @@ void TBXR_InitActions( void )
CreateAction(actionSet, XR_ACTION_TYPE_BOOLEAN_INPUT, "rockertouch", "Rockertouch", SIDE_COUNT, handSubactionPath, &thumbstickTouchAction);
CreateAction(actionSet, XR_ACTION_TYPE_BOOLEAN_INPUT, "triggertouch", "Triggertouch", SIDE_COUNT, handSubactionPath, &TriggerTouchAction);
CreateAction(actionSet, XR_ACTION_TYPE_BOOLEAN_INPUT, "thumbresttouch", "Thumbresttouch", SIDE_COUNT, handSubactionPath, &ThumbrestTouchAction);
CreateAction(actionSet, XR_ACTION_TYPE_FLOAT_INPUT, "gripvalue", "GripValue", SIDE_COUNT, handSubactionPath, &GripAction);
CreateAction(actionSet, XR_ACTION_TYPE_FLOAT_INPUT, "gripvalue", "GripValue", SIDE_COUNT, handSubactionPath, &squeezeAction);
CreateAction(actionSet, XR_ACTION_TYPE_BOOLEAN_INPUT, "akey", "Akey", SIDE_COUNT, handSubactionPath, &AAction);
CreateAction(actionSet, XR_ACTION_TYPE_BOOLEAN_INPUT, "bkey", "Bkey", SIDE_COUNT, handSubactionPath, &BAction);
CreateAction(actionSet, XR_ACTION_TYPE_BOOLEAN_INPUT, "xkey", "Xkey", SIDE_COUNT, handSubactionPath, &XAction);
@ -297,12 +297,12 @@ void TBXR_InitActions( void )
bindings[currBinding++] = ActionSuggestedBinding(TriggerTouchAction, triggerTouchPath[SIDE_LEFT]);
bindings[currBinding++] = ActionSuggestedBinding(TriggerTouchAction, triggerTouchPath[SIDE_RIGHT]);
bindings[currBinding++] = ActionSuggestedBinding(sideAction, squeezeClickPath[SIDE_LEFT]);
bindings[currBinding++] = ActionSuggestedBinding(sideAction, squeezeClickPath[SIDE_RIGHT]);
bindings[currBinding++] = ActionSuggestedBinding(GripAction, squeezeValuePath[SIDE_LEFT]);
bindings[currBinding++] = ActionSuggestedBinding(GripAction, squeezeValuePath[SIDE_RIGHT]);
bindings[currBinding++] = ActionSuggestedBinding(poseAction, posePath[SIDE_LEFT]);
bindings[currBinding++] = ActionSuggestedBinding(poseAction, posePath[SIDE_RIGHT]);
bindings[currBinding++] = ActionSuggestedBinding(squeezeClickAction, squeezeClickPath[SIDE_LEFT]);
bindings[currBinding++] = ActionSuggestedBinding(squeezeClickAction, squeezeClickPath[SIDE_RIGHT]);
bindings[currBinding++] = ActionSuggestedBinding(squeezeAction, squeezeValuePath[SIDE_LEFT]);
bindings[currBinding++] = ActionSuggestedBinding(squeezeAction, squeezeValuePath[SIDE_RIGHT]);
bindings[currBinding++] = ActionSuggestedBinding(gripAction, posePath[SIDE_LEFT]);
bindings[currBinding++] = ActionSuggestedBinding(gripAction, posePath[SIDE_RIGHT]);
bindings[currBinding++] = ActionSuggestedBinding(homeAction, systemPath[SIDE_LEFT]);
bindings[currBinding++] = ActionSuggestedBinding(homeAction, systemPath[SIDE_RIGHT]);
@ -356,10 +356,10 @@ void TBXR_InitActions( void )
bindings[currBinding++] = ActionSuggestedBinding(TriggerTouchAction, triggerTouchPath[SIDE_LEFT]);
bindings[currBinding++] = ActionSuggestedBinding(TriggerTouchAction, triggerTouchPath[SIDE_RIGHT]);
bindings[currBinding++] = ActionSuggestedBinding(GripAction, squeezeValuePath[SIDE_LEFT]);
bindings[currBinding++] = ActionSuggestedBinding(GripAction, squeezeValuePath[SIDE_RIGHT]);
bindings[currBinding++] = ActionSuggestedBinding(poseAction, posePath[SIDE_LEFT]);
bindings[currBinding++] = ActionSuggestedBinding(poseAction, posePath[SIDE_RIGHT]);
bindings[currBinding++] = ActionSuggestedBinding(squeezeAction, squeezeValuePath[SIDE_LEFT]);
bindings[currBinding++] = ActionSuggestedBinding(squeezeAction, squeezeValuePath[SIDE_RIGHT]);
bindings[currBinding++] = ActionSuggestedBinding(gripAction, posePath[SIDE_LEFT]);
bindings[currBinding++] = ActionSuggestedBinding(gripAction, posePath[SIDE_RIGHT]);
bindings[currBinding++] = ActionSuggestedBinding(backAction, menuClickPath[SIDE_LEFT]);
@ -390,7 +390,7 @@ void TBXR_InitActions( void )
XrActionSpaceCreateInfo actionSpaceInfo = {};
actionSpaceInfo.type = XR_TYPE_ACTION_SPACE_CREATE_INFO;
actionSpaceInfo.action = poseAction;
actionSpaceInfo.action = gripAction;
actionSpaceInfo.poseInActionSpace.orientation.w = 1.f;
actionSpaceInfo.subactionPath = handSubactionPath[SIDE_LEFT];
CHECK_XRCMD(xrCreateActionSpace(gAppState.Session, &actionSpaceInfo, &handSpace[SIDE_LEFT]));
@ -447,6 +447,14 @@ void TBXR_UpdateControllers( )
gAppState.TrackedController[i].Active = (loc.locationFlags & XR_SPACE_LOCATION_POSITION_VALID_BIT) != 0;
gAppState.TrackedController[i].Pose = loc.pose;
gAppState.TrackedController[i].Velocity = vel;
loc.type = XR_TYPE_SPACE_LOCATION;
loc.next = NULL;
res = xrLocateSpace(handSpace[i], gAppState.StageSpace, gAppState.FrameState.predictedDisplayTime, &loc);
if (res != XR_SUCCESS) {
Com_Printf("xrLocateSpace error: %d", (int)res);
}
gAppState.TrackedController[i].GripPose = loc.pose;
}
leftRemoteTracking_new = gAppState.TrackedController[0];
@ -461,7 +469,7 @@ void TBXR_UpdateControllers( )
if (GetActionStateBoolean(XTouchAction, SIDE_LEFT).currentState) leftTrackedRemoteState_new.Touches |= xrButton_X;
if (GetActionStateBoolean(YAction, SIDE_LEFT).currentState) leftTrackedRemoteState_new.Buttons |= xrButton_Y;
if (GetActionStateBoolean(YTouchAction, SIDE_LEFT).currentState) leftTrackedRemoteState_new.Touches |= xrButton_Y;
leftTrackedRemoteState_new.GripTrigger = GetActionStateFloat(GripAction, SIDE_LEFT).currentState;
leftTrackedRemoteState_new.GripTrigger = GetActionStateFloat(squeezeAction, SIDE_LEFT).currentState;
if (leftTrackedRemoteState_new.GripTrigger > 0.5f) leftTrackedRemoteState_new.Buttons |= xrButton_GripTrigger;
if (GetActionStateBoolean(touchpadAction, SIDE_LEFT).currentState) leftTrackedRemoteState_new.Buttons |= xrButton_LThumb;
if (GetActionStateBoolean(touchpadAction, SIDE_LEFT).currentState) leftTrackedRemoteState_new.Buttons |= xrButton_Joystick;
@ -479,7 +487,7 @@ void TBXR_UpdateControllers( )
if (GetActionStateBoolean(ATouchAction, SIDE_RIGHT).currentState) rightTrackedRemoteState_new.Touches |= xrButton_A;
if (GetActionStateBoolean(BAction, SIDE_RIGHT).currentState) rightTrackedRemoteState_new.Buttons |= xrButton_B;
if (GetActionStateBoolean(BTouchAction, SIDE_RIGHT).currentState) rightTrackedRemoteState_new.Touches |= xrButton_B;
rightTrackedRemoteState_new.GripTrigger = GetActionStateFloat(GripAction, SIDE_RIGHT).currentState;
rightTrackedRemoteState_new.GripTrigger = GetActionStateFloat(squeezeAction, SIDE_RIGHT).currentState;
if (rightTrackedRemoteState_new.GripTrigger > 0.5f) rightTrackedRemoteState_new.Buttons |= xrButton_GripTrigger;
if (GetActionStateBoolean(touchpadAction, SIDE_RIGHT).currentState) rightTrackedRemoteState_new.Buttons |= xrButton_RThumb;
if (GetActionStateBoolean(touchpadAction, SIDE_RIGHT).currentState) rightTrackedRemoteState_new.Buttons |= xrButton_Joystick;

View file

@ -3,6 +3,7 @@ extern cvar_t *vr_turn_angle;
extern cvar_t *vr_positional_factor;
extern cvar_t *vr_walkdirection;
extern cvar_t *vr_weapon_pitchadjust;
extern cvar_t *vr_saber_pitchadjust;
extern cvar_t *vr_control_scheme;
extern cvar_t *vr_virtual_stock;
extern cvar_t *vr_switch_sticks;

View file

@ -16,6 +16,7 @@ cvar_t *vr_turn_angle;
cvar_t *vr_positional_factor;
cvar_t *vr_walkdirection;
cvar_t *vr_weapon_pitchadjust;
cvar_t *vr_saber_pitchadjust;
cvar_t *vr_control_scheme;
cvar_t *vr_virtual_stock;
cvar_t *vr_switch_sticks;

View file

@ -127,9 +127,9 @@ void HandleInput_Default( ovrInputStateTrackedRemote *pDominantTrackedRemoteNew,
QuatToYawPitchRoll(pWeapon->Pose.orientation, rotation, vr.weaponangles[ANGLES_DEFAULT]);
QuatToYawPitchRoll(pOff->Pose.orientation, rotation, vr.offhandangles[ANGLES_DEFAULT]);
rotation[PITCH] = 45;
//If we are in a saberBlockDebounce thing then add on an angle
//Lerped upon how far from the start of the saber move
rotation[PITCH] = vr_saber_pitchadjust->value;
if (vr.saberBlockDebounce > cl.serverTime) {
float lerp = 0.0f;
//Where are we in the lerp
@ -188,8 +188,8 @@ void HandleInput_Default( ovrInputStateTrackedRemote *pDominantTrackedRemoteNew,
}
}
QuatToYawPitchRoll(pWeapon->Pose.orientation, rotation, vr.weaponangles[ANGLES_SABER]);
QuatToYawPitchRoll(pOff->Pose.orientation, rotation, vr.offhandangles[ANGLES_SABER]);
QuatToYawPitchRoll(pWeapon->GripPose.orientation, rotation, vr.weaponangles[ANGLES_SABER]);
QuatToYawPitchRoll(pOff->GripPose.orientation, rotation, vr.offhandangles[ANGLES_SABER]);
rotation[PITCH] = vr_weapon_pitchadjust->value;
QuatToYawPitchRoll(pWeapon->Pose.orientation, rotation, vr.weaponangles[ANGLES_ADJUSTED]);

View file

@ -45,9 +45,9 @@ void HandleInput_WeaponAlign( ovrInputStateTrackedRemote *pDominantTrackedRemote
//if we are in saber block debounce, don't update the saber angles
if (vr.saberBlockDebounce < cl.serverTime) {
rotation[PITCH] = 45;
QuatToYawPitchRoll(pDominantTracking->Pose.orientation, rotation, vr.weaponangles[ANGLES_SABER]);
QuatToYawPitchRoll(pOffTracking->Pose.orientation, rotation, vr.offhandangles[ANGLES_SABER]);
rotation[PITCH] = vr_saber_pitchadjust->value;
QuatToYawPitchRoll(pDominantTracking->GripPose.orientation, rotation, vr.weaponangles[ANGLES_SABER]);
QuatToYawPitchRoll(pOffTracking->GripPose.orientation, rotation, vr.offhandangles[ANGLES_SABER]);
}
rotation[PITCH] = vr_weapon_pitchadjust->value;

View file

@ -329,6 +329,7 @@ void VR_Init()
vr_positional_factor = Cvar_Get( "vr_positional_factor", "12", CVAR_ARCHIVE);
vr_walkdirection = Cvar_Get( "vr_walkdirection", "1", CVAR_ARCHIVE);
vr_weapon_pitchadjust = Cvar_Get( "vr_weapon_pitchadjust", "-20.0", CVAR_ARCHIVE);
vr_saber_pitchadjust = Cvar_Get( "vr_saber_pitchadjust", "-25.0", CVAR_ARCHIVE);
vr_virtual_stock = Cvar_Get( "vr_virtual_stock", "0", CVAR_ARCHIVE);
//Defaults

View file

@ -71,6 +71,7 @@ typedef struct {
typedef struct {
GLboolean Active;
XrPosef Pose;
XrPosef GripPose;
XrSpaceVelocity Velocity;
} ovrTrackedController;

View file

@ -241,6 +241,7 @@ void VR_Init()
vr_positional_factor = Cvar_Get( "vr_positional_factor", "12", CVAR_ARCHIVE);
vr_walkdirection = Cvar_Get( "vr_walkdirection", "1", CVAR_ARCHIVE);
vr_weapon_pitchadjust = Cvar_Get( "vr_weapon_pitchadjust", "-20.0", CVAR_ARCHIVE);
vr_saber_pitchadjust = Cvar_Get( "vr_saber_pitchadjust", "-20.0", CVAR_ARCHIVE);
vr_virtual_stock = Cvar_Get( "vr_virtual_stock", "0", CVAR_ARCHIVE);
//Defaults

View file

@ -94,6 +94,7 @@ typedef struct {
typedef struct {
GLboolean Active;
XrPosef Pose;
XrPosef GripPose;
XrSpaceVelocity Velocity;
} ovrTrackedController;

View file

@ -903,7 +903,7 @@ qboolean G_StandardHumanoid( gentity_t *self )
return qfalse;
}
const char *GLAName = gi.G2API_GetGLAName( &self->ghoul2[self->playerModel] );
assert(GLAName);
//assert(GLAName);
if (GLAName)
{
if ( !Q_stricmpn( "models/players/_humanoid", GLAName, 24 ) )///_humanoid", GLAName, 36) )

View file

@ -91,9 +91,15 @@ LANG_ENGLISH "Enables left-handed mode."
REFERENCE WEAPON_PITCH_ITEM
LANG_ENGLISH "Weapon Pitch:"
REFERENCE SABER_PITCH_ITEM
LANG_ENGLISH "Saber Pitch:"
REFERENCE WEAPON_PITCH_DESC
LANG_ENGLISH "Sets aiming pitch of held weapon."
REFERENCE SABER_PITCH_DESC
LANG_ENGLISH "Sets pitch of saber."
REFERENCE TWO_HANDED_ITEM
LANG_ENGLISH "Two-Handed Mode:"

View file

@ -117,10 +117,18 @@ REFERENCE WEAPON_PITCH_ITEM
LANG_ENGLISH "Weapon Pitch:"
LANG_FRENCH "#same"
REFERENCE SABER_PITCH_ITEM
LANG_ENGLISH "Saber Pitch:"
LANG_FRENCH "#same"
REFERENCE WEAPON_PITCH_DESC
LANG_ENGLISH "Sets aiming pitch of held weapon."
LANG_FRENCH "#same"
REFERENCE SABER_PITCH_DESC
LANG_ENGLISH "Sets pitch of saber."
LANG_FRENCH "#same"
REFERENCE TWO_HANDED_ITEM
LANG_ENGLISH "Two-Handed Mode:"
LANG_FRENCH "#same"

View file

@ -117,10 +117,18 @@ REFERENCE WEAPON_PITCH_ITEM
LANG_ENGLISH "Weapon Pitch:"
LANG_GERMAN "#same"
REFERENCE SABER_PITCH_ITEM
LANG_ENGLISH "Saber Pitch:"
LANG_GERMAN "#same"
REFERENCE WEAPON_PITCH_DESC
LANG_ENGLISH "Sets aiming pitch of held weapon."
LANG_GERMAN "#same"
REFERENCE SABER_PITCH_DESC
LANG_ENGLISH "Sets pitch of saber."
LANG_GERMAN "#same"
REFERENCE TWO_HANDED_ITEM
LANG_ENGLISH "Two-Handed Mode:"
LANG_GERMAN "#same"

View file

@ -115,11 +115,19 @@ LANG_SPANISH "#same"
REFERENCE WEAPON_PITCH_ITEM
LANG_ENGLISH "Weapon Pitch:"
LANG_SPANISH "#same"
LANG_SPANISH "#same"
REFERENCE SABER_PITCH_ITEM
LANG_ENGLISH "Saber Pitch:"
LANG_SPANISH "#same"
REFERENCE WEAPON_PITCH_DESC
LANG_ENGLISH "Sets aiming pitch of held weapon."
LANG_SPANISH "#same"
LANG_SPANISH "#same"
REFERENCE SABER_PITCH_DESC
LANG_ENGLISH "Sets pitch of saber."
LANG_SPANISH "#same"
REFERENCE TWO_HANDED_ITEM
LANG_ENGLISH "Two-Handed Mode:"

View file

@ -1104,9 +1104,9 @@
{
name none
group weaponcontrols
type ITEM_TYPE_YESNO
text @MENUS_VR_TWO_HANDED_ITEM
cvar "vr_two_handed_weapons"
type ITEM_TYPE_SLIDER
text @MENUS_VR_SABER_PITCH_ITEM
cvarfloat "vr_saber_pitchadjust" 20 -45 5
rect 260 240 340 14
textalign ITEM_ALIGN_RIGHT
textalignx 174
@ -1115,7 +1115,7 @@
textscale 1
forecolor .615 .615 .956 0.0
visible 0
descText @MENUS_VR_TWO_HANDED_DESC
descText @MENUS_VR_SABER_PITCH_DESC
action
{
play sound/interface/button1
@ -1137,8 +1137,8 @@
name none
group weaponcontrols
type ITEM_TYPE_YESNO
text @MENUS_VR_GUN_STOCK_ITEM
cvar "vr_virtual_stock"
text @MENUS_VR_TWO_HANDED_ITEM
cvar "vr_two_handed_weapons"
rect 260 260 340 14
textalign ITEM_ALIGN_RIGHT
textalignx 174
@ -1147,7 +1147,7 @@
textscale 1
forecolor .615 .615 .956 0.0
visible 0
descText @MENUS_VR_GUN_STOCK_DESC
descText @MENUS_VR_TWO_HANDED_DESC
action
{
play sound/interface/button1
@ -1168,9 +1168,9 @@
{
name none
group weaponcontrols
type ITEM_TYPE_SLIDER
text @MENUS_VR_WEAPON_VELOCITY_TRIGGER_ITEM
cvarfloat "vr_weapon_velocity_trigger" 0 1.5 2.5
type ITEM_TYPE_YESNO
text @MENUS_VR_GUN_STOCK_ITEM
cvar "vr_virtual_stock"
rect 260 280 340 14
textalign ITEM_ALIGN_RIGHT
textalignx 174
@ -1179,7 +1179,7 @@
textscale 1
forecolor .615 .615 .956 0.0
visible 0
descText @MENUS_VR_WEAPON_VELOCITY_TRIGGER_DESC
descText @MENUS_VR_GUN_STOCK_DESC
action
{
play sound/interface/button1
@ -1196,6 +1196,38 @@
}
}
itemDef
{
name none
group weaponcontrols
type ITEM_TYPE_SLIDER
text @MENUS_VR_WEAPON_VELOCITY_TRIGGER_ITEM
cvarfloat "vr_weapon_velocity_trigger" 0 1.5 2.5
rect 260 300 340 14
textalign ITEM_ALIGN_RIGHT
textalignx 174
textaligny 0
font 4
textscale 1
forecolor .615 .615 .956 0.0
visible 0
descText @MENUS_VR_WEAPON_VELOCITY_TRIGGER_DESC
action
{
play sound/interface/button1
}
mouseenter
{
show button_glow
setitemrect button_glow 260 300 340 20
}
mouseexit
{
hide button_glow
}
}
itemDef
{
name none
@ -1209,7 +1241,7 @@
@MENUS_VR_SABER_3RD_PERSON_MANUAL 1
@MENUS_VR_SABER_3RD_PERSON_AUTO 2
}
rect 260 300 340 14
rect 260 320 340 14
textalign ITEM_ALIGN_RIGHT
textalignx 174
textaligny 0
@ -1226,7 +1258,7 @@
mouseenter
{
show button_glow
setitemrect button_glow 260 300 340 20
setitemrect button_glow 260 320 340 20
}
mouseexit
{

View file

@ -1285,9 +1285,9 @@
{
name none
group weaponcontrols
type ITEM_TYPE_YESNO
text @MENUS_VR_TWO_HANDED_ITEM
cvar "vr_two_handed_weapons"
type ITEM_TYPE_SLIDER
text @MENUS_VR_SABER_PITCH_ITEM
cvarfloat "vr_saber_pitchadjust" 20 -45 5
rect 260 240 340 14
textalign ITEM_ALIGN_RIGHT
textalignx 174
@ -1296,7 +1296,7 @@
textscale 1
forecolor .615 .615 .956 1.0
visible 0
descText @MENUS_VR_TWO_HANDED_DESC
descText @MENUS_VR_SABER_PITCH_DESC
action
{
play sound/interface/button1
@ -1317,8 +1317,8 @@
name none
group weaponcontrols
type ITEM_TYPE_YESNO
text @MENUS_VR_GUN_STOCK_ITEM
cvar "vr_virtual_stock"
text @MENUS_VR_TWO_HANDED_ITEM
cvar "vr_two_handed_weapons"
rect 260 260 340 14
textalign ITEM_ALIGN_RIGHT
textalignx 174
@ -1327,7 +1327,7 @@
textscale 1
forecolor .615 .615 .956 1.0
visible 0
descText @MENUS_VR_GUN_STOCK_DESC
descText @MENUS_VR_TWO_HANDED_DESC
action
{
play sound/interface/button1
@ -1347,9 +1347,9 @@
{
name none
group weaponcontrols
type ITEM_TYPE_SLIDER
text @MENUS_VR_WEAPON_VELOCITY_TRIGGER_ITEM
cvarfloat "vr_weapon_velocity_trigger" 0 1.5 2.5
type ITEM_TYPE_YESNO
text @MENUS_VR_GUN_STOCK_ITEM
cvar "vr_virtual_stock"
rect 260 280 340 14
textalign ITEM_ALIGN_RIGHT
textalignx 174
@ -1358,7 +1358,7 @@
textscale 1
forecolor .615 .615 .956 1.0
visible 0
descText @MENUS_VR_WEAPON_VELOCITY_TRIGGER_DESC
descText @MENUS_VR_GUN_STOCK_DESC
action
{
play sound/interface/button1
@ -1374,6 +1374,37 @@
}
}
itemDef
{
name none
group weaponcontrols
type ITEM_TYPE_SLIDER
text @MENUS_VR_WEAPON_VELOCITY_TRIGGER_ITEM
cvarfloat "vr_weapon_velocity_trigger" 0 1.5 2.5
rect 260 300 340 14
textalign ITEM_ALIGN_RIGHT
textalignx 174
textaligny 0
font 4
textscale 1
forecolor .615 .615 .956 1.0
visible 0
descText @MENUS_VR_WEAPON_VELOCITY_TRIGGER_DESC
action
{
play sound/interface/button1
}
mouseenter
{
show highlight6
}
mouseexit
{
hide highlight6
}
}
itemDef
{
name none
@ -1387,7 +1418,7 @@
@MENUS_VR_SABER_3RD_PERSON_MANUAL 1
@MENUS_VR_SABER_3RD_PERSON_AUTO 2
}
rect 260 300 340 14
rect 260 320 340 14
textalign ITEM_ALIGN_RIGHT
textalignx 174
textaligny 0
@ -1403,11 +1434,11 @@
mouseenter
{
show highlight6
show highlight7
}
mouseexit
{
hide highlight6
hide highlight7
}
}

View file

@ -3,7 +3,7 @@ CONFIG W:\bin\striped.cfg
ID 100
REFERENCE MENUS_VR
DESCRIPTION "VR Menu Localizations"
COUNT 164
COUNT 166
INDEX 0
{
REFERENCE COMMON_CONTROLS_ITEM
@ -824,3 +824,13 @@ INDEX 163
REFERENCE RESTART_JKXR_TO_APPLY
TEXT_LANGUAGE1 "You will need to manually restart JKXR."
}
INDEX 164
{
REFERENCE SABER_PITCH_ITEM
TEXT_LANGUAGE1 "Saber Pitch:"
}
INDEX 165
{
REFERENCE SABER_PITCH_DESC
TEXT_LANGUAGE1 "Sets pitch of Saber."
}

View file

@ -1600,9 +1600,9 @@
{
name none
group weaponcontrols
type ITEM_TYPE_YESNO
text @MENUS_VR_TWO_HANDED_ITEM
cvar "vr_two_handed_weapons"
type ITEM_TYPE_SLIDER
text @MENUS_VR_SABER_PITCH_ITEM
cvarfloat "vr_saber_pitchadjust" 20 -45 5
rect 305 231 300 20
textalign ITEM_ALIGN_RIGHT
textalignx 151
@ -1612,7 +1612,7 @@
forecolor 1 1 1 1
visible 0
// appearance_slot 2
descText @MENUS_VR_TWO_HANDED_DESC
descText @MENUS_VR_SABER_PITCH_DESC
action
{
play sound/interface/button1
@ -1635,8 +1635,8 @@
name none
group weaponcontrols
type ITEM_TYPE_YESNO
text @MENUS_VR_GUN_STOCK_ITEM
cvar "vr_virtual_stock"
text @MENUS_VR_TWO_HANDED_ITEM
cvar "vr_two_handed_weapons"
rect 305 251 300 20
textalign ITEM_ALIGN_RIGHT
textalignx 151
@ -1646,7 +1646,7 @@
forecolor 1 1 1 1
visible 0
// appearance_slot 2
descText @MENUS_VR_GUN_STOCK_DESC
descText @MENUS_VR_TWO_HANDED_DESC
action
{
play sound/interface/button1
@ -1668,9 +1668,9 @@
{
name none
group weaponcontrols
type ITEM_TYPE_SLIDER
text @MENUS_VR_WEAPON_VELOCITY_TRIGGER_ITEM
cvarfloat "vr_weapon_velocity_trigger" 0 1.5 2.5
type ITEM_TYPE_YESNO
text @MENUS_VR_GUN_STOCK_ITEM
cvar "vr_virtual_stock"
rect 305 271 300 20
textalign ITEM_ALIGN_RIGHT
textalignx 151
@ -1680,7 +1680,7 @@
forecolor 1 1 1 1
visible 0
// appearance_slot 2
descText @MENUS_VR_WEAPON_VELOCITY_TRIGGER_DESC
descText @MENUS_VR_GUN_STOCK_DESC
action
{
play sound/interface/button1
@ -1698,6 +1698,40 @@
}
itemDef
{
name none
group weaponcontrols
type ITEM_TYPE_SLIDER
text @MENUS_VR_WEAPON_VELOCITY_TRIGGER_ITEM
cvarfloat "vr_weapon_velocity_trigger" 0 1.5 2.5
rect 305 291 300 20
textalign ITEM_ALIGN_RIGHT
textalignx 151
textaligny -2
font 2
textscale 0.8
forecolor 1 1 1 1
visible 0
// appearance_slot 2
descText @MENUS_VR_WEAPON_VELOCITY_TRIGGER_DESC
action
{
play sound/interface/button1
}
mouseenter
{
show highlight7
}
mouseexit
{
hide highlight7
}
}
itemDef
{
name none
@ -1711,7 +1745,7 @@
@MENUS_VR_SABER_3RD_PERSON_MANUAL 1
@MENUS_VR_SABER_3RD_PERSON_AUTO 2
}
rect 305 291 300 20
rect 305 311 300 20
textalign ITEM_ALIGN_RIGHT
textalignx 151
textaligny -2
@ -1728,12 +1762,12 @@
mouseenter
{
show highlight7
show highlight8
}
mouseexit
{
hide highlight7
hide highlight8
}
}

View file

@ -1599,9 +1599,9 @@
{
name none
group weaponcontrols
type ITEM_TYPE_YESNO
text @MENUS_VR_TWO_HANDED_ITEM
cvar "vr_two_handed_weapons"
type ITEM_TYPE_SLIDER
text @MENUS_VR_SABER_PITCH_ITEM
cvarfloat "vr_saber_pitchadjust" 20 -45 5
rect 305 231 300 20
textalign ITEM_ALIGN_RIGHT
textalignx 151
@ -1611,7 +1611,7 @@
forecolor 1 1 1 1
visible 0
// appearance_slot 2
descText @MENUS_VR_TWO_HANDED_DESC
descText @MENUS_VR_SABER_PITCH_DESC
action
{
play sound/interface/button1
@ -1634,8 +1634,8 @@
name none
group weaponcontrols
type ITEM_TYPE_YESNO
text @MENUS_VR_GUN_STOCK_ITEM
cvar "vr_virtual_stock"
text @MENUS_VR_TWO_HANDED_ITEM
cvar "vr_two_handed_weapons"
rect 305 251 300 20
textalign ITEM_ALIGN_RIGHT
textalignx 151
@ -1645,7 +1645,7 @@
forecolor 1 1 1 1
visible 0
// appearance_slot 2
descText @MENUS_VR_GUN_STOCK_DESC
descText @MENUS_VR_TWO_HANDED_DESC
action
{
play sound/interface/button1
@ -1667,9 +1667,9 @@
{
name none
group weaponcontrols
type ITEM_TYPE_SLIDER
text @MENUS_VR_WEAPON_VELOCITY_TRIGGER_ITEM
cvarfloat "vr_weapon_velocity_trigger" 0 1.5 2.5
type ITEM_TYPE_YESNO
text @MENUS_VR_GUN_STOCK_ITEM
cvar "vr_virtual_stock"
rect 305 271 300 20
textalign ITEM_ALIGN_RIGHT
textalignx 151
@ -1679,7 +1679,7 @@
forecolor 1 1 1 1
visible 0
// appearance_slot 2
descText @MENUS_VR_WEAPON_VELOCITY_TRIGGER_DESC
descText @MENUS_VR_GUN_STOCK_DESC
action
{
play sound/interface/button1
@ -1697,6 +1697,40 @@
}
itemDef
{
name none
group weaponcontrols
type ITEM_TYPE_SLIDER
text @MENUS_VR_WEAPON_VELOCITY_TRIGGER_ITEM
cvarfloat "vr_weapon_velocity_trigger" 0 1.5 2.5
rect 305 291 300 20
textalign ITEM_ALIGN_RIGHT
textalignx 151
textaligny -2
font 2
textscale 0.8
forecolor 1 1 1 1
visible 0
// appearance_slot 2
descText @MENUS_VR_WEAPON_VELOCITY_TRIGGER_DESC
action
{
play sound/interface/button1
}
mouseenter
{
show highlight7
}
mouseexit
{
hide highlight7
}
}
itemDef
{
name none
@ -1710,7 +1744,7 @@
@MENUS_VR_SABER_3RD_PERSON_MANUAL 1
@MENUS_VR_SABER_3RD_PERSON_AUTO 2
}
rect 305 291 300 20
rect 305 311 300 20
textalign ITEM_ALIGN_RIGHT
textalignx 151
textaligny -2
@ -1727,12 +1761,12 @@
mouseenter
{
show highlight7
show highlight8
}
mouseexit
{
hide highlight7
hide highlight8
}
}