This commit is contained in:
Josh Allen
2005-05-03 01:05:11 +00:00
parent 0ac5e2b008
commit 531b4731a8
4 changed files with 34 additions and 16 deletions
+10 -6
View File
@@ -402,6 +402,15 @@ bool WheelBase::Select() // return true if this selection ends the screen
return false;
}
WheelItemBaseData* WheelBase::GetItem(unsigned int index) // return true if this selection ends the screen
{
if (!m_isEmpty)
if (index < m_WheelBaseItemsData.size())
return m_WheelBaseItemsData[index];
return NULL;
}
int WheelBase::IsMoving() const
{
return m_Moving && m_TimeBeforeMovingBegins == 0;
@@ -583,8 +592,7 @@ void WheelBase::AddItem(WheelItemBaseData* itemdata)
//If the item was shown in the wheel, rebuild the wheel
if ((0 <= (index - visible)) && ((index - visible) < NUM_WHEEL_ITEMS))
{
RebuildWheelItems();
SCREENMAN->SystemMessageNoAnimate("redraw");
RebuildWheelItems();
}
}
@@ -629,19 +637,15 @@ void WheelBase::RebuildWheelItems( int dist )
if( dist == -999999 )
{
LOG->Info("data:%d", m_WheelBaseItemsData.size());
// Refresh all
for( int i=0; i<NUM_WHEEL_ITEMS; i++ )
{
LOG->Info("i:%d", i);
int iIndex = iFirstVisibleIndex + i;
wrap( iIndex, m_WheelBaseItemsData.size() );
LOG->Info("iIndex:%d", iIndex);
WheelItemBaseData *data = m_WheelBaseItemsData[iIndex];
WheelItemBase *display = m_WheelBaseItems[i];
LOG->Info("DISP");
display->LoadFromWheelItemBaseData( data );
}
}
+4 -1
View File
@@ -45,10 +45,13 @@ public:
virtual bool Select(); // return true if this selection ends the screen
bool WheelIsLocked() { return (m_WheelState == STATE_LOCKED ? true : false); }
void RebuildWheelItems( int dist = -999999 ); // -999999 = refresh all
virtual void RebuildWheelItems( int dist = -999999 ); // -999999 = refresh all
void AddItem( WheelItemBaseData* itemdata );
void RemoveItem( int index );
inline unsigned int GetNumItems() { return m_WheelBaseItemsData.size(); }
inline bool IsEmpty() { return m_isEmpty; }
WheelItemBaseData* GetItem(unsigned int index);
WheelItemBaseData* LastSelected();
protected:
+12 -8
View File
@@ -16,10 +16,6 @@
#include "ActorUtil.h"
#include "ThemeMetric.h"
ThemeMetric<float> TEXT_X ("WheelItemBase","TextX");
ThemeMetric<float> TEXT_Y ("WheelItemBase","TextY");
ThemeMetric<apActorCommands> TEXT_ON_COMMAND ("WheelItemBase","TextOnCommand");
WheelItemBaseData::WheelItemBaseData( WheelItemType wit, CString sText, RageColor color )
{
m_Type = wit;
@@ -29,17 +25,25 @@ WheelItemBaseData::WheelItemBaseData( WheelItemType wit, CString sText, RageColo
}
WheelItemBase::WheelItemBase()
WheelItemBase::WheelItemBase(CString sType)
{
SetName( "WheelItemBase" );
SetName( sType );
Load(sType);
}
void WheelItemBase::Load( CString sType )
{
TEXT_X .Load(sType,"TextX");
TEXT_Y .Load(sType,"TextY");
TEXT_ON_COMMAND .Load(sType,"TextOnCommand");
m_fPercentGray = 0;
m_sprBar.Load( THEME->GetPathG("WheelItemBase","bar") );
m_sprBar.Load( THEME->GetPathG(sType,"bar") );
m_sprBar.SetXY( 0, 0 );
this->AddChild( &m_sprBar );
m_text.LoadFromFont( THEME->GetPathF("WheelItemBase","text") );
m_text.LoadFromFont( THEME->GetPathF(sType,"text") );
m_text.SetShadowLength( 0 );
m_text.SetXY( TEXT_X, TEXT_Y );
m_text.RunCommands( TEXT_ON_COMMAND );
+8 -1
View File
@@ -28,12 +28,14 @@ enum WheelItemType
class WheelItemBase : public ActorFrame
{
public:
WheelItemBase();
WheelItemBase(CString sType = "WheelItemBase");
WheelItemBaseData* data;
virtual void Update( float fDeltaTime );
virtual void DrawPrimitives(Sprite& bar);
virtual void DrawPrimitives() { DrawPrimitives( m_sprBar ); }
void Load( CString sType );
virtual void LoadFromWheelItemBaseData( WheelItemBaseData* pWID );
float m_fPercentGray;
@@ -43,6 +45,11 @@ public:
WheelItemType m_Type;
RageColor m_color;
ThemeMetric<float> TEXT_X;
ThemeMetric<float> TEXT_Y;
ThemeMetric<float> TEXT_WIDTH;
ThemeMetric<apActorCommands> TEXT_ON_COMMAND;
};
struct WheelItemBaseData