mirror of
https://github.com/DrBeef/JKXR.git
synced 2024-11-10 14:52:00 +00:00
Several fixes
- Disruptor scope now working pretty much as expected - Fix to menu hints now rendering correctly (@MuadDib) - Removed roll from thrown saber angles
This commit is contained in:
parent
73ea7a970d
commit
baafc2ec8d
13 changed files with 88 additions and 39 deletions
|
@ -1,8 +1,8 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
package="com.drbeef.jk2quest"
|
package="com.drbeef.jk2quest"
|
||||||
android:versionCode="23"
|
android:versionCode="25"
|
||||||
android:versionName="0.3.4" android:installLocation="auto" >
|
android:versionName="0.3.6" android:installLocation="auto" >
|
||||||
|
|
||||||
<!-- Tell the system this app requires OpenGL ES 3.1. -->
|
<!-- Tell the system this app requires OpenGL ES 3.1. -->
|
||||||
<uses-feature android:glEsVersion="0x00030002" android:required="true"/>
|
<uses-feature android:glEsVersion="0x00030002" android:required="true"/>
|
||||||
|
|
|
@ -874,6 +874,17 @@ void JKVR_GetMove(float *forward, float *side, float *pos_forward, float *pos_si
|
||||||
*pitch = vr.weaponangles[PITCH];
|
*pitch = vr.weaponangles[PITCH];
|
||||||
*roll = 0.0f;
|
*roll = 0.0f;
|
||||||
}
|
}
|
||||||
|
else if (vr.cgzoommode == 2)
|
||||||
|
{
|
||||||
|
*forward = 0.0f;
|
||||||
|
*pos_forward = 0.0f;
|
||||||
|
*up = 0.0f;
|
||||||
|
*side = 0.0f;
|
||||||
|
*pos_side = 0.0f;
|
||||||
|
*yaw = vr.snapTurn + vr.weaponangles[YAW];
|
||||||
|
*pitch = vr.weaponangles[PITCH];
|
||||||
|
*roll = vr.hmdorientation[ROLL];
|
||||||
|
}
|
||||||
else if (!vr.third_person) {
|
else if (!vr.third_person) {
|
||||||
*forward = remote_movementForward;
|
*forward = remote_movementForward;
|
||||||
*pos_forward = positional_movementForward;
|
*pos_forward = positional_movementForward;
|
||||||
|
|
|
@ -16,7 +16,6 @@ typedef struct {
|
||||||
bool player_moving;
|
bool player_moving;
|
||||||
int cgzoommode;
|
int cgzoommode;
|
||||||
|
|
||||||
int weaponid;
|
|
||||||
int forceid;
|
int forceid;
|
||||||
|
|
||||||
vec3_t hmdposition;
|
vec3_t hmdposition;
|
||||||
|
|
|
@ -21,6 +21,7 @@ Authors : Simon Brown
|
||||||
#include "qcommon/q_shared.h"
|
#include "qcommon/q_shared.h"
|
||||||
#include <qcommon/qcommon.h>
|
#include <qcommon/qcommon.h>
|
||||||
#include <client/client.h>
|
#include <client/client.h>
|
||||||
|
#include <statindex.h>
|
||||||
#include "android/sys_local.h"
|
#include "android/sys_local.h"
|
||||||
#include "weapons.h"
|
#include "weapons.h"
|
||||||
|
|
||||||
|
@ -155,16 +156,18 @@ void HandleInput_Default( ovrInputStateGamepad *pFootTrackingNew, ovrInputStateG
|
||||||
powf(vr.hmdposition[1] - pOff->HeadPose.Pose.Position.y, 2) +
|
powf(vr.hmdposition[1] - pOff->HeadPose.Pose.Position.y, 2) +
|
||||||
powf(vr.hmdposition[2] - pOff->HeadPose.Pose.Position.z, 2));
|
powf(vr.hmdposition[2] - pOff->HeadPose.Pose.Position.z, 2));
|
||||||
|
|
||||||
|
|
||||||
float controllerYawHeading = 0.0f;
|
float controllerYawHeading = 0.0f;
|
||||||
//Turn on weapon stabilisation?
|
//Turn on weapon stabilisation?
|
||||||
bool offhandGripPushed = (pOffTrackedRemoteNew->Buttons & ovrButton_GripTrigger);
|
bool offhandGripPushed = (pOffTrackedRemoteNew->Buttons & ovrButton_GripTrigger);
|
||||||
if (offhandGripPushed)
|
if (offhandGripPushed)
|
||||||
{
|
{
|
||||||
if (!vr.weapon_stabilised && vr.item_selector == 0)
|
if (!vr.weapon_stabilised && vr.item_selector == 0 &&
|
||||||
|
!vr.misc_camera)
|
||||||
{
|
{
|
||||||
if (distance < STABILISATION_DISTANCE &&
|
if (distance < STABILISATION_DISTANCE &&
|
||||||
vr_two_handed_weapons->integer &&
|
vr_two_handed_weapons->integer &&
|
||||||
vr.weaponid > WP_SABER) {
|
cl.frame.ps.weapon >= WP_SABER) {
|
||||||
vr.weapon_stabilised = true;
|
vr.weapon_stabilised = true;
|
||||||
} else {
|
} else {
|
||||||
vr.item_selector = 2;
|
vr.item_selector = 2;
|
||||||
|
@ -190,7 +193,7 @@ void HandleInput_Default( ovrInputStateGamepad *pFootTrackingNew, ovrInputStateG
|
||||||
|
|
||||||
//Do this early so we can suppress other button actions when item selector is up
|
//Do this early so we can suppress other button actions when item selector is up
|
||||||
if (dominantGripPushed) {
|
if (dominantGripPushed) {
|
||||||
if (vr.item_selector == 0) {
|
if (vr.item_selector == 0 && !vr.misc_camera) {
|
||||||
vr.item_selector = 1;
|
vr.item_selector = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -232,14 +235,36 @@ void HandleInput_Default( ovrInputStateGamepad *pFootTrackingNew, ovrInputStateG
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Should we trigger the disruptor scope?
|
||||||
|
if (cl.frame.ps.weapon == WP_DISRUPTOR &&
|
||||||
|
cl.frame.ps.stats[STAT_HEALTH] > 0)
|
||||||
|
{
|
||||||
|
if (vr.weapon_stabilised &&
|
||||||
|
VectorLength(vr.weaponoffset) < 0.24f &&
|
||||||
|
vr.cgzoommode == 0) {
|
||||||
|
sendButtonAction("+altattack", true);
|
||||||
|
} else if ((VectorLength(vr.weaponoffset) >= 0.24f || !vr.weapon_stabilised) &&
|
||||||
|
vr.cgzoommode == 2) {
|
||||||
|
sendButtonActionSimple("exitzoom");
|
||||||
|
}
|
||||||
|
//We don't need to send the -altattack as the block below in the next frame will send it for us
|
||||||
|
}
|
||||||
|
|
||||||
if (vr.cgzoommode > 0)
|
if (vr.cgzoommode > 0)
|
||||||
{
|
{
|
||||||
if (between(-0.2f, primaryJoystickX, 0.2f)) {
|
if (between(-0.2f, primaryJoystickX, 0.2f)) {
|
||||||
sendButtonAction("+attack", between(0.8f, pPrimaryJoystick->y, 1.0f));
|
if (cl.frame.ps.weapon == WP_DISRUPTOR)
|
||||||
sendButtonAction("+altattack", between(-1.0f, pPrimaryJoystick->y, -0.8f));
|
{
|
||||||
|
sendButtonAction("+altattack", between(0.8f, pPrimaryJoystick->y, 1.0f));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sendButtonAction("+attack", between(0.8f, pPrimaryJoystick->y, 1.0f));
|
||||||
|
sendButtonAction("+altattack", between(-1.0f, pPrimaryJoystick->y, -0.8f));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (vr.weaponid == WP_SABER)
|
else if (cl.frame.ps.weapon == WP_SABER)
|
||||||
{
|
{
|
||||||
int mode = (int)Cvar_VariableValue("cg_thirdPerson");
|
int mode = (int)Cvar_VariableValue("cg_thirdPerson");
|
||||||
static bool switched = false;
|
static bool switched = false;
|
||||||
|
@ -316,7 +341,7 @@ void HandleInput_Default( ovrInputStateGamepad *pFootTrackingNew, ovrInputStateG
|
||||||
|
|
||||||
|
|
||||||
//For melee right hand is alt attack and left hand is attack
|
//For melee right hand is alt attack and left hand is attack
|
||||||
if (vr.weaponid == WP_MELEE) {
|
if (cl.frame.ps.weapon == WP_MELEE) {
|
||||||
//Does weapon velocity trigger attack (melee) and is it fast enough
|
//Does weapon velocity trigger attack (melee) and is it fast enough
|
||||||
if (vr.velocitytriggered) {
|
if (vr.velocitytriggered) {
|
||||||
static bool fired = false;
|
static bool fired = false;
|
||||||
|
@ -355,7 +380,7 @@ void HandleInput_Default( ovrInputStateGamepad *pFootTrackingNew, ovrInputStateG
|
||||||
ALOGV("**WEAPON EVENT** veocity triggered -attack");
|
ALOGV("**WEAPON EVENT** veocity triggered -attack");
|
||||||
sendButtonAction("+attack", vr.secondaryVelocityTriggeredAttack);
|
sendButtonAction("+attack", vr.secondaryVelocityTriggeredAttack);
|
||||||
}
|
}
|
||||||
} else if (vr.weaponid == WP_SABER) {
|
} else if (cl.frame.ps.weapon == WP_SABER) {
|
||||||
//Does weapon velocity trigger attack
|
//Does weapon velocity trigger attack
|
||||||
if (vr.velocitytriggered) {
|
if (vr.velocitytriggered) {
|
||||||
static bool fired = false;
|
static bool fired = false;
|
||||||
|
@ -556,20 +581,20 @@ void HandleInput_Default( ovrInputStateGamepad *pFootTrackingNew, ovrInputStateG
|
||||||
sendButtonAction("+moveup", (primaryButtonsNew & primaryButton1));
|
sendButtonAction("+moveup", (primaryButtonsNew & primaryButton1));
|
||||||
}
|
}
|
||||||
|
|
||||||
//Alt Fire (B Button)
|
//B Button
|
||||||
if ((primaryButtonsNew & primaryButton2) != (primaryButtonsOld & primaryButton2)) {
|
if ((primaryButtonsNew & primaryButton2) != (primaryButtonsOld & primaryButton2)) {
|
||||||
if (vr.cgzoommode > 0)
|
if (vr.cgzoommode == 1 || vr.cgzoommode == 3)
|
||||||
{
|
{
|
||||||
sendButtonActionSimple("invuse");
|
sendButtonActionSimple("invuse");
|
||||||
}
|
}
|
||||||
else if (vr.weaponid == WP_SABER && vr.velocitytriggered)
|
else if (cl.frame.ps.weapon == WP_SABER && vr.velocitytriggered)
|
||||||
{
|
{
|
||||||
//B button toggles saber on/off in first person
|
//B button toggles saber on/off in first person
|
||||||
if (primaryButtonsNew & primaryButton2) {
|
if (primaryButtonsNew & primaryButton2) {
|
||||||
sendButtonActionSimple("togglesaber");
|
sendButtonActionSimple("togglesaber");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else if (cl.frame.ps.weapon != WP_DISRUPTOR)
|
||||||
{
|
{
|
||||||
sendButtonAction("+altattack", (primaryButtonsNew & primaryButton2));
|
sendButtonAction("+altattack", (primaryButtonsNew & primaryButton2));
|
||||||
}
|
}
|
||||||
|
@ -581,7 +606,7 @@ void HandleInput_Default( ovrInputStateGamepad *pFootTrackingNew, ovrInputStateG
|
||||||
|
|
||||||
int thirdPerson = Cvar_VariableIntegerValue("cg_thirdPerson");
|
int thirdPerson = Cvar_VariableIntegerValue("cg_thirdPerson");
|
||||||
|
|
||||||
if (vr.weaponid == WP_SABER && !thirdPerson && vr.cgzoommode == 0)
|
if (cl.frame.ps.weapon == WP_SABER && !thirdPerson && vr.cgzoommode == 0)
|
||||||
{
|
{
|
||||||
static bool previous_throwing = false;
|
static bool previous_throwing = false;
|
||||||
previous_throwing = throwing;
|
previous_throwing = throwing;
|
||||||
|
@ -757,11 +782,11 @@ void HandleInput_Default( ovrInputStateGamepad *pFootTrackingNew, ovrInputStateG
|
||||||
VectorSubtract(vr.secondaryVelocityTriggerLocation, vr.hmdposition, delta2);
|
VectorSubtract(vr.secondaryVelocityTriggerLocation, vr.hmdposition, delta2);
|
||||||
if (VectorLength(delta1) > VectorLength(delta2))
|
if (VectorLength(delta1) > VectorLength(delta2))
|
||||||
{
|
{
|
||||||
sendButtonActionSimple("useGivenForce 3"); // PULL
|
sendButtonActionSimple(va("useGivenForce %i", FP_PULL));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sendButtonActionSimple("useGivenForce 4"); // PUSH
|
sendButtonActionSimple(va("useGivenForce %i", FP_PUSH));
|
||||||
}
|
}
|
||||||
|
|
||||||
vr.secondaryVelocityTriggeredAttack = false;
|
vr.secondaryVelocityTriggeredAttack = false;
|
||||||
|
|
|
@ -35,7 +35,7 @@ void HandleInput_WeaponAlign( ovrInputStateTrackedRemote *pDominantTrackedRemote
|
||||||
|
|
||||||
/*
|
/*
|
||||||
char cvar_name[64];
|
char cvar_name[64];
|
||||||
Com_sprintf(cvar_name, sizeof(cvar_name), "vr_weapon_adjustment_%i", vr.weaponid);
|
Com_sprintf(cvar_name, sizeof(cvar_name), "vr_weapon_adjustment_%i", cl.frame.ps.weapon);
|
||||||
char weapon_adjustment[256];
|
char weapon_adjustment[256];
|
||||||
Cvar_VariableStringBuffer(cvar_name, weapon_adjustment, 256);
|
Cvar_VariableStringBuffer(cvar_name, weapon_adjustment, 256);
|
||||||
sscanf(weapon_adjustment, "%f,%f,%f,%f,%f,%f,%f", &vr.test_scale,
|
sscanf(weapon_adjustment, "%f,%f,%f,%f,%f,%f,%f", &vr.test_scale,
|
||||||
|
@ -250,7 +250,7 @@ void HandleInput_WeaponAlign( ovrInputStateTrackedRemote *pDominantTrackedRemote
|
||||||
Com_sprintf(vr.test_name, sizeof(vr.test_name), "%s: %.3f", item_names[item_index], *(items[item_index]));
|
Com_sprintf(vr.test_name, sizeof(vr.test_name), "%s: %.3f", item_names[item_index], *(items[item_index]));
|
||||||
|
|
||||||
char cvar_name[64];
|
char cvar_name[64];
|
||||||
Com_sprintf(cvar_name, sizeof(cvar_name), "vr_weapon_adjustment_%i", vr.weaponid);
|
Com_sprintf(cvar_name, sizeof(cvar_name), "vr_weapon_adjustment_%i", cl.frame.ps.weapon);
|
||||||
|
|
||||||
char buffer[256];
|
char buffer[256];
|
||||||
Com_sprintf(buffer, sizeof(buffer), "%.3f,%.3f,%.3f,%.3f,%.3f,%.3f,%.3f", vr.test_scale, (vr.test_offset[0] / vr.test_scale), (vr.test_offset[1] / vr.test_scale), (vr.test_offset[2] / vr.test_scale),
|
Com_sprintf(buffer, sizeof(buffer), "%.3f,%.3f,%.3f,%.3f,%.3f,%.3f,%.3f", vr.test_scale, (vr.test_offset[0] / vr.test_scale), (vr.test_offset[1] / vr.test_scale), (vr.test_offset[2] / vr.test_scale),
|
||||||
|
|
|
@ -6846,8 +6846,6 @@ void CG_Player( centity_t *cent ) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
vr->weaponid = cg.snap->ps.weapon;
|
|
||||||
|
|
||||||
calcedMp = qfalse;
|
calcedMp = qfalse;
|
||||||
|
|
||||||
//Get the player's light level for stealth calculations
|
//Get the player's light level for stealth calculations
|
||||||
|
|
|
@ -8261,7 +8261,7 @@ static qboolean Item_Paint(itemDef_t *item, qboolean bDraw)
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
// FIXME - add some type of parameter in the menu file like descfont to specify the font for the descriptions for this menu.
|
// FIXME - add some type of parameter in the menu file like descfont to specify the font for the descriptions for this menu.
|
||||||
textWidth = DC->textWidth(textPtr, fDescScale, 4); // item->font);
|
textWidth = DC->textWidth(textPtr, fDescScale, 0); // item->font);
|
||||||
|
|
||||||
if (parent->descAlignment == ITEM_ALIGN_RIGHT)
|
if (parent->descAlignment == ITEM_ALIGN_RIGHT)
|
||||||
{
|
{
|
||||||
|
@ -8297,7 +8297,7 @@ static qboolean Item_Paint(itemDef_t *item, qboolean bDraw)
|
||||||
}
|
}
|
||||||
|
|
||||||
// FIXME - add some type of parameter in the menu file like descfont to specify the font for the descriptions for this menu.
|
// FIXME - add some type of parameter in the menu file like descfont to specify the font for the descriptions for this menu.
|
||||||
DC->drawText(xPos, parent->descY + iYadj, fDescScale, parent->descColor, textPtr, 0, parent->descTextStyle, 4); //item->font);
|
DC->drawText(xPos, parent->descY + iYadj, fDescScale, parent->descColor, textPtr, 0, parent->descTextStyle, 0); //item->font);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -141,8 +141,6 @@ void CG_ToggleBinoculars( void )
|
||||||
cg.zoomTime = cg.time;
|
cg.zoomTime = cg.time;
|
||||||
cgi_S_StartSound( NULL, cg.snap->ps.clientNum, CHAN_AUTO, cgs.media.zoomEnd );
|
cgi_S_StartSound( NULL, cg.snap->ps.clientNum, CHAN_AUTO, cgs.media.zoomEnd );
|
||||||
}
|
}
|
||||||
|
|
||||||
vr->cgzoommode = cg.zoomMode;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CG_ToggleLAGoggles( void )
|
void CG_ToggleLAGoggles( void )
|
||||||
|
@ -185,8 +183,6 @@ void CG_ToggleLAGoggles( void )
|
||||||
cg.zoomTime = cg.time;
|
cg.zoomTime = cg.time;
|
||||||
cgi_S_StartSound( NULL, cg.snap->ps.clientNum, CHAN_AUTO, cgs.media.zoomEnd );
|
cgi_S_StartSound( NULL, cg.snap->ps.clientNum, CHAN_AUTO, cgs.media.zoomEnd );
|
||||||
}
|
}
|
||||||
|
|
||||||
vr->cgzoommode = cg.zoomMode;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CG_LoadHud_f( void)
|
void CG_LoadHud_f( void)
|
||||||
|
@ -211,6 +207,7 @@ void CG_ItemSelectorSelect_f( void );
|
||||||
void CG_ItemSelectorNext_f( void );
|
void CG_ItemSelectorNext_f( void );
|
||||||
void CG_ItemSelectorPrev_f( void );
|
void CG_ItemSelectorPrev_f( void );
|
||||||
void CG_ToggleSaber_f( void );
|
void CG_ToggleSaber_f( void );
|
||||||
|
void CG_ExitZoom_f( void );
|
||||||
|
|
||||||
/* This array MUST be sorted correctly by alphabetical name field */
|
/* This array MUST be sorted correctly by alphabetical name field */
|
||||||
static consoleCommand_t commands[] = {
|
static consoleCommand_t commands[] = {
|
||||||
|
@ -253,6 +250,7 @@ static consoleCommand_t commands[] = {
|
||||||
{ "itemselectornext", CG_ItemSelectorNext_f },
|
{ "itemselectornext", CG_ItemSelectorNext_f },
|
||||||
{ "itemselectorprev", CG_ItemSelectorPrev_f },
|
{ "itemselectorprev", CG_ItemSelectorPrev_f },
|
||||||
{ "togglesaber", CG_ToggleSaber_f },
|
{ "togglesaber", CG_ToggleSaber_f },
|
||||||
|
{ "exitzoom", CG_ExitZoom_f },
|
||||||
};
|
};
|
||||||
|
|
||||||
static const size_t numCommands = ARRAY_LEN( commands );
|
static const size_t numCommands = ARRAY_LEN( commands );
|
||||||
|
|
|
@ -2765,6 +2765,8 @@ void CG_DrawActive( stereoFrame_t stereoView ) {
|
||||||
VectorNormalize( vright_n );
|
VectorNormalize( vright_n );
|
||||||
VectorNormalize( vup_n );
|
VectorNormalize( vup_n );
|
||||||
|
|
||||||
|
vr->cgzoommode = cg.zoomMode;
|
||||||
|
|
||||||
cg.refdef.stereoView = stereoView;
|
cg.refdef.stereoView = stereoView;
|
||||||
switch ( stereoView ) {
|
switch ( stereoView ) {
|
||||||
case STEREO_CENTER:
|
case STEREO_CENTER:
|
||||||
|
@ -2790,6 +2792,7 @@ void CG_DrawActive( stereoFrame_t stereoView ) {
|
||||||
cg.refdef.worldscale = cg_worldScale.value;
|
cg.refdef.worldscale = cg_worldScale.value;
|
||||||
if (!in_camera &&
|
if (!in_camera &&
|
||||||
!in_misccamera &&
|
!in_misccamera &&
|
||||||
|
cg.zoomMode != 2 &&
|
||||||
!cg.renderingThirdPerson)
|
!cg.renderingThirdPerson)
|
||||||
{
|
{
|
||||||
VectorCopy(vr->hmdorientation, cg.refdef.viewangles);
|
VectorCopy(vr->hmdorientation, cg.refdef.viewangles);
|
||||||
|
@ -2798,6 +2801,15 @@ void CG_DrawActive( stereoFrame_t stereoView ) {
|
||||||
AnglesToAxis(cg.refdef.viewangles, cg.refdef.viewaxis);
|
AnglesToAxis(cg.refdef.viewangles, cg.refdef.viewaxis);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (cg.zoomMode == 2)
|
||||||
|
{
|
||||||
|
cg.refdef.viewangles[ROLL] = vr->clientviewangles[ROLL];
|
||||||
|
cg.refdef.viewangles[PITCH] = vr->weaponangles[PITCH];
|
||||||
|
cg.refdef.viewangles[YAW] = (vr->clientviewangles[YAW] - vr->hmdorientation[YAW])
|
||||||
|
+ vr->weaponangles[YAW] + SHORT2ANGLE(cg.snap->ps.delta_angles[YAW]);
|
||||||
|
AnglesToAxis(cg.refdef.viewangles, cg.refdef.viewaxis);
|
||||||
|
}
|
||||||
|
|
||||||
if (!in_camera &&
|
if (!in_camera &&
|
||||||
!in_misccamera &&
|
!in_misccamera &&
|
||||||
cg.renderingThirdPerson)
|
cg.renderingThirdPerson)
|
||||||
|
|
|
@ -4886,12 +4886,6 @@ void CG_Player(centity_t *cent ) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cg.snap->ps.stats[STAT_HEALTH] > 0) {
|
|
||||||
vr->weaponid = cg.snap->ps.weapon;
|
|
||||||
} else {
|
|
||||||
vr->weaponid = WP_NONE;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (cent->gent->client->ps.clientNum == 0) {
|
if (cent->gent->client->ps.clientNum == 0) {
|
||||||
vr->velocitytriggered = (!cg.renderingThirdPerson &&
|
vr->velocitytriggered = (!cg.renderingThirdPerson &&
|
||||||
(cg.snap->ps.weapon == WP_SABER || cg.snap->ps.weapon == WP_MELEE));
|
(cg.snap->ps.weapon == WP_SABER || cg.snap->ps.weapon == WP_MELEE));
|
||||||
|
|
|
@ -2651,6 +2651,18 @@ void CG_Weapon_f( void )
|
||||||
|
|
||||||
void Cmd_UseInventory_f(gentity_t *ent);
|
void Cmd_UseInventory_f(gentity_t *ent);
|
||||||
|
|
||||||
|
void CG_ExitZoom_f( )
|
||||||
|
{
|
||||||
|
if ( cg.zoomMode == 2 )
|
||||||
|
{
|
||||||
|
G_SoundOnEnt( pm->gent, CHAN_AUTO, "sound/weapons/disruptor/zoomend.wav" );
|
||||||
|
// already zooming, so must be wanting to turn it off
|
||||||
|
cg.zoomMode = 0;
|
||||||
|
cg.zoomTime = cg.time;
|
||||||
|
cg.zoomLocked = qfalse;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void CG_ToggleSaber_f( )
|
void CG_ToggleSaber_f( )
|
||||||
{
|
{
|
||||||
player->client->ps.saberActive = (qboolean)!player->client->ps.saberActive;
|
player->client->ps.saberActive = (qboolean)!player->client->ps.saberActive;
|
||||||
|
|
|
@ -8589,10 +8589,7 @@ void PM_AdjustAttackStates( pmove_t *pm )
|
||||||
}
|
}
|
||||||
else if ( cg.zoomMode == 2 )
|
else if ( cg.zoomMode == 2 )
|
||||||
{
|
{
|
||||||
G_SoundOnEnt( pm->gent, CHAN_AUTO, "sound/weapons/disruptor/zoomend.wav" );
|
G_SoundOnEnt( pm->gent, CHAN_AUTO, "sound/weapons/disruptor/zoomstart.wav" );
|
||||||
// already zooming, so must be wanting to turn it off
|
|
||||||
cg.zoomMode = 0;
|
|
||||||
cg.zoomTime = cg.time;
|
|
||||||
cg.zoomLocked = qfalse;
|
cg.zoomLocked = qfalse;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3976,9 +3976,12 @@ void WP_RunSaber( gentity_t *self, gentity_t *saber )
|
||||||
//figure out where saber should be
|
//figure out where saber should be
|
||||||
vec3_t forward, saberHome, saberDest, fwdangles = {0};
|
vec3_t forward, saberHome, saberDest, fwdangles = {0};
|
||||||
|
|
||||||
if (self->client->ps.clientNum == 0)
|
if (self->client->ps.clientNum == 0 && !cg.renderingThirdPerson)
|
||||||
{
|
{
|
||||||
BG_CalculateVRWeaponPosition(saberHome, fwdangles);
|
BG_CalculateVRWeaponPosition(saberHome, fwdangles);
|
||||||
|
|
||||||
|
//Ignore roll
|
||||||
|
fwdangles[ROLL] = 0;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
VectorCopy(self->client->ps.viewangles, fwdangles);
|
VectorCopy(self->client->ps.viewangles, fwdangles);
|
||||||
|
|
Loading…
Reference in a new issue