Files
UnrealEngine/Engine/Source/Editor/ActionableMessage/Private/ActionableMessageSubsystem.cpp
2025-05-18 13:04:45 +08:00

37 lines
1.1 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "ActionableMessageSubsystem.h"
#include UE_INLINE_GENERATED_CPP_BY_NAME(ActionableMessageSubsystem)
bool operator!=(const FActionableMessage& LHS, const FActionableMessage& RHS)
{
return !LHS.Message.EqualTo(RHS.Message) || !LHS.ActionMessage.EqualTo(RHS.ActionMessage) || !LHS.Tooltip.EqualTo(RHS.Tooltip)
|| (!FMemory::Memcmp(&LHS.ActionCallback, &RHS.ActionCallback, sizeof (LHS.ActionCallback)));
}
void UActionableMessageSubsystem::SetActionableMessage(FName InProvider, const FActionableMessage& InActionableMessage)
{
const TSharedPtr<FActionableMessage>* ValuePtr = ProviderActionableMessageMap.Find(InProvider);
if (ValuePtr == nullptr)
{
ProviderActionableMessageMap.Emplace(InProvider, MakeShared<FActionableMessage>(InActionableMessage));
++StateID;
}
else if (**ValuePtr != InActionableMessage)
{
**ValuePtr = InActionableMessage;
++StateID;
}
}
void UActionableMessageSubsystem::ClearActionableMessage(FName InProvider)
{
if (ProviderActionableMessageMap.Remove(InProvider) > 0)
{
++StateID;
}
}