From 6cfd3f4f6c78d6b769cf749657142e6ffba0767a Mon Sep 17 00:00:00 2001 From: David Gilbert <david.gilbert@rwth-aachen.de> Date: Thu, 11 Jul 2024 12:16:56 +0200 Subject: [PATCH] pull changes forward --- .../Public/Events/DisplayClusterEventWrapper.h | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/Source/RWTHVRCluster/Public/Events/DisplayClusterEventWrapper.h b/Source/RWTHVRCluster/Public/Events/DisplayClusterEventWrapper.h index f7df285..da694b6 100644 --- a/Source/RWTHVRCluster/Public/Events/DisplayClusterEventWrapper.h +++ b/Source/RWTHVRCluster/Public/Events/DisplayClusterEventWrapper.h @@ -24,9 +24,10 @@ public: void Attach(ObjectType* NewObject) { + checkf(Object == nullptr, TEXT("The event is already attached.")); Object = NewObject; - ObjectId = Object->GetUniqueID(); + ObjectName = Object->GetFullName(); EDisplayClusterOperationMode OperationMode = IDisplayCluster::Get().GetOperationMode(); if (OperationMode == EDisplayClusterOperationMode::Cluster) @@ -45,10 +46,10 @@ public: FMemoryReader MemoryReader(Event.EventData); - uint32 EventObjectId; + FString EventObjectName; // This reads the value! - MemoryReader << EventObjectId; - if (EventObjectId != ObjectId) + MemoryReader << EventObjectName; + if (EventObjectName != ObjectName) { // Event does not belong to this object. return; @@ -100,6 +101,7 @@ public: EDisplayClusterOperationMode OperationMode = IDisplayCluster::Get().GetOperationMode(); if (OperationMode != EDisplayClusterOperationMode::Cluster) { + // Cluster event can be bypassed and function directly called (Object->*MemberFunction)(Forward<ArgTypes>(Arguments)...); } else @@ -112,7 +114,7 @@ public: ClusterEvent.bShouldDiscardOnRepeat = false; FMemoryWriter MemoryWriter(ClusterEvent.EventData); - MemoryWriter << ObjectId; + MemoryWriter << const_cast<FString&>(ObjectName); MemoryWriter << const_cast<FString&>(MethodName); SerializeParameters(&MemoryWriter, Forward<ArgTypes>(Arguments)...); @@ -122,7 +124,7 @@ public: private: const FString MethodName; - uint32 ObjectId; + FString ObjectName; ObjectType* Object = nullptr; FOnClusterEventBinaryListener ClusterEventListenerDelegate; }; -- GitLab