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; 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 int WheelBase::IsMoving() const
{ {
return m_Moving && m_TimeBeforeMovingBegins == 0; 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 the item was shown in the wheel, rebuild the wheel
if ((0 <= (index - visible)) && ((index - visible) < NUM_WHEEL_ITEMS)) if ((0 <= (index - visible)) && ((index - visible) < NUM_WHEEL_ITEMS))
{ {
RebuildWheelItems(); RebuildWheelItems();
SCREENMAN->SystemMessageNoAnimate("redraw");
} }
} }
@@ -629,19 +637,15 @@ void WheelBase::RebuildWheelItems( int dist )
if( dist == -999999 ) if( dist == -999999 )
{ {
LOG->Info("data:%d", m_WheelBaseItemsData.size());
// Refresh all // Refresh all
for( int i=0; i<NUM_WHEEL_ITEMS; i++ ) for( int i=0; i<NUM_WHEEL_ITEMS; i++ )
{ {
LOG->Info("i:%d", i);
int iIndex = iFirstVisibleIndex + i; int iIndex = iFirstVisibleIndex + i;
wrap( iIndex, m_WheelBaseItemsData.size() ); wrap( iIndex, m_WheelBaseItemsData.size() );
LOG->Info("iIndex:%d", iIndex);
WheelItemBaseData *data = m_WheelBaseItemsData[iIndex]; WheelItemBaseData *data = m_WheelBaseItemsData[iIndex];
WheelItemBase *display = m_WheelBaseItems[i]; WheelItemBase *display = m_WheelBaseItems[i];
LOG->Info("DISP");
display->LoadFromWheelItemBaseData( data ); display->LoadFromWheelItemBaseData( data );
} }
} }
+4 -1
View File
@@ -45,10 +45,13 @@ public:
virtual bool Select(); // return true if this selection ends the screen virtual bool Select(); // return true if this selection ends the screen
bool WheelIsLocked() { return (m_WheelState == STATE_LOCKED ? true : false); } 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 AddItem( WheelItemBaseData* itemdata );
void RemoveItem( int index ); 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(); WheelItemBaseData* LastSelected();
protected: protected:
+12 -8
View File
@@ -16,10 +16,6 @@
#include "ActorUtil.h" #include "ActorUtil.h"
#include "ThemeMetric.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 ) WheelItemBaseData::WheelItemBaseData( WheelItemType wit, CString sText, RageColor color )
{ {
m_Type = wit; 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_fPercentGray = 0;
m_sprBar.Load( THEME->GetPathG("WheelItemBase","bar") ); m_sprBar.Load( THEME->GetPathG(sType,"bar") );
m_sprBar.SetXY( 0, 0 ); m_sprBar.SetXY( 0, 0 );
this->AddChild( &m_sprBar ); this->AddChild( &m_sprBar );
m_text.LoadFromFont( THEME->GetPathF("WheelItemBase","text") ); m_text.LoadFromFont( THEME->GetPathF(sType,"text") );
m_text.SetShadowLength( 0 ); m_text.SetShadowLength( 0 );
m_text.SetXY( TEXT_X, TEXT_Y ); m_text.SetXY( TEXT_X, TEXT_Y );
m_text.RunCommands( TEXT_ON_COMMAND ); m_text.RunCommands( TEXT_ON_COMMAND );
+8 -1
View File
@@ -28,12 +28,14 @@ enum WheelItemType
class WheelItemBase : public ActorFrame class WheelItemBase : public ActorFrame
{ {
public: public:
WheelItemBase(); WheelItemBase(CString sType = "WheelItemBase");
WheelItemBaseData* data; WheelItemBaseData* data;
virtual void Update( float fDeltaTime ); virtual void Update( float fDeltaTime );
virtual void DrawPrimitives(Sprite& bar); virtual void DrawPrimitives(Sprite& bar);
virtual void DrawPrimitives() { DrawPrimitives( m_sprBar ); } virtual void DrawPrimitives() { DrawPrimitives( m_sprBar ); }
void Load( CString sType );
virtual void LoadFromWheelItemBaseData( WheelItemBaseData* pWID ); virtual void LoadFromWheelItemBaseData( WheelItemBaseData* pWID );
float m_fPercentGray; float m_fPercentGray;
@@ -43,6 +45,11 @@ public:
WheelItemType m_Type; WheelItemType m_Type;
RageColor m_color; RageColor m_color;
ThemeMetric<float> TEXT_X;
ThemeMetric<float> TEXT_Y;
ThemeMetric<float> TEXT_WIDTH;
ThemeMetric<apActorCommands> TEXT_ON_COMMAND;
}; };
struct WheelItemBaseData struct WheelItemBaseData