From 3ee5edb54a59f027b457190d28de3287b39c7210 Mon Sep 17 00:00:00 2001 From: Sebastian Pape <Sebastian.Pape@rwth-aachen.de> Date: Wed, 27 Nov 2019 11:57:25 +0100 Subject: [PATCH] Moved Clusterevents to BeginPlay and EndPlay --- .../Private/CAVEOverlayController.cpp | 33 ++++++++++--------- .../Public/CAVEOverlayController.h | 3 +- 2 files changed, 19 insertions(+), 17 deletions(-) diff --git a/Source/CAVEOverlay/Private/CAVEOverlayController.cpp b/Source/CAVEOverlay/Private/CAVEOverlayController.cpp index 9301e07..a28b0e5 100644 --- a/Source/CAVEOverlay/Private/CAVEOverlayController.cpp +++ b/Source/CAVEOverlay/Private/CAVEOverlayController.cpp @@ -111,22 +111,6 @@ ACAVEOverlayController::ACAVEOverlayController() Sign_Positive_Y->SetRelativeScale3D(FVector(0.5f)); Sign_Negative_X->SetRelativeScale3D(FVector(0.5f)); Sign_Positive_X->SetRelativeScale3D(FVector(0.5f)); - - IDisplayClusterClusterManager* ClusterManager = IDisplayCluster::Get().GetClusterMgr(); - if (ClusterManager && !ClusterEventListenerDelegate.IsBound()) - { - ClusterEventListenerDelegate = FOnClusterEventListener::CreateUObject(this, &ACAVEOverlayController::HandleClusterEvent); - ClusterManager->AddClusterEventListener(ClusterEventListenerDelegate); - } -} - -ACAVEOverlayController::~ACAVEOverlayController() -{ - IDisplayClusterClusterManager* ClusterManager = IDisplayCluster::Get().GetClusterMgr(); - if (ClusterManager && ClusterEventListenerDelegate.IsBound()) - { - ClusterManager->RemoveClusterEventListener(ClusterEventListenerDelegate); - } } void ACAVEOverlayController::PostInitializeComponents() @@ -226,6 +210,12 @@ void ACAVEOverlayController::BeginPlay() //Input config InputComponent->BindKey(EKeys::F10, EInputEvent::IE_Pressed, this, &ACAVEOverlayController::CycleDoorType); + IDisplayClusterClusterManager* ClusterManager = IDisplayCluster::Get().GetClusterMgr(); + if (ClusterManager && !ClusterEventListenerDelegate.IsBound()) + { + ClusterEventListenerDelegate = FOnClusterEventListener::CreateUObject(this, &ACAVEOverlayController::HandleClusterEvent); + ClusterManager->AddClusterEventListener(ClusterEventListenerDelegate); + } //Determine the screen-type for later usage if (IDisplayCluster::Get().GetClusterMgr()->GetNodeId().Equals(Screen_Main, ESearchCase::IgnoreCase)) @@ -260,6 +250,17 @@ void ACAVEOverlayController::BeginPlay() } } +void ACAVEOverlayController::EndPlay(const EEndPlayReason::Type EndPlayReason) +{ + IDisplayClusterClusterManager* ClusterManager = IDisplayCluster::Get().GetClusterMgr(); + if (ClusterManager && ClusterEventListenerDelegate.IsBound()) + { + ClusterManager->RemoveClusterEventListener(ClusterEventListenerDelegate); + } + + Super::EndPlay(EndPlayReason); +} + float ACAVEOverlayController::CalculateOpacityFromPosition(FVector Position) { return FMath::Max( diff --git a/Source/CAVEOverlay/Public/CAVEOverlayController.h b/Source/CAVEOverlay/Public/CAVEOverlayController.h index 6daa7e9..73760b6 100644 --- a/Source/CAVEOverlay/Public/CAVEOverlayController.h +++ b/Source/CAVEOverlay/Public/CAVEOverlayController.h @@ -22,12 +22,13 @@ UCLASS() class CAVEOVERLAY_API ACAVEOverlayController : public AActor { GENERATED_BODY() + public: ACAVEOverlayController(); - ~ACAVEOverlayController(); protected: // Called when the game starts or when spawned virtual void BeginPlay() override; + virtual void EndPlay(const EEndPlayReason::Type EndPlayReason) override; virtual void PostInitializeComponents() override; private: -- GitLab