Set up tsDestination directly. It doesn't make sense for a
function named "UpdateEnabledDisabled" to do this, and we don't need to delay it anymore as GetWidthXY says (that was before we moved the text into a frame).
This commit is contained in:
@@ -556,6 +556,17 @@ void OptionRow::SetRowHasFocus( PlayerNumber pn, bool bRowHasFocus )
|
|||||||
m_bRowHasFocus[pn] = bRowHasFocus;
|
m_bRowHasFocus[pn] = bRowHasFocus;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void OptionRow::SetDestination( Actor::TweenState &ts )
|
||||||
|
{
|
||||||
|
if( m_Frame.DestTweenState() != ts )
|
||||||
|
{
|
||||||
|
m_Frame.StopTweening();
|
||||||
|
if( m_pParentType->TWEEN_SECONDS != 0 )
|
||||||
|
m_Frame.BeginTweening( m_pParentType->TWEEN_SECONDS );
|
||||||
|
m_Frame.DestTweenState() = ts;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void OptionRow::UpdateEnabledDisabled()
|
void OptionRow::UpdateEnabledDisabled()
|
||||||
{
|
{
|
||||||
bool bThisRowHasFocusByAny = false;
|
bool bThisRowHasFocusByAny = false;
|
||||||
@@ -568,14 +579,6 @@ void OptionRow::UpdateEnabledDisabled()
|
|||||||
|
|
||||||
bool bRowEnabled = !m_pHand->m_Def.m_vEnabledForPlayers.empty();
|
bool bRowEnabled = !m_pHand->m_Def.m_vEnabledForPlayers.empty();
|
||||||
|
|
||||||
if( m_Frame.DestTweenState() != m_tsDestination )
|
|
||||||
{
|
|
||||||
m_Frame.StopTweening();
|
|
||||||
if( m_pParentType->TWEEN_SECONDS != 0 )
|
|
||||||
m_Frame.BeginTweening( m_pParentType->TWEEN_SECONDS );
|
|
||||||
m_Frame.DestTweenState() = m_tsDestination;
|
|
||||||
}
|
|
||||||
|
|
||||||
if( bThisRowHasFocusByAny )
|
if( bThisRowHasFocusByAny )
|
||||||
m_textTitle->RunCommands( m_pParentType->TITLE_GAIN_FOCUS_COMMAND );
|
m_textTitle->RunCommands( m_pParentType->TITLE_GAIN_FOCUS_COMMAND );
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -220,9 +220,10 @@ protected:
|
|||||||
int m_iChoiceInRowWithFocus[NUM_PLAYERS]; // this choice has input focus
|
int m_iChoiceInRowWithFocus[NUM_PLAYERS]; // this choice has input focus
|
||||||
// Only one will true at a time if m_pHand->m_Def.bMultiSelect
|
// Only one will true at a time if m_pHand->m_Def.bMultiSelect
|
||||||
vector<bool> m_vbSelected[NUM_PLAYERS]; // size = m_pHand->m_Def.choices.size()
|
vector<bool> m_vbSelected[NUM_PLAYERS]; // size = m_pHand->m_Def.choices.size()
|
||||||
|
Actor::TweenState m_tsDestination; // this should approach m_tsDestination.
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Actor::TweenState m_tsDestination; // this should approach m_tsDestination.
|
void SetDestination( Actor::TweenState &ts );
|
||||||
protected:
|
protected:
|
||||||
bool m_bHidden; // currently off screen
|
bool m_bHidden; // currently off screen
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -682,7 +682,8 @@ void ScreenOptions::PositionRows()
|
|||||||
else if( i >= first_end && i < second_start ) fPos = ((int)NUM_ROWS_SHOWN)/2-0.5f;
|
else if( i >= first_end && i < second_start ) fPos = ((int)NUM_ROWS_SHOWN)/2-0.5f;
|
||||||
else if( i >= second_end ) fPos = ((int)NUM_ROWS_SHOWN)-0.5f;
|
else if( i >= second_end ) fPos = ((int)NUM_ROWS_SHOWN)-0.5f;
|
||||||
|
|
||||||
row.m_tsDestination = m_exprRowPositionTransformFunction.GetPosition( (float) fPos, i, min( (int)Rows.size(), (int)NUM_ROWS_SHOWN ) );
|
Actor::TweenState tsDestination = m_exprRowPositionTransformFunction.GetPosition( (float) fPos, i, min( (int)Rows.size(), (int)NUM_ROWS_SHOWN ) );
|
||||||
|
row.SetDestination( tsDestination );
|
||||||
|
|
||||||
bool bHidden =
|
bool bHidden =
|
||||||
i < first_start ||
|
i < first_start ||
|
||||||
@@ -695,7 +696,11 @@ void ScreenOptions::PositionRows()
|
|||||||
|
|
||||||
if( pSeparateExitRow )
|
if( pSeparateExitRow )
|
||||||
{
|
{
|
||||||
pSeparateExitRow->m_tsDestination.pos.y = SEPARATE_EXIT_ROW_Y;
|
Actor::TweenState tsDestination;
|
||||||
|
tsDestination.Init();
|
||||||
|
tsDestination.pos.y = SEPARATE_EXIT_ROW_Y;
|
||||||
|
pSeparateExitRow->SetDestination( tsDestination );
|
||||||
|
|
||||||
pSeparateExitRow->SetRowHidden( second_end != (int) Rows.size() );
|
pSeparateExitRow->SetRowHidden( second_end != (int) Rows.size() );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user