From: <sv...@op...> - 2024-12-09 13:43:44
|
Author: sagamusix Date: Mon Dec 9 14:43:29 2024 New Revision: 22499 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22499 Log: [Fix] All Play Control commands should only be executed on the first tick. Modified: trunk/OpenMPT/soundlib/ModChannel.cpp trunk/OpenMPT/soundlib/Snd_fx.cpp Modified: trunk/OpenMPT/soundlib/ModChannel.cpp ============================================================================== --- trunk/OpenMPT/soundlib/ModChannel.cpp Mon Dec 9 13:22:21 2024 (r22498) +++ trunk/OpenMPT/soundlib/ModChannel.cpp Mon Dec 9 14:43:29 2024 (r22499) @@ -263,8 +263,8 @@ case 2: dwFlags.set(CHN_PINGPONGFLAG, false); break; case 3: dwFlags.set(CHN_PINGPONGFLAG, true); break; case 4: dwFlags.flip(CHN_PINGPONGFLAG); break; - case 5: if(isFirstTick) oldOffset = position.GetUInt(); break; - case 6: if(isFirstTick) position.Set(oldOffset); break; + case 5: oldOffset = position.GetUInt(); break; + case 6: position.Set(oldOffset); break; } } Modified: trunk/OpenMPT/soundlib/Snd_fx.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Snd_fx.cpp Mon Dec 9 13:22:21 2024 (r22498) +++ trunk/OpenMPT/soundlib/Snd_fx.cpp Mon Dec 9 14:43:29 2024 (r22499) @@ -3310,7 +3310,8 @@ break; case VOLCMD_PLAYCONTROL: - chn.PlayControl(vol); + if(chn.isFirstTick) + chn.PlayControl(vol); break; default: |