From 4dea88bd7556c446ffde150d7d7407ecca8de1f5 Mon Sep 17 00:00:00 2001 From: Kung-vr Date: Mon, 21 Oct 2019 12:01:15 +0900 Subject: [PATCH] Set up double request seated recenter --- src/tabcontrollers/MoveCenterTabController.cpp | 16 +++++++++++++++- src/tabcontrollers/MoveCenterTabController.h | 1 + 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/tabcontrollers/MoveCenterTabController.cpp b/src/tabcontrollers/MoveCenterTabController.cpp index 5f96de4..eeff2e7 100644 --- a/src/tabcontrollers/MoveCenterTabController.cpp +++ b/src/tabcontrollers/MoveCenterTabController.cpp @@ -1253,7 +1253,15 @@ void MoveCenterTabController::incomingSeatedReset() { if ( m_enableSeatedMotion ) { - updateSeatedResetData(); + if ( !m_selfRequestedSeatedRecenter ) + { + m_selfRequestedSeatedRecenter = true; + vr::VRSystem()->ResetSeatedZeroPose(); + } + else + { + updateSeatedResetData(); + } } else if ( parent->enableDebug() && parent->debugState() == 1 ) { @@ -1466,6 +1474,10 @@ void MoveCenterTabController::zeroOffsets() void MoveCenterTabController::sendSeatedRecenter() { + if ( parent->enableDebug() && parent->debugState() == 7 ) + { + m_selfRequestedSeatedRecenter = true; + } vr::VRSystem()->ResetSeatedZeroPose(); } @@ -1516,6 +1528,8 @@ void MoveCenterTabController::updateSeatedResetData() { vr::VRChaperoneSetup()->ReloadFromDisk( vr::EChaperoneConfigFile_Live ); } + // done with this recenter, so set self request back to false for next time. + m_selfRequestedSeatedRecenter = false; // set pending update here, will be processed on next instance of motion or // running the reset() function. m_pendingSeatedRecenter = true; diff --git a/src/tabcontrollers/MoveCenterTabController.h b/src/tabcontrollers/MoveCenterTabController.h index 3864364..9f90ecf 100644 --- a/src/tabcontrollers/MoveCenterTabController.h +++ b/src/tabcontrollers/MoveCenterTabController.h @@ -176,6 +176,7 @@ private: bool m_pendingZeroOffsets = true; bool m_pendingSeatedRecenter = false; bool m_pendingSeatedReloadFromDisk = false; + bool m_selfRequestedSeatedRecenter = false; bool m_dashWasOpenPreviousFrame = false; bool m_roomSetupModeDetected = false; bool m_seatedModeDetected = false;