From: <sv...@op...> - 2024-04-17 18:27:00
|
Author: sagamusix Date: Wed Apr 17 20:26:48 2024 New Revision: 20616 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20616 Log: [Imp] Puma: Avoid loading patterns if requested to do so. Modified: trunk/OpenMPT/soundlib/Load_puma.cpp Modified: trunk/OpenMPT/soundlib/Load_puma.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_puma.cpp Wed Apr 17 20:24:29 2024 (r20615) +++ trunk/OpenMPT/soundlib/Load_puma.cpp Wed Apr 17 20:26:48 2024 (r20616) @@ -218,20 +218,21 @@ return false; Order().resize(numOrders); + if(loadFlags & loadPatternData) + Patterns.ResizeArray(numOrders); for(ORDERINDEX ord = 0; ord < numOrders; ord++) { - const PATTERNINDEX pat = Patterns.InsertAny(numRows); - if(pat == PATTERNINDEX_INVALID) - return false; if(!orderData[ord].IsValid()) return false; - Order()[ord] = pat; + if(!(loadFlags & loadPatternData) || !Patterns.Insert(ord, numRows)) + continue; + Order()[ord] = ord; for(CHANNELINDEX chn = 0; chn < 4; chn++) { const auto &chnInfo = orderData[ord].channels[chn]; if(chnInfo.pattern >= patternData.size()) continue; - ModCommand *m = Patterns[pat].GetpModCommand(0, chn); + ModCommand *m = Patterns[ord].GetpModCommand(0, chn); // Auto-portmentos appear to stop on pattern transitions and revert to the note's original pitch. VolumeCommand autoPorta = VOLCMD_NONE; for(const auto &p : patternData[chnInfo.pattern]) @@ -270,7 +271,7 @@ } } if(orderData[ord].speed) - Patterns[pat].WriteEffect(EffectWriter(CMD_SPEED, orderData[ord].speed).RetryNextRow()); + Patterns[ord].WriteEffect(EffectWriter(CMD_SPEED, orderData[ord].speed).RetryNextRow()); } for(INSTRUMENTINDEX ins = 1; ins <= m_nInstruments; ins++) |