From ec01df82b8b8324014dd02a663470229f5965328 Mon Sep 17 00:00:00 2001 From: Owen Williams Date: Mon, 31 May 2021 23:32:29 -0400 Subject: [PATCH] Sync Lock: Fix issue where single playing sync deck was syncing against its nudge value --- src/engine/sync/enginesync.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/engine/sync/enginesync.cpp b/src/engine/sync/enginesync.cpp index f187d8b20bd..2e7a5bec784 100644 --- a/src/engine/sync/enginesync.cpp +++ b/src/engine/sync/enginesync.cpp @@ -75,6 +75,13 @@ void EngineSync::requestSyncMode(Syncable* pSyncable, SyncMode mode) { default:; } + Syncable* pOnlyPlayer = getUniquePlayingSyncedDeck(); + if (pOnlyPlayer) { + // This resets the user offset, so that if this deck gets used as the params syncable + // it will have that offset removed. + pOnlyPlayer->notifyOnlyPlayingSyncable(); + } + // Second, figure out what Syncable should be used to initialize the master // parameters, if any. Usually this is the new master. (Note, that pointer might be null!) Syncable* pParamsSyncable = m_pMasterSyncable; @@ -96,10 +103,6 @@ void EngineSync::requestSyncMode(Syncable* pSyncable, SyncMode mode) { } } - Syncable* pOnlyPlayer = getUniquePlayingSyncedDeck(); - if (pOnlyPlayer) { - pOnlyPlayer->notifyOnlyPlayingSyncable(); - } } void EngineSync::activateFollower(Syncable* pSyncable) {