Draw arrows in the skin of the player matching the PlayerNumber of the TapNote.

This commit is contained in:
Steve Checkoway
2006-06-17 04:07:40 +00:00
parent 66ca81893f
commit 3045dda9fc
2 changed files with 38 additions and 18 deletions
+22 -3
View File
@@ -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 );
}
}
}
+1
View File
@@ -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