From 930fb2c49f041f3d3cee8b715af4143da56d3637 Mon Sep 17 00:00:00 2001 From: Simon Date: Sun, 6 Mar 2022 23:03:37 +0000 Subject: [PATCH] Fix weapon selector not being accessible on multiplayer servers --- android/app/src/main/AndroidManifest.xml | 4 ++-- .../app/src/main/cpp/code/cgame/cg_weapons.c | 23 ++++++++++++++++--- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index b9cfbf69..b01328be 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -2,8 +2,8 @@ + android:versionCode="27" + android:versionName="0.19.1"> diff --git a/android/app/src/main/cpp/code/cgame/cg_weapons.c b/android/app/src/main/cpp/code/cgame/cg_weapons.c index 5dfd9c1b..8ef19056 100644 --- a/android/app/src/main/cpp/code/cgame/cg_weapons.c +++ b/android/app/src/main/cpp/code/cgame/cg_weapons.c @@ -2060,7 +2060,24 @@ void CG_DrawHolsteredWeapons( void ) trap_R_AddRefEntityToScene( &blob ); } - float startingPositionYaw = cg.refdefViewAngles[YAW] + (((j - (j&1 ? 0 : 1)) / 2.0f) * SEP); + vec3_t viewangles, vieworg; + VectorCopy(cg.refdefViewAngles, viewangles); + VectorCopy(cg.refdef.vieworg, vieworg); + if (!cgs.localServer) + { + VectorCopy(vr->hmdorientation, viewangles); + viewangles[YAW] = SHORT2ANGLE(cg.predictedPlayerState.delta_angles[YAW]) + vr->clientviewangles[YAW]; + + vec3_t pos, hmdposition; + VectorClear(pos); + VectorSubtract(vr->hmdposition, vr->hmdorigin, hmdposition); + rotateAboutOrigin(hmdposition[2], hmdposition[0], + cg.refdefViewAngles[YAW] - vr->calculated_weaponangles[YAW], pos); + VectorScale(pos, trap_Cvar_VariableValue("vr_worldscale"), pos); + VectorSubtract(cg.refdef.vieworg, pos, vieworg); + } + + float startingPositionYaw = viewangles[YAW] + (((j - (j&1 ? 0 : 1)) / 2.0f) * SEP); startingPositionYaw = AngleNormalize360(startingPositionYaw); for (int w = j-1; w >= 0; --w) { @@ -2074,7 +2091,7 @@ void CG_DrawHolsteredWeapons( void ) int dist = (cg.time - cg.weaponHolsterTime) / 10; if (dist > DIST) dist = DIST; - VectorMA(cg.refdef.vieworg, dist, forward, iconOrigin); + VectorMA(vieworg, dist, forward, iconOrigin); float worldscale = trap_Cvar_VariableValue("vr_worldscale"); iconOrigin[2] -= PLAYER_HEIGHT; @@ -2110,7 +2127,7 @@ void CG_DrawHolsteredWeapons( void ) VectorCopy(iconOrigin, ent.origin); vec3_t iconAngles; - VectorCopy(cg.refdefViewAngles, iconAngles); + VectorCopy(viewangles, iconAngles); iconAngles[YAW] -= 145.0f; if (weapons[w] == WP_GAUNTLET) {