Fix wrong argument order for calculating distance
FossilOrigin-Name: 75095b4f6e2b5ed05c3279c84b6862521cf2103ea8c61e13fe09ee6e81723302
This commit is contained in:
parent
2f8d255946
commit
45f4039f3b
7 changed files with 20 additions and 21 deletions
|
@ -272,7 +272,7 @@ enemylos(Monster *m, OFVector3D *v)
|
||||||
}
|
}
|
||||||
|
|
||||||
float disttoenemy =
|
float disttoenemy =
|
||||||
OFDistanceOfVectors3D(self.origin, self.enemy.origin);
|
OFDistanceOfVectors3D(self.enemy.origin, self.origin);
|
||||||
self.pitch =
|
self.pitch =
|
||||||
atan2(self.enemy.origin.z - self.origin.z, disttoenemy) * 180 / PI;
|
atan2(self.enemy.origin.z - self.origin.z, disttoenemy) * 180 / PI;
|
||||||
|
|
||||||
|
@ -470,7 +470,7 @@ enemylos(Monster *m, OFVector3D *v)
|
||||||
} else {
|
} else {
|
||||||
v.z += monster.eyeHeight;
|
v.z += monster.eyeHeight;
|
||||||
float dist =
|
float dist =
|
||||||
OFDistanceOfVectors3D(monster.origin, v);
|
OFDistanceOfVectors3D(v, monster.origin);
|
||||||
v.z -= monster.eyeHeight;
|
v.z -= monster.eyeHeight;
|
||||||
|
|
||||||
if (dist < 4)
|
if (dist < 4)
|
||||||
|
|
|
@ -321,7 +321,7 @@ checkitems()
|
||||||
|
|
||||||
OFVector3D v = OFMakeVector3D(
|
OFVector3D v = OFMakeVector3D(
|
||||||
e.x, e.y, (float)S(e.x, e.y)->floor + player1.eyeHeight);
|
e.x, e.y, (float)S(e.x, e.y)->floor + player1.eyeHeight);
|
||||||
float dist = OFDistanceOfVectors3D(player1.origin, v);
|
float dist = OFDistanceOfVectors3D(v, player1.origin);
|
||||||
|
|
||||||
if (dist < (e.type == TELEPORT ? 4 : 2.5))
|
if (dist < (e.type == TELEPORT ? 4 : 2.5))
|
||||||
pickup(i, player1);
|
pickup(i, player1);
|
||||||
|
|
|
@ -150,8 +150,8 @@ particle_splash(int type, int num, int fade, OFVector3D p)
|
||||||
void
|
void
|
||||||
particle_trail(int type, int fade, OFVector3D s, OFVector3D e)
|
particle_trail(int type, int fade, OFVector3D s, OFVector3D e)
|
||||||
{
|
{
|
||||||
float d = OFDistanceOfVectors3D(s, e);
|
float d = OFDistanceOfVectors3D(e, s);
|
||||||
OFVector3D v = OFSubtractVectors3D(s, e);
|
OFVector3D v = OFSubtractVectors3D(e, s);
|
||||||
v = OFMultiplyVector3D(v, 1.0f / (d * 2 + 0.1f));
|
v = OFMultiplyVector3D(v, 1.0f / (d * 2 + 0.1f));
|
||||||
for (int i = 0; i < ((int)d * 2); i++) {
|
for (int i = 0; i < ((int)d * 2); i++) {
|
||||||
s = OFAddVectors3D(s, v);
|
s = OFAddVectors3D(s, v);
|
||||||
|
|
|
@ -498,7 +498,7 @@ demoplaybackstep()
|
||||||
fixwrap(c, player1);
|
fixwrap(c, player1);
|
||||||
fixwrap(z, player1);
|
fixwrap(z, player1);
|
||||||
float dist =
|
float dist =
|
||||||
OFDistanceOfVectors3D(z.origin, c.origin);
|
OFDistanceOfVectors3D(c.origin, z.origin);
|
||||||
// if teleport or spawn, don't interpolate
|
// if teleport or spawn, don't interpolate
|
||||||
if (dist < 16) {
|
if (dist < 16) {
|
||||||
catmulrom(z.origin, a.origin, b.origin,
|
catmulrom(z.origin, a.origin, b.origin,
|
||||||
|
|
|
@ -114,8 +114,8 @@ updatechanvol(int chan, const OFVector3D *loc)
|
||||||
|
|
||||||
if (loc) {
|
if (loc) {
|
||||||
OFVector3D origin = player1.origin;
|
OFVector3D origin = player1.origin;
|
||||||
float dist = OFDistanceOfVectors3D(*loc, origin);
|
float dist = OFDistanceOfVectors3D(origin, *loc);
|
||||||
OFVector3D v = OFSubtractVectors3D(*loc, origin);
|
OFVector3D v = OFSubtractVectors3D(origin, *loc);
|
||||||
|
|
||||||
// simple mono distance attenuation
|
// simple mono distance attenuation
|
||||||
vol -= (int)(dist * 3 * soundvol / 255);
|
vol -= (int)(dist * 3 * soundvol / 255);
|
||||||
|
|
23
src/weapon.m
23
src/weapon.m
|
@ -73,7 +73,7 @@ COMMAND(weapon, ARG_3STR, ^(OFString *a1, OFString *a2, OFString *a3) {
|
||||||
void
|
void
|
||||||
createrays(OFVector3D from, OFVector3D to)
|
createrays(OFVector3D from, OFVector3D to)
|
||||||
{
|
{
|
||||||
float dist = OFDistanceOfVectors3D(from, to);
|
float dist = OFDistanceOfVectors3D(to, from);
|
||||||
float f = dist * SGSPREAD / 1000;
|
float f = dist * SGSPREAD / 1000;
|
||||||
for (int i = 0; i < SGRAYS; i++)
|
for (int i = 0; i < SGRAYS; i++)
|
||||||
#define RNDD (rnd(101) - 50) * f
|
#define RNDD (rnd(101) - 50) * f
|
||||||
|
@ -185,8 +185,8 @@ radialeffect(
|
||||||
return;
|
return;
|
||||||
|
|
||||||
OFVector3D origin = o.origin;
|
OFVector3D origin = o.origin;
|
||||||
float dist = OFDistanceOfVectors3D(v, origin);
|
float dist = OFDistanceOfVectors3D(origin, v);
|
||||||
OFVector3D temp = OFSubtractVectors3D(v, origin);
|
OFVector3D temp = OFSubtractVectors3D(origin, v);
|
||||||
dist -= 2; // account for eye distance imprecision
|
dist -= 2; // account for eye distance imprecision
|
||||||
|
|
||||||
if (dist < RL_DAMRAD) {
|
if (dist < RL_DAMRAD) {
|
||||||
|
@ -195,7 +195,6 @@ radialeffect(
|
||||||
|
|
||||||
int damage = (int)(qdam * (1 - (dist / RL_DAMRAD)));
|
int damage = (int)(qdam * (1 - (dist / RL_DAMRAD)));
|
||||||
hit(cn, damage, o, at);
|
hit(cn, damage, o, at);
|
||||||
|
|
||||||
temp =
|
temp =
|
||||||
OFMultiplyVector3D(temp, (RL_DAMRAD - dist) * damage / 800);
|
OFMultiplyVector3D(temp, (RL_DAMRAD - dist) * damage / 800);
|
||||||
o.velocity = OFAddVectors3D(o.velocity, temp);
|
o.velocity = OFAddVectors3D(o.velocity, temp);
|
||||||
|
@ -267,14 +266,14 @@ moveprojectiles(float time)
|
||||||
int qdam = guns[p.gun].damage * (p.owner.quadMillis ? 4 : 1);
|
int qdam = guns[p.gun].damage * (p.owner.quadMillis ? 4 : 1);
|
||||||
if ([p.owner isKindOfClass:Monster.class])
|
if ([p.owner isKindOfClass:Monster.class])
|
||||||
qdam /= MONSTERDAMAGEFACTOR;
|
qdam /= MONSTERDAMAGEFACTOR;
|
||||||
OFVector3D po = p.o, pto = pto;
|
OFVector3D po = p.o, pto = p.to;
|
||||||
float dist = OFDistanceOfVectors3D(po, pto);
|
float dist = OFDistanceOfVectors3D(pto, po);
|
||||||
OFVector3D v = OFSubtractVectors3D(po, pto);
|
OFVector3D v = OFSubtractVectors3D(pto, po);
|
||||||
float dtime = dist * 1000 / p.speed;
|
float dtime = dist * 1000 / p.speed;
|
||||||
if (time > dtime)
|
if (time > dtime)
|
||||||
dtime = time;
|
dtime = time;
|
||||||
v = OFMultiplyVector3D(v, time / dtime);
|
v = OFMultiplyVector3D(v, time / dtime);
|
||||||
v = OFAddVectors3D(v, p.o);
|
v = OFAddVectors3D(v, po);
|
||||||
if (p.local) {
|
if (p.local) {
|
||||||
for (id player in players)
|
for (id player in players)
|
||||||
if (player != [OFNull null])
|
if (player != [OFNull null])
|
||||||
|
@ -350,8 +349,8 @@ hitpush(int target, int damage, DynamicEntity *d, DynamicEntity *at,
|
||||||
OFVector3D from, OFVector3D to)
|
OFVector3D from, OFVector3D to)
|
||||||
{
|
{
|
||||||
hit(target, damage, d, at);
|
hit(target, damage, d, at);
|
||||||
float dist = OFDistanceOfVectors3D(from, to);
|
float dist = OFDistanceOfVectors3D(to, from);
|
||||||
OFVector3D v = OFSubtractVectors3D(from, to);
|
OFVector3D v = OFSubtractVectors3D(to, from);
|
||||||
v = OFMultiplyVector3D(v, damage / dist / 50);
|
v = OFMultiplyVector3D(v, damage / dist / 50);
|
||||||
d.velocity = OFAddVectors3D(d.velocity, v);
|
d.velocity = OFAddVectors3D(d.velocity, v);
|
||||||
}
|
}
|
||||||
|
@ -401,8 +400,8 @@ shoot(DynamicEntity *d, OFVector3D targ)
|
||||||
OFVector3D to = targ;
|
OFVector3D to = targ;
|
||||||
from.z -= 0.2f; // below eye
|
from.z -= 0.2f; // below eye
|
||||||
|
|
||||||
float dist = OFDistanceOfVectors3D(from, to);
|
float dist = OFDistanceOfVectors3D(to, from);
|
||||||
OFVector3D unitv = OFSubtractVectors3D(from, to);
|
OFVector3D unitv = OFSubtractVectors3D(to, from);
|
||||||
unitv = OFMultiplyVector3D(unitv, 1.0f / dist);
|
unitv = OFMultiplyVector3D(unitv, 1.0f / dist);
|
||||||
OFVector3D kickback =
|
OFVector3D kickback =
|
||||||
OFMultiplyVector3D(unitv, guns[d.gunSelect].kickamount * -0.01f);
|
OFMultiplyVector3D(unitv, guns[d.gunSelect].kickamount * -0.01f);
|
||||||
|
|
|
@ -298,7 +298,7 @@ closestent() // used for delent and edit mode ent display
|
||||||
return;
|
return;
|
||||||
|
|
||||||
OFVector3D v = OFMakeVector3D(e.x, e.y, e.z);
|
OFVector3D v = OFMakeVector3D(e.x, e.y, e.z);
|
||||||
float dist = OFDistanceOfVectors3D(player1.origin, v);
|
float dist = OFDistanceOfVectors3D(v, player1.origin);
|
||||||
if (dist < bdist) {
|
if (dist < bdist) {
|
||||||
best = i;
|
best = i;
|
||||||
bdist = dist;
|
bdist = dist;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue