fix step broadcasts miss some notes

This commit is contained in:
Chris Danford
2005-04-29 04:55:55 +00:00
parent 7f8cd16299
commit 2dbd97b044
+8 -3
View File
@@ -1713,11 +1713,17 @@ void ScreenGameplay::SendCrossedMessages()
FOREACH_EnabledPlayer( p )
{
if( GAMESTATE->m_pCurSteps[p]->GetDifficulty() == DIFFICULTY_BEGINNER )
{
pn = p;
break;
}
}
if( pn == PLAYER_INVALID )
return;
NoteData &nd = m_Player[pn].m_NoteData;
static int iRowLastCrossedAll[NUM_MESSAGES_TO_SEND] = { 0, 0, 0, 0 };
for( int i=0; i<NUM_MESSAGES_TO_SEND; i++ )
{
float fOffsetFromCurrentSeconds = MESSAGE_SPACING_SECONDS * i;
@@ -1727,12 +1733,11 @@ void ScreenGameplay::SendCrossedMessages()
int iRowNow = BeatToNoteRowNotRounded( fSongBeat );
iRowNow = max( 0, iRowNow );
static int iRowLastCrossedAll[NUM_MESSAGES_TO_SEND] = { 0, 0, 0, 0 };
int &iRowLastCrossed = iRowLastCrossedAll[i];
FOREACH_NONEMPTY_ROW_ALL_TRACKS_RANGE( m_Player[pn].m_NoteData, r, iRowLastCrossed+1, iRowNow+1 )
FOREACH_NONEMPTY_ROW_ALL_TRACKS_RANGE( nd, r, iRowLastCrossed+1, iRowNow+1 )
{
if( m_CabinetLightsNoteData.IsThereATapOrHoldHeadAtRow(r) )
if( nd.IsThereATapOrHoldHeadAtRow(r) )
{
LOG->Trace( "r = %d", r );
MESSAGEMAN->Broadcast( (Message)(MESSAGE_NOTE_CROSSED + i) );