Make wheel items regular children (no special update/drawing);
remove "staggered tween" hack and set the offset in the context so this can be done in commands; fix sections; do OnCommand/OffCommand normally and rename TweenOn/OffScreen to TweenOn/OffScreenForSort; other fixes/cleanups (metric updates to come in a bit)
This commit is contained in:
@@ -75,6 +75,22 @@ WheelItemBase *MusicWheel::MakeItem()
|
||||
|
||||
void MusicWheel::Load( RString sType )
|
||||
{
|
||||
ROULETTE_SWITCH_SECONDS .Load(sType,"RouletteSwitchSeconds");
|
||||
ROULETTE_SLOW_DOWN_SWITCHES .Load(sType,"RouletteSlowDownSwitches");
|
||||
NUM_SECTION_COLORS .Load(sType,"NumSectionColors");
|
||||
SONG_REAL_EXTRA_COLOR .Load(sType,"SongRealExtraColor");
|
||||
SORT_MENU_COLOR .Load(sType,"SortMenuColor");
|
||||
SHOW_ROULETTE .Load(sType,"ShowRoulette");
|
||||
SHOW_RANDOM .Load(sType,"ShowRandom");
|
||||
SHOW_PORTAL .Load(sType,"ShowPortal");
|
||||
RANDOM_PICKS_LOCKED_SONGS .Load(sType,"RandomPicksLockedSongs");
|
||||
MOST_PLAYED_SONGS_TO_SHOW .Load(sType,"MostPlayedSongsToShow");
|
||||
MODE_MENU_CHOICE_NAMES .Load(sType,"ModeMenuChoiceNames");
|
||||
vector<RString> vsModeChoiceNames;
|
||||
split( MODE_MENU_CHOICE_NAMES, ",", vsModeChoiceNames );
|
||||
CHOICE .Load(sType,CHOICE_NAME,vsModeChoiceNames);
|
||||
SECTION_COLORS .Load(sType,SECTION_COLORS_NAME,NUM_SECTION_COLORS);
|
||||
|
||||
WheelBase::Load( sType );
|
||||
|
||||
SONGMAN->UpdateRankingCourses();
|
||||
@@ -153,27 +169,6 @@ void MusicWheel::BeginScreen()
|
||||
RebuildWheelItems();
|
||||
}
|
||||
|
||||
void MusicWheel::LoadFromMetrics( RString sType )
|
||||
{
|
||||
WheelBase::LoadFromMetrics(sType);
|
||||
|
||||
ROULETTE_SWITCH_SECONDS .Load(sType,"RouletteSwitchSeconds");
|
||||
ROULETTE_SLOW_DOWN_SWITCHES .Load(sType,"RouletteSlowDownSwitches");
|
||||
NUM_SECTION_COLORS .Load(sType,"NumSectionColors");
|
||||
SONG_REAL_EXTRA_COLOR .Load(sType,"SongRealExtraColor");
|
||||
SORT_MENU_COLOR .Load(sType,"SortMenuColor");
|
||||
SHOW_ROULETTE .Load(sType,"ShowRoulette");
|
||||
SHOW_RANDOM .Load(sType,"ShowRandom");
|
||||
SHOW_PORTAL .Load(sType,"ShowPortal");
|
||||
RANDOM_PICKS_LOCKED_SONGS .Load(sType,"RandomPicksLockedSongs");
|
||||
MOST_PLAYED_SONGS_TO_SHOW .Load(sType,"MostPlayedSongsToShow");
|
||||
MODE_MENU_CHOICE_NAMES .Load(sType,"ModeMenuChoiceNames");
|
||||
vector<RString> vsModeChoiceNames;
|
||||
split( MODE_MENU_CHOICE_NAMES, ",", vsModeChoiceNames );
|
||||
CHOICE .Load(sType,CHOICE_NAME,vsModeChoiceNames);
|
||||
SECTION_COLORS .Load(sType,SECTION_COLORS_NAME,NUM_SECTION_COLORS);
|
||||
}
|
||||
|
||||
MusicWheel::~MusicWheel()
|
||||
{
|
||||
FOREACH_SortOrder( so )
|
||||
@@ -752,7 +747,7 @@ void MusicWheel::UpdateSwitch()
|
||||
|
||||
SCREENMAN->PostMessageToTopScreen( SM_SongChanged, 0 );
|
||||
RebuildWheelItems();
|
||||
TweenOnScreen(true);
|
||||
TweenOnScreenForSort();
|
||||
m_WheelState = STATE_FLYING_ON_AFTER_NEXT_SORT;
|
||||
|
||||
SCREENMAN->ZeroNextUpdate();
|
||||
@@ -862,7 +857,7 @@ bool MusicWheel::ChangeSort( SortOrder new_so ) // return true if change success
|
||||
|
||||
m_soundChangeSort.Play();
|
||||
|
||||
TweenOffScreen(true);
|
||||
TweenOffScreenForSort();
|
||||
|
||||
/* Save the new preference. */
|
||||
if( IsSongSort(new_so) )
|
||||
@@ -904,8 +899,6 @@ bool MusicWheel::Select() // return true if this selection ends the screen
|
||||
return false;
|
||||
}
|
||||
|
||||
m_Moving = 0;
|
||||
|
||||
if( m_WheelState == STATE_ROULETTE_SPINNING )
|
||||
{
|
||||
m_WheelState = STATE_ROULETTE_SLOWING_DOWN;
|
||||
@@ -925,6 +918,9 @@ bool MusicWheel::Select() // return true if this selection ends the screen
|
||||
return false;
|
||||
}
|
||||
|
||||
if( !WheelBase::Select() )
|
||||
return false;
|
||||
|
||||
switch( m_CurWheelItemData[m_iSelection]->m_Type )
|
||||
{
|
||||
case TYPE_ROULETTE:
|
||||
@@ -946,7 +942,7 @@ bool MusicWheel::Select() // return true if this selection ends the screen
|
||||
m_sLastModeMenuItem = GetCurWheelItemData(m_iSelection)->m_Action.m_sName;
|
||||
break;
|
||||
default:
|
||||
return WheelBase::Select();
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -993,6 +989,7 @@ void MusicWheel::StartRandom()
|
||||
|
||||
void MusicWheel::SetOpenGroup( RString group )
|
||||
{
|
||||
LOG->Trace( "SetOpenGroup %s", group.c_str() );
|
||||
m_sExpandedSectionName = group;
|
||||
|
||||
const WheelItemData *old = NULL;
|
||||
|
||||
+96
-181
@@ -31,8 +31,9 @@ WheelBase::~WheelBase()
|
||||
void WheelBase::Load( RString sType )
|
||||
{
|
||||
LOG->Trace( "WheelBase::Load('%s')", sType.c_str() );
|
||||
ASSERT( this->GetNumChildren() == 0 ); // only load once
|
||||
|
||||
m_bEmpty = true;
|
||||
m_bEmpty = false;
|
||||
m_LastSelection = NULL;
|
||||
m_iSelection = 0;
|
||||
m_fTimeLeftInState = 0;
|
||||
@@ -40,29 +41,8 @@ void WheelBase::Load( RString sType )
|
||||
m_iSwitchesLeftInSpinDown = 0;
|
||||
m_Moving = 0;
|
||||
|
||||
LoadFromMetrics( sType );
|
||||
|
||||
FOREACH( WheelItemBase*, m_WheelBaseItems, i )
|
||||
SAFE_DELETE( *i );
|
||||
m_WheelBaseItems.clear();
|
||||
WheelItemBase *pTempl = MakeItem();
|
||||
for( int i=0; i<NUM_WHEEL_ITEMS; i++ )
|
||||
{
|
||||
m_WheelBaseItems.push_back( (WheelItemBase *) pTempl->Copy() ); // XXX: ugly cast
|
||||
}
|
||||
SAFE_DELETE( pTempl );
|
||||
}
|
||||
|
||||
void WheelBase::BeginScreen()
|
||||
{
|
||||
m_WheelState = STATE_SELECTING;
|
||||
}
|
||||
|
||||
void WheelBase::LoadFromMetrics( RString sType )
|
||||
{
|
||||
SWITCH_SECONDS .Load(sType,"SwitchSeconds");
|
||||
LOCKED_INITIAL_VELOCITY .Load(sType,"LockedInitialVelocity");
|
||||
SCROLL_BAR_X .Load(sType,"ScrollBarX");
|
||||
SCROLL_BAR_HEIGHT .Load(sType,"ScrollBarHeight");
|
||||
ITEM_CURVE_X .Load(sType,"ItemCurveX");
|
||||
USE_LINEAR_WHEEL .Load(sType,"NoCurving");
|
||||
@@ -71,21 +51,58 @@ void WheelBase::LoadFromMetrics( RString sType )
|
||||
CIRCLE_PERCENT .Load(sType,"CirclePercent");
|
||||
USE_3D .Load(sType,"Use3D");
|
||||
NUM_WHEEL_ITEMS_TO_DRAW .Load(sType,"NumWheelItems");
|
||||
WHEEL_ITEM_ON_DELAY_OFFSET .Load(sType,"WheelItemOnDelayOffset");
|
||||
WHEEL_ITEM_OFF_DELAY_OFFSET .Load(sType,"WheelItemOffDelayOffset");
|
||||
WHEEL_ITEM_LOCKED_COLOR .Load(sType,"WheelItemLockedColor");
|
||||
|
||||
m_soundChangeMusic.Load( THEME->GetPathS(sType,"change"), true );
|
||||
m_soundLocked.Load( THEME->GetPathS(sType,"locked"), true );
|
||||
|
||||
WheelItemBase *pTempl = MakeItem();
|
||||
ActorUtil::LoadAllCommands( *pTempl, m_sName );
|
||||
for( int i=0; i<NUM_WHEEL_ITEMS; i++ )
|
||||
m_WheelBaseItems.push_back( (WheelItemBase *) pTempl->Copy() ); // XXX: ugly cast
|
||||
SAFE_DELETE( pTempl );
|
||||
|
||||
// draw outside->inside
|
||||
for( int i=0; i<NUM_WHEEL_ITEMS/2; i++ )
|
||||
this->AddChild( m_WheelBaseItems[i] );
|
||||
for( int i=NUM_WHEEL_ITEMS-1; i>=NUM_WHEEL_ITEMS/2; i-- )
|
||||
this->AddChild( m_WheelBaseItems[i] );
|
||||
|
||||
m_sprHighlight.Load( THEME->GetPathG(sType,"highlight") );
|
||||
m_sprHighlight->SetName( "Highlight" );
|
||||
this->AddChild( m_sprHighlight );
|
||||
ActorUtil::OnCommand( m_sprHighlight, sType );
|
||||
ActorUtil::LoadAllCommands( *m_sprHighlight, m_sName );
|
||||
|
||||
m_ScrollBar.SetX( SCROLL_BAR_X );
|
||||
m_ScrollBar.SetBarHeight( SCROLL_BAR_HEIGHT );
|
||||
this->AddChild( &m_ScrollBar );
|
||||
ActorUtil::LoadAllCommands( m_ScrollBar, m_sName );
|
||||
|
||||
{
|
||||
Lua *L = LUA->Get();
|
||||
m_sprHighlight->PushContext(L);
|
||||
lua_pushstring( L, "WheelIndex" );
|
||||
lua_pushnumber( L, NUM_WHEEL_ITEMS/2.0f );
|
||||
lua_settable( L, -3 );
|
||||
lua_pop( L, 1 );
|
||||
LUA->Release( L );
|
||||
}
|
||||
|
||||
Lua *L = LUA->Get();
|
||||
for( int i=0; i < (int) m_WheelBaseItems.size(); i++ )
|
||||
{
|
||||
m_WheelBaseItems[i]->PushContext(L);
|
||||
lua_pushstring( L, "WheelIndex" );
|
||||
lua_pushnumber( L, i );
|
||||
lua_settable( L, -3 );
|
||||
lua_pop( L, 1 );
|
||||
}
|
||||
LUA->Release( L );
|
||||
|
||||
}
|
||||
|
||||
void WheelBase::BeginScreen()
|
||||
{
|
||||
m_WheelState = STATE_SELECTING;
|
||||
}
|
||||
|
||||
void WheelBase::GetItemPosition( float fPosOffsetsFromMiddle, float& fX_out, float& fY_out, float& fZ_out, float& fRotationX_out )
|
||||
@@ -134,43 +151,6 @@ void WheelBase::SetItemPosition( Actor &item, float fPosOffsetsFromMiddle )
|
||||
item.SetRotationX( fRotationX );
|
||||
}
|
||||
|
||||
void WheelBase::DrawPrimitives()
|
||||
{
|
||||
// draw outside->inside
|
||||
for( int i=0; i<NUM_WHEEL_ITEMS/2; i++ )
|
||||
DrawItem( i );
|
||||
for( int i=NUM_WHEEL_ITEMS-1; i>=NUM_WHEEL_ITEMS/2; i-- )
|
||||
DrawItem( i );
|
||||
|
||||
ActorFrame::DrawPrimitives();
|
||||
}
|
||||
|
||||
void WheelBase::DrawItem( int i )
|
||||
{
|
||||
const float fThisBannerPositionOffsetFromSelection = i - NUM_WHEEL_ITEMS/2 + m_fPositionOffsetFromSelection;
|
||||
if( fabsf(fThisBannerPositionOffsetFromSelection) > NUM_WHEEL_ITEMS_TO_DRAW/2 )
|
||||
return;
|
||||
|
||||
WheelItemBase *display = m_WheelBaseItems[i];
|
||||
switch( m_WheelState )
|
||||
{
|
||||
case STATE_SELECTING:
|
||||
case STATE_LOCKED:
|
||||
case STATE_ROULETTE_SPINNING:
|
||||
case STATE_ROULETTE_SLOWING_DOWN:
|
||||
case STATE_RANDOM_SPINNING:
|
||||
SetItemPosition( *display, fThisBannerPositionOffsetFromSelection );
|
||||
break;
|
||||
}
|
||||
|
||||
if( m_WheelState == STATE_LOCKED && i != NUM_WHEEL_ITEMS/2 )
|
||||
display->m_colorLocked = WHEEL_ITEM_LOCKED_COLOR.GetValue();
|
||||
else
|
||||
display->m_colorLocked = RageColor(0,0,0,0);
|
||||
|
||||
display->Draw();
|
||||
}
|
||||
|
||||
void WheelBase::UpdateScrollbar()
|
||||
{
|
||||
int iTotalNumItems = m_CurWheelItemData.size();
|
||||
@@ -207,7 +187,33 @@ void WheelBase::Update( float fDeltaTime )
|
||||
{
|
||||
ActorFrame::Update( fDeltaTime );
|
||||
|
||||
UpdateItems( fDeltaTime );
|
||||
for( int i=0; i<NUM_WHEEL_ITEMS; i++ )
|
||||
{
|
||||
WheelItemBase *pDisplay = m_WheelBaseItems[i];
|
||||
const float fOffsetFromSelection = i - NUM_WHEEL_ITEMS/2 + m_fPositionOffsetFromSelection;
|
||||
if( fabsf(fOffsetFromSelection) > NUM_WHEEL_ITEMS_TO_DRAW/2 )
|
||||
{
|
||||
pDisplay->SetHidden( true );
|
||||
continue;
|
||||
}
|
||||
pDisplay->SetHidden( false );
|
||||
|
||||
switch( m_WheelState )
|
||||
{
|
||||
case STATE_SELECTING:
|
||||
case STATE_LOCKED:
|
||||
case STATE_ROULETTE_SPINNING:
|
||||
case STATE_ROULETTE_SLOWING_DOWN:
|
||||
case STATE_RANDOM_SPINNING:
|
||||
SetItemPosition( *pDisplay, fOffsetFromSelection );
|
||||
break;
|
||||
}
|
||||
|
||||
if( m_WheelState == STATE_LOCKED && i != NUM_WHEEL_ITEMS/2 )
|
||||
pDisplay->m_colorLocked = WHEEL_ITEM_LOCKED_COLOR.GetValue();
|
||||
else
|
||||
pDisplay->m_colorLocked = RageColor(0,0,0,0);
|
||||
}
|
||||
|
||||
//Moved to CommonUpdateProcedure, seems to work fine
|
||||
//Revert if it happens to break something
|
||||
@@ -303,14 +309,6 @@ void WheelBase::Update( float fDeltaTime )
|
||||
}
|
||||
}
|
||||
|
||||
void WheelBase::UpdateItems( float fDeltaTime )
|
||||
{
|
||||
for( unsigned i = 0; i < unsigned(NUM_WHEEL_ITEMS); i++)
|
||||
{
|
||||
m_WheelBaseItems[i]->Update( fDeltaTime );
|
||||
}
|
||||
}
|
||||
|
||||
void WheelBase::UpdateSwitch()
|
||||
{
|
||||
switch( m_WheelState )
|
||||
@@ -351,30 +349,30 @@ bool WheelBase::Select() // return true if this selection can end the screen
|
||||
|
||||
m_Moving = 0;
|
||||
|
||||
if( !m_bEmpty )
|
||||
{
|
||||
switch( m_CurWheelItemData[m_iSelection]->m_Type )
|
||||
{
|
||||
case TYPE_GENERIC:
|
||||
m_LastSelection = m_CurWheelItemData[m_iSelection];
|
||||
return false;
|
||||
case TYPE_SECTION:
|
||||
{
|
||||
RString sThisItemSectionName = m_CurWheelItemData[m_iSelection]->m_sText;
|
||||
if( m_sExpandedSectionName == sThisItemSectionName ) // already expanded
|
||||
SetOpenGroup( "" ); // collapse it
|
||||
else // already collapsed
|
||||
SetOpenGroup( sThisItemSectionName ); // expand it
|
||||
if( m_bEmpty )
|
||||
return false;
|
||||
|
||||
m_soundExpand.Play();
|
||||
}
|
||||
return false;
|
||||
default:
|
||||
ASSERT(0);
|
||||
return false;
|
||||
switch( m_CurWheelItemData[m_iSelection]->m_Type )
|
||||
{
|
||||
case TYPE_GENERIC:
|
||||
m_LastSelection = m_CurWheelItemData[m_iSelection];
|
||||
break;
|
||||
case TYPE_SECTION:
|
||||
{
|
||||
RString sThisItemSectionName = m_CurWheelItemData[m_iSelection]->m_sText;
|
||||
if( m_sExpandedSectionName == sThisItemSectionName ) // already expanded
|
||||
SetOpenGroup( "" ); // collapse it
|
||||
else // already collapsed
|
||||
SetOpenGroup( sThisItemSectionName ); // expand it
|
||||
|
||||
m_soundExpand.Play();
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// return true if this selection ends the screen
|
||||
@@ -391,103 +389,20 @@ int WheelBase::IsMoving() const
|
||||
return m_Moving && m_TimeBeforeMovingBegins == 0;
|
||||
}
|
||||
|
||||
void WheelBase::TweenOnScreen( bool bChangingSort )
|
||||
void WheelBase::TweenOnScreenForSort()
|
||||
{
|
||||
m_WheelState = STATE_TWEENING_ON_SCREEN;
|
||||
|
||||
SetItemPosition( *m_sprHighlight, 0 );
|
||||
|
||||
COMMAND( m_sprHighlight, "StartOn");
|
||||
if( bChangingSort )
|
||||
{
|
||||
const float delay = fabsf(NUM_WHEEL_ITEMS/2.0f) * WHEEL_ITEM_ON_DELAY_OFFSET;
|
||||
m_sprHighlight->BeginTweening( delay ); // sleep
|
||||
COMMAND( m_sprHighlight, "FinishOnSort");
|
||||
}
|
||||
else
|
||||
{
|
||||
COMMAND( m_sprHighlight, "FinishOn");
|
||||
}
|
||||
|
||||
m_ScrollBar.SetX( SCROLL_BAR_X );
|
||||
m_ScrollBar.AddX( 30 );
|
||||
if( bChangingSort )
|
||||
m_ScrollBar.BeginTweening( 0.2f ); // sleep
|
||||
else
|
||||
m_ScrollBar.BeginTweening( 0.7f ); // sleep
|
||||
m_ScrollBar.BeginTweening( 0.2f , TWEEN_ACCELERATE );
|
||||
m_ScrollBar.AddX( -30 );
|
||||
|
||||
TweenOnScreenUpdateItems( bChangingSort );
|
||||
|
||||
if( bChangingSort )
|
||||
HurryTweening( 0.25f );
|
||||
COMMAND( this, "SortOn" );
|
||||
|
||||
m_fTimeLeftInState = GetTweenTimeLeft() + 0.100f;
|
||||
}
|
||||
|
||||
void WheelBase::TweenOnScreenUpdateItems( bool bChangingSort )
|
||||
{
|
||||
for( int i=0; i<NUM_WHEEL_ITEMS; i++ )
|
||||
{
|
||||
WheelItemBase *display = m_WheelBaseItems[i];
|
||||
float fThisBannerPositionOffsetFromSelection = i - NUM_WHEEL_ITEMS/2 + m_fPositionOffsetFromSelection;
|
||||
SetItemPosition( *display, fThisBannerPositionOffsetFromSelection );
|
||||
|
||||
COMMAND( display, "StartOn");
|
||||
const float delay = fabsf((float)i) * WHEEL_ITEM_ON_DELAY_OFFSET;
|
||||
display->BeginTweening( delay ); // sleep
|
||||
COMMAND( display, "FinishOn");
|
||||
if( bChangingSort )
|
||||
display->HurryTweening( 0.25f );
|
||||
}
|
||||
}
|
||||
|
||||
void WheelBase::TweenOffScreenUpdateItems( bool bChangingSort )
|
||||
{
|
||||
for( int i=0; i<NUM_WHEEL_ITEMS; i++ )
|
||||
{
|
||||
WheelItemBase *display = m_WheelBaseItems[i];
|
||||
float fThisBannerPositionOffsetFromSelection = i - NUM_WHEEL_ITEMS/2 + m_fPositionOffsetFromSelection;
|
||||
SetItemPosition( *display, fThisBannerPositionOffsetFromSelection );
|
||||
|
||||
COMMAND( display, "StartOff");
|
||||
const float delay = fabsf((float)i) * WHEEL_ITEM_OFF_DELAY_OFFSET;
|
||||
display->BeginTweening( delay ); // sleep
|
||||
COMMAND( display, "FinishOff");
|
||||
if( bChangingSort )
|
||||
display->HurryTweening( 0.25f );
|
||||
}
|
||||
}
|
||||
|
||||
void WheelBase::TweenOffScreen( bool bChangingSort )
|
||||
void WheelBase::TweenOffScreenForSort()
|
||||
{
|
||||
m_WheelState = STATE_TWEENING_OFF_SCREEN;
|
||||
|
||||
SetItemPosition( *m_sprHighlight, 0 );
|
||||
|
||||
COMMAND( m_sprHighlight, "StartOff");
|
||||
if( bChangingSort )
|
||||
{
|
||||
/* When changing sort, tween the overlay with the item in the center;
|
||||
* having it separate looks messy when we're moving fast. */
|
||||
const float delay = fabsf(NUM_WHEEL_ITEMS/2.0f) * WHEEL_ITEM_ON_DELAY_OFFSET;
|
||||
m_sprHighlight->BeginTweening( delay ); // sleep
|
||||
COMMAND( m_sprHighlight, "FinishOffSort");
|
||||
}
|
||||
else
|
||||
{
|
||||
COMMAND( m_sprHighlight, "FinishOff");
|
||||
}
|
||||
|
||||
m_ScrollBar.BeginTweening( 0 );
|
||||
m_ScrollBar.BeginTweening( 0.2f, TWEEN_ACCELERATE );
|
||||
m_ScrollBar.SetX( SCROLL_BAR_X+30 );
|
||||
|
||||
TweenOffScreenUpdateItems( bChangingSort );
|
||||
|
||||
if( bChangingSort )
|
||||
HurryTweening( 0.25f );
|
||||
COMMAND( this, "SortOff" );
|
||||
|
||||
m_fTimeLeftInState = GetTweenTimeLeft() + 0.100f;
|
||||
}
|
||||
@@ -631,7 +546,7 @@ void WheelBase::RebuildWheelItems( int iDist )
|
||||
}
|
||||
}
|
||||
|
||||
WheelItemBaseData* WheelBase::LastSelected( )
|
||||
WheelItemBaseData* WheelBase::LastSelected()
|
||||
{
|
||||
if( m_bEmpty )
|
||||
return NULL;
|
||||
|
||||
@@ -23,13 +23,6 @@ public:
|
||||
void BeginScreen();
|
||||
|
||||
virtual void Update( float fDeltaTime );
|
||||
virtual void DrawPrimitives();
|
||||
void DrawItem( int i );
|
||||
|
||||
void TweenOnScreen(bool changing_sort);
|
||||
void TweenOffScreen(bool changing_sort);
|
||||
void TweenOnScreen() { TweenOnScreen(false); }
|
||||
void TweenOffScreen() { TweenOffScreen(false); }
|
||||
|
||||
virtual void Move(int n);
|
||||
void ChangeMusicUnlessLocked( int n ); /* +1 or -1 */
|
||||
@@ -43,7 +36,7 @@ public:
|
||||
void GetItemPosition( float fPosOffsetsFromMiddle, float& fX_out, float& fY_out, float& fZ_out, float& fRotationX_out );
|
||||
void SetItemPosition( Actor &item, float fPosOffsetsFromMiddle );
|
||||
|
||||
virtual bool Select(); // return true if this selection ends the screen
|
||||
virtual bool Select(); // return true if this selection can end the screen
|
||||
|
||||
bool WheelIsLocked() { return (m_WheelState == STATE_LOCKED ? true : false); }
|
||||
void RebuildWheelItems( int dist = INT_MAX ); // INT_MAX = refresh all
|
||||
@@ -54,12 +47,11 @@ public:
|
||||
WheelItemBaseData* LastSelected();
|
||||
|
||||
protected:
|
||||
void TweenOnScreenForSort();
|
||||
void TweenOffScreenForSort();
|
||||
|
||||
virtual WheelItemBase *MakeItem() = 0;
|
||||
virtual void LoadFromMetrics( RString sType );
|
||||
virtual void UpdateSwitch();
|
||||
void UpdateItems(float fDeltaTime);
|
||||
void TweenOnScreenUpdateItems(bool changing_sort);
|
||||
void TweenOffScreenUpdateItems(bool changing_sort);
|
||||
virtual bool MoveSpecific(int n);
|
||||
|
||||
int FirstVisibleIndex();
|
||||
@@ -108,7 +100,6 @@ protected:
|
||||
|
||||
ThemeMetric<float> SWITCH_SECONDS;
|
||||
ThemeMetric<float> LOCKED_INITIAL_VELOCITY;
|
||||
ThemeMetric<float> SCROLL_BAR_X;
|
||||
ThemeMetric<int> SCROLL_BAR_HEIGHT;
|
||||
ThemeMetric<float> ITEM_CURVE_X;
|
||||
ThemeMetric<bool> USE_LINEAR_WHEEL;
|
||||
@@ -117,8 +108,6 @@ protected:
|
||||
ThemeMetric<float> CIRCLE_PERCENT;
|
||||
ThemeMetric<bool> USE_3D;
|
||||
ThemeMetric<float> NUM_WHEEL_ITEMS_TO_DRAW;
|
||||
ThemeMetric<float> WHEEL_ITEM_ON_DELAY_OFFSET;
|
||||
ThemeMetric<float> WHEEL_ITEM_OFF_DELAY_OFFSET;
|
||||
ThemeMetric<RageColor> WHEEL_ITEM_LOCKED_COLOR;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user