Draw arrows in the skin of the player matching the PlayerNumber of the TapNote.
This commit is contained in:
@@ -52,6 +52,7 @@ void NoteField::Unload()
|
||||
delete it->second;
|
||||
m_NoteDisplays.clear();
|
||||
m_pCurDisplay = NULL;
|
||||
memset( m_pDisplays, NULL, sizeof(m_pDisplays) );
|
||||
}
|
||||
|
||||
void NoteField::CacheNoteSkin( const RString &sNoteSkin_ )
|
||||
@@ -110,6 +111,14 @@ void NoteField::CacheAllUsedNoteSkins()
|
||||
map<RString, NoteDisplayCols *>::iterator it = m_NoteDisplays.find( m_pPlayerState->m_PlayerOptions.m_sNoteSkin );
|
||||
ASSERT_M( it != m_NoteDisplays.end(), m_pPlayerState->m_PlayerOptions.m_sNoteSkin );
|
||||
m_pCurDisplay = it->second;
|
||||
memset( m_pDisplays, NULL, sizeof(m_pDisplays) );
|
||||
FOREACH_EnabledPlayer( pn )
|
||||
{
|
||||
const RString& sNoteSkin = GAMESTATE->m_pPlayerState[pn]->m_PlayerOptions.m_sNoteSkin;
|
||||
it = m_NoteDisplays.find( sNoteSkin );
|
||||
ASSERT_M( it != m_NoteDisplays.end(), sNoteSkin );
|
||||
m_pDisplays[pn] = it->second;
|
||||
}
|
||||
}
|
||||
|
||||
void NoteField::Init( const PlayerState* pPlayerState, float fYReverseOffsetPixels )
|
||||
@@ -141,6 +150,14 @@ void NoteField::Load(
|
||||
map<RString, NoteDisplayCols *>::iterator it = m_NoteDisplays.find( m_pPlayerState->m_PlayerOptions.m_sNoteSkin );
|
||||
ASSERT_M( it != m_NoteDisplays.end(), m_pPlayerState->m_PlayerOptions.m_sNoteSkin );
|
||||
m_pCurDisplay = it->second;
|
||||
memset( m_pDisplays, NULL, sizeof(m_pDisplays) );
|
||||
FOREACH_EnabledPlayer( pn )
|
||||
{
|
||||
const RString& sNoteSkin = GAMESTATE->m_pPlayerState[pn]->m_PlayerOptions.m_sNoteSkin;
|
||||
it = m_NoteDisplays.find( sNoteSkin );
|
||||
ASSERT_M( it != m_NoteDisplays.end(), sNoteSkin );
|
||||
m_pDisplays[pn] = it->second;
|
||||
}
|
||||
}
|
||||
|
||||
void NoteField::Update( float fDeltaTime )
|
||||
@@ -695,7 +712,8 @@ void NoteField::DrawPrimitives()
|
||||
if( m_iBeginMarker!=-1 && m_iEndMarker!=-1 )
|
||||
bIsInSelectionRange = (m_iBeginMarker <= iStartRow && iEndRow < m_iEndMarker);
|
||||
|
||||
m_pCurDisplay->display[c].DrawHold( tn, c, iStartRow, bIsHoldingNote, bIsActive, Result, bIsInSelectionRange ? fSelectedRangeGlow : m_fPercentFadeToFail, false, m_fYReverseOffsetPixels, (float) iFirstPixelToDraw, (float) iLastPixelToDraw );
|
||||
NoteDisplayCols *displayCols = tn.pn == PLAYER_INVALID ? m_pCurDisplay : m_pDisplays[tn.pn];
|
||||
displayCols->display[c].DrawHold( tn, c, iStartRow, bIsHoldingNote, bIsActive, Result, bIsInSelectionRange ? fSelectedRangeGlow : m_fPercentFadeToFail, false, m_fYReverseOffsetPixels, (float) iFirstPixelToDraw, (float) iLastPixelToDraw );
|
||||
}
|
||||
|
||||
}
|
||||
@@ -755,17 +773,18 @@ void NoteField::DrawPrimitives()
|
||||
bool bIsAddition = (tn.source == TapNote::addition);
|
||||
bool bIsMine = (tn.type == TapNote::mine);
|
||||
bool bIsAttack = (tn.type == TapNote::attack);
|
||||
NoteDisplayCols *displayCols = tn.pn == PLAYER_INVALID ? m_pCurDisplay : m_pDisplays[tn.pn];
|
||||
|
||||
if( bIsAttack )
|
||||
{
|
||||
Sprite sprite;
|
||||
sprite.Load( THEME->GetPathG("NoteField","attack "+tn.sAttackModifiers) );
|
||||
float fBeat = NoteRowToBeat(i);
|
||||
m_pCurDisplay->display[c].DrawActor( &sprite, c, fBeat, bIsInSelectionRange ? fSelectedRangeGlow : m_fPercentFadeToFail, 1, m_fYReverseOffsetPixels, false, NotePart_Tap );
|
||||
displayCols->display[c].DrawActor( &sprite, c, fBeat, bIsInSelectionRange ? fSelectedRangeGlow : m_fPercentFadeToFail, 1, m_fYReverseOffsetPixels, false, NotePart_Tap );
|
||||
}
|
||||
else
|
||||
{
|
||||
m_pCurDisplay->display[c].DrawTap( c, NoteRowToBeat(i), bHoldNoteBeginsOnThisBeat, bIsAddition, bIsMine, bIsInSelectionRange ? fSelectedRangeGlow : m_fPercentFadeToFail, 1, m_fYReverseOffsetPixels );
|
||||
displayCols->display[c].DrawTap( c, NoteRowToBeat(i), bHoldNoteBeginsOnThisBeat, bIsAddition, bIsMine, bIsInSelectionRange ? fSelectedRangeGlow : m_fPercentFadeToFail, 1, m_fYReverseOffsetPixels );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -79,6 +79,7 @@ protected:
|
||||
/* All loaded note displays, mapped by their name. */
|
||||
map<RString, NoteDisplayCols *> m_NoteDisplays;
|
||||
NoteDisplayCols *m_pCurDisplay;
|
||||
NoteDisplayCols *m_pDisplays[NUM_PlayerNumber];
|
||||
|
||||
// used in MODE_EDIT
|
||||
Sprite m_sprBars; // 4 frames: Measure, 4th, 8th, 16th
|
||||
|
||||
Reference in New Issue
Block a user