From: <sv...@op...> - 2025-01-27 18:24:12
|
Author: sagamusix Date: Mon Jan 27 19:24:00 2025 New Revision: 22861 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22861 Log: Merged revision(s) 22856, 22858 from trunk/OpenMPT: [Ref] ITP: Avoid setting m_nInstruments to invalid value and then resetting it to 0. No functional change, just feels cleaner. ........ [Fix] When adding channels, properly reset master channel association for channels that could previously have been background channels. This caused notes to pan randomly due to NNA age tracking being applied to pattern channels. ........ Modified: branches/OpenMPT-1.31/ (props changed) branches/OpenMPT-1.31/soundlib/Load_itp.cpp branches/OpenMPT-1.31/soundlib/ModChannel.cpp Modified: branches/OpenMPT-1.31/soundlib/Load_itp.cpp ============================================================================== --- branches/OpenMPT-1.31/soundlib/Load_itp.cpp Mon Jan 27 19:20:30 2025 (r22860) +++ branches/OpenMPT-1.31/soundlib/Load_itp.cpp Mon Jan 27 19:24:00 2025 (r22861) @@ -227,12 +227,10 @@ m_MidiCfg.Sanitize(); // Song Instruments - m_nInstruments = static_cast<INSTRUMENTINDEX>(file.ReadUint32LE()); - if(m_nInstruments >= MAX_INSTRUMENTS) - { - m_nInstruments = 0; + if(uint32 numIns = file.ReadUint32LE(); numIns < MAX_INSTRUMENTS) + m_nInstruments = static_cast<INSTRUMENTINDEX>(numIns); + else return false; - } // Instruments' paths if(version <= 0x102) Modified: branches/OpenMPT-1.31/soundlib/ModChannel.cpp ============================================================================== --- branches/OpenMPT-1.31/soundlib/ModChannel.cpp Mon Jan 27 19:20:30 2025 (r22860) +++ branches/OpenMPT-1.31/soundlib/ModChannel.cpp Mon Jan 27 19:24:00 2025 (r22861) @@ -73,6 +73,7 @@ nVibratoPos = nTremoloPos = nPanbrelloPos = 0; nOldHiOffset = 0; nLeftVU = nRightVU = 0; + nMasterChn = 0; // Custom tuning related m_ReCalculateFreqOnFirstTick = false; |