From: <sv...@op...> - 2024-06-14 21:47:53
|
Author: sagamusix Date: Fri Jun 14 23:47:39 2024 New Revision: 21029 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=21029 Log: [Fix] MOD: Allow sample swapping to work when swapping from a non-looping, stopped sample back to a looping sample. Fixes MOD.energy (https://www.un4seen.com/forum/?topic=15448.msg143034#msg143034). Modified: trunk/OpenMPT/soundlib/Snd_fx.cpp Modified: trunk/OpenMPT/soundlib/Snd_fx.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Snd_fx.cpp Fri Jun 14 23:11:55 2024 (r21028) +++ trunk/OpenMPT/soundlib/Snd_fx.cpp Fri Jun 14 23:47:39 2024 (r21029) @@ -2825,8 +2825,8 @@ if(m_playBehaviour[kMODSampleSwap]) { // ProTracker Compatibility: If a sample was stopped before, lone instrument numbers can retrigger it - // Test case: PTSwapEmpty.mod, PTInstrVolume.mod, SampleSwap.s3m - if(!chn.IsSamplePlaying() && (chn.pModSample == nullptr || !chn.pModSample->HasSampleData())) + // Test cases: PTSwapEmpty.mod, PTInstrVolume.mod, PTStoppedSwap.mod + if(!chn.IsSamplePlaying() && instr <= GetNumSamples() && Samples[instr].uFlags[CHN_LOOP]) keepInstr = true; } |