56 lines
1.7 KiB
C++
56 lines
1.7 KiB
C++
|
// Copyright Epic Games, Inc. All Rights Reserved.
|
||
|
|
||
|
#include "LyraVerbMessageReplication.h"
|
||
|
#include "GameFramework/GameplayMessageSubsystem.h"
|
||
|
|
||
|
//////////////////////////////////////////////////////////////////////
|
||
|
// FLyraVerbMessageReplicationEntry
|
||
|
|
||
|
FString FLyraVerbMessageReplicationEntry::GetDebugString() const
|
||
|
{
|
||
|
return Message.ToString();
|
||
|
}
|
||
|
|
||
|
//////////////////////////////////////////////////////////////////////
|
||
|
// FLyraVerbMessageReplication
|
||
|
|
||
|
void FLyraVerbMessageReplication::AddMessage(const FLyraVerbMessage& Message)
|
||
|
{
|
||
|
FLyraVerbMessageReplicationEntry& NewStack = CurrentMessages.Emplace_GetRef(Message);
|
||
|
MarkItemDirty(NewStack);
|
||
|
}
|
||
|
|
||
|
void FLyraVerbMessageReplication::PreReplicatedRemove(const TArrayView<int32> RemovedIndices, int32 FinalSize)
|
||
|
{
|
||
|
// for (int32 Index : RemovedIndices)
|
||
|
// {
|
||
|
// const FGameplayTag Tag = CurrentMessages[Index].Tag;
|
||
|
// TagToCountMap.Remove(Tag);
|
||
|
// }
|
||
|
}
|
||
|
|
||
|
void FLyraVerbMessageReplication::PostReplicatedAdd(const TArrayView<int32> AddedIndices, int32 FinalSize)
|
||
|
{
|
||
|
for (int32 Index : AddedIndices)
|
||
|
{
|
||
|
const FLyraVerbMessageReplicationEntry& Entry = CurrentMessages[Index];
|
||
|
RebroadcastMessage(Entry.Message);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
void FLyraVerbMessageReplication::PostReplicatedChange(const TArrayView<int32> ChangedIndices, int32 FinalSize)
|
||
|
{
|
||
|
for (int32 Index : ChangedIndices)
|
||
|
{
|
||
|
const FLyraVerbMessageReplicationEntry& Entry = CurrentMessages[Index];
|
||
|
RebroadcastMessage(Entry.Message);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
void FLyraVerbMessageReplication::RebroadcastMessage(const FLyraVerbMessage& Message)
|
||
|
{
|
||
|
check(Owner);
|
||
|
UGameplayMessageSubsystem& MessageSystem = UGameplayMessageSubsystem::Get(Owner);
|
||
|
MessageSystem.BroadcastMessage(Message.Verb, Message);
|
||
|
}
|