Skip to content

Fix: UFlowNodeAddOn never overrides GetParentNode() - #390

Open
Locomody wants to merge 1 commit into
MothCocoon:5.xfrom
Locomody:patch-1
Open

Fix: UFlowNodeAddOn never overrides GetParentNode()#390
Locomody wants to merge 1 commit into
MothCocoon:5.xfrom
Locomody:patch-1

Conversation

@Locomody

@Locomody Locomody commented Sep 2, 2026

Copy link
Copy Markdown

Fix UFlowNodeAddOn missing GetParentNode() override

UFlowNodeBase::GetParentNode() is declared PURE_VIRTUAL. Under CHECK_PUREVIRTUALS=0 that macro expands to a body that only fatal-errors if actually called, so a subclass that never overrides it still compiles. Under CHECK_PUREVIRTUALS=1 it expands to =0, a genuine pure virtual, and any concrete class that leaves it unoverridden fails to compile as abstract.

UFlowNode overrides GetParentNode(). UFlowNodeAddOn overrides every other pure virtual it inherits from UFlowNodeBase but missed this one, so every concrete UFlowNodeAddOn subclass is abstract under CHECK_PUREVIRTUALS=1, including the built-in predicate addons (AND, OR, NOT, RequireGameplayTags, CompareValues) and any project-defined addon.

Add the same override UFlowNode already has, reusing GetFlowNodeSelfOrOwner() which UFlowNodeAddOn already resolves correctly to the owning top-level node.

Fix UFlowNodeAddOn missing GetParentNode() override

UFlowNodeBase::GetParentNode() is declared PURE_VIRTUAL. Under CHECK_PUREVIRTUALS=0 that macro expands to a body that only fatal-errors if actually called, so a subclass that never overrides it still compiles. Under CHECK_PUREVIRTUALS=1 it expands to =0, a genuine pure virtual, and any concrete class that leaves it unoverridden fails to compile as abstract.

UFlowNode overrides GetParentNode(). UFlowNodeAddOn overrides every other pure virtual it inherits from UFlowNodeBase but missed this one, so every concrete UFlowNodeAddOn subclass is abstract under CHECK_PUREVIRTUALS=1, including the built-in predicate addons (AND, OR, NOT, RequireGameplayTags, CompareValues) and any project-defined addon.

Add the same override UFlowNode already has, reusing GetFlowNodeSelfOrOwner() which UFlowNodeAddOn already resolves correctly to the owning top-level node.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant