- add argument for EventHandler.Find() which allows searching by parent class (default false)

This commit is contained in:
Rachael Alexanderson 2025-08-24 04:27:55 -04:00
commit abdacad8d3
No known key found for this signature in database
GPG key ID: 26A8ACCE97115EE0
2 changed files with 11 additions and 1 deletions

View file

@ -1699,9 +1699,14 @@ DEFINE_ACTION_FUNCTION(DEventHandler, Find)
{
PARAM_PROLOGUE;
PARAM_CLASS(t, DStaticEventHandler);
PARAM_BOOL(subclass);
for (DStaticEventHandler* handler = currentVMLevel->localEventManager->FirstEventHandler; handler; handler = handler->next)
{
if (handler->GetClass() == t) // check precise class
ACTION_RETURN_OBJECT(handler);
else if (subclass && handler->IsKindOf(t));
ACTION_RETURN_OBJECT(handler);
}
ACTION_RETURN_OBJECT(nullptr);
}
@ -1710,9 +1715,14 @@ DEFINE_ACTION_FUNCTION(DStaticEventHandler, Find)
{
PARAM_PROLOGUE;
PARAM_CLASS(t, DStaticEventHandler);
PARAM_BOOL(subclass);
for (DStaticEventHandler* handler = staticEventManager.FirstEventHandler; handler; handler = handler->next)
{
if (handler->GetClass() == t) // check precise class
ACTION_RETURN_OBJECT(handler);
else if (subclass && handler->IsKindOf(t));
ACTION_RETURN_OBJECT(handler);
}
ACTION_RETURN_OBJECT(nullptr);
}