- more direct native stuff, this is a week old but was almost forgotten.

This commit is contained in:
Christoph Oelckers 2018-12-06 00:28:05 +01:00
commit aef882c137
4 changed files with 62 additions and 30 deletions

View file

@ -83,13 +83,22 @@ CVAR(Color, dimcolor, 0xffd700, CVAR_ARCHIVE)
DEFINE_ACTION_FUNCTION(DMenu, GetCurrentMenu)
static DMenu *GetCurrentMenu()
{
return CurrentMenu;
}
DEFINE_ACTION_FUNCTION_NATIVE(DMenu, GetCurrentMenu, GetCurrentMenu)
{
ACTION_RETURN_OBJECT(CurrentMenu);
}
static int GetMenuTime()
{
return MenuTime;
}
DEFINE_ACTION_FUNCTION(DMenu, MenuTime)
DEFINE_ACTION_FUNCTION_NATIVE(DMenu, MenuTime, GetMenuTime)
{
ACTION_RETURN_INT(MenuTime);
}
@ -123,13 +132,17 @@ IMPLEMENT_CLASS(DMenuDescriptor, false, false)
IMPLEMENT_CLASS(DListMenuDescriptor, false, false)
IMPLEMENT_CLASS(DOptionMenuDescriptor, false, false)
DEFINE_ACTION_FUNCTION(DMenuDescriptor, GetDescriptor)
DMenuDescriptor *GetMenuDescriptor(int name)
{
DMenuDescriptor **desc = MenuDescriptors.CheckKey(ENamedName(name));
return desc ? *desc : nullptr;
}
DEFINE_ACTION_FUNCTION_NATIVE(DMenuDescriptor, GetDescriptor, GetMenuDescriptor)
{
PARAM_PROLOGUE;
PARAM_NAME(name);
DMenuDescriptor **desc = MenuDescriptors.CheckKey(name);
auto retn = desc ? *desc : nullptr;
ACTION_RETURN_OBJECT(retn);
ACTION_RETURN_OBJECT(GetMenuDescriptor(name));
}
size_t DListMenuDescriptor::PropagateMark()
@ -240,12 +253,16 @@ bool DMenu::CallMenuEvent(int mkey, bool fromcontroller)
//
//=============================================================================
DEFINE_ACTION_FUNCTION(DMenu, SetMouseCapture)
static void SetMouseCapture(bool on)
{
if (on) I_SetMouseCapture();
else I_ReleaseMouseCapture();
}
DEFINE_ACTION_FUNCTION_NATIVE(DMenu, SetMouseCapture, SetMouseCapture)
{
PARAM_PROLOGUE;
PARAM_BOOL(on);
if (on) I_SetMouseCapture();
else I_ReleaseMouseCapture();
SetMouseCapture(on);
return 0;
}
@ -271,7 +288,13 @@ void DMenu::Close ()
}
}
DEFINE_ACTION_FUNCTION(DMenu, Close)
static void Close(DMenu *menu)
{
menu->Close();
}
DEFINE_ACTION_FUNCTION_NATIVE(DMenu, Close, Close)
{
PARAM_SELF_PROLOGUE(DMenu);
self->Close();