diff --git a/source/common/rendering/hwrenderer/data/hw_vrmodes.cpp b/source/common/rendering/hwrenderer/data/hw_vrmodes.cpp index c477ce5e6..3e8877d6a 100644 --- a/source/common/rendering/hwrenderer/data/hw_vrmodes.cpp +++ b/source/common/rendering/hwrenderer/data/hw_vrmodes.cpp @@ -344,9 +344,20 @@ VSMatrix VREyeInfo::GetPlayerSpriteProjection(int width, int height) const get_weapon_pos_and_angle(x, y, z, pitch, yaw); new_projection.translate(-x * weapon_stereo_effect, (z-hmdPosition[1]) * weapon_stereo_effect, -y * weapon_stereo_effect); - new_projection.rotate(weaponangles[YAW] - hmdorientation[YAW], 0, 1, 0); - new_projection.rotate(weaponangles[PITCH], 1, 0, 0); - new_projection.rotate(weaponangles[ROLL], 0, 0, 1); + if (vr_control_scheme < 10) + { + // Right-handed + new_projection.rotate(weaponangles[YAW] - hmdorientation[YAW], 0, 1, 0); + new_projection.rotate(weaponangles[PITCH], 1, 0, 0); + new_projection.rotate(weaponangles[ROLL], 0, 0, 1); + } + else + { + // Left-handed + new_projection.rotate(180.0f + weaponangles[YAW] - hmdorientation[YAW], 0, 1, 0); + new_projection.rotate(-weaponangles[PITCH], 1, 0, 0); + new_projection.rotate(-weaponangles[ROLL], 0, 0, 1); + } float weapon_scale = 0.6f; new_projection.scale(-weapon_scale, weapon_scale, -weapon_scale); diff --git a/source/common/startscreen/endoom.cpp b/source/common/startscreen/endoom.cpp index 073d2b295..4dbf0e502 100644 --- a/source/common/startscreen/endoom.cpp +++ b/source/common/startscreen/endoom.cpp @@ -67,7 +67,7 @@ // PUBLIC DATA DEFINITIONS ------------------------------------------------- -CUSTOM_CVAR(Int, showendoom, 1, CVAR_ARCHIVE|CVAR_GLOBALCONFIG) +CUSTOM_CVAR(Int, showendoom, 0, CVAR_ARCHIVE|CVAR_GLOBALCONFIG) { if (self < 0) self = 0; else if (self > 2) self=2; diff --git a/source/games/duke/src/player_r.cpp b/source/games/duke/src/player_r.cpp index b9d837e6a..9b5c03494 100644 --- a/source/games/duke/src/player_r.cpp +++ b/source/games/duke/src/player_r.cpp @@ -231,9 +231,16 @@ static void shootweapon(DDukeActor* actor, int p, DVector3 pos, DAngle ang, int { if (aimed == nullptr) { + //I've adjusted the pistol to be a little less frustratingly random in VR +#ifdef _NOTVR ang += DAngle22_5 / 8 - randomAngle(22.5 / 4); setFreeAimVelocity(vel, zvel, ps[p].Angles.getPitchWithView(), 16.); zvel += 0.5 - krandf(1); +#else + ang += DAngle22_5 / 32 - randomAngle(22.5 / 16); + setFreeAimVelocity(vel, zvel, ps[p].Angles.getPitchWithView(), 16.); + zvel += 0.125 - krandf(0.25); +#endif } } else diff --git a/wadsrc/static/menudef.txt b/wadsrc/static/menudef.txt index b1154e982..99f5ea4d1 100644 --- a/wadsrc/static/menudef.txt +++ b/wadsrc/static/menudef.txt @@ -540,8 +540,8 @@ OptionValue "DirectionMode" OptionValue "ControlScheme" { - 10, "Right Handed" - 0, "Left Handed" + 0, "Right Handed" + 10, "Left Handed" } OptionMenu "VROptionsMenu" protected