From: <sag...@us...> - 2011-09-19 16:14:13
|
Revision: 1045 http://modplug.svn.sourceforge.net/modplug/?rev=1045&view=rev Author: saga-games Date: 2011-09-19 16:14:07 +0000 (Mon, 19 Sep 2011) Log Message: ----------- [Ref] Data type refactoring in pattern editor Modified Paths: -------------- trunk/OpenMPT/mptrack/Draw_pat.cpp trunk/OpenMPT/mptrack/View_pat.cpp trunk/OpenMPT/mptrack/View_pat.h Modified: trunk/OpenMPT/mptrack/Draw_pat.cpp =================================================================== --- trunk/OpenMPT/mptrack/Draw_pat.cpp 2011-09-19 00:34:36 UTC (rev 1044) +++ trunk/OpenMPT/mptrack/Draw_pat.cpp 2011-09-19 16:14:07 UTC (rev 1045) @@ -1429,16 +1429,16 @@ } -void CViewPattern::InvalidateRow(int n) -//------------------------------------- +void CViewPattern::InvalidateRow(ROWINDEX n) +//------------------------------------------ { CModDoc *pModDoc = GetDocument(); if (pModDoc) { CSoundFile *pSndFile = pModDoc->GetSoundFile(); int yofs = GetYScrollPos() - m_nMidRow; - if (n == -1) n = m_nRow; - if ((n < yofs) || (n >= (int)pSndFile->Patterns[m_nPattern].GetNumRows())) return; + if (n == ROWINDEX_INVALID) n = m_nRow; + if (((int)n < yofs) || (n >= pSndFile->Patterns[m_nPattern].GetNumRows())) return; CRect rect; GetClientRect(&rect); rect.left = m_szHeader.cx; @@ -1484,7 +1484,7 @@ if ((pMainFrm) && (pModDoc)) { CSoundFile *pSndFile = pModDoc->GetSoundFile(); - CHAR s[512]; + CHAR s[128]; CHANNELINDEX nChn; wsprintf(s, "Row %d, Col %d", GetCurrentRow(), GetCurrentChannel() + 1); pMainFrm->SetUserText(s); @@ -1496,7 +1496,7 @@ && (m_dwBeginSel == m_dwEndSel) && (pSndFile->Patterns[m_nPattern]) && (m_nRow < pSndFile->Patterns[m_nPattern].GetNumRows()) && (nChn < pSndFile->m_nChannels)) { - MODCOMMAND *m = &pSndFile->Patterns[m_nPattern][m_nRow*pSndFile->m_nChannels+nChn]; + MODCOMMAND *m = pSndFile->Patterns[m_nPattern].GetpModCommand(m_nRow, nChn); switch (GetColTypeFromCursor(m_dwCursor)) { Modified: trunk/OpenMPT/mptrack/View_pat.cpp =================================================================== --- trunk/OpenMPT/mptrack/View_pat.cpp 2011-09-19 00:34:36 UTC (rev 1044) +++ trunk/OpenMPT/mptrack/View_pat.cpp 2011-09-19 16:14:07 UTC (rev 1045) @@ -173,7 +173,8 @@ //m_dwStatus = 0; m_dwStatus = PATSTATUS_PLUGNAMESINHEADERS; m_nXScroll = m_nYScroll = 0; - m_nPattern = m_nRow = 0; + m_nPattern = 0; + m_nRow = 0; m_nSpacing = 0; m_nAccelChar = 0; // -> CODE#0018 @@ -190,8 +191,8 @@ } -BOOL CViewPattern::SetCurrentPattern(UINT npat, int nrow) -//------------------------------------------------------- +BOOL CViewPattern::SetCurrentPattern(UINT npat, ROWINDEX nrow) +//------------------------------------------------------------ { CSoundFile *pSndFile; CModDoc *pModDoc = GetDocument(); @@ -211,7 +212,7 @@ } m_nPattern = npat; - if ((nrow >= 0) && (nrow != (int)m_nRow) && (nrow < (int)pSndFile->Patterns[m_nPattern].GetNumRows())) + if ((nrow != ROWINDEX_INVALID) && (nrow != m_nRow) && (nrow < pSndFile->Patterns[m_nPattern].GetNumRows())) { m_nRow = nrow; bUpdateScroll = true; @@ -226,7 +227,7 @@ if (m_bWholePatternFitsOnScreen) //rewbs.scrollFix SetScrollPos(SB_VERT, 0); else if (bUpdateScroll) //rewbs.fix3147 - SetScrollPos(SB_VERT, m_nRow * GetColumnHeight()); + SetScrollPos(SB_VERT, (int)m_nRow * GetColumnHeight()); UpdateScrollPos(); InvalidatePattern(TRUE); @@ -2254,7 +2255,7 @@ { CSoundFile *pSndFile = pModDoc->GetSoundFile(); if ((!pSndFile->Patterns[m_nPattern].GetNumRows()) || (!pSndFile->Patterns[m_nPattern])) return; - MODCOMMAND *m = pSndFile->Patterns[m_nPattern] + m_nRow * pSndFile->GetNumChannels() + GetChanFromCursor(m_dwCursor); + const MODCOMMAND *m = pSndFile->Patterns[m_nPattern].GetpModCommand(m_nRow, GetChanFromCursor(m_dwCursor)); switch(GetColTypeFromCursor(m_dwCursor)) { case NOTE_COLUMN: @@ -2290,7 +2291,7 @@ UINT nChn = GetChanFromCursor(m_dwCursor); UINT nCursor = GetColTypeFromCursor(m_dwCursor); CSoundFile *pSndFile = pModDoc->GetSoundFile(); - MODCOMMAND *p = pSndFile->Patterns[m_nPattern] + m_nRow*pSndFile->m_nChannels + nChn; + MODCOMMAND *p = pSndFile->Patterns[m_nPattern].GetpModCommand(m_nRow, nChn); switch(nCursor) { @@ -2916,7 +2917,7 @@ void CViewPattern::OnPatternAmplify() //----------------------------------- { - static UINT snOldAmp = 100; + static int16 snOldAmp = 100; CAmpDlg dlg(this, snOldAmp, 0); CModDoc *pModDoc = GetDocument(); @@ -2927,7 +2928,7 @@ BeginWaitCursor(); PrepareUndo(m_dwBeginSel, m_dwEndSel); - snOldAmp = static_cast<UINT>(dlg.m_nFactor); + snOldAmp = dlg.m_nFactor; if (pSndFile->Patterns[m_nPattern]) { @@ -3749,14 +3750,14 @@ case kcPatternSnapDownh2: CursorJump(GetRowsPerBeat(), false, true); return wParam; case kcNavigateDownSelect: - case kcNavigateDown: SetCurrentRow(m_nRow+1, TRUE); return wParam; + case kcNavigateDown: SetCurrentRow(m_nRow + 1, TRUE); return wParam; case kcNavigateUpSelect: - case kcNavigateUp: SetCurrentRow(m_nRow-1, TRUE); return wParam; + case kcNavigateUp: SetCurrentRow(m_nRow - 1, TRUE); return wParam; case kcNavigateDownBySpacingSelect: - case kcNavigateDownBySpacing: SetCurrentRow(m_nRow+m_nSpacing, TRUE); return wParam; + case kcNavigateDownBySpacing: SetCurrentRow(m_nRow + m_nSpacing, TRUE); return wParam; case kcNavigateUpBySpacingSelect: - case kcNavigateUpBySpacing: SetCurrentRow(m_nRow-m_nSpacing, TRUE); return wParam; + case kcNavigateUpBySpacing: SetCurrentRow(m_nRow - m_nSpacing, TRUE); return wParam; case kcNavigateLeftSelect: case kcNavigateLeft: if ((CMainFrame::GetSettings().m_dwPatternSetup & PATTERN_WRAP) && (!m_dwCursor)) @@ -4850,7 +4851,7 @@ PrepareUndo(m_dwBeginSel, m_dwEndSel); UINT nChn = GetChanFromCursor(m_dwCursor); CSoundFile *pSndFile = pModDoc->GetSoundFile(); - MODCOMMAND *p = pSndFile->Patterns[m_nPattern] + m_nRow*pSndFile->m_nChannels + nChn; + MODCOMMAND *p = pSndFile->Patterns[m_nPattern].GetpModCommand(m_nRow, nChn); MODCOMMAND oldcmd = *p; switch(field) @@ -4880,7 +4881,7 @@ || (!(m_dwStatus & PATSTATUS_FOLLOWSONG))))) { if ((m_nSpacing > 0) && (m_nSpacing <= MAX_SPACING)) - SetCurrentRow(m_nRow+m_nSpacing); + SetCurrentRow(m_nRow + m_nSpacing); DWORD sel = CreateCursor(m_nRow) | m_dwCursor; SetCurSel(sel, sel); } Modified: trunk/OpenMPT/mptrack/View_pat.h =================================================================== --- trunk/OpenMPT/mptrack/View_pat.h 2011-09-19 00:34:36 UTC (rev 1044) +++ trunk/OpenMPT/mptrack/View_pat.h 2011-09-19 16:14:07 UTC (rev 1045) @@ -102,7 +102,8 @@ CEditCommand *m_pEditWnd; CPatternGotoDialog *m_pGotoWnd; SIZE m_szHeader, m_szCell; - UINT m_nPattern, m_nRow, m_nMidRow, m_nPlayPat, m_nPlayRow, m_nSpacing, m_nAccelChar, m_nLastPlayedRow, m_nLastPlayedOrder; + ROWINDEX m_nRow; + UINT m_nPattern, m_nMidRow, m_nPlayPat, m_nPlayRow, m_nSpacing, m_nAccelChar, m_nLastPlayedRow, m_nLastPlayedOrder; int m_nXScroll, m_nYScroll; DWORD m_nMenuParam, m_nDetailLevel; @@ -163,7 +164,7 @@ int GetColumnWidth() const { return m_szCell.cx; } int GetColumnHeight() const { return m_szCell.cy; } UINT GetCurrentPattern() const { return m_nPattern; } - UINT GetCurrentRow() const { return m_nRow; } + ROWINDEX GetCurrentRow() const { return m_nRow; } UINT GetCurrentColumn() const { return m_dwCursor; } UINT GetCurrentChannel() const { return (m_dwCursor >> 3); } UINT GetColumnOffset(DWORD dwPos) const; @@ -174,12 +175,12 @@ ROWINDEX GetRowsPerMeasure() const; void InvalidatePattern(BOOL bHdr=FALSE); - void InvalidateRow(int n=-1); + void InvalidateRow(ROWINDEX n = ROWINDEX_INVALID); void InvalidateArea(DWORD dwBegin, DWORD dwEnd); void InvalidateSelection() { InvalidateArea(m_dwBeginSel, m_dwEndSel); } void InvalidateChannelsHeaders(); void SetCurSel(DWORD dwBegin, DWORD dwEnd); - BOOL SetCurrentPattern(UINT npat, int nrow=-1); + BOOL SetCurrentPattern(UINT npat, ROWINDEX nrow = ROWINDEX_INVALID); BOOL SetCurrentRow(UINT nrow, BOOL bWrap=FALSE, BOOL bUpdateHorizontalScrollbar=TRUE ); BOOL SetCurrentColumn(UINT ncol); // This should be used instead of consecutive calls to SetCurrentRow() then SetCurrentColumn() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |