mirror of
https://github.com/ZDoom/Raze.git
synced 2025-01-19 07:01:09 +00:00
- second batch of weapon.cpp floatification
This commit is contained in:
parent
8cd65bf5d9
commit
5f5b7d90f1
1 changed files with 18 additions and 32 deletions
|
@ -7428,7 +7428,9 @@ int DoExpDamageTest(DSWActor* actor)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ((unsigned)FindDistance3D(itActor->int_pos().X - actor->int_pos().X, itActor->int_pos().Y - actor->int_pos().Y, itActor->int_pos().Z - actor->int_pos().Z) > actor->user.Radius + itActor->user.Radius)
|
|
||||||
|
double d = (itActor->spr.pos - actor->spr.pos).Length();
|
||||||
|
if (d > actor->user.fRadius() + itActor->user.fRadius())
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
// added hitscan block because mines no long clip against actors/players
|
// added hitscan block because mines no long clip against actors/players
|
||||||
|
@ -8773,8 +8775,6 @@ bool OwnerIsPlayer(DSWActor* actor)
|
||||||
int DoMineRangeTest(DSWActor* actor, int range)
|
int DoMineRangeTest(DSWActor* actor, int range)
|
||||||
{
|
{
|
||||||
unsigned stat;
|
unsigned stat;
|
||||||
int tx, ty;
|
|
||||||
int tmin;
|
|
||||||
bool ownerisplayer = false;
|
bool ownerisplayer = false;
|
||||||
|
|
||||||
ownerisplayer = OwnerIsPlayer(actor);
|
ownerisplayer = OwnerIsPlayer(actor);
|
||||||
|
@ -10370,7 +10370,7 @@ void SpawnNuclearSecondaryExp(DSWActor* actor, short ang)
|
||||||
expActor->user.coll = move_missile(expActor, DVector3(expActor->user.change.XY(), 0),
|
expActor->user.coll = move_missile(expActor, DVector3(expActor->user.change.XY(), 0),
|
||||||
expActor->user.ceiling_dist,expActor->user.floor_dist, CLIPMASK_MISSILE, MISSILEMOVETICS);
|
expActor->user.ceiling_dist,expActor->user.floor_dist, CLIPMASK_MISSILE, MISSILEMOVETICS);
|
||||||
|
|
||||||
if (FindDistance3D(expActor->int_pos() - actor->int_pos()) < 1024)
|
if ((expActor->spr.pos - actor->spr.pos).Length() < 64)
|
||||||
{
|
{
|
||||||
KillActor(expActor);
|
KillActor(expActor);
|
||||||
return;
|
return;
|
||||||
|
@ -10666,7 +10666,7 @@ void SpawnGrenadeSecondaryExp(DSWActor* actor, int ang)
|
||||||
expActor->user.coll = move_missile(expActor, DVector3(expActor->user.change.XY(), 0),
|
expActor->user.coll = move_missile(expActor, DVector3(expActor->user.change.XY(), 0),
|
||||||
expActor->user.ceiling_dist,expActor->user.floor_dist, CLIPMASK_MISSILE, MISSILEMOVETICS);
|
expActor->user.ceiling_dist,expActor->user.floor_dist, CLIPMASK_MISSILE, MISSILEMOVETICS);
|
||||||
|
|
||||||
if (FindDistance3D(expActor->int_pos() - actor->int_pos()) < 1024)
|
if ((expActor->spr.pos - actor->spr.pos).Length() < 64)
|
||||||
{
|
{
|
||||||
KillActor(expActor);
|
KillActor(expActor);
|
||||||
return;
|
return;
|
||||||
|
@ -11735,7 +11735,7 @@ int DoSerpRing(DSWActor* actor)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
double zz = actor->int_pos().Z + actor->vel.Z;
|
double zz = actor->spr.pos.Z + actor->vel.Z;
|
||||||
if (zz > own->spr.pos.Z - actor->user.pos.Z)
|
if (zz > own->spr.pos.Z - actor->user.pos.Z)
|
||||||
zz = own->spr.pos.Z - actor->user.pos.Z;
|
zz = own->spr.pos.Z - actor->user.pos.Z;
|
||||||
|
|
||||||
|
@ -12897,8 +12897,6 @@ int WeaponAutoAim(DSWActor* actor, DSWActor* mislActor, short ang, bool test)
|
||||||
|
|
||||||
int WeaponAutoAimZvel(DSWActor* actor, DSWActor* missileActor, int *zvel, short ang, bool test)
|
int WeaponAutoAimZvel(DSWActor* actor, DSWActor* missileActor, int *zvel, short ang, bool test)
|
||||||
{
|
{
|
||||||
int dist;
|
|
||||||
|
|
||||||
if (actor->hasU() && actor->user.PlayerP)
|
if (actor->hasU() && actor->user.PlayerP)
|
||||||
{
|
{
|
||||||
if (!Autoaim(actor->user.PlayerP->pnum))
|
if (!Autoaim(actor->user.PlayerP->pnum))
|
||||||
|
@ -12915,7 +12913,7 @@ int WeaponAutoAimZvel(DSWActor* actor, DSWActor* missileActor, int *zvel, short
|
||||||
hitActor->user.Flags |= (SPR_ATTACKED);
|
hitActor->user.Flags |= (SPR_ATTACKED);
|
||||||
|
|
||||||
missileActor->spr.angle = VecToAngle(hitActor->spr.pos.XY() - missileActor->spr.pos.XY());
|
missileActor->spr.angle = VecToAngle(hitActor->spr.pos.XY() - missileActor->spr.pos.XY());
|
||||||
dist = FindDistance2D(missileActor->int_pos().vec2 - hitActor->int_pos().vec2);
|
double dist = (missileActor->spr.pos.XY() - hitActor->spr.pos.XY()).Length();
|
||||||
|
|
||||||
if (dist != 0)
|
if (dist != 0)
|
||||||
{
|
{
|
||||||
|
@ -12934,7 +12932,7 @@ int WeaponAutoAimZvel(DSWActor* actor, DSWActor* missileActor, int *zvel, short
|
||||||
else
|
else
|
||||||
zh = tos + (siz * 0.25);
|
zh = tos + (siz * 0.25);
|
||||||
|
|
||||||
*zvel = int((missileActor->int_xvel() * (zh - missileActor->spr.pos.Z)) / dist * (zworldtoint));
|
*zvel = int((missileActor->vel.X * (zh - missileActor->spr.pos.Z)) / dist * zworldtoint);
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -12999,7 +12997,6 @@ DSWActor* AimHitscanToTarget(DSWActor* actor, double *z, DAngle *ang, double z_r
|
||||||
|
|
||||||
DSWActor* WeaponAutoAimHitscan(DSWActor* actor, int *z, short *ang, bool test)
|
DSWActor* WeaponAutoAimHitscan(DSWActor* actor, int *z, short *ang, bool test)
|
||||||
{
|
{
|
||||||
int dist;
|
|
||||||
int zh;
|
int zh;
|
||||||
int xvect;
|
int xvect;
|
||||||
int yvect;
|
int yvect;
|
||||||
|
@ -13019,10 +13016,10 @@ DSWActor* WeaponAutoAimHitscan(DSWActor* actor, int *z, short *ang, bool test)
|
||||||
picked->user.Flags |= (SPR_TARGETED);
|
picked->user.Flags |= (SPR_TARGETED);
|
||||||
picked->user.Flags |= (SPR_ATTACKED);
|
picked->user.Flags |= (SPR_ATTACKED);
|
||||||
|
|
||||||
*ang = NORM_ANGLE(getangle(picked->int_pos().X - actor->int_pos().X, picked->int_pos().Y - actor->int_pos().Y));
|
*ang = NORM_ANGLE(getangle(picked->spr.pos.XY() - actor->spr.pos.XY()));
|
||||||
|
|
||||||
// find the distance to the target
|
// find the distance to the target
|
||||||
dist = ksqrt(SQ(actor->int_pos().X - picked->int_pos().X) + SQ(actor->int_pos().Y - picked->int_pos().Y));
|
double dist = (actor->spr.pos.XY() - picked->spr.pos.XY()).Length();
|
||||||
|
|
||||||
if (dist != 0)
|
if (dist != 0)
|
||||||
{
|
{
|
||||||
|
@ -13031,9 +13028,9 @@ DSWActor* WeaponAutoAimHitscan(DSWActor* actor, int *z, short *ang, bool test)
|
||||||
xvect = bcos(*ang);
|
xvect = bcos(*ang);
|
||||||
yvect = bsin(*ang);
|
yvect = bsin(*ang);
|
||||||
|
|
||||||
if (picked->int_pos().X - actor->int_pos().X != 0)
|
if (picked->spr.pos.X - actor->spr.pos.X != 0)
|
||||||
*z = Scale(xvect,zh - *z,picked->int_pos().X - actor->int_pos().X);
|
*z = Scale(xvect,zh - *z,picked->int_pos().X - actor->int_pos().X);
|
||||||
else if (picked->int_pos().Y - actor->int_pos().Y != 0)
|
else if (picked->spr.pos.Y - actor->spr.pos.Y != 0)
|
||||||
*z = Scale(yvect,zh - *z,picked->int_pos().Y - actor->int_pos().Y);
|
*z = Scale(yvect,zh - *z,picked->int_pos().Y - actor->int_pos().Y);
|
||||||
else
|
else
|
||||||
*z = 0;
|
*z = 0;
|
||||||
|
@ -14272,7 +14269,8 @@ int InitRipperSlash(DSWActor* actor)
|
||||||
if (itActor == actor)
|
if (itActor == actor)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
if ((unsigned)FindDistance3D(actor->int_pos() - itActor->int_pos()) > itActor->user.Radius + actor->user.Radius)
|
double d = (actor->spr.pos - itActor->spr.pos).Length();
|
||||||
|
if (d > itActor->user.fRadius() * 2)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
DISTANCE(itActor->spr.pos, actor->spr.pos, dist, a, b, c);
|
DISTANCE(itActor->spr.pos, actor->spr.pos, dist, a, b, c);
|
||||||
|
@ -14380,7 +14378,6 @@ int DoBladeDamage(DSWActor* actor)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
unsigned stat;
|
unsigned stat;
|
||||||
int dist, a, b, c;
|
|
||||||
|
|
||||||
for (stat = 0; stat < SIZ(StatDamageList); stat++)
|
for (stat = 0; stat < SIZ(StatDamageList); stat++)
|
||||||
{
|
{
|
||||||
|
@ -14393,14 +14390,9 @@ int DoBladeDamage(DSWActor* actor)
|
||||||
if (!(itActor->spr.extra & SPRX_PLAYER_OR_ENEMY))
|
if (!(itActor->spr.extra & SPRX_PLAYER_OR_ENEMY))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
DISTANCE(itActor->spr.pos, actor->spr.pos, dist, a, b, c);
|
double d = (actor->spr.pos - itActor->spr.pos).Length();
|
||||||
|
|
||||||
if (dist > 2000)
|
if (d > 125)
|
||||||
continue;
|
|
||||||
|
|
||||||
dist = FindDistance3D(actor->int_pos() - itActor->int_pos());
|
|
||||||
|
|
||||||
if (dist > 2000)
|
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (WallSpriteInsideSprite(actor, itActor))
|
if (WallSpriteInsideSprite(actor, itActor))
|
||||||
|
@ -14423,7 +14415,6 @@ int DoStaticFlamesDamage(DSWActor* actor)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
unsigned stat;
|
unsigned stat;
|
||||||
int dist, a, b, c;
|
|
||||||
|
|
||||||
for (stat = 0; stat < SIZ(StatDamageList); stat++)
|
for (stat = 0; stat < SIZ(StatDamageList); stat++)
|
||||||
{
|
{
|
||||||
|
@ -14436,14 +14427,9 @@ int DoStaticFlamesDamage(DSWActor* actor)
|
||||||
if (!(itActor->spr.extra & SPRX_PLAYER_OR_ENEMY))
|
if (!(itActor->spr.extra & SPRX_PLAYER_OR_ENEMY))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
DISTANCE(itActor->spr.pos, actor->spr.pos, dist, a, b, c);
|
double d = (actor->spr.pos - itActor->spr.pos).Length();
|
||||||
|
|
||||||
if (dist > 2000)
|
if (d > 125)
|
||||||
continue;
|
|
||||||
|
|
||||||
dist = FindDistance3D(actor->int_pos() - itActor->int_pos());
|
|
||||||
|
|
||||||
if (dist > 2000)
|
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (SpriteOverlap(actor, itActor)) // If sprites are overlapping, cansee will fail!
|
if (SpriteOverlap(actor, itActor)) // If sprites are overlapping, cansee will fail!
|
||||||
|
|
Loading…
Reference in a new issue