Hello guys,
i just updated from 4.7.6 to 4.8.0 .
I had some minor issues that i have already solved, but it seems i can’t get out from this one.
I have an interface declared like this (ommitting some function declarations):
UINTERFACE(meta = (CannotImplementInterfaceInBlueprint))
class UEntityInterface : public UInterface
{
GENERATED_UINTERFACE_BODY()
};
class IEntityInterface
{
GENERATED_IINTERFACE_BODY()
/** returns the owner number of the actor (0=world, otherwise it's a player) */
UFUNCTION(BlueprintCallable, Category = "ImperoEntities")
virtual int32 GetOwnerNum() const = 0;
[.....]
};
And, on another interface:
UINTERFACE(Blueprintable)
class USelectableInterface : public UInterface
{
GENERATED_UINTERFACE_BODY()
};
class ISelectableInterface
{
GENERATED_IINTERFACE_BODY()
/** tries to select actor */
UFUNCTION(BlueprintImplementableEvent, Category = Selection)
void OnSelectionGained();
/** tries to deselect actor */
UFUNCTION(BlueprintImplementableEvent, Category = Selection)
void OnSelectionLost();
/** My problems lies here */
UFUNCTION(BlueprintImplementableEvent, Category = Commands)
bool DoOnTargetEvent(const TScriptInterface<IEntityInterface>& Target, EJobType::Type JobType);
};
In 4.7.6, i defined the DoOnTargetEvent in a blueprint, called it from C++ and it worked like a charm.
Now, in 4.8, i see that function, but when i try to implement it, even when it’s still void, i get this error:
Error Cannot override 'SelectableInterface::DoOnTargetEvent' at Do on Target Event which was declared in a parent with a different signature
It works if i comment out the TScriptInterface, leaving only the enum.
I’ll soon provide some test code.