From 7ff50f78eb4cc7b8dec69e09e8c9f64281cd5d68 Mon Sep 17 00:00:00 2001 From: Sapphire Date: Mon, 2 Feb 2026 11:06:38 -0600 Subject: [PATCH] Don't ask for full reset on timeout with manual or saved mounting (#1727) --- .../dev/slimevr/trackingchecklist/TrackingChecklistManager.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/server/core/src/main/java/dev/slimevr/trackingchecklist/TrackingChecklistManager.kt b/server/core/src/main/java/dev/slimevr/trackingchecklist/TrackingChecklistManager.kt index ebea6b63d..a39ac80a0 100644 --- a/server/core/src/main/java/dev/slimevr/trackingchecklist/TrackingChecklistManager.kt +++ b/server/core/src/main/java/dev/slimevr/trackingchecklist/TrackingChecklistManager.kt @@ -11,6 +11,7 @@ import dev.slimevr.tracking.trackers.Tracker import dev.slimevr.tracking.trackers.TrackerStatus import dev.slimevr.tracking.trackers.TrackerUtils import dev.slimevr.tracking.trackers.udp.TrackerDataType +import io.github.axisangles.ktmath.Quaternion import solarxr_protocol.datatypes.DeviceIdT import solarxr_protocol.datatypes.TrackerIdT import solarxr_protocol.rpc.* @@ -199,7 +200,8 @@ class TrackingChecklistManager(private val vrServer: VRServer) : VRCConfigListen } // We ask for a full reset if you need to do mounting calibration but cant because you haven't done full reset in a while // or if you have trackers that need reset after re-assigning - val needFullReset = (!resetMountingCompleted && !vrServer.serverGuards.canDoMounting) || trackerRequireReset.isNotEmpty() + val usingSavedCalibration = vrServer.configManager.vrConfig.resetsConfig.saveMountingReset && imuTrackers.all { it.resetsHandler.mountRotFix != Quaternion.IDENTITY } + val needFullReset = (vrServer.configManager.vrConfig.resetsConfig.lastMountingMethod == MountingMethods.AUTOMATIC && !usingSavedCalibration && !resetMountingCompleted && !vrServer.serverGuards.canDoMounting) || trackerRequireReset.isNotEmpty() updateValidity(TrackingChecklistStepId.FULL_RESET, !needFullReset) { it.enabled = imuTrackers.isNotEmpty() if (trackerRequireReset.isNotEmpty()) {