Hugely improved weapon selector

also added missed splash screen image
This commit is contained in:
Simon 2022-10-17 20:29:58 +01:00
parent 958d0da03e
commit 0edba3662d
4 changed files with 17 additions and 18 deletions

View file

@ -447,7 +447,6 @@ typedef struct {
int itemSelectorType; // 0 - weapons, 1 - gadgets, 2 - fighting-style, 3 - force powers int itemSelectorType; // 0 - weapons, 1 - gadgets, 2 - fighting-style, 3 - force powers
int itemSelectorSelection; int itemSelectorSelection;
int itemSelectorTime; int itemSelectorTime;
vec3_t itemSelectorAngles;
vec3_t itemSelectorOrigin; vec3_t itemSelectorOrigin;
vec3_t itemSelectorOffset; vec3_t itemSelectorOffset;

View file

@ -2753,13 +2753,11 @@ void CG_DrawItemSelector( void )
if (vr->item_selector == 2) if (vr->item_selector == 2)
{ {
cg.itemSelectorType = 3; cg.itemSelectorType = 3;
VectorCopy(vr->offhandangles, cg.itemSelectorAngles);
VectorCopy(vr->offhandposition, cg.itemSelectorOrigin); VectorCopy(vr->offhandposition, cg.itemSelectorOrigin);
VectorCopy(vr->offhandoffset, cg.itemSelectorOffset); VectorCopy(vr->offhandoffset, cg.itemSelectorOffset);
} }
else { else {
cg.itemSelectorType = 0; cg.itemSelectorType = 0;
VectorCopy(vr->weaponangles, cg.itemSelectorAngles);
VectorCopy(vr->weaponposition, cg.itemSelectorOrigin); VectorCopy(vr->weaponposition, cg.itemSelectorOrigin);
VectorCopy(vr->weaponoffset, cg.itemSelectorOffset); VectorCopy(vr->weaponoffset, cg.itemSelectorOffset);
} }
@ -2789,8 +2787,10 @@ void CG_DrawItemSelector( void )
} }
vec3_t wheelAngles, wheelOrigin, beamOrigin, wheelForward, wheelRight, wheelUp; vec3_t wheelAngles, wheelOrigin, beamOrigin, wheelForward, wheelRight, wheelUp;
cg.itemSelectorAngles[YAW] = vr->hmdorientation[YAW]; vec3_t angles;
BG_CalculateVRPositionInWorld(cg.itemSelectorOrigin, cg.itemSelectorOffset, cg.itemSelectorAngles, wheelOrigin, wheelAngles); VectorClear(angles);
angles[YAW] = vr->hmdorientation[YAW];
BG_CalculateVRPositionInWorld(cg.itemSelectorOrigin, cg.itemSelectorOffset, angles, wheelOrigin, wheelAngles);
AngleVectors(wheelAngles, wheelForward, wheelRight, wheelUp); AngleVectors(wheelAngles, wheelForward, wheelRight, wheelUp);
VectorCopy(controllerOrigin, wheelOrigin); VectorCopy(controllerOrigin, wheelOrigin);
@ -2818,12 +2818,15 @@ void CG_DrawItemSelector( void )
{ {
vec3_t color = { 0, 0, 255 }; vec3_t color = { 0, 0, 255 };
FX_AddLine( beamOrigin, selectorOrigin, 0.1f, 1.0f, 0.0f, refEntity_t beam;
1.0f, 0.0f, 0.0f, VectorCopy(beamOrigin, beam.oldorigin);
color, color, 0.0f, VectorCopy(selectorOrigin, beam.origin );
60, cgi_R_RegisterShader( "gfx/misc/nav_line" ), beam.shaderRGBA[0] = beam.shaderRGBA[1] = beam.shaderRGBA[2] = beam.shaderRGBA[3] = 0xff;
FX_SIZE_LINEAR | FX_ALPHA_LINEAR ); beam.customShader = cgs.media.blueSaberCoreShader;
beam.reType = RT_LINE;
beam.radius = 0.4f;
cgi_R_AddRefEntityToScene( &beam );
} }
centity_t *cent = &cg_entities[cg.snap->ps.clientNum]; centity_t *cent = &cg_entities[cg.snap->ps.clientNum];
@ -2901,10 +2904,8 @@ void CG_DrawItemSelector( void )
memset(&sprite, 0, sizeof(sprite)); memset(&sprite, 0, sizeof(sprite));
vec3_t right; vec3_t right;
AngleVectors(wheelAngles, NULL, right, NULL); AngleVectors(wheelAngles, NULL, right, NULL);
float offset = ((float) s * 2.0f) + (((float) s * 0.3f) * sinf(DEG2RAD( float offset = ((float) s * 2.0f) + (((float) s * 0.3f) *
AngleNormalize360( sinf(DEG2RAD(AngleNormalize360(cg.time - cg.itemSelectorTime))));
cg.time -
cg.itemSelectorTime))));
VectorMA(wheelOrigin, offset, right, sprite.origin); VectorMA(wheelOrigin, offset, right, sprite.origin);
sprite.reType = RT_SPRITE; sprite.reType = RT_SPRITE;
sprite.customShader = cgs.media.binocularArrow; sprite.customShader = cgs.media.binocularArrow;

View file

@ -5726,7 +5726,7 @@ void ForceThrow( gentity_t *self, qboolean pull )
G_Sound( self, soundIndex ); G_Sound( self, soundIndex );
vec3_t origin, angles; vec3_t origin, angles;
if (self->client->ps.clientNum == 0) if (self->client->ps.clientNum == 0 && !cg.renderingThirdPerson)
{ {
BG_CalculateVROffHandPosition(origin, fwdangles); BG_CalculateVROffHandPosition(origin, fwdangles);
@ -6776,7 +6776,7 @@ void ForceTelepathy( gentity_t *self )
} }
vec3_t origin, angles; vec3_t origin, angles;
if (self->client->ps.clientNum == 0) if (self->client->ps.clientNum == 0 && !cg.renderingThirdPerson)
{ {
BG_CalculateVROffHandPosition(origin, angles); BG_CalculateVROffHandPosition(origin, angles);
AngleVectors(angles, forward, NULL, NULL); AngleVectors(angles, forward, NULL, NULL);
@ -7013,14 +7013,13 @@ void ForceGrip( gentity_t *self )
} }
vec3_t origin, angles; vec3_t origin, angles;
if (self->client->ps.clientNum == 0) if (self->client->ps.clientNum == 0 && !cg.renderingThirdPerson)
{ {
BG_CalculateVROffHandPosition(origin, angles); BG_CalculateVROffHandPosition(origin, angles);
AngleVectors(angles, forward, NULL, NULL); AngleVectors(angles, forward, NULL, NULL);
if (cg_showForcePowerDirection.integer) if (cg_showForcePowerDirection.integer)
{ {
vec3_t origin, angles;
vec3_t color = { 0, 255, 0 }; vec3_t color = { 0, 255, 0 };
AngleVectors( angles, forward, NULL, NULL ); AngleVectors( angles, forward, NULL, NULL );
VectorMA( origin, FORCE_GRIP_DIST, forward, end ); VectorMA( origin, FORCE_GRIP_DIST, forward, end );

Binary file not shown.

Before

Width:  |  Height:  |  Size: 158 KiB

After

Width:  |  Height:  |  Size: 275 KiB