void LuaScriptEventInvoker::AddEventHandler(Object* sender, const StringHash& eventType, LuaFunction* function) { if (!function) return; if (sender) SubscribeToEvent(sender, eventType, HANDLER_USERDATA(LuaScriptEventInvoker, HandleLuaScriptEvent, function)); else SubscribeToEvent(eventType, HANDLER_USERDATA(LuaScriptEventInvoker, HandleLuaScriptEvent, function)); }
void ScriptFile::AddEventHandler(Object* sender, StringHash eventType, const String& handlerName) { if (!compiled_) return; if (!sender) { LOGERROR("Null event sender for event " + String(eventType) + ", handler " + handlerName); return; } String declaration = "void " + handlerName + "(StringHash, VariantMap&)"; asIScriptFunction* function = GetFunction(declaration); if (!function) { declaration = "void " + handlerName + "()"; function = GetFunction(declaration); if (!function) { LOGERROR("Event handler function " + handlerName + " not found in " + GetName()); return; } } SubscribeToEvent(sender, eventType, HANDLER_USERDATA(ScriptFile, HandleScriptEvent, (void*)function)); }