mirror of
https://github.com/DrBeef/QuakeQuest.git
synced 2024-11-27 22:42:06 +00:00
Couple of extra fixes
* Two handed weapons * Additional right-hand keys on the rubbish virtual keyboard for function keys * Increased version number
This commit is contained in:
parent
4952cc4d9c
commit
189abfb9a8
5 changed files with 53 additions and 22 deletions
|
@ -1,8 +1,9 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
package="com.drbeef.quakequest"
|
package="com.drbeef.quakequest"
|
||||||
android:versionCode="17"
|
android:versionCode="18"
|
||||||
android:versionName="1.4.9" android:installLocation="auto" >
|
android:versionName="1.4.10"
|
||||||
|
android:installLocation="auto" >
|
||||||
|
|
||||||
<!-- Tell the system this app requires OpenGL ES 3.1. -->
|
<!-- Tell the system this app requires OpenGL ES 3.1. -->
|
||||||
<uses-feature android:glEsVersion="0x00030001" android:required="true"/>
|
<uses-feature android:glEsVersion="0x00030001" android:required="true"/>
|
||||||
|
@ -16,7 +17,12 @@
|
||||||
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
|
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
|
||||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
||||||
<application android:allowBackup="false" android:icon="@drawable/ic_qquest" android:label="@string/quakequest">
|
<application
|
||||||
|
android:allowBackup="false"
|
||||||
|
android:icon="@drawable/ic_qquest"
|
||||||
|
android:label="@string/quakequest"
|
||||||
|
android:extractNativeLibs="true">
|
||||||
|
|
||||||
<meta-data android:name="com.samsung.android.vr.application.mode" android:value="vr_only"/>
|
<meta-data android:name="com.samsung.android.vr.application.mode" android:value="vr_only"/>
|
||||||
<meta-data android:name="com.oculus.supportedDevices" android:value="quest|quest2"/>
|
<meta-data android:name="com.oculus.supportedDevices" android:value="quest|quest2"/>
|
||||||
<!-- The activity is the built-in NativeActivity framework class. -->
|
<!-- The activity is the built-in NativeActivity framework class. -->
|
||||||
|
|
|
@ -23,8 +23,8 @@ android {
|
||||||
abiFilters 'arm64-v8a'
|
abiFilters 'arm64-v8a'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
minSdkVersion 24
|
minSdkVersion 26
|
||||||
targetSdkVersion 29
|
targetSdkVersion 26
|
||||||
}
|
}
|
||||||
|
|
||||||
task prepareKotlinBuildScriptModel {
|
task prepareKotlinBuildScriptModel {
|
||||||
|
|
|
@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-all.zip
|
||||||
|
|
|
@ -276,6 +276,7 @@ vec3_t hmdorientation;
|
||||||
extern float gunangles[3];
|
extern float gunangles[3];
|
||||||
float weaponOffset[3];
|
float weaponOffset[3];
|
||||||
float weaponVelocity[3];
|
float weaponVelocity[3];
|
||||||
|
qboolean weapon_stabilised;
|
||||||
|
|
||||||
float vrFOV;
|
float vrFOV;
|
||||||
|
|
||||||
|
@ -1282,8 +1283,8 @@ int left_grid = 0;
|
||||||
char left_lower[3][10] = {"bcfihgdae", "klorqpmjn", "tuwzyxvs "};
|
char left_lower[3][10] = {"bcfihgdae", "klorqpmjn", "tuwzyxvs "};
|
||||||
char left_shift[3][10] = {"BCFIHGDAE", "KLORQPMJN", "TUWZYXVS "};
|
char left_shift[3][10] = {"BCFIHGDAE", "KLORQPMJN", "TUWZYXVS "};
|
||||||
int right_grid = 0;
|
int right_grid = 0;
|
||||||
char right_lower[2][10] = {"236987415", "+-)]&[(?0"};
|
char right_lower[3][10] = {"236987415", "+-)]&[(?0", { K_F1, K_F2, K_F3, K_F4, K_F5, K_F6, K_F7, K_F8, 0}};
|
||||||
char right_shift[2][10] = {"\"*:|._~/#", "%^}>,<{\\@"};
|
char right_shift[3][10] = {"\"*:|._~/#", "%^}>,<{\\@", { 0, K_F9, 0, K_F12, 0, K_F10, 0, K_F11, 0}};
|
||||||
|
|
||||||
char left_grid_map[2][3][3][8] = {
|
char left_grid_map[2][3][3][8] = {
|
||||||
{
|
{
|
||||||
|
@ -1312,27 +1313,27 @@ char left_grid_map[2][3][3][8] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
char right_grid_map[2][3][2][8] = {
|
char right_grid_map[2][3][3][8] = {
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
"1 2 3", "? + -"
|
"1 2 3", "? + -", "F1 F2 F3"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"4 5 6", "( 0 )"
|
"4 5 6", "( 0 )", "F8 F4"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"7 8 9", "[ & ]"
|
"7 8 9", "[ & ]", "F7 F6 F5"
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
"/ \" *", "\\ % ^"
|
"/ \" *", "\\ % ^", " F9 "
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"~ # :", "{ @ }"
|
"~ # :", "{ @ }", "F12 F10"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"_ . |", "< , >"
|
"_ . |", "< , >", " F11 "
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -1501,6 +1502,10 @@ static void weaponHaptics()
|
||||||
{
|
{
|
||||||
timeLastHaptic = timeNow;
|
timeLastHaptic = timeNow;
|
||||||
Android_Vibrate(hapticLength, cl_righthanded.integer ? 1 : 0, hapticLevel);
|
Android_Vibrate(hapticLength, cl_righthanded.integer ? 1 : 0, hapticLevel);
|
||||||
|
if (weapon_stabilised)
|
||||||
|
{
|
||||||
|
Android_Vibrate(hapticLength, cl_righthanded.integer ? 0 : 1, hapticLevel);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1588,7 +1593,7 @@ static void ovrApp_HandleInput( ovrApp * app )
|
||||||
if ((rightTrackedRemoteState_new.Buttons & ovrButton_GripTrigger) &&
|
if ((rightTrackedRemoteState_new.Buttons & ovrButton_GripTrigger) &&
|
||||||
(rightTrackedRemoteState_new.Buttons & ovrButton_GripTrigger) !=
|
(rightTrackedRemoteState_new.Buttons & ovrButton_GripTrigger) !=
|
||||||
(rightTrackedRemoteState_old.Buttons & ovrButton_GripTrigger)) {
|
(rightTrackedRemoteState_old.Buttons & ovrButton_GripTrigger)) {
|
||||||
right_grid = (++right_grid) % 2;
|
right_grid = (++right_grid) % 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
char left_char;
|
char left_char;
|
||||||
|
@ -1654,7 +1659,15 @@ static void ovrApp_HandleInput( ovrApp * app )
|
||||||
rightTrackedRemoteState_old = rightTrackedRemoteState_new;
|
rightTrackedRemoteState_old = rightTrackedRemoteState_new;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
float distance = sqrtf(powf(offHandRemoteTracking->HeadPose.Pose.Position.x - dominantRemoteTracking->HeadPose.Pose.Position.x, 2) +
|
||||||
|
powf(offHandRemoteTracking->HeadPose.Pose.Position.y - dominantRemoteTracking->HeadPose.Pose.Position.y, 2) +
|
||||||
|
powf(offHandRemoteTracking->HeadPose.Pose.Position.z - dominantRemoteTracking->HeadPose.Pose.Position.z, 2));
|
||||||
|
|
||||||
//dominant hand stuff first
|
//dominant hand stuff first
|
||||||
|
weapon_stabilised = distance < 0.5f &&
|
||||||
|
(offHandTrackedRemoteState->Buttons & ovrButton_GripTrigger) &&
|
||||||
|
cl.stats[STAT_ACTIVEWEAPON] != IT_AXE;
|
||||||
|
|
||||||
{
|
{
|
||||||
weaponOffset[0] = dominantRemoteTracking->HeadPose.Pose.Position.x - hmdPosition[0];
|
weaponOffset[0] = dominantRemoteTracking->HeadPose.Pose.Position.x - hmdPosition[0];
|
||||||
weaponOffset[1] = dominantRemoteTracking->HeadPose.Pose.Position.y - hmdPosition[1];
|
weaponOffset[1] = dominantRemoteTracking->HeadPose.Pose.Position.y - hmdPosition[1];
|
||||||
|
@ -1674,6 +1687,18 @@ static void ovrApp_HandleInput( ovrApp * app )
|
||||||
const ovrQuatf quatRemote = dominantRemoteTracking->HeadPose.Pose.Orientation;
|
const ovrQuatf quatRemote = dominantRemoteTracking->HeadPose.Pose.Orientation;
|
||||||
QuatToYawPitchRoll(quatRemote, vr_weaponpitchadjust.value, gunangles);
|
QuatToYawPitchRoll(quatRemote, vr_weaponpitchadjust.value, gunangles);
|
||||||
|
|
||||||
|
if (weapon_stabilised)
|
||||||
|
{
|
||||||
|
float z = offHandRemoteTracking->HeadPose.Pose.Position.z - dominantRemoteTracking->HeadPose.Pose.Position.z;
|
||||||
|
float x = offHandRemoteTracking->HeadPose.Pose.Position.x - dominantRemoteTracking->HeadPose.Pose.Position.x;
|
||||||
|
float y = offHandRemoteTracking->HeadPose.Pose.Position.y - dominantRemoteTracking->HeadPose.Pose.Position.y;
|
||||||
|
float zxDist = length(x, z);
|
||||||
|
|
||||||
|
if (zxDist != 0.0f && z != 0.0f) {
|
||||||
|
VectorSet(gunangles, -degrees(atanf(y / zxDist)), -degrees(atan2f(x, -z)), gunangles[ROLL]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
gunangles[YAW] += yawOffset;
|
gunangles[YAW] += yawOffset;
|
||||||
|
|
||||||
//Change laser sight on joystick click
|
//Change laser sight on joystick click
|
||||||
|
@ -2199,11 +2224,11 @@ void * AppThreadFunction( void * parm )
|
||||||
//AmmarkoV : Query Refresh rates and select maximum..!
|
//AmmarkoV : Query Refresh rates and select maximum..!
|
||||||
//-----------------------------------------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------------------------------------
|
||||||
int numberOfRefreshRates = vrapi_GetSystemPropertyInt(&java,VRAPI_SYS_PROP_NUM_SUPPORTED_DISPLAY_REFRESH_RATES);
|
int numberOfRefreshRates = vrapi_GetSystemPropertyInt(&java,VRAPI_SYS_PROP_NUM_SUPPORTED_DISPLAY_REFRESH_RATES);
|
||||||
float refreshRatesArray[16]; //Refresh rates are currently (12/2020) the following 4 : 60.0 / 72.0 / 80.0 / 90.0
|
float refreshRatesArray[16];
|
||||||
if (numberOfRefreshRates > 16 ) { numberOfRefreshRates = 16; }
|
if (numberOfRefreshRates > 16 ) { numberOfRefreshRates = 16; }
|
||||||
vrapi_GetSystemPropertyFloatArray(&java, VRAPI_SYS_PROP_SUPPORTED_DISPLAY_REFRESH_RATES,&refreshRatesArray[0], numberOfRefreshRates);
|
vrapi_GetSystemPropertyFloatArray(&java, VRAPI_SYS_PROP_SUPPORTED_DISPLAY_REFRESH_RATES,&refreshRatesArray[0], numberOfRefreshRates);
|
||||||
for (int i = 0; i < numberOfRefreshRates; i++) {
|
for (int i = 0; i < numberOfRefreshRates; i++) {
|
||||||
//ALOGV("Supported refresh rate : %s Hz", refreshRatesArray[i]);
|
//ALOGV("Supported refresh rate : %g Hz", refreshRatesArray[i]);
|
||||||
if (maximumSupportedFramerate<refreshRatesArray[i])
|
if (maximumSupportedFramerate<refreshRatesArray[i])
|
||||||
{
|
{
|
||||||
maximumSupportedFramerate=refreshRatesArray[i];
|
maximumSupportedFramerate=refreshRatesArray[i];
|
||||||
|
@ -2214,7 +2239,8 @@ void * AppThreadFunction( void * parm )
|
||||||
ALOGV("Soft limiting to 90.0 Hz as per John carmack's request ( https://www.onlinepeeps.org/oculus-quest-2-according-to-carmack-in-the-future-also-at-120-hz/ );P");
|
ALOGV("Soft limiting to 90.0 Hz as per John carmack's request ( https://www.onlinepeeps.org/oculus-quest-2-according-to-carmack-in-the-future-also-at-120-hz/ );P");
|
||||||
maximumSupportedFramerate=90.0;
|
maximumSupportedFramerate=90.0;
|
||||||
}
|
}
|
||||||
//-----------------------------------------------------------------------------------------------------------
|
|
||||||
|
//-----------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
ovrEgl_CreateContext( &appState.Egl, NULL );
|
ovrEgl_CreateContext( &appState.Egl, NULL );
|
||||||
|
@ -2387,9 +2413,8 @@ void * AppThreadFunction( void * parm )
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//Set 90hz mode for Quest 2
|
|
||||||
if (hmdType == VRAPI_DEVICE_TYPE_OCULUSQUEST2) {
|
if (hmdType == VRAPI_DEVICE_TYPE_OCULUSQUEST2) {
|
||||||
vrapi_SetDisplayRefreshRate(appState.Ovr, 90);
|
ovrResult result = vrapi_SetDisplayRefreshRate(appState.Ovr,maximumSupportedFramerate);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get the HMD pose, predicted for the middle of the time period during which
|
// Get the HMD pose, predicted for the middle of the time period during which
|
||||||
|
|
|
@ -3597,7 +3597,7 @@ static void M_Credits_Draw (void)
|
||||||
" QQQQQQQQ QQQQQQQQ ",
|
" QQQQQQQQ QQQQQQQQ ",
|
||||||
" QQQ QQQ ",
|
" QQQ QQQ ",
|
||||||
" Q Q ",
|
" Q Q ",
|
||||||
" Q Q v1.4.9 ");
|
" Q Q v1.4.10");
|
||||||
|
|
||||||
int i, l, linelength, firstline, lastline, lines;
|
int i, l, linelength, firstline, lastline, lines;
|
||||||
for (i = 0, linelength = 0, firstline = 9999, lastline = -1;m_credits_message[i];i++)
|
for (i = 0, linelength = 0, firstline = 9999, lastline = -1;m_credits_message[i];i++)
|
||||||
|
|
Loading…
Reference in a new issue