mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-27 06:12:19 +00:00
- got rid of secplane_t::fA and fB. All uses could be replaced by other functions.
This commit is contained in:
parent
fc5f98a0be
commit
4e5ba49aca
4 changed files with 10 additions and 19 deletions
|
@ -2945,7 +2945,7 @@ const secplane_t * P_CheckSlopeWalk(AActor *actor, DVector2 &move)
|
|||
double t;
|
||||
|
||||
dest = actor->Pos() + move;
|
||||
t = plane->fA() * dest.X + plane->fB() * dest.Y + plane->fC() * actor->Z() + plane->fD();
|
||||
t = (plane->Normal() | DVector3(dest, actor->Z())) + plane->fD();
|
||||
if (t < 0)
|
||||
{ // Desired location is behind (below) the plane
|
||||
// (i.e. Walking up the plane)
|
||||
|
@ -2979,16 +2979,16 @@ const secplane_t * P_CheckSlopeWalk(AActor *actor, DVector2 &move)
|
|||
}
|
||||
if (dopush)
|
||||
{
|
||||
actor->Vel.X = move.X = plane->fA() * 2;
|
||||
actor->Vel.Y = move.Y = plane->fB() * 2;
|
||||
move = plane->Normal() * 2;
|
||||
actor->Vel.X = move.X;
|
||||
actor->Vel.Y = move.Y;
|
||||
}
|
||||
return (actor->floorsector == actor->Sector) ? plane : NULL;
|
||||
}
|
||||
}
|
||||
// Slide the desired location along the plane's normal
|
||||
// so that it lies on the plane's surface
|
||||
dest.X -= plane->fA() * t;
|
||||
dest.Y -= plane->fB() * t;
|
||||
dest -= plane->Normal() * t;
|
||||
move = dest - actor->Pos().XY();
|
||||
return (actor->floorsector == actor->Sector) ? plane : NULL;
|
||||
}
|
||||
|
@ -2998,8 +2998,7 @@ const secplane_t * P_CheckSlopeWalk(AActor *actor, DVector2 &move)
|
|||
{
|
||||
// Actor's current spot is on/in the plane, so walk down it
|
||||
// Same principle as walking up, except reversed
|
||||
dest.X += plane->fA() * t;
|
||||
dest.Y += plane->fB() * t;
|
||||
dest += plane->Normal() * t;
|
||||
move = dest - actor->Pos().XY();
|
||||
return (actor->floorsector == actor->Sector) ? plane : NULL;
|
||||
}
|
||||
|
|
|
@ -1086,11 +1086,11 @@ bool secplane_t::CopyPlaneIfValid (secplane_t *dest, const secplane_t *opp) cons
|
|||
|
||||
// If the planes do not have matching slopes, then always copy them
|
||||
// because clipping would require creating new sectors.
|
||||
if (fA() != dest->fA() || fB() != dest->fB() || fC() != dest->fC())
|
||||
if (Normal() != dest->Normal())
|
||||
{
|
||||
copy = true;
|
||||
}
|
||||
else if (opp->fA() != -dest->fA() || opp->fB() != -dest->fB() || opp->fC() != -dest->fC())
|
||||
else if (opp->Normal() != -dest->Normal())
|
||||
{
|
||||
if (fD() < dest->fD())
|
||||
{
|
||||
|
|
|
@ -877,11 +877,11 @@ bool FTraceInfo::TraceTraverse (int ptflags)
|
|||
|
||||
bool FTraceInfo::CheckPlane (const secplane_t &plane)
|
||||
{
|
||||
double den = plane.fA() * Vec.X + plane.fB() * Vec.Y + plane.fC() * Vec.Z;
|
||||
double den = plane.Normal() | Vec;
|
||||
|
||||
if (den != 0)
|
||||
{
|
||||
double num = plane.fA() * Start.X + plane.fB() * Start.Y + plane.fC() * Start.Z + plane.fD();
|
||||
double num = (plane.Normal() | Start) + plane.fD();
|
||||
|
||||
double hitdist = -num / den;
|
||||
|
||||
|
|
|
@ -302,14 +302,6 @@ public:
|
|||
D = dd;
|
||||
}
|
||||
|
||||
double fA() const
|
||||
{
|
||||
return normal.X;
|
||||
}
|
||||
double fB() const
|
||||
{
|
||||
return normal.Y;
|
||||
}
|
||||
double fC() const
|
||||
{
|
||||
return normal.Z;
|
||||
|
|
Loading…
Reference in a new issue