Files
itgmania212121/stepmania/src/MusicStatusDisplay.h
T
2002-02-10 06:25:12 +00:00

100 lines
2.0 KiB
C++

/*
-----------------------------------------------------------------------------
File: MusicStatusDisplay.h
Desc: A graphic displayed in the MusicStatusDisplay during Dancing.
Copyright (c) 2001 Chris Danford. All rights reserved.
-----------------------------------------------------------------------------
*/
class MusicStatusDisplay;
#ifndef _MusicStatusDisplay_H_
#define _MusicStatusDisplay_H_
#include "Sprite.h"
#include "ThemeManager.h"
enum MusicStatusDisplayType { TYPE_NEW, TYPE_NONE, TYPE_CROWN1, TYPE_CROWN2, TYPE_CROWN3 };
class MusicStatusDisplay : public Sprite
{
public:
MusicStatusDisplay()
{
Load( THEME->GetPathTo(GRAPHIC_MUSIC_STATUS_ICONS) );
StopAnimating();
SetType( TYPE_NONE );
};
void SetType( MusicStatusDisplayType msdt )
{
m_MusicStatusDisplayType = msdt;
switch( m_MusicStatusDisplayType )
{
case TYPE_NEW:
m_MusicStatusDisplayType = TYPE_NEW;
SetState( 0 );
SetDiffuseColor( D3DXCOLOR(1,1,1,1) );
break;
case TYPE_CROWN1:
m_MusicStatusDisplayType = TYPE_CROWN1;
SetState( 1 );
SetDiffuseColor( D3DXCOLOR(1,1,1,1) );
break;
case TYPE_CROWN2:
m_MusicStatusDisplayType = TYPE_CROWN2;
SetState( 2 );
SetDiffuseColor( D3DXCOLOR(1,1,1,1) );
break;
case TYPE_CROWN3:
m_MusicStatusDisplayType = TYPE_CROWN3;
SetState( 3 );
SetDiffuseColor( D3DXCOLOR(1,1,1,1) );
break;
case TYPE_NONE:
default:
m_MusicStatusDisplayType = TYPE_NONE;
SetDiffuseColor( D3DXCOLOR(0,0,0,0) );
break;
}
};
virtual void Update( float fDeltaTime )
{
Sprite::Update( fDeltaTime );
};
virtual void RenderPrimitives()
{
switch( m_MusicStatusDisplayType )
{
case TYPE_CROWN1:
case TYPE_CROWN2:
case TYPE_CROWN3:
// blink
if( (GetTickCount() % 1000) > 500 ) // show the new icon
return;
break;
case TYPE_NONE:
return;
break;
}
Sprite::RenderPrimitives();
}
protected:
enum MusicStatusDisplayType m_MusicStatusDisplayType;
};
#endif