Merge pull request #161 from sigatrev/judgmentmessage

added "Tracks" param to judgment message
This commit is contained in:
AJ Kelly
2014-05-06 18:37:31 -05:00
3 changed files with 24 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; }
+13 -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,7 @@ void Player::SetJudgment( TapNoteScore tns, int iTrack, float fTapNoteOffset )
msg.SetParam( "TapNoteScore", tns );
msg.SetParam( "Early", fTapNoteOffset < 0.0f );
msg.SetParam( "TapNoteOffset", fTapNoteOffset );
msg.SetParam( "Tracks" , viCols );
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 );