@@ -2287,7 +2287,7 @@ void Player::UpdateTapNotesMissedOlderThan( float fMissIfOlderThanSeconds )
2287
2287
tn.result .tns = TNS_Miss;
2288
2288
if ( GAMESTATE->CountNotesSeparately () )
2289
2289
{
2290
- SetJudgment (iter.Row (), m_NoteData. GetFirstTrackWithTapOrHoldHead ( iter.Row () ), tn);
2290
+ SetJudgment (iter.Row (), iter.Track ( ), tn);
2291
2291
HandleTapRowScore (iter.Row ());
2292
2292
}
2293
2293
}
@@ -2332,7 +2332,7 @@ void Player::UpdateJudgedRows(float fDeltaTime)
2332
2332
if (lastTN.result .tns < TNS_Miss )
2333
2333
continue ;
2334
2334
2335
- SetJudgment ( iRow, m_NoteData.GetFirstTrackWithTapOrHoldHead (iRow ), lastTN );
2335
+ SetJudgment ( iRow, m_NoteData.GetFirstTrackWithTapOrHoldHead (iter. Row () ), lastTN );
2336
2336
HandleTapRowScore (iRow);
2337
2337
}
2338
2338
}
@@ -2962,23 +2962,45 @@ void Player::SetJudgment( int iRow, int iTrack, const TapNote &tn, TapNoteScore
2962
2962
Lua* L= LUA->Get ();
2963
2963
lua_createtable ( L, 0 , m_NoteData.GetNumTracks () ); // TapNotes this row
2964
2964
lua_createtable ( L, 0 , m_NoteData.GetNumTracks () ); // HoldHeads of tracks held at this row.
2965
-
2966
- for ( int iTrack = 0 ; iTrack < m_NoteData.GetNumTracks (); ++iTrack )
2967
- {
2968
- NoteData::iterator tn = m_NoteData.FindTapNote (iTrack, iRow);
2969
- if ( tn != m_NoteData.end (iTrack) )
2965
+ if (GAMESTATE->CountNotesSeparately ()) {
2966
+ for (int jTrack = 0 ; jTrack < m_NoteData.GetNumTracks (); ++jTrack)
2970
2967
{
2971
- tn->second .PushSelf (L);
2972
- lua_rawseti (L, -3 , iTrack + 1 );
2968
+ NoteData::iterator tn = m_NoteData.FindTapNote (jTrack, iRow);
2969
+ if (tn != m_NoteData.end (jTrack) && jTrack == iTrack )
2970
+ {
2971
+ tn->second .PushSelf (L);
2972
+ lua_rawseti (L, -3 , jTrack + 1 );
2973
+ }
2974
+ else
2975
+ {
2976
+ int iHeadRow;
2977
+ if (m_NoteData.IsHoldNoteAtRow (jTrack, iRow, &iHeadRow))
2978
+ {
2979
+ NoteData::iterator hold = m_NoteData.FindTapNote (jTrack, iHeadRow);
2980
+ hold->second .PushSelf (L);
2981
+ lua_rawseti (L, -2 , jTrack + 1 );
2982
+ }
2983
+ }
2973
2984
}
2974
- else
2985
+ }
2986
+ else {
2987
+ for (int jTrack = 0 ; jTrack < m_NoteData.GetNumTracks (); ++jTrack)
2975
2988
{
2976
- int iHeadRow;
2977
- if ( m_NoteData.IsHoldNoteAtRow ( iTrack, iRow, &iHeadRow ) )
2989
+ NoteData::iterator tn = m_NoteData.FindTapNote (jTrack, iRow);
2990
+ if (tn != m_NoteData.end (jTrack))
2991
+ {
2992
+ tn->second .PushSelf (L);
2993
+ lua_rawseti (L, -3 , jTrack + 1 );
2994
+ }
2995
+ else
2978
2996
{
2979
- NoteData::iterator hold = m_NoteData.FindTapNote (iTrack, iHeadRow);
2980
- hold->second .PushSelf (L);
2981
- lua_rawseti (L, -2 , iTrack + 1 );
2997
+ int iHeadRow;
2998
+ if (m_NoteData.IsHoldNoteAtRow (jTrack, iRow, &iHeadRow))
2999
+ {
3000
+ NoteData::iterator hold = m_NoteData.FindTapNote (jTrack, iHeadRow);
3001
+ hold->second .PushSelf (L);
3002
+ lua_rawseti (L, -2 , jTrack + 1 );
3003
+ }
2982
3004
}
2983
3005
}
2984
3006
}
0 commit comments