From: <sv...@op...> - 2024-05-23 18:29:24
|
Author: sagamusix Date: Thu May 23 20:29:12 2024 New Revision: 20843 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20843 Log: [Imp] MED: Try to combine effect commands when there are multiple pages. Modified: trunk/OpenMPT/soundlib/Load_med.cpp Modified: trunk/OpenMPT/soundlib/Load_med.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_med.cpp Thu May 23 20:24:26 2024 (r20842) +++ trunk/OpenMPT/soundlib/Load_med.cpp Thu May 23 20:29:12 2024 (r20843) @@ -591,7 +591,7 @@ ModCommand *m = pattern.GetpModCommand(row, 0); for(CHANNELINDEX chn = 0; chn < ctx.numTracks; chn++, m++) { - const auto oldCmd = std::make_pair(m->command, m->param); + auto oldCmd = std::make_pair(m->command, m->param); int note = NOTE_NONE; uint8 cmd = 0, param1 = 0, param2 = 0; if(ctx.version < 1) @@ -641,6 +641,8 @@ m->SetEffectCommand(oldCmd); else if(row > 0 && oldCmd.first == CMD_XPARAM) pattern.GetpModCommand(row - 1, chn)->param = Util::MaxValueOfType(m->param); + else if(!ModCommand::CombineEffects(m->command, m->param, oldCmd.first, oldCmd.second) && m->volcmd == VOLCMD_NONE) + m->FillInTwoCommands(m->command, m->param, oldCmd.first, oldCmd.second); } if(extraCmd.first != CMD_NONE) { |