Updates
This commit is contained in:
@@ -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 );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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 );
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user