UMulticastDelegateProperty* UK2Node_ActorBoundEvent::GetTargetDelegateProperty() { auto ActualEventSignatureClass = FActorBoundEventHelper::GetSignatureClass(this); if (!EventSignatureClass && ActualEventSignatureClass) { EventSignatureClass = ActualEventSignatureClass; } UMulticastDelegateProperty* TargetDelegateProp = Cast<UMulticastDelegateProperty>(FindField<UMulticastDelegateProperty>(EventSignatureClass, DelegatePropertyName)); // If we couldn't find the target delegate, then try to find it in the property remap table if (!TargetDelegateProp) { UMulticastDelegateProperty* NewProperty = Cast<UMulticastDelegateProperty>(FindRemappedField(EventSignatureClass, DelegatePropertyName)); if (NewProperty) { // Found a remapped property, update the node TargetDelegateProp = NewProperty; DelegatePropertyName = NewProperty->GetFName(); EventSignatureClass = Cast<UClass>(NewProperty->GetOuter()); CachedNodeTitle.MarkDirty(); } } return TargetDelegateProp; }
UFunction* UK2Node_Event::FindEventSignatureFunction() { UFunction* Function = FindField<UFunction>(EventSignatureClass, EventSignatureName); // First try remap table if ((Function == NULL) && (EventSignatureClass != NULL)) { Function = Cast<UFunction>(FindRemappedField(EventSignatureClass, EventSignatureName)); if( Function ) { // Found a remapped property, update the node EventSignatureName = Function->GetFName(); EventSignatureClass = Cast<UClass>(Function->GetOuter()); } } return Function; }