vkdoom_m/wadsrc/static/zscript/visualthinker.zs
Ricardo Luís Vaz Silva 35e56d3f42 Minor optimizations to VisualThinker
* remove duplicated fields
* make native functions use direct calls
* remove unnecessary pointer from particle_t
* create HWSprite directly in Construct
2024-01-06 20:06:57 -05:00

48 lines
1.1 KiB
Text

Class VisualThinker : Thinker native
{
native Vector3 Pos,
Vel,
Prev;
native Vector2 Scale,
Offset;
native double Roll,
PrevRoll;
native float Alpha;
native TextureID Texture;
native TranslationID Translation;
native uint16 Flags;
native int16 LightLevel;
native bool bXFlip,
bYFlip,
bDontInterpolate,
bAddLightLevel;
native Color scolor;
native Sector CurSector; // can be null!
native void SetTranslation(Name trans);
native void SetRenderStyle(int mode); // see ERenderStyle
native bool IsFrozen();
static VisualThinker Spawn(Class<VisualThinker> type, TextureID tex, Vector3 pos, Vector3 vel, double alpha = 1.0, int flags = 0,
double roll = 0.0, Vector2 scale = (1,1), Vector2 offset = (0,0), int style = STYLE_Normal, TranslationID trans = 0)
{
if (!Level) return null;
let p = level.SpawnVisualThinker(type);
if (p)
{
p.Texture = tex;
p.Pos = pos;
p.Vel = vel;
p.Alpha = alpha;
p.Roll = roll;
p.Scale = scale;
p.Offset = offset;
p.SetRenderStyle(style);
p.Translation = trans;
p.Flags = flags;
}
return p;
}
}