note color support for mines (this is actually just so mines aren't a special

case)
This commit is contained in:
Glenn Maynard
2004-08-21 01:35:50 +00:00
parent 08886fdd00
commit a0f162d5a9
2 changed files with 25 additions and 8 deletions
+24 -7
View File
@@ -72,7 +72,7 @@ void NoteMetricCache_t::Load(CString skin, const CString &name)
m_bAnimationIsNoteColor[PART_TAP] = NOTESKIN->GetMetricB(skin,name,"TapNoteAnimationIsNoteColor"); m_bAnimationIsNoteColor[PART_TAP] = NOTESKIN->GetMetricB(skin,name,"TapNoteAnimationIsNoteColor");
m_bAnimationIsNoteColor[PART_ADDITION] = NOTESKIN->GetMetricB(skin,name,"TapAdditionAnimationIsNoteColor"); m_bAnimationIsNoteColor[PART_ADDITION] = NOTESKIN->GetMetricB(skin,name,"TapAdditionAnimationIsNoteColor");
// m_bAnimationIsNoteColor[PART_MINE] = NOTESKIN->GetMetricB(skin,name,"TapMineAnimationIsNoteColor"); m_bAnimationIsNoteColor[PART_MINE] = NOTESKIN->GetMetricB(skin,name,"TapMineAnimationIsNoteColor");
m_bAnimationIsNoteColor[PART_HOLD_HEAD] = NOTESKIN->GetMetricB(skin,name,"HoldHeadAnimationIsNoteColor"); m_bAnimationIsNoteColor[PART_HOLD_HEAD] = NOTESKIN->GetMetricB(skin,name,"HoldHeadAnimationIsNoteColor");
m_bAnimationIsNoteColor[PART_HOLD_TOP_CAP] =NOTESKIN->GetMetricB(skin,name,"HoldTopCapAnimationIsNoteColor"); m_bAnimationIsNoteColor[PART_HOLD_TOP_CAP] =NOTESKIN->GetMetricB(skin,name,"HoldTopCapAnimationIsNoteColor");
m_bAnimationIsNoteColor[PART_HOLD_BODY] = NOTESKIN->GetMetricB(skin,name,"HoldBodyAnimationIsNoteColor"); m_bAnimationIsNoteColor[PART_HOLD_BODY] = NOTESKIN->GetMetricB(skin,name,"HoldBodyAnimationIsNoteColor");
@@ -185,6 +185,7 @@ NoteDisplay::NoteDisplay()
{ {
m_pTapNote[i] = NULL; m_pTapNote[i] = NULL;
m_pTapAddition[i] = NULL; m_pTapAddition[i] = NULL;
m_pTapMine[i] = NULL;
m_pHoldHeadActive[i] = NULL; m_pHoldHeadActive[i] = NULL;
m_pHoldHeadInactive[i] = NULL; m_pHoldHeadInactive[i] = NULL;
m_pHoldTopCapActive[i] = NULL; m_pHoldTopCapActive[i] = NULL;
@@ -196,7 +197,6 @@ NoteDisplay::NoteDisplay()
m_pHoldTailActive[i] = NULL; m_pHoldTailActive[i] = NULL;
m_pHoldTailInactive[i] = NULL; m_pHoldTailInactive[i] = NULL;
} }
m_pTapMine = NULL;
cache = new NoteMetricCache_t; cache = new NoteMetricCache_t;
} }
@@ -207,6 +207,7 @@ NoteDisplay::~NoteDisplay()
{ {
DeleteNoteResource( m_pTapNote[i] ); DeleteNoteResource( m_pTapNote[i] );
DeleteNoteResource( m_pTapAddition[i] ); DeleteNoteResource( m_pTapAddition[i] );
DeleteNoteResource( m_pTapMine[i] );
DeleteNoteResource( m_pHoldHeadActive[i] ); DeleteNoteResource( m_pHoldHeadActive[i] );
DeleteNoteResource( m_pHoldHeadInactive[i] ); DeleteNoteResource( m_pHoldHeadInactive[i] );
DeleteNoteResource( m_pHoldTopCapActive[i] ); DeleteNoteResource( m_pHoldTopCapActive[i] );
@@ -218,7 +219,6 @@ NoteDisplay::~NoteDisplay()
DeleteNoteResource( m_pHoldTailActive[i] ); DeleteNoteResource( m_pHoldTailActive[i] );
DeleteNoteResource( m_pHoldTailInactive[i] ); DeleteNoteResource( m_pHoldTailInactive[i] );
} }
DeleteNoteResource( m_pTapMine );
delete cache; delete cache;
} }
@@ -262,7 +262,15 @@ void NoteDisplay::Load( int iColNum, PlayerNumber pn, CString NoteSkin, float fY
m_pTapAddition[0] = MakeRefcountedActor( NOTESKIN->GetPathToFromNoteSkinAndButton(NoteSkin, Button, "tap addition") ); m_pTapAddition[0] = MakeRefcountedActor( NOTESKIN->GetPathToFromNoteSkinAndButton(NoteSkin, Button, "tap addition") );
} }
m_pTapMine = MakeRefcountedActor( NOTESKIN->GetPathToFromNoteSkinAndButton(NoteSkin, Button, "tap mine") ); if( cache->m_bAnimationIsNoteColor[PART_MINE] )
{
for( int i=0; i<NOTE_COLOR_IMAGES; i++ )
m_pTapMine[i] = MakeRefcountedActor( NOTESKIN->GetPathToFromNoteSkinAndButton(NoteSkin, Button, "tap mine "+sNoteType[i]) );
}
else
{
m_pTapMine[0] = MakeRefcountedActor( NOTESKIN->GetPathToFromNoteSkinAndButton(NoteSkin, Button, "tap mine") );
}
if( cache->m_bAnimationIsNoteColor[PART_HOLD_HEAD] ) if( cache->m_bAnimationIsNoteColor[PART_HOLD_HEAD] )
{ {
@@ -416,14 +424,23 @@ Actor * NoteDisplay::GetTapAdditionActor( float fNoteBeat )
Actor * NoteDisplay::GetTapMineActor( float fNoteBeat ) Actor * NoteDisplay::GetTapMineActor( float fNoteBeat )
{ {
NoteType nt = NoteType(0);
if( cache->m_bAnimationIsNoteColor[PART_MINE] )
nt = BeatToNoteType( fNoteBeat );
if( nt == NOTE_TYPE_INVALID )
nt = NOTE_TYPE_192ND;
nt = min( nt, (NoteType) (NOTE_COLOR_IMAGES-1) );
Actor *pActorOut = m_pTapMine[nt];
SetActiveFrame( SetActiveFrame(
fNoteBeat, fNoteBeat,
*m_pTapMine, *pActorOut,
cache->m_fAnimationLengthInBeats[PART_MINE], cache->m_fAnimationLengthInBeats[PART_MINE],
cache->m_bAnimationIsVivid[PART_MINE], cache->m_bAnimationIsVivid[PART_MINE],
false ); cache->m_bAnimationIsNoteColor[PART_MINE] );
return m_pTapMine; return pActorOut;
} }
Sprite * NoteDisplay::GetHoldTopCapSprite( float fNoteBeat, bool bIsBeingHeld ) Sprite * NoteDisplay::GetHoldTopCapSprite( float fNoteBeat, bool bIsBeingHeld )
+1 -1
View File
@@ -50,7 +50,7 @@ protected:
Actor* m_pTapNote[NOTE_COLOR_IMAGES]; Actor* m_pTapNote[NOTE_COLOR_IMAGES];
Actor* m_pTapAddition[NOTE_COLOR_IMAGES]; Actor* m_pTapAddition[NOTE_COLOR_IMAGES];
Actor* m_pTapMine; Actor* m_pTapMine[NOTE_COLOR_IMAGES];
Actor* m_pHoldHeadActive[NOTE_COLOR_IMAGES]; Actor* m_pHoldHeadActive[NOTE_COLOR_IMAGES];
Actor* m_pHoldHeadInactive[NOTE_COLOR_IMAGES]; Actor* m_pHoldHeadInactive[NOTE_COLOR_IMAGES];
Sprite* m_pHoldTopCapActive[NOTE_COLOR_IMAGES]; Sprite* m_pHoldTopCapActive[NOTE_COLOR_IMAGES];