Fix quick save crash

This commit is contained in:
Simon 2023-05-09 22:06:11 +01:00
parent 176d7efead
commit 4405c2214f

View file

@ -254,38 +254,46 @@ void Touch_Multi( gentity_t *self, gentity_t *other, trace_t *trace )
} }
} }
bool useGestureAllowed = false;
if (vr)
{
bool thirdPersonActive = gi.cvar("cg_thirdPerson", "0", CVAR_TEMP)->integer; bool thirdPersonActive = gi.cvar("cg_thirdPerson", "0", CVAR_TEMP)->integer;
bool useGestureEnabled = gi.cvar("vr_gesture_triggered_use", "1", CVAR_ARCHIVE)->integer; // defined in VrCvars.h cvar_t *vr_gesture_triggered_use = gi.cvar("vr_gesture_triggered_use", "1", CVAR_ARCHIVE);
bool useGestureAllowed = useGestureEnabled && !thirdPersonActive && !vr->remote_droid; bool useGestureEnabled = vr_gesture_triggered_use == nullptr ||
if ( (self->spawnflags & 2) && ( !( self->spawnflags & 4 ) || ( ( self->spawnflags & 4) && !useGestureAllowed ) ) ) vr_gesture_triggered_use->integer; // defined in VrCvars.h
useGestureAllowed = useGestureEnabled && !thirdPersonActive && !vr->remote_droid;
if ((self->spawnflags & 2) &&
(!(self->spawnflags & 4) || ((self->spawnflags & 4) && !useGestureAllowed)))
{ // FACING and... ...is not USE_BUTTON or... ...is USE_BUTTON but use gestures are not active { // FACING and... ...is not USE_BUTTON or... ...is USE_BUTTON but use gestures are not active
// In case of buttons activated by use gesture, we do not need to check if we are facing them as we are touching them by hand. // In case of buttons activated by use gesture, we do not need to check if we are facing them as we are touching them by hand.
vec3_t forward; vec3_t forward;
if ( other->client ) if (other->client)
{ {
if ( (other->client->ps.clientNum == 0) && (self->spawnflags & 4) && !thirdPersonActive && !vr->remote_droid ) if ((other->client->ps.clientNum == 0) && (self->spawnflags & 4) &&
!thirdPersonActive && !vr->remote_droid)
{ {
// In case of USE_BUTTON, check facing by controller and not by head (if not in 3rd person or controlling droid) // In case of USE_BUTTON, check facing by controller and not by head (if not in 3rd person or controlling droid)
vec3_t origin, angles; vec3_t origin, angles;
BG_CalculateVRWeaponPosition(origin, angles); BG_CalculateVRWeaponPosition(origin, angles);
AngleVectors( angles, forward, NULL, NULL ); AngleVectors(angles, forward, NULL, NULL);
} }
else else
{ {
AngleVectors( other->client->ps.viewangles, forward, NULL, NULL ); AngleVectors(other->client->ps.viewangles, forward, NULL, NULL);
} }
} }
else else
{ {
AngleVectors( other->currentAngles, forward, NULL, NULL ); AngleVectors(other->currentAngles, forward, NULL, NULL);
} }
if ( DotProduct( self->movedir, forward ) < 0.5 ) if (DotProduct(self->movedir, forward) < 0.5)
{//Not Within 45 degrees {//Not Within 45 degrees
return; return;
} }
} }
}
if ( self->spawnflags & 8 ) if ( self->spawnflags & 8 )
{//FIRE_BUTTON {//FIRE_BUTTON