added "Tracks" param to judgment message

which contains a list of all tracks included in the judgment
This commit is contained in:
sigatrev
2014-05-06 17:56:51 -05:00
parent 612a3d1f73
commit d608953da7
3 changed files with 29 additions and 3 deletions
+9
View File
@@ -125,6 +125,15 @@ struct Message
LUA->Release( L );
}
template<typename T>
void SetParam( const RString &sName, const vector<T> &val )
{
Lua *L = LUA->Get();
LuaHelpers::CreateTableFromArray( val, L );
SetParamFromStack( L , sName );
LUA->Release( L );
}
bool operator==( const RString &s ) const { return m_sName == s; }
bool operator==( MessageID id ) const { return MessageIDToString(id) == m_sName; }
+18 -2
View File
@@ -2804,7 +2804,17 @@ void Player::UpdateJudgedRows()
}
else
{
SetJudgment( lastTNR.tns, m_NoteData.GetFirstTrackWithTapOrHoldHead(iRow), lastTNR.fTapNoteOffset );
vector<int> viColsWithTaps;
for( int iTrack = 0; iTrack < m_NoteData.GetNumTracks(); ++iTrack )
{
const TapNote &tn = m_NoteData.GetTapNote( iTrack, iRow );
if (tn.type == TapNote::tap || tn.type == TapNote::lift ||
( tn.type == TapNote::hold_head && !REQUIRE_STEP_ON_HOLD_HEADS ) )
{
viColsWithTaps.push_back( iTrack );
};
}
SetJudgment( lastTNR.tns, m_NoteData.GetFirstTrackWithTapOrHoldHead(iRow), lastTNR.fTapNoteOffset, viColsWithTaps );
}
HandleTapRowScore( iRow );
}
@@ -3323,7 +3333,7 @@ void Player::SetMineJudgment( TapNoteScore tns , int iTrack )
}
}
void Player::SetJudgment( TapNoteScore tns, int iTrack, float fTapNoteOffset )
void Player::SetJudgment( TapNoteScore tns, int iTrack, float fTapNoteOffset, vector<int> viCols )
{
if( m_bSendJudgmentAndComboMessages )
{
@@ -3334,6 +3344,12 @@ void Player::SetJudgment( TapNoteScore tns, int iTrack, float fTapNoteOffset )
msg.SetParam( "TapNoteScore", tns );
msg.SetParam( "Early", fTapNoteOffset < 0.0f );
msg.SetParam( "TapNoteOffset", fTapNoteOffset );
{
Lua *L = LUA->Get();
LuaHelpers::CreateTableFromArray( viCols, L );
msg.SetParamFromStack( L , "Tracks" );
LUA->Release( L );
}
MESSAGEMAN->Broadcast( msg );
}
}
+2 -1
View File
@@ -132,7 +132,8 @@ protected:
void PlayKeysound( const TapNote &tn, TapNoteScore score );
void SetMineJudgment( TapNoteScore tns , int iTrack );
void SetJudgment( TapNoteScore tns, int iFirstTrack, float fTapNoteOffset ); // -1 if no track as in TNS_Miss
void SetJudgment( TapNoteScore tns, int iFirstTrack, float fTapNoteOffset ) { vector<int> viCols (1,iFirstTrack); SetJudgment( tns, iFirstTrack, fTapNoteOffset, viCols ); }
void SetJudgment( TapNoteScore tns, int iFirstTrack, float fTapNoteOffset, vector<int> viCols ); // -1 if no track as in TNS_Miss
void SetHoldJudgment( TapNoteScore tns, HoldNoteScore hns, int iTrack );
void SetCombo( int iCombo, int iMisses );