mirror of
https://github.com/ZDoom/qzdoom.git
synced 2024-11-24 21:11:39 +00:00
- added P_GetOffsetPosition calls to all needed functions.
This commit is contained in:
parent
d46e109a5b
commit
60c2a55ec4
3 changed files with 41 additions and 14 deletions
34
src/actor.h
34
src/actor.h
|
@ -886,32 +886,58 @@ public:
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
fixedvec2 Vec2Offset(fixed_t dx, fixed_t dy, bool absolute = false) const
|
fixedvec2 Vec2Offset(fixed_t dx, fixed_t dy, bool absolute = false)
|
||||||
|
{
|
||||||
|
if (absolute)
|
||||||
{
|
{
|
||||||
fixedvec2 ret = { X() + dx, Y() + dy };
|
fixedvec2 ret = { X() + dx, Y() + dy };
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
else return P_GetOffsetPosition(this, dx, dy);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
fixedvec2 Vec2Angle(fixed_t length, angle_t angle, bool absolute = false) const
|
fixedvec2 Vec2Angle(fixed_t length, angle_t angle, bool absolute = false)
|
||||||
|
{
|
||||||
|
if (absolute)
|
||||||
{
|
{
|
||||||
fixedvec2 ret = { X() + FixedMul(length, finecosine[angle >> ANGLETOFINESHIFT]),
|
fixedvec2 ret = { X() + FixedMul(length, finecosine[angle >> ANGLETOFINESHIFT]),
|
||||||
Y() + FixedMul(length, finesine[angle >> ANGLETOFINESHIFT]) };
|
Y() + FixedMul(length, finesine[angle >> ANGLETOFINESHIFT]) };
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
else return P_GetOffsetPosition(this, FixedMul(length, finecosine[angle >> ANGLETOFINESHIFT]), FixedMul(length, finesine[angle >> ANGLETOFINESHIFT]));
|
||||||
|
}
|
||||||
|
|
||||||
fixedvec3 Vec3Offset(fixed_t dx, fixed_t dy, fixed_t dz, bool absolute = false) const
|
fixedvec3 Vec3Offset(fixed_t dx, fixed_t dy, fixed_t dz, bool absolute = false)
|
||||||
|
{
|
||||||
|
if (absolute)
|
||||||
{
|
{
|
||||||
fixedvec3 ret = { X() + dx, Y() + dy, Z() + dz };
|
fixedvec3 ret = { X() + dx, Y() + dy, Z() + dz };
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
fixedvec2 op = P_GetOffsetPosition(this, dx, dy);
|
||||||
|
fixedvec3 pos = { op.x, op.y, Z() + dz };
|
||||||
|
return pos;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fixedvec3 Vec3Angle(fixed_t length, angle_t angle, fixed_t dz, bool absolute = false) const
|
fixedvec3 Vec3Angle(fixed_t length, angle_t angle, fixed_t dz, bool absolute = false)
|
||||||
|
{
|
||||||
|
if (absolute)
|
||||||
{
|
{
|
||||||
fixedvec3 ret = { X() + FixedMul(length, finecosine[angle >> ANGLETOFINESHIFT]),
|
fixedvec3 ret = { X() + FixedMul(length, finecosine[angle >> ANGLETOFINESHIFT]),
|
||||||
Y() + FixedMul(length, finesine[angle >> ANGLETOFINESHIFT]), Z() + dz };
|
Y() + FixedMul(length, finesine[angle >> ANGLETOFINESHIFT]), Z() + dz };
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
fixedvec2 op = P_GetOffsetPosition(this, FixedMul(length, finecosine[angle >> ANGLETOFINESHIFT]), FixedMul(length, finesine[angle >> ANGLETOFINESHIFT]));
|
||||||
|
fixedvec3 pos = { op.x, op.y, Z() + dz };
|
||||||
|
return pos;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void ClearInterpolation();
|
void ClearInterpolation();
|
||||||
|
|
||||||
|
|
|
@ -712,7 +712,7 @@ fixedvec2 P_GetOffsetPosition(AActor *actor, fixed_t dx, fixed_t dy)
|
||||||
bool repeat;
|
bool repeat;
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
it.init(actx, acty, dx, dy, PT_ADDLINES);
|
it.init(actx, acty, dx, dy, PT_ADDLINES|PT_DELTA);
|
||||||
intercept_t *in;
|
intercept_t *in;
|
||||||
|
|
||||||
repeat = false;
|
repeat = false;
|
||||||
|
|
|
@ -198,5 +198,6 @@ void P_TranslatePortalAngle(line_t* src, line_t* dst, angle_t& angle);
|
||||||
void P_TranslatePortalZ(line_t* src, line_t* dst, fixed_t& z);
|
void P_TranslatePortalZ(line_t* src, line_t* dst, fixed_t& z);
|
||||||
void P_NormalizeVXVY(fixed_t& vx, fixed_t& vy);
|
void P_NormalizeVXVY(fixed_t& vx, fixed_t& vy);
|
||||||
fixed_t P_PointLineDistance(line_t* line, fixed_t x, fixed_t y);
|
fixed_t P_PointLineDistance(line_t* line, fixed_t x, fixed_t y);
|
||||||
|
fixedvec2 P_GetOffsetPosition(AActor *actor, fixed_t dx, fixed_t dy);
|
||||||
|
|
||||||
#endif
|
#endif
|
Loading…
Reference in a new issue