Merge branch 'main' into contributions

This commit is contained in:
Petr Bartos 2023-11-23 19:08:16 +01:00
commit a9565b9359
26 changed files with 228 additions and 92 deletions

View file

@ -2,7 +2,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.drbeef.jkxr"
android:versionCode="64"
android:versionName="1.1.18" android:installLocation="auto" >
android:versionName="1.1.19" android:installLocation="auto" >
<!-- Tell the system this app requires OpenGL ES 3.1. -->
<uses-feature android:glEsVersion="0x00030002" android:required="true"/>

View file

@ -18,6 +18,7 @@ extern cvar_t *vr_force_motion_controlled;
extern cvar_t *vr_force_motion_push;
extern cvar_t *vr_force_motion_pull;
extern cvar_t *vr_motion_enable_saber;
extern cvar_t *vr_always_run;
extern cvar_t *vr_crouch_toggle;
extern cvar_t *vr_irl_crouch_enabled;
extern cvar_t *vr_irl_crouch_to_stand_ratio;

View file

@ -31,6 +31,7 @@ cvar_t *vr_force_motion_controlled;
cvar_t *vr_force_motion_push;
cvar_t *vr_force_motion_pull;
cvar_t *vr_motion_enable_saber;
cvar_t * vr_always_run;
cvar_t *vr_crouch_toggle;
cvar_t *vr_irl_crouch_enabled;
cvar_t *vr_irl_crouch_to_stand_ratio;

View file

@ -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
@ -471,6 +495,22 @@ void HandleInput_Default( ovrInputStateTrackedRemote *pDominantTrackedRemoteNew,
}
}
//Switch movement speed
if (!vr.cgzoommode && !vr_always_run->integer)
{
static bool switched = false;
if (between(-0.2f, primaryJoystickX, 0.2f) &&
between(0.8f, pPrimaryJoystick->y, 1.0f)) {
if (!switched) {
vr.move_speed = (++vr.move_speed) % 3;
switched = true;
}
}
else {
switched = false;
}
}
/*
//Parameter Changer
static bool changed = false;
@ -852,18 +892,34 @@ void HandleInput_Default( ovrInputStateTrackedRemote *pDominantTrackedRemoteNew,
vec2_t v;
rotateAboutOrigin(x, y, controllerYawHeading, v);
//Move a lot slower if scope is engaged
remote_movementSideways =
v[0] * (vr.move_speed == 0 ? 0.75f : (vr.move_speed == 1 ? 1.0f : 0.5f));
remote_movementForward =
v[1] * (vr.move_speed == 0 ? 0.75f : (vr.move_speed == 1 ? 1.0f : 0.5f));
float move_speed_multiplier = 1.0f;
switch (vr.move_speed)
{
case 0:
move_speed_multiplier = 0.75f;
break;
case 1:
move_speed_multiplier = 1.0f;
break;
case 2:
move_speed_multiplier = 0.5f;
break;
}
if (vr_always_run->integer)
{
move_speed_multiplier = 1.0f;
}
remote_movementSideways = move_speed_multiplier * v[0];
remote_movementForward = move_speed_multiplier * v[1];
if (((secondaryButtonsNew & secondaryButton1) !=
(secondaryButtonsOld & secondaryButton1)) &&
(secondaryButtonsNew & secondaryButton1)) {
//Toggle walk/run somehow?!
vr.move_speed = (++vr.move_speed) % 3;
//X button invokes menu now
if ((secondaryButtonsNew & secondaryButton1) &&
!(secondaryButtonsOld & secondaryButton1))
{
Sys_QueEvent(0, SE_KEY, A_ESCAPE, true, 0, NULL);
}
//Open the datapad

View file

@ -59,6 +59,7 @@ bool VR_UseScreenLayer()
(bool)((vr.cin_camera && !vr.immersive_cinematics) ||
vr.misc_camera ||
(CL_IsRunningInGameCinematic() || CL_InGameCinematicOnStandBy()) ||
(cls.state == CA_DISCONNECTED) ||
(cls.state == CA_CINEMATIC) ||
(cls.state == CA_LOADING) ||
( Key_GetCatcher( ) & KEYCATCH_UI ) ||
@ -233,10 +234,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];
@ -347,6 +348,7 @@ void VR_Init()
vr_force_motion_push = Cvar_Get ("vr_force_motion_push", "3", CVAR_ARCHIVE);
vr_force_motion_pull = Cvar_Get ("vr_force_motion_pull", "4", CVAR_ARCHIVE);
vr_motion_enable_saber = Cvar_Get ("vr_motion_enable_saber", "0", CVAR_ARCHIVE);
vr_always_run = Cvar_Get ("vr_always_run", "0", CVAR_ARCHIVE);
vr_crouch_toggle = Cvar_Get ("vr_crouch_toggle", "0", CVAR_ARCHIVE);
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);

View file

@ -1930,8 +1930,8 @@ void TBXR_submitFrame()
TBXR_updateProjections();
//Calculate the maximum extent fov for use in culling in the engine (we won't want to cull inside this fov)
vr.fov_x = (fabs(gAppState.Views[0].fov.angleLeft) + fabs(gAppState.Views[1].fov.angleLeft)) * 180.0f / M_PI;
vr.fov_y = (fabs(gAppState.Views[0].fov.angleUp) + fabs(gAppState.Views[0].fov.angleUp)) * 180.0f / M_PI;
vr.fov_x = (fabs(gAppState.Views[0].fov.angleLeft) + fabs(gAppState.Views[1].fov.angleRight)) * 180.0f / M_PI;
vr.fov_y = (fabs(gAppState.Views[0].fov.angleUp) + fabs(gAppState.Views[0].fov.angleDown)) * 180.0f / M_PI;
XrFrameEndInfo endFrameInfo = {};

View file

@ -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];
@ -259,6 +259,7 @@ void VR_Init()
vr_force_motion_push = Cvar_Get ("vr_force_motion_push", "3", CVAR_ARCHIVE);
vr_force_motion_pull = Cvar_Get ("vr_force_motion_pull", "4", CVAR_ARCHIVE);
vr_motion_enable_saber = Cvar_Get ("vr_motion_enable_saber", "0", CVAR_ARCHIVE);
vr_always_run = Cvar_Get ("vr_always_run", "0", CVAR_ARCHIVE);
vr_crouch_toggle = Cvar_Get ("vr_crouch_toggle", "0", CVAR_ARCHIVE);
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);

View file

@ -222,7 +222,7 @@ void ovrFramebuffer_Resolve(ovrFramebuffer* frameBuffer) {
int width, height;
R_GetModeInfo(&width, &height, r_mode->integer);
glBindFramebuffer(GL_READ_FRAMEBUFFER, colorTexture);
glBindFramebuffer(GL_READ_FRAMEBUFFER, frameBuffer->FrameBuffers[frameBuffer->TextureSwapChainIndex]);
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0);
glBlitFramebuffer(0, 0, gAppState.Width, gAppState.Height,
0, 0, width, height,
@ -1151,8 +1151,8 @@ void TBXR_submitFrame()
TBXR_updateProjections();
//Calculate the maximum extent fov for use in culling in the engine (we won't want to cull inside this fov)
vr.fov_x = (fabs(gAppState.Views[0].fov.angleLeft) + fabs(gAppState.Views[1].fov.angleLeft)) * 180.0f / M_PI;
vr.fov_y = (fabs(gAppState.Views[0].fov.angleUp) + fabs(gAppState.Views[0].fov.angleUp)) * 180.0f / M_PI;
vr.fov_x = (fabs(gAppState.Views[0].fov.angleLeft) + fabs(gAppState.Views[1].fov.angleRight)) * 180.0f / M_PI;
vr.fov_y = (fabs(gAppState.Views[0].fov.angleUp) + fabs(gAppState.Views[0].fov.angleDown)) * 180.0f / M_PI;
XrFrameEndInfo endFrameInfo = {};

View file

@ -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)
@ -4295,8 +4304,9 @@ static void CG_Draw2D( void )
if ( (cg.snap->ps.forcePowersActive&(1<<FP_SEE)) )
{//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.drawingHUD = CG_HUD_OTHER;
CG_DrawVignette(true);
CG_DrawPic( 50, 40, 540, 400, cgi_R_RegisterShader( "gfx/2d/jsense" ));
cg.drawingHUD = CG_HUD_SCALED;
CG_DrawHealthBars();
}
@ -4306,10 +4316,50 @@ static void CG_Draw2D( void )
}
if (cg.zoomMode || (cg.snap->ps.forcePowersActive & (1 << FP_SEE)))
{
cg.drawingHUD = CG_HUD_NORMAL;
const auto xOffset = (-vr->off_center_fov_x * 640);
const auto yOffset = (vr->off_center_fov_y * 480);
vec4_t color = { 0, 0, 0, 1 };
if (cg.stereoView == STEREO_LEFT)
{
//Left Gap
CG_FillRect(0, 0, -xOffset, 480, color);
if (yOffset < 0)
{
//Bottom Gap
CG_FillRect(0, 0, 640, yOffset, color);
}
else
{
//Top Gap
CG_FillRect(0, 480 - yOffset, 640, yOffset, color);
}
}
else
{
//Right Gap
CG_FillRect(640 - xOffset, 0, xOffset, 480, color);
if (yOffset < 0)
{
//Bottom Gap
CG_FillRect(0, 0, 640, yOffset, color);
}
else
{
//Top Gap
CG_FillRect(0, 480 - yOffset, 640, yOffset, color);
}
}
}
// 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
{
@ -4345,7 +4395,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) {

View file

@ -297,6 +297,7 @@ typedef struct {
#define CG_HUD_NORMAL 0x00
#define CG_HUD_SCALED 0x01
#define CG_HUD_ZOOM 0x02
#define CG_HUD_OTHER 0x03
typedef struct {
//NOTE: these probably get cleared in save/load!!!

View file

@ -1463,7 +1463,6 @@ static void CG_RegisterGraphics( void ) {
cgs.media.iconSave = cgi_R_RegisterShaderNoMip( "gfx/icon_save" );
cgs.media.iconLoad = cgi_R_RegisterShaderNoMip( "gfx/icon_load" );
cgs.media.iconExit = cgi_R_RegisterShaderNoMip( "gfx/icon_exit" );
// FIXME: do these conditionally
cgi_R_RegisterShader( "gfx/2d/workingCamera" );

View file

@ -150,7 +150,6 @@ typedef struct {
qhandle_t iconSave;
qhandle_t iconLoad;
qhandle_t iconExit;
//Chunks
qhandle_t chunkModels[NUM_CHUNK_TYPES][4];

View file

@ -2954,12 +2954,10 @@ void CG_ItemSelectorSelect_f( void )
}
else if (cg.itemSelectorType == ST_QUICK_MENU) {
if (cg.itemSelectorSelection == 0) {
cgi_SendConsoleCommand("togglemenu\n");
} else if (cg.itemSelectorSelection == 1) {
cgi_SendConsoleCommand("save quik*\n");
cgi_SendConsoleCommand("save quick\n");
CG_CenterPrint("Quick Saved", 240);
} else {
cgi_SendConsoleCommand("load quik\n");
cgi_SendConsoleCommand("load quick\n");
}
}
@ -3123,7 +3121,7 @@ void CG_DrawItemSelector( void )
sRGB[2] = 1.0f;
break;
case ST_QUICK_MENU:
count = 3;
count = 2;
sRGB[0] = 1.0f;
sRGB[1] = 1.0f;
sRGB[2] = 1.0f;
@ -3342,18 +3340,7 @@ void CG_DrawItemSelector( void )
sprite.customShader = force_icons[showPowers[itemId]];
break;
case ST_QUICK_MENU:
switch (itemId)
{
case 0:
sprite.customShader = cgs.media.iconExit;
break;
case 1:
sprite.customShader = cgs.media.iconSave;
break;
case 2:
sprite.customShader = cgs.media.iconLoad;
break;
}
sprite.customShader = itemId == 0 ? cgs.media.iconSave : cgs.media.iconLoad;
break;
}

View file

@ -804,8 +804,10 @@ void BG_CalculateVRSaberPosition( int saberNum, vec3_t origin, vec3_t angles )
//Move position down a bit
vec3_t axis[3];
AnglesToAxis(angles, axis);
//The "forward" axis will be adjusted
//Small adjustments to make saber align better
VectorMA(origin, -3.0f, axis[0], origin);
VectorMA(origin, -0.5f, axis[1], origin);
VectorMA(origin, 1.2f, axis[2], origin);
}
bool BG_UseVRPosition( gentity_t *ent )

View file

@ -23,7 +23,7 @@ along with this program; if not, see <http://www.gnu.org/licenses/>.
// Current version of the single player game
#include "../win32/AutoVersion.h"
#define JKXR_VERSION "1.1.18-ea"
#define JKXR_VERSION "1.1.19-ea"
#ifdef _DEBUG
#define Q3_VERSION "(debug)OpenJK: v" VERSION_STRING_DOTTED " JKXR: " JKXR_VERSION

View file

@ -2729,6 +2729,45 @@ static void CG_Draw2D( void )
CG_DrawZoomBorders();
}
if (cg.zoomMode)
{
cg.drawingHUD = CG_HUD_NORMAL;
const auto xOffset = (-vr->off_center_fov_x * 640);
const auto yOffset = (vr->off_center_fov_y * 480);
vec4_t color = { 0, 0, 0, 1 };
if (cg.stereoView == STEREO_LEFT)
{
//Left Gap
CG_FillRect(0, 0, xOffset, 480, color);
if (yOffset < 0)
{
//Bottom Gap
CG_FillRect(0, 0, 640, yOffset, color);
}
else
{
//Top Gap
CG_FillRect(0, 480 - yOffset, 640, yOffset, color);
}
}
else
{
//Right Gap
CG_FillRect(640 - xOffset, 0, xOffset, 480, color);
if (yOffset < 0)
{
//Bottom Gap
CG_FillRect(0, 0, 640, yOffset, color);
}
else
{
//Top Gap
CG_FillRect(0, 480 - yOffset, 640, yOffset, color);
}
}
}
cg.drawingHUD = CG_HUD_SCALED;
CG_DrawBatteryCharge();
@ -2802,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) {

View file

@ -1336,7 +1336,6 @@ static void CG_RegisterGraphics( void ) {
cgs.media.iconSave = cgi_R_RegisterShaderNoMip( "gfx/icon_save" );
cgs.media.iconLoad = cgi_R_RegisterShaderNoMip( "gfx/icon_load" );
cgs.media.iconExit = cgi_R_RegisterShaderNoMip( "gfx/icon_exit" );
// FIXME: do these conditionally

View file

@ -107,7 +107,6 @@ typedef struct {
qhandle_t iconSave;
qhandle_t iconLoad;
qhandle_t iconExit;
int currentDataPadIconBackground;

View file

@ -2777,8 +2777,6 @@ void CG_ItemSelectorSelect_f( void )
}
else if (cg.itemSelectorType == ST_QUICK_MENU) {
if (cg.itemSelectorSelection == 0) {
cgi_SendConsoleCommand("togglemenu\n");
} else if (cg.itemSelectorSelection == 1) {
cgi_SendConsoleCommand("save quik*\n");
CG_CenterPrint("Quick Saved", 240);
} else {
@ -2941,7 +2939,7 @@ void CG_DrawItemSelector( void )
sRGB[2] = 1.0f;
break;
case ST_QUICK_MENU:
count = 3;
count = 2;
sRGB[0] = 1.0f;
sRGB[1] = 1.0f;
sRGB[2] = 1.0f;
@ -3158,18 +3156,7 @@ void CG_DrawItemSelector( void )
sprite.customShader = force_icons[showPowers[itemId]];
break;
case ST_QUICK_MENU:
switch (itemId)
{
case 0:
sprite.customShader = cgs.media.iconExit;
break;
case 1:
sprite.customShader = cgs.media.iconSave;
break;
case 2:
sprite.customShader = cgs.media.iconLoad;
break;
}
sprite.customShader = itemId == 0 ? cgs.media.iconSave : cgs.media.iconLoad;
break;
}

View file

@ -1,9 +1,9 @@
cd assets
del z_vr_assets.pk3
del z_vr_assets_jka.pk3
cd ..
powershell Compress-Archive z_vr_assets/* z_vr_assets.zip
rename z_vr_assets.zip z_vr_assets.pk3
move z_vr_assets.pk3 assets/
powershell Compress-Archive z_vr_assets_jka/* z_vr_assets_jka.zip
rename z_vr_assets_jka.zip z_vr_assets_jka.pk3
move z_vr_assets_jka.pk3 assets/
cd assets
del z_vr_assets_jka.pk3
@ -12,4 +12,11 @@ powershell Compress-Archive z_vr_assets_jka/* z_vr_assets_jka.zip
rename z_vr_assets_jka.zip z_vr_assets_jka.pk3
move z_vr_assets_jka.pk3 assets/
cd assets
del z_vr_assets_base.pk3
cd ..
powershell Compress-Archive z_vr_assets_base/* z_vr_assets_base.zip
rename z_vr_assets_base.zip z_vr_assets_base.pk3
move z_vr_assets_base.pk3 assets/
pause

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

View file

@ -1,24 +1,24 @@
// Weapon offsets - This is the default for the weapon models
// put the weapon id at the end of the cvar name, so the knife is vr_weapon_adjustment_1
// Weapon offsets for JKXR: ACADEMY - This is the default for the weapon models
// put the weapon id at the end of the cvar name.
// Values are: scale,right,up,forward,pitch,yaw,roll
// Use "seta vr_control_scheme 99" to activate the in-game tool.
seta vr_weapon_adjustment_1 "0.55,-4.89,8.12,-12.36,-28.60,10.80,-199.50"
seta vr_weapon_adjustment_2 "1.000,-3.840,8.320,-13.680,0.000,0.000,0.000"
seta vr_weapon_adjustment_10 "1.840,-3.489,6.370,-7.946,0.000,0.000,0.000"
seta vr_weapon_adjustment_10 "1.590,-3.749,5.990,-8.266,0.000,0.000,0.000"
seta vr_weapon_adjustment_11 "1.755,-5.140,4.980,-10.462,18.700,1.000,-11.000"
seta vr_weapon_adjustment_12 "1.840,-3.087,4.424,-8.750,22.400,0.000,-21.400"
seta vr_weapon_adjustment_13 "1.000,-3.980,7.680,-10.020,0.000,0.000,0.000"
seta vr_weapon_adjustment_12 "-1.425,-1.900,4.100,-9.320,-164.401,-15.500,73.499"
seta vr_weapon_adjustment_13 "1.000,-3.980,7.680,-11.200,0.000,0.000,-1.800"
seta vr_weapon_adjustment_14 "0.52,-12.87,13.29,-22.09,11.30,26.60,-3.40"
seta vr_weapon_adjustment_17 "1.000,-6.860,12.340,-4.600,-49.700,0.000,0.000"
seta vr_weapon_adjustment_18 "0.510,-8.235,10.706,-3.922,-5.600,0.400,0.000"
seta vr_weapon_adjustment_19 "0.43,-8.97,13.22,-21.68,-4.80,-4.50,-0.40"
seta vr_weapon_adjustment_2 "1.000,-3.920,8.480,-14.100,0.000,0.000,0.000"
seta vr_weapon_adjustment_20 "0.44,-13.55,12.79,-26.06,0.30,-1.40,-0.40"
seta vr_weapon_adjustment_22 "0.64,-12.59,12.94,-20.44,11.30,26.60,-3.40"
seta vr_weapon_adjustment_3 "0.906,-4.194,8.234,-9.801,0.000,0.000,0.000"
seta vr_weapon_adjustment_4 "0.928,-4.095,9.116,-3.707,0.000,0.000,0.000"
seta vr_weapon_adjustment_5 "1.642,-2.826,6.249,-8.429,0.000,0.000,0.000"
seta vr_weapon_adjustment_6 "0.652,-3.344,13.988,-7.730,0.000,0.000,0.000"
seta vr_weapon_adjustment_7 "0.998,-4.349,6.473,-10.160,0.000,0.000,0.000"
seta vr_weapon_adjustment_8 "1.006,-4.553,11.571,-12.545,0.000,0.000,0.000"
seta vr_weapon_adjustment_9 "1.456,-3.695,6.676,-3.420,0.000,0.000,0.000"
seta vr_weapon_adjustment_3 "0.741,-4.134,7.474,-12.141,0.000,-1.200,0.000"
seta vr_weapon_adjustment_4 "0.813,-3.835,8.496,-4.027,0.600,-0.200,0.000"
seta vr_weapon_adjustment_5 "1.417,-3.246,6.909,-7.329,0.000,0.000,0.000"
seta vr_weapon_adjustment_6 "0.557,-3.864,12.468,-8.670,0.000,0.000,0.000"
seta vr_weapon_adjustment_7 "0.888,-4.729,7.873,-10.240,0.000,0.000,0.000"
seta vr_weapon_adjustment_8 "0.796,-4.553,12.111,-14.905,0.000,0.000,0.000"
seta vr_weapon_adjustment_9 "1.151,-3.615,5.416,-3.820,0.000,0.000,0.000"