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] 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