diff --git a/src/tabcontrollers/MoveCenterTabController.cpp b/src/tabcontrollers/MoveCenterTabController.cpp index f95585b..81102b9 100644 --- a/src/tabcontrollers/MoveCenterTabController.cpp +++ b/src/tabcontrollers/MoveCenterTabController.cpp @@ -39,9 +39,6 @@ namespace advsettings { void MoveCenterTabController::initStage1() { - m_turnComfortFactor = static_cast( settings::getSetting( - settings::IntSetting::PLAYSPACE_turnComfortFactor ) ); - m_heightToggleOffset = static_cast( settings::getSetting( settings::DoubleSetting::PLAYSPACE_heightToggleOffset ) ); m_gravityStrength = static_cast( settings::getSetting( @@ -631,23 +628,20 @@ void MoveCenterTabController::setDragComfortFactor( int value, bool notify ) } } -unsigned MoveCenterTabController::turnComfortFactor() const +int MoveCenterTabController::turnComfortFactor() const { - return m_turnComfortFactor; + return settings::getSetting( + settings::IntSetting::PLAYSPACE_turnComfortFactor ); } -void MoveCenterTabController::setTurnComfortFactor( unsigned value, - bool notify ) +void MoveCenterTabController::setTurnComfortFactor( int value, bool notify ) { - m_turnComfortFactor = value; - auto settings = OverlayController::appSettings(); - settings->beginGroup( "playspaceSettings" ); - settings->setValue( "turnComfortFactor", m_turnComfortFactor ); - settings->endGroup(); - settings->sync(); + settings::setSetting( settings::IntSetting::PLAYSPACE_turnComfortFactor, + value ); + if ( notify ) { - emit turnComfortFactorChanged( m_turnComfortFactor ); + emit turnComfortFactorChanged( value ); } } @@ -2912,8 +2906,8 @@ void MoveCenterTabController::eventLoopTick( // Smooth turn motion can cause sim-sickness so we check if the user // wants to skip frames to reduce vection. We use the factor squared // because of logarithmic human perception. - if ( m_turnComfortFrameSkipCounter - >= ( m_turnComfortFactor * m_turnComfortFactor ) ) + if ( m_turnComfortFrameSkipCounter >= static_cast( + ( turnComfortFactor() * turnComfortFactor() ) ) ) { updateHandTurn( devicePoses, angle ); m_turnComfortFrameSkipCounter = 0; diff --git a/src/tabcontrollers/MoveCenterTabController.h b/src/tabcontrollers/MoveCenterTabController.h index 4a52a67..550fae3 100644 --- a/src/tabcontrollers/MoveCenterTabController.h +++ b/src/tabcontrollers/MoveCenterTabController.h @@ -123,7 +123,6 @@ private: bool m_moveShortcutLeftPressed = false; vr::TrackedDeviceIndex_t m_activeMoveController; float m_lastControllerPosition[3]; - unsigned m_turnComfortFactor = 0; bool m_heightToggle = false; float m_heightToggleOffset = -1.0f; float m_gravityFloor = 0.0f; @@ -226,7 +225,7 @@ public: bool dragBounds() const; bool turnBounds() const; int dragComfortFactor() const; - unsigned turnComfortFactor() const; + int turnComfortFactor() const; bool heightToggle() const; float heightToggleOffset() const; float gravityStrength() const; @@ -296,7 +295,7 @@ public slots: void setTurnBindRight( bool value, bool notify = true ); void setTurnBindLeft( bool value, bool notify = true ); void setDragComfortFactor( int value, bool notify = true ); - void setTurnComfortFactor( unsigned value, bool notify = true ); + void setTurnComfortFactor( int value, bool notify = true ); void setDragBounds( bool value, bool notify = true ); void setTurnBounds( bool value, bool notify = true ); void setHeightToggle( bool value, bool notify = true ); @@ -348,7 +347,7 @@ signals: void dragBoundsChanged( bool value ); void turnBoundsChanged( bool value ); void dragComfortFactorChanged( int value ); - void turnComfortFactorChanged( unsigned value ); + void turnComfortFactorChanged( int value ); void heightToggleChanged( bool value ); void heightToggleOffsetChanged( float value ); void gravityStrengthChanged( float value );