Modify PF_findradius to not use sqrtf

also a safety pre-compute of radius^2 in case it doesnt get picked up by
gcc. thanks spike.
This commit is contained in:
Steam Deck User 2023-02-13 15:25:18 -05:00
parent 625e0b8103
commit 8520c1923b

View file

@ -1100,7 +1100,9 @@ void PF_findradius (void)
chain = (edict_t *)sv.edicts; chain = (edict_t *)sv.edicts;
org = G_VECTOR(OFS_PARM0); org = G_VECTOR(OFS_PARM0);
rad = G_FLOAT(OFS_PARM1); rad = G_FLOAT(OFS_PARM1);
rad *= rad;
ent = NEXT_EDICT(sv.edicts); ent = NEXT_EDICT(sv.edicts);
for (i=1 ; i<sv.num_edicts ; i++, ent = NEXT_EDICT(ent)) for (i=1 ; i<sv.num_edicts ; i++, ent = NEXT_EDICT(ent))
@ -1111,7 +1113,8 @@ void PF_findradius (void)
continue; continue;
for (j=0 ; j<3 ; j++) for (j=0 ; j<3 ; j++)
eorg[j] = org[j] - (ent->v.origin[j] + (ent->v.mins[j] + ent->v.maxs[j])*0.5); eorg[j] = org[j] - (ent->v.origin[j] + (ent->v.mins[j] + ent->v.maxs[j])*0.5);
if (Length(eorg) > rad)
if (DotProduct(eorg, eorg) > rad)
continue; continue;
ent->v.chain = EDICT_TO_PROG(chain); ent->v.chain = EDICT_TO_PROG(chain);