From: <sag...@us...> - 2011-10-07 19:32:19
|
Revision: 1097 http://modplug.svn.sourceforge.net/modplug/?rev=1097&view=rev Author: saga-games Date: 2011-10-07 19:32:12 +0000 (Fri, 07 Oct 2011) Log Message: ----------- [Fix] Pattern Drawing: Speed-up mask was not always handled correctly. Modified Paths: -------------- trunk/OpenMPT/mptrack/Draw_pat.cpp trunk/OpenMPT/mptrack/View_pat.h Modified: trunk/OpenMPT/mptrack/Draw_pat.cpp =================================================================== --- trunk/OpenMPT/mptrack/Draw_pat.cpp 2011-10-07 19:10:08 UTC (rev 1096) +++ trunk/OpenMPT/mptrack/Draw_pat.cpp 2011-10-07 19:32:12 UTC (rev 1097) @@ -894,12 +894,14 @@ const MODCOMMAND *m = (pPattern) ? &pPattern[row*ncols+col] : &m0; // Should empty volume commands be replaced with a volume command showing the default volume? - const bool drawDefaultVolume = (CMainFrame::GetSettings().m_dwPatternSetup & PATTERN_SHOWDEFAULTVOLUME) && m->volcmd == VOLCMD_NONE && m->instr != 0 && m->note != NOTE_NONE && NOTE_IS_VALID(m->note); + const bool drawDefaultVolume = DrawDefaultVolume(m); DWORD dwSpeedUpMask = 0; if ((bSpeedUp) && (bColSel[col] & 0x40) && (pPattern) && (row)) { const MODCOMMAND *mold = m - ncols; + const bool drawOldDefaultVolume = DrawDefaultVolume(mold); + if (m->note == mold->note) dwSpeedUpMask |= 0x01; if ((m->instr == mold->instr) || (m_nDetailLevel < 1)) dwSpeedUpMask |= 0x02; if ( m->IsPcNote() || mold->IsPcNote() ) @@ -912,7 +914,7 @@ } else { - if ((m->volcmd == mold->volcmd && (m->volcmd == VOLCMD_NONE || m->vol == mold->vol) && !drawDefaultVolume) || (m_nDetailLevel < 2)) dwSpeedUpMask |= 0x04; + if ((m->volcmd == mold->volcmd && (m->volcmd == VOLCMD_NONE || m->vol == mold->vol) && !drawDefaultVolume && !drawOldDefaultVolume) || (m_nDetailLevel < 2)) dwSpeedUpMask |= 0x04; if ((m->command == mold->command) || (m_nDetailLevel < 3)) dwSpeedUpMask |= (m->command != CMD_NONE) ? 0x08 : 0x18; } if (dwSpeedUpMask == 0x1F) goto DoBlit; Modified: trunk/OpenMPT/mptrack/View_pat.h =================================================================== --- trunk/OpenMPT/mptrack/View_pat.h 2011-10-07 19:10:08 UTC (rev 1096) +++ trunk/OpenMPT/mptrack/View_pat.h 2011-10-07 19:32:12 UTC (rev 1097) @@ -213,6 +213,8 @@ void UpdateAllVUMeters(MPTNOTIFICATION *pnotify); void DrawDragSel(HDC hdc); void OnDrawDragSel(); + // True if default volume should be drawn for a given cell. + bool DrawDefaultVolume(const MODCOMMAND *m) const { return (CMainFrame::GetSettings().m_dwPatternSetup & PATTERN_SHOWDEFAULTVOLUME) && m->volcmd == VOLCMD_NONE && m->instr != 0 && m->note != NOTE_NONE && NOTE_IS_VALID(m->note); } //rewbs.customKeys BOOL ExecuteCommand(CommandID command); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |