gzdoom/wadsrc/static/zscript/statusbar/sbarinfowrapper.txt

99 lines
2 KiB
Text
Raw Normal View History

struct SBarInfo native ui
{
native void SetScaled(bool scaled);
native void Destroy();
native void AttachToPlayer(PlayerInfo player);
native void ScreenSizeChanged();
native void Draw(int state);
native void NewGame();
native bool MustDrawLog(int state);
native void SetMugShotState(String state_name, bool wait_till_done, bool reset);
native void Tick();
native clearscope void ReceivedWeapon(Weapon weapon);
native void FlashItem(class<Inventory> itemtype);
native void ShowPop(int popnum);
}
// The sole purpose of this wrapper is to elimintate the native dependencies of the status bar object
// because those would seriously impede the script conversion of the base class.
class SBarInfoWrapper : BaseStatusBar
{
private clearscope SBarInfo core;
override void OnDestroy()
{
if (core != null) core.Destroy(); // note that the core is not a GC'd object!
Super.OnDestroy();
}
override void SetScaled(bool scale, bool force)
{
Super.SetScaled(scale, force);
core.SetScaled(Scaled);
}
override void AttachToPlayer(PlayerInfo player)
{
Super.AttachToPlayer(player);
core.AttachToPlayer(player);
}
override void ScreenSizeChanged()
{
Super.ScreenSizeChanged();
core.ScreenSizeChanged();
}
override void Draw(int state, double TicFrac)
{
Super.Draw(state, TicFrac);
core.Draw(state);
}
override void NewGame()
{
Super.NewGame();
if (CPlayer != NULL)
{
AttachToPlayer(CPlayer);
core.NewGame();
}
}
override bool MustDrawLog(int state)
{
return core.MustDrawLog(state);
}
override void SetMugShotState(String state_name, bool wait_till_done, bool reset)
{
core.SetMugShotState(state_name, wait_till_done, reset);
}
override void Tick()
{
Super.Tick();
core.Tick();
}
override void ReceivedWeapon(Weapon weapon)
{
core.ReceivedWeapon(weapon);
}
override void FlashItem(class<Inventory> itemtype)
{
core.FlashItem(itemtype);
}
override void ShowPop(int popnum)
{
Super.ShowPop(popnum);
core.ShowPop(popnum);
}
}