- exposed the HUD message interface to ZScript.
Note that this is just the bare abstract interface. It is up to content makers to define usable HUD message classes and optionally contribute them to the engine.
This commit is contained in:
parent
dd893b6a0c
commit
bb16e34bf4
4 changed files with 106 additions and 3 deletions
|
|
@ -601,7 +601,7 @@ void DBaseStatusBar::Tick ()
|
|||
{
|
||||
DHUDMessageBase *next = msg->Next;
|
||||
|
||||
if (msg->Tick ())
|
||||
if (msg->CallTick ())
|
||||
{
|
||||
*prev = next;
|
||||
msg->Destroy();
|
||||
|
|
@ -697,6 +697,16 @@ void DBaseStatusBar::AttachMessage (DHUDMessageBase *msg, uint32_t id, int layer
|
|||
GC::WriteBarrier(container, msg);
|
||||
}
|
||||
|
||||
DEFINE_ACTION_FUNCTION(DBaseStatusBar, AttachMessage)
|
||||
{
|
||||
PARAM_SELF_PROLOGUE(DBaseStatusBar);
|
||||
PARAM_OBJECT(msg, DHUDMessageBase);
|
||||
PARAM_UINT(id);
|
||||
PARAM_INT(layer);
|
||||
self->AttachMessage(msg, id, layer);
|
||||
return 0;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// PROC DetachMessage
|
||||
|
|
@ -725,6 +735,14 @@ DHUDMessageBase *DBaseStatusBar::DetachMessage (DHUDMessageBase *msg)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
DEFINE_ACTION_FUNCTION(DBaseStatusBar, DetachMessage)
|
||||
{
|
||||
PARAM_SELF_PROLOGUE(DBaseStatusBar);
|
||||
PARAM_OBJECT(msg, DHUDMessageBase);
|
||||
ACTION_RETURN_OBJECT(self->DetachMessage(msg));
|
||||
}
|
||||
|
||||
|
||||
DHUDMessageBase *DBaseStatusBar::DetachMessage (uint32_t id)
|
||||
{
|
||||
for (size_t i = 0; i < countof(Messages); ++i)
|
||||
|
|
@ -747,6 +765,13 @@ DHUDMessageBase *DBaseStatusBar::DetachMessage (uint32_t id)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
DEFINE_ACTION_FUNCTION(DBaseStatusBar, DetachMessageID)
|
||||
{
|
||||
PARAM_SELF_PROLOGUE(DBaseStatusBar);
|
||||
PARAM_INT(id);
|
||||
ACTION_RETURN_OBJECT(self->DetachMessage(id));
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// PROC DetachAllMessages
|
||||
|
|
@ -769,6 +794,14 @@ void DBaseStatusBar::DetachAllMessages ()
|
|||
}
|
||||
}
|
||||
|
||||
DEFINE_ACTION_FUNCTION(DBaseStatusBar, DetachAllMessages)
|
||||
{
|
||||
PARAM_SELF_PROLOGUE(DBaseStatusBar);
|
||||
self->DetachAllMessages();
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// PROC ShowPlayerName
|
||||
|
|
@ -954,7 +987,7 @@ void DBaseStatusBar::DrawMessages (int layer, int bottom)
|
|||
while (msg)
|
||||
{
|
||||
DHUDMessageBase *next = msg->Next;
|
||||
msg->Draw (bottom, visibility);
|
||||
msg->CallDraw (bottom, visibility);
|
||||
msg = next;
|
||||
}
|
||||
}
|
||||
|
|
@ -1310,7 +1343,7 @@ void DBaseStatusBar::ScreenSizeChanged ()
|
|||
DHUDMessageBase *message = Messages[i];
|
||||
while (message != NULL)
|
||||
{
|
||||
message->ScreenSizeChanged ();
|
||||
message->CallScreenSizeChanged ();
|
||||
message = message->Next;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue