From: <sv...@op...> - 2024-11-01 13:26:46
|
Author: sagamusix Date: Fri Nov 1 14:26:33 2024 New Revision: 22046 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22046 Log: [Mod] FC: Always have all 256 frequency sequences available to have more predictable results when trying to jump to a sequence that wasn't stored in the file. Modified: trunk/OpenMPT/soundlib/Load_fc.cpp Modified: trunk/OpenMPT/soundlib/Load_fc.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_fc.cpp Fri Nov 1 13:23:03 2024 (r22045) +++ trunk/OpenMPT/soundlib/Load_fc.cpp Fri Nov 1 14:26:33 2024 (r22046) @@ -398,8 +398,10 @@ } std::vector<uint8> freqSequences, volSequences; + freqSequences.reserve(64 * 256); if(!file.Seek(fileHeader.freqSequenceOffset) || !file.ReadVector(freqSequences, fileHeader.freqSequenceSize)) return false; + freqSequences.resize(64 * 256); volSequences.reserve(fileHeader.volSequenceSize + 8); if(!file.Seek(fileHeader.volSequenceOffset) || !file.ReadVector(volSequences, fileHeader.volSequenceSize)) return false; @@ -411,7 +413,7 @@ for(INSTRUMENTINDEX ins = 1; ins <= m_nInstruments; ins++) { const auto volSeq = mpt::as_span(volSequences).subspan((ins - 1) * 64u); - const auto freqSeq = mpt::as_span(freqSequences).subspan((volSeq[1] * 64u) % freqSequences.size()); + const auto freqSeq = mpt::as_span(freqSequences).subspan(volSeq[1] * 64u); uint8 defaultSample = freqSeq[1]; if(freqSeq[0] == 0xE9) defaultSample = static_cast<uint8>(90 + defaultSample * 10 + freqSeq[2]); |