So there is this function:
UFUNCTION(BlueprintCallable, Category = "DataTable", meta = (ExpandEnumAsExecs="OutResult", DataTablePin="CurveTable"))
static void EvaluateCurveTableRow(UCurveTable* CurveTable, FName RowName, float InXY, TEnumAsByte<EEvaluateCurveTableResult::Type>& OutResult, float& OutXY);
And when you plug some asset into CurveTable parameter, magic happens! There is small widget constructed for RowName, which allow you to select row name from selected asset. That’s so awesome.
So I went, to search how it is done, and my only guess would be this:
DECLARE_FUNCTION(execGetDataTableRowFromName)
{
P_GET_OBJECT(UDataTable, Table);
P_GET_PROPERTY(UNameProperty, RowName);
Stack.StepCompiledIn<UStructProperty>(NULL);
void* OutRowPtr = Stack.MostRecentPropertyAddress;
P_FINISH;
*(bool*)Result = Generic_GetDataTableRowFromName(Table, RowName, OutRowPtr);
}
It’s thunk for other function.
I’m to assume that this code automatically looks for properties named RowName (??), and then it try to display some widget ? It can’t be that easy.