mirror of
https://github.com/DrBeef/RTCWQuest.git
synced 2025-04-22 23:11:02 +00:00
Laser Sight
also some small fixes to the left-handed weapon orientation, now seems totally correct
This commit is contained in:
parent
2d44b6bd40
commit
8a98d203d9
8 changed files with 58 additions and 11 deletions
|
@ -48,7 +48,8 @@ void HandleInput_Default( ovrInputStateTrackedRemote *pDominantTrackedRemoteNew,
|
|||
ovrTracking * pWeapon = pDominantTracking;
|
||||
ovrTracking * pOff = pOffTracking;
|
||||
if (vr.weaponid == WP_AKIMBO &&
|
||||
!vr.right_handed)
|
||||
!vr.right_handed &&
|
||||
!RTCWVR_useScreenLayer())
|
||||
{
|
||||
//Revert to same weapon controls as right-handed if using akimbo
|
||||
pWeapon = pOffTracking;
|
||||
|
|
|
@ -2274,6 +2274,7 @@ void trap_Cvar_Register( vmCvar_t *vmCvar, const char *varName, const cha
|
|||
void trap_Cvar_Update( vmCvar_t *vmCvar );
|
||||
void trap_Cvar_Set( const char *var_name, const char *value );
|
||||
void trap_Cvar_VariableStringBuffer( const char *var_name, char *buffer, int bufsize );
|
||||
int trap_Cvar_VariableIntegerValue( const char *var_name);
|
||||
|
||||
// ServerCommand and ConsoleCommand parameter access
|
||||
int trap_Argc( void );
|
||||
|
|
|
@ -368,7 +368,7 @@ cvarTable_t cvarTable[] = {
|
|||
{ &cg_reticleBrightness, "cg_reticleBrightness", "0.7", CVAR_ARCHIVE },
|
||||
{ &cg_markTime, "cg_marktime", "20000", CVAR_ARCHIVE },
|
||||
{ &cg_lagometer, "cg_lagometer", "1", CVAR_ARCHIVE },
|
||||
{ &cg_railTrailTime, "cg_railTrailTime", "50", CVAR_ARCHIVE },
|
||||
{ &cg_railTrailTime, "cg_railTrailTime", "25", CVAR_ARCHIVE },
|
||||
{ &cg_gun_x, "cg_gunX", "0", CVAR_CHEAT },
|
||||
{ &cg_gun_y, "cg_gunY", "0", CVAR_CHEAT },
|
||||
{ &cg_gun_z, "cg_gunZ", "0", CVAR_CHEAT },
|
||||
|
|
|
@ -85,6 +85,7 @@ typedef enum {
|
|||
CG_CVAR_UPDATE,
|
||||
CG_CVAR_SET,
|
||||
CG_CVAR_VARIABLESTRINGBUFFER,
|
||||
CG_CVAR_VARIABLE_INTEGER_VALUE,
|
||||
CG_ARGC,
|
||||
CG_ARGV,
|
||||
CG_ARGS,
|
||||
|
|
|
@ -78,6 +78,10 @@ void trap_Cvar_VariableStringBuffer( const char *var_name, char *buffer, int buf
|
|||
syscall( CG_CVAR_VARIABLESTRINGBUFFER, var_name, buffer, bufsize );
|
||||
}
|
||||
|
||||
int trap_Cvar_VariableIntegerValue( const char *var_name ) {
|
||||
return syscall( CG_CVAR_VARIABLE_INTEGER_VALUE, var_name );
|
||||
}
|
||||
|
||||
int trap_Argc( void ) {
|
||||
return syscall( CG_ARGC );
|
||||
}
|
||||
|
|
|
@ -1006,7 +1006,12 @@ void CG_RailTrail2( clientInfo_t *ci, vec3_t start, vec3_t end ) {
|
|||
VectorCopy( end, re->oldorigin );
|
||||
|
||||
// // still allow different colors so we can tell AI shots from player shots, etc.
|
||||
le->color[3] = 1.0f;
|
||||
if ( ci ) {
|
||||
if (ci->health == 1)
|
||||
{
|
||||
le->color[3] = (ci->handicap / 255.0f);
|
||||
}
|
||||
le->color[0] = ci->color[0] * 0.75;
|
||||
le->color[1] = ci->color[1] * 0.75;
|
||||
le->color[2] = ci->color[2] * 0.75;
|
||||
|
@ -1015,7 +1020,6 @@ void CG_RailTrail2( clientInfo_t *ci, vec3_t start, vec3_t end ) {
|
|||
le->color[1] = 0;
|
||||
le->color[2] = 0;
|
||||
}
|
||||
le->color[3] = 1.0f;
|
||||
|
||||
AxisClear( re->axis );
|
||||
}
|
||||
|
@ -2008,12 +2012,9 @@ static float CG_CalculateWeaponPositionAndScale( playerState_t *ps, vec3_t origi
|
|||
|
||||
vec3_t offset;
|
||||
|
||||
char buffer[32];
|
||||
trap_Cvar_VariableStringBuffer("vr_control_scheme", buffer, 32);
|
||||
|
||||
//Weapon offset debugging
|
||||
float scale=1.0f;
|
||||
if (strcmp(buffer, "99") == 0) {
|
||||
if (trap_Cvar_VariableIntegerValue("vr_control_scheme") == 99) {
|
||||
scale = cgVR->test_scale;
|
||||
|
||||
//Adjust angles for weapon models that aren't aligned very well
|
||||
|
@ -2063,6 +2064,12 @@ static float CG_CalculateWeaponPositionAndScale( playerState_t *ps, vec3_t origi
|
|||
&(adjust[PITCH]), &(adjust[YAW]), &(adjust[ROLL]));
|
||||
VectorScale(temp_offset, scale, offset);
|
||||
|
||||
if (!cgVR->right_handed)
|
||||
{
|
||||
//yaw needs to go in the other direction as left handed model is reversed
|
||||
adjust[YAW] *= -1.0f;
|
||||
}
|
||||
|
||||
//Adjust angles for weapon models that aren't aligned very well
|
||||
matrix4x4 m1, m2, m3;
|
||||
vec3_t zero;
|
||||
|
@ -3411,9 +3418,7 @@ void CG_AddViewWeapon( playerState_t *ps ) {
|
|||
return;
|
||||
}
|
||||
|
||||
char buffer[32];
|
||||
trap_Cvar_VariableStringBuffer("vr_control_scheme", buffer, 32);
|
||||
qboolean weaponDebugging = (strcmp(buffer, "99") == 0);
|
||||
qboolean weaponDebugging = trap_Cvar_VariableIntegerValue("vr_control_scheme") == 99;
|
||||
|
||||
/* // drop gun lower at higher fov
|
||||
if ( cg_fov.integer > 90 ) {
|
||||
|
@ -3556,6 +3561,39 @@ void CG_AddViewWeapon( playerState_t *ps ) {
|
|||
CG_RailTrail2(&ci, origin, endUp);
|
||||
}
|
||||
|
||||
if (trap_Cvar_VariableIntegerValue("vr_lasersight") != 0 &&
|
||||
cgVR->backpackitemactive == 0)
|
||||
{
|
||||
switch (ps->weapon)
|
||||
{
|
||||
case WP_KNIFE:
|
||||
case WP_DYNAMITE:
|
||||
case WP_GRENADE_LAUNCHER:
|
||||
case WP_GRENADE_PINEAPPLE:
|
||||
break;
|
||||
default:
|
||||
{
|
||||
vec3_t origin;
|
||||
vec3_t endForward;
|
||||
vec3_t angles;
|
||||
clientInfo_t ci;
|
||||
CG_CalculateVRWeaponPosition(0, origin, angles);
|
||||
|
||||
vec3_t forward, right, up;
|
||||
AngleVectors(angles, forward, right, up);
|
||||
|
||||
trace_t trace;
|
||||
VectorMA(origin, 8192, forward, endForward);
|
||||
trap_CM_BoxTrace(&trace, origin, endForward, NULL, NULL, 0, MASK_SOLID);
|
||||
|
||||
ci.health = 1;
|
||||
ci.handicap = 128; // value out of 255 for alpha channel
|
||||
VectorSet(ci.color, 1, 0, 0);
|
||||
CG_RailTrail2(&ci, origin, trace.endpos);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
cg.predictedPlayerEntity.lastWeaponClientFrame = cg.clientFrame;
|
||||
}
|
||||
|
||||
|
|
|
@ -466,6 +466,8 @@ int CL_CgameSystemCalls( int *args ) {
|
|||
case CG_CVAR_VARIABLESTRINGBUFFER:
|
||||
Cvar_VariableStringBuffer( VMA( 1 ), VMA( 2 ), args[3] );
|
||||
return 0;
|
||||
case CG_CVAR_VARIABLE_INTEGER_VALUE:
|
||||
return Cvar_VariableIntegerValue( VMA( 1 ) );
|
||||
case CG_ARGC:
|
||||
return Cmd_Argc();
|
||||
case CG_ARGV:
|
||||
|
|
|
@ -1113,7 +1113,7 @@ void R_Register( void ) {
|
|||
r_facePlaneCull = ri.Cvar_Get( "r_facePlaneCull", "1", CVAR_ARCHIVE );
|
||||
|
||||
r_railWidth = ri.Cvar_Get( "r_railWidth", "16", CVAR_ARCHIVE );
|
||||
r_railCoreWidth = ri.Cvar_Get( "r_railCoreWidth", "0.25", CVAR_ARCHIVE );
|
||||
r_railCoreWidth = ri.Cvar_Get( "r_railCoreWidth", "0.125", CVAR_ARCHIVE );
|
||||
r_railSegmentLength = ri.Cvar_Get( "r_railSegmentLength", "32", CVAR_ARCHIVE );
|
||||
|
||||
r_waterFogColor = ri.Cvar_Get( "r_waterFogColor", "0", CVAR_ROM ); //----(SA) added
|
||||
|
|
Loading…
Reference in a new issue