mirror of
https://github.com/ZDoom/qzdoom.git
synced 2024-11-24 13:01:47 +00:00
- added LevelLocals vec2/3Offset(Z) functions for portal-aware offsetting without needing actors
This commit is contained in:
parent
98f279b651
commit
e9050a38b3
2 changed files with 65 additions and 0 deletions
|
@ -2033,6 +2033,67 @@ DEFINE_ACTION_FUNCTION(FLevelLocals, Vec3Diff)
|
|||
ACTION_RETURN_VEC3(VecDiff(DVector3(x1, y1, z1), DVector3(x2, y2, z2)));
|
||||
}
|
||||
|
||||
DEFINE_ACTION_FUNCTION(FLevelLocals, Vec2Offset)
|
||||
{
|
||||
PARAM_PROLOGUE;
|
||||
PARAM_FLOAT(x);
|
||||
PARAM_FLOAT(y);
|
||||
PARAM_FLOAT(dx);
|
||||
PARAM_FLOAT(dy);
|
||||
PARAM_BOOL_DEF(absolute);
|
||||
if (absolute)
|
||||
{
|
||||
ACTION_RETURN_VEC2(DVector2(x + dx, y + dy));
|
||||
}
|
||||
else
|
||||
{
|
||||
DVector2 v = P_GetOffsetPosition(x, y, dx, dy);
|
||||
ACTION_RETURN_VEC2(v);
|
||||
}
|
||||
}
|
||||
|
||||
DEFINE_ACTION_FUNCTION(FLevelLocals, Vec2OffsetZ)
|
||||
{
|
||||
PARAM_PROLOGUE;
|
||||
PARAM_FLOAT(x);
|
||||
PARAM_FLOAT(y);
|
||||
PARAM_FLOAT(dx);
|
||||
PARAM_FLOAT(dy);
|
||||
PARAM_FLOAT(atz);
|
||||
PARAM_BOOL_DEF(absolute);
|
||||
if (absolute)
|
||||
{
|
||||
ACTION_RETURN_VEC3(DVector3(x + dx, y + dy, atz));
|
||||
}
|
||||
else
|
||||
{
|
||||
DVector2 v = P_GetOffsetPosition(x, y, dx, dy);
|
||||
ACTION_RETURN_VEC3(DVector3(v, atz));
|
||||
}
|
||||
}
|
||||
|
||||
DEFINE_ACTION_FUNCTION(FLevelLocals, Vec3Offset)
|
||||
{
|
||||
PARAM_PROLOGUE;
|
||||
PARAM_FLOAT(x);
|
||||
PARAM_FLOAT(y);
|
||||
PARAM_FLOAT(z);
|
||||
PARAM_FLOAT(dx);
|
||||
PARAM_FLOAT(dy);
|
||||
PARAM_FLOAT(dz);
|
||||
PARAM_BOOL_DEF(absolute);
|
||||
if (absolute)
|
||||
{
|
||||
ACTION_RETURN_VEC3(DVector3(x + dx, y + dy, z + dz));
|
||||
}
|
||||
else
|
||||
{
|
||||
DVector2 v = P_GetOffsetPosition(x, y, dx, dy);
|
||||
ACTION_RETURN_VEC3(DVector3(v, z + dz));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
//
|
||||
|
|
|
@ -652,6 +652,10 @@ struct LevelLocals native
|
|||
native static clearscope vector2 Vec2Diff(vector2 v1, vector2 v2);
|
||||
native static clearscope vector3 Vec3Diff(vector3 v1, vector3 v2);
|
||||
|
||||
native static clearscope vector2 Vec2Offset(vector2 pos, vector2 dir, bool absolute = false);
|
||||
native static clearscope vector3 Vec2OffsetZ(vector2 pos, vector2 dir, double atz, bool absolute = false);
|
||||
native static clearscope vector3 Vec3Offset(vector3 pos, vector3 dir, bool absolute = false);
|
||||
|
||||
native String GetChecksum() const;
|
||||
|
||||
native void ChangeSky( TextureID sky1, TextureID sky2 );
|
||||
|
|
Loading…
Reference in a new issue