From 507e24ef029d0312f4f53134818516480daea0c0 Mon Sep 17 00:00:00 2001
From: Sebastian Pape <Sebastian.Pape@rwth-aachen.de>
Date: Tue, 17 Sep 2019 13:31:13 +0200
Subject: [PATCH 1/3] Removed HMD Mode check and added custom argument check
 for cave launch

---
 .../CAVEOverlay/Private/CAVEOverlayController.cpp   | 13 ++++++++-----
 Source/CAVEOverlay/Public/CAVEOverlayController.h   |  3 +--
 2 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/Source/CAVEOverlay/Private/CAVEOverlayController.cpp b/Source/CAVEOverlay/Private/CAVEOverlayController.cpp
index d15ec0f..721e9e4 100644
--- a/Source/CAVEOverlay/Private/CAVEOverlayController.cpp
+++ b/Source/CAVEOverlay/Private/CAVEOverlayController.cpp
@@ -10,6 +10,7 @@
 #include "Components/InputComponent.h"
 #include "Cluster/IDisplayClusterClusterManager.h"
 #include "IDisplayClusterGameManager.h"
+#include "IDisplayClusterConfigManager.h"
 #include "UObject/ConstructorHelpers.h"
 #include <array>
 #include "Components/StaticMeshComponent.h"
@@ -181,10 +182,12 @@ void ACAVEOverlayController::BeginPlay()
 	Super::BeginPlay();
 
 	//Read situation
-	bHMD_Mode = GEngine->XRSystem.IsValid() && GEngine->XRSystem->IsHeadTrackingAllowed();
-	bDisplay_Cluster_Mode = IDisplayCluster::Get().GetOperationMode() == EDisplayClusterOperationMode::Cluster;
-
-	if (!bDisplay_Cluster_Mode) return; // Not our business
+	if (IDisplayCluster::Get().GetOperationMode() == EDisplayClusterOperationMode::Cluster) {
+		auto ClusterConfigCustom = IDisplayCluster::Get().GetConfigMgr()->GetConfigCustom();
+		bCAVE_Mode = ClusterConfigCustom.Args.Contains("Hardware_Platform") && ClusterConfigCustom.Args.Find("Hardware_Platform")->ToLower().Compare("aixcave");
+	}
+	
+	if (!bCAVE_Mode) return; // Not our business
 
 	//Input config
 	InputComponent->BindAction("Action4", EInputEvent::IE_Pressed, this, &ACAVEOverlayController::CycleDoorType);
@@ -253,7 +256,7 @@ void ACAVEOverlayController::Tick(float DeltaTime)
 {
 	Super::Tick(DeltaTime);
 
-	if (!bDisplay_Cluster_Mode) return; // Not our business
+	if (!bCAVE_Mode) return; // Not our business
 
 	RefreshPawnComponents();
 	if (!bAttached && Cave_Origin)
diff --git a/Source/CAVEOverlay/Public/CAVEOverlayController.h b/Source/CAVEOverlay/Public/CAVEOverlayController.h
index af23882..9ea5ba1 100644
--- a/Source/CAVEOverlay/Public/CAVEOverlayController.h
+++ b/Source/CAVEOverlay/Public/CAVEOverlayController.h
@@ -29,8 +29,7 @@ protected:
 
 private:
 	//Execution Modes
-	bool bHMD_Mode = false;
-	bool bDisplay_Cluster_Mode = false;
+	bool bCAVE_Mode = false;
 
 	//Screen Types
 	enum EScreen_Type { SCREEN_MASTER, SCREEN_NORMAL, SCREEN_DOOR_PARTIAL, SCREEN_DOOR };
-- 
GitLab


From db7f7464aa678545461c876ea04bad6ca7269cee Mon Sep 17 00:00:00 2001
From: Sebastian Pape <Sebastian.Pape@rwth-aachen.de>
Date: Wed, 18 Sep 2019 13:56:40 +0200
Subject: [PATCH 2/3] Changed Compare function to equal function

---
 Source/CAVEOverlay/Private/CAVEOverlayController.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Source/CAVEOverlay/Private/CAVEOverlayController.cpp b/Source/CAVEOverlay/Private/CAVEOverlayController.cpp
index 721e9e4..71f9675 100644
--- a/Source/CAVEOverlay/Private/CAVEOverlayController.cpp
+++ b/Source/CAVEOverlay/Private/CAVEOverlayController.cpp
@@ -184,7 +184,7 @@ void ACAVEOverlayController::BeginPlay()
 	//Read situation
 	if (IDisplayCluster::Get().GetOperationMode() == EDisplayClusterOperationMode::Cluster) {
 		auto ClusterConfigCustom = IDisplayCluster::Get().GetConfigMgr()->GetConfigCustom();
-		bCAVE_Mode = ClusterConfigCustom.Args.Contains("Hardware_Platform") && ClusterConfigCustom.Args.Find("Hardware_Platform")->ToLower().Compare("aixcave");
+		bCAVE_Mode = ClusterConfigCustom.Args.Contains("Hardware_Platform") && ClusterConfigCustom.Args.Find("Hardware_Platform")->Equals("aixcave", ESearchCase::IgnoreCase);
 	}
 	
 	if (!bCAVE_Mode) return; // Not our business
-- 
GitLab


From a388078b1042c03da94de43cfade4729d7c95ed4 Mon Sep 17 00:00:00 2001
From: Sebastian Pape <sebastian.pape@rwth-aachen.de>
Date: Wed, 18 Sep 2019 16:23:52 +0200
Subject: [PATCH 3/3] Hide Black Overlay on Master if Door is open

---
 Source/CAVEOverlay/Private/CAVEOverlayController.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Source/CAVEOverlay/Private/CAVEOverlayController.cpp b/Source/CAVEOverlay/Private/CAVEOverlayController.cpp
index 71f9675..6e2b756 100644
--- a/Source/CAVEOverlay/Private/CAVEOverlayController.cpp
+++ b/Source/CAVEOverlay/Private/CAVEOverlayController.cpp
@@ -154,7 +154,7 @@ void ACAVEOverlayController::SetDoorMode(EDoor_Mode M)
 		Door_Current_Opening_Width_Absolute = Wall_Distance * 2;
 		if (Screen_Type == SCREEN_DOOR) Overlay->BlackBox->SetRenderScale(FVector2D(1, 1));
 		if (Screen_Type == SCREEN_DOOR_PARTIAL) Overlay->BlackBox->SetRenderScale(FVector2D(1, 1));
-		if (Screen_Type == SCREEN_MASTER) Overlay->BlackBox->SetRenderScale(FVector2D(1, 1));
+		if (Screen_Type == SCREEN_MASTER) Overlay->BlackBox->SetRenderScale(FVector2D(0, 1));
 		Overlay->BlackBox->SetVisibility(ESlateVisibility::Visible);
 		break;
 	case EDoor_Mode::DOOR_CLOSED:
-- 
GitLab