evil big commit (sorry):
Remove m_HoldNote array entirely. Remove 2sAnd3s. Store hold note durations in the hold head. hold_tail only still exists when InsertHoldTails is used, to make SM parsing a little easier (may go away). Add helpers for iterating over ranges while including or excluding adjacent and overlapping hold notes. Range operations are now [start,end) instead of [start,end]. (probably more details coming to sm-dev soon)
This commit is contained in:
@@ -1114,9 +1114,6 @@ void ScreenGameplay::LoadNextSong()
|
||||
NoteDataUtil::LoadTransformedLights( TapNoteData, m_CabinetLightsNoteData, GameManager::StepsTypeToNumTracks(STEPS_TYPE_LIGHTS_CABINET) );
|
||||
}
|
||||
}
|
||||
|
||||
// Convert to 2sAnd3s so that we can check if we're inside a hold with IsHoldNoteAtBeat.
|
||||
m_CabinetLightsNoteData.ConvertHoldNotesTo2sAnd3s();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1615,12 +1612,11 @@ void ScreenGameplay::UpdateLights()
|
||||
FOREACH_EnabledPlayer( pn )
|
||||
{
|
||||
// check if a hold should be active
|
||||
for( int i=0; i < m_Player[pn].m_NoteData.GetNumHoldNotes(); i++ ) // for each HoldNote
|
||||
for( int t=0; t < m_Player[pn].m_NoteData.GetNumTracks(); ++t )
|
||||
{
|
||||
const HoldNote &hn = m_Player[pn].m_NoteData.GetHoldNote(i);
|
||||
if( hn.iStartRow <= iSongRow && iSongRow <= hn.iEndRow )
|
||||
if( m_Player[pn].m_NoteData.IsHoldNoteAtBeat( t, iSongRow ) )
|
||||
{
|
||||
StyleInput si( pn, hn.iTrack );
|
||||
StyleInput si( pn, t );
|
||||
GameInput gi = pStyle->StyleInputToGameInput( si );
|
||||
bBlinkGameButton[gi.controller][gi.button] |= true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user