GameplayInteractions: Fix mutable uses of instanced structs and struct views.

#jira UE-172049
#rb Mieszko.Zielinski
#preflight 63bff3166c4f5668eb4a3c0f

[CL 23661842 by mikko mononen in ue5-main branch]
This commit is contained in:
mikko mononen
2023-01-12 09:01:12 -05:00
parent 02e65ff818
commit f33bbcd310
3 changed files with 5 additions and 5 deletions

View File

@@ -46,7 +46,7 @@ UGameplayTask* UGameplayActuationComponent::TryMakeTransitionTask(const FConstSt
for (const FInstancedStruct& Transition : Transitions)
{
if (const FGameplayTransitionDesc* Desc = Transition.GetMutablePtr<FGameplayTransitionDesc>())
if (const FGameplayTransitionDesc* Desc = Transition.GetPtr<FGameplayTransitionDesc>())
{
Result = Desc->MakeTransitionTask(TransitionContext);
if (Result != nullptr)
@@ -124,7 +124,7 @@ void UGameplayActuationComponent::TickComponent(float DeltaTime, ELevelTick Tick
}
// Take copy of the new state so that both states exists during the transition.
FInstancedStruct NewState = NextState;
FInstancedStruct NewState(NextState);
if (FGameplayActuationStateBase* State = NewState.GetMutablePtr<FGameplayActuationStateBase>())
{
@@ -191,7 +191,7 @@ void UGameplayActuationComponent::TickComponent(float DeltaTime, ELevelTick Tick
#if ENABLE_VISUAL_LOG
void UGameplayActuationComponent::GrabDebugSnapshot(FVisualLogEntry* Snapshot) const
{
const FGameplayActuationStateBase* State = ActuationState.GetMutablePtr<FGameplayActuationStateBase>();
const FGameplayActuationStateBase* State = ActuationState.GetPtr<FGameplayActuationStateBase>();
if (State == nullptr)
{
return;

View File

@@ -89,7 +89,7 @@ EStateTreeRunStatus FGameplayInteractionSyncSlotTagStateTask::EnterState(FStateT
if (!InstanceData.bBreakSignalled)
{
InstanceData.OnEventHandle = OnEventDelegate->AddLambda([this, InstanceDataRef = Context.GetInstanceDataStructRef(*this), &EventQueue, SmartObjectSubsystem = &SmartObjectSubsystem, Owner = Context.GetOwner()](const FSmartObjectEventData& Data)
InstanceData.OnEventHandle = OnEventDelegate->AddLambda([this, InstanceDataRef = Context.GetInstanceDataStructRef(*this), &EventQueue, SmartObjectSubsystem = &SmartObjectSubsystem, Owner = Context.GetOwner()](const FSmartObjectEventData& Data) mutable
{
if (Data.Reason == ESmartObjectChangeReason::OnTagRemoved)
{

View File

@@ -107,7 +107,7 @@ EStateTreeRunStatus FGameplayInteractionSyncSlotTagTransitionTask::EnterState(FS
if (InstanceData.State != EGameplayInteractionSyncSlotTransitionState::Completed)
{
InstanceData.OnEventHandle = OnEventDelegate->AddLambda(
[this, &EventQueue, InstanceDataRef = Context.GetInstanceDataStructRef(*this), SmartObjectSubsystem = &SmartObjectSubsystem, Owner = Context.GetOwner()](const FSmartObjectEventData& Data)
[this, &EventQueue, InstanceDataRef = Context.GetInstanceDataStructRef(*this), SmartObjectSubsystem = &SmartObjectSubsystem, Owner = Context.GetOwner()](const FSmartObjectEventData& Data) mutable
{
if (Data.Reason == ESmartObjectChangeReason::OnTagAdded)
{