mirror of
https://github.com/DrBeef/QuakeQuest.git
synced 2024-11-22 04:01:14 +00:00
Fix Crash due to NaN origin
This commit is contained in:
parent
29eb944dad
commit
2d5d07ae7e
3 changed files with 28 additions and 14 deletions
|
@ -2,7 +2,7 @@
|
||||||
<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="10"
|
android:versionCode="10"
|
||||||
android:versionName="1.4.1" android:installLocation="auto" >
|
android:versionName="1.4.2" 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"/>
|
||||||
|
|
|
@ -3611,7 +3611,7 @@ static void M_Credits_Draw (void)
|
||||||
" QQQQQQQQ QQQQQQQQ ",
|
" QQQQQQQQ QQQQQQQQ ",
|
||||||
" QQQ QQQ ",
|
" QQQ QQQ ",
|
||||||
" Q Q ",
|
" Q Q ",
|
||||||
" Q Q v1.4.1 ");
|
" Q Q v1.4.2 ");
|
||||||
|
|
||||||
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++)
|
||||||
|
|
|
@ -2999,33 +2999,47 @@ void SV_Physics_ClientMove(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
vec3_t origin_b, oldorigin_b;
|
vec3_t origin_b;
|
||||||
extern cvar_t cl_trackingmode;
|
extern cvar_t cl_trackingmode;
|
||||||
|
|
||||||
static void SV_SetWeapon_ClientOrigin(prvm_edict_t *ent)
|
static void SV_SetWeapon_ClientOrigin(prvm_edict_t *ent)
|
||||||
{
|
{
|
||||||
prvm_prog_t *prog = SVVM_prog;
|
prvm_prog_t *prog = SVVM_prog;
|
||||||
|
|
||||||
|
//Backup origin
|
||||||
VectorCopy(PRVM_serveredictvector(ent, origin), origin_b);
|
VectorCopy(PRVM_serveredictvector(ent, origin), origin_b);
|
||||||
VectorCopy(PRVM_serveredictvector(ent, oldorigin), oldorigin_b);
|
|
||||||
|
|
||||||
VectorCopy(gunorg, PRVM_serveredictvector(ent, origin));
|
//Check gun origin validity
|
||||||
VectorCopy(gunorg, PRVM_serveredictvector(ent, oldorigin));
|
for (int i = 0; i < 3; ++i)
|
||||||
|
|
||||||
if (cl_trackingmode.integer != 0) //6DoF
|
|
||||||
{
|
{
|
||||||
PRVM_serveredictvector(ent, origin)[2] -= 16.0f;
|
//Check for valid number
|
||||||
PRVM_serveredictvector(ent, oldorigin)[2] -= 16.0f;
|
if (PRVM_IS_NAN(gunorg[i]) || (fabsf(gunorg[i]) > 1000000.0f)) {
|
||||||
} else { //3DoF
|
Con_Printf("Got a NaN origin for weapon on entity #%i (%s)\n", PRVM_NUM_FOR_EDICT(ent),
|
||||||
PRVM_serveredictvector(ent, origin)[2] -= 23.0f;
|
PRVM_GetString(prog, PRVM_serveredictstring(ent, classname)));
|
||||||
PRVM_serveredictvector(ent, oldorigin)[2] -= 23.0f;
|
|
||||||
|
//Just drop out, normal origin will be used in this case
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
vec3_t temp_gun_org;
|
||||||
|
VectorCopy(gunorg, temp_gun_org);
|
||||||
|
if (cl_trackingmode.integer != 0)
|
||||||
|
{ //6DoF
|
||||||
|
temp_gun_org[2] -= 16.0f;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{ //3DoF
|
||||||
|
temp_gun_org[2] -= 23.0f;
|
||||||
|
}
|
||||||
|
|
||||||
|
VectorCopy(temp_gun_org, PRVM_serveredictvector(ent, origin));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void SV_Restore_ClientOrigin(prvm_edict_t *ent)
|
static void SV_Restore_ClientOrigin(prvm_edict_t *ent)
|
||||||
{
|
{
|
||||||
prvm_prog_t *prog = SVVM_prog;
|
prvm_prog_t *prog = SVVM_prog;
|
||||||
VectorCopy(origin_b, PRVM_serveredictvector(ent, origin));
|
VectorCopy(origin_b, PRVM_serveredictvector(ent, origin));
|
||||||
VectorCopy(oldorigin_b, PRVM_serveredictvector(ent, oldorigin));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void SV_Physics_ClientEntity_PreThink(prvm_edict_t *ent)
|
static void SV_Physics_ClientEntity_PreThink(prvm_edict_t *ent)
|
||||||
|
|
Loading…
Reference in a new issue