cleanup
play Gain/LoseFocus before OnCommand
This commit is contained in:
@@ -72,73 +72,53 @@ void ScreenSelectMaster::Init()
|
|||||||
m_bChosen[p] = false;
|
m_bChosen[p] = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// init cursor
|
|
||||||
|
vector<PlayerNumber> vpns;
|
||||||
if( SHARED_PREVIEW_AND_CURSOR )
|
if( SHARED_PREVIEW_AND_CURSOR )
|
||||||
{
|
{
|
||||||
for( int i=0; i<NUM_CURSOR_PARTS; i++ )
|
vpns.push_back( (PlayerNumber)0 );
|
||||||
{
|
|
||||||
m_sprCursor[i][0].Load( THEME->GetPathG(m_sName,ssprintf("Cursor Part%d",i+1)) );
|
|
||||||
m_sprCursor[i][0]->SetName( ssprintf("CursorPart%d",i+1) );
|
|
||||||
this->AddChild( m_sprCursor[i][0] );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
for( int i=0; i<NUM_CURSOR_PARTS; i++ )
|
FOREACH_HumanPlayer( p )
|
||||||
|
vpns.push_back( p );
|
||||||
|
}
|
||||||
|
|
||||||
|
#define APPEND_STRING_WITH_SPACE(p) (SHARED_PREVIEW_AND_CURSOR ? CString() : ssprintf(" P%d",(p)+1))
|
||||||
|
#define APPEND_STRING_NO_SPACE(p) (SHARED_PREVIEW_AND_CURSOR ? CString() : ssprintf("P%d",(p)+1))
|
||||||
|
|
||||||
|
// init cursor
|
||||||
|
for( int i=0; i<NUM_CURSOR_PARTS; i++ )
|
||||||
|
{
|
||||||
|
FOREACH( PlayerNumber, vpns, p )
|
||||||
{
|
{
|
||||||
FOREACH_HumanPlayer( p )
|
m_sprCursor[i][*p].Load( THEME->GetPathG(m_sName,ssprintf("Cursor Part%d",i+1)+APPEND_STRING_WITH_SPACE(*p)) );
|
||||||
{
|
m_sprCursor[i][*p]->SetName( ssprintf("CursorPart%d",i+1)+APPEND_STRING_NO_SPACE(*p) );
|
||||||
m_sprCursor[i][p].Load( THEME->GetPathG(m_sName,ssprintf("Cursor Part%d P%d",i+1,p+1)) );
|
this->AddChild( m_sprCursor[i][*p] );
|
||||||
m_sprCursor[i][p]->SetName( ssprintf("CursorPart%dP%d",i+1,p+1) );
|
|
||||||
this->AddChild( m_sprCursor[i][p] );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// init scroll
|
// init scroll
|
||||||
if( SHOW_SCROLLER )
|
if( SHOW_SCROLLER )
|
||||||
{
|
{
|
||||||
if( SHARED_PREVIEW_AND_CURSOR )
|
FOREACH( PlayerNumber, vpns, p )
|
||||||
{
|
{
|
||||||
m_Scroller[0].Load3(
|
m_Scroller[*p].Load3(
|
||||||
SCROLLER_SECONDS_PER_ITEM,
|
SCROLLER_SECONDS_PER_ITEM,
|
||||||
SCROLLER_NUM_ITEMS_TO_DRAW,
|
SCROLLER_NUM_ITEMS_TO_DRAW,
|
||||||
SCROLLER_FAST_CATCHUP,
|
SCROLLER_FAST_CATCHUP,
|
||||||
SCROLLER_TRANSFORM,
|
SCROLLER_TRANSFORM,
|
||||||
false );
|
false );
|
||||||
m_Scroller[0].SetName( "Scroller" );
|
m_Scroller[*p].SetName( "Scroller"+APPEND_STRING_NO_SPACE(*p) );
|
||||||
this->AddChild( &m_Scroller[0] );
|
this->AddChild( &m_Scroller[*p] );
|
||||||
|
|
||||||
for( unsigned c=0; c<m_aGameCommands.size(); c++ )
|
for( unsigned c=0; c<m_aGameCommands.size(); c++ )
|
||||||
{
|
{
|
||||||
const GameCommand& mc = m_aGameCommands[c];
|
const GameCommand& mc = m_aGameCommands[c];
|
||||||
|
|
||||||
m_sprScroll[c][0].Load( THEME->GetPathG(m_sName,ssprintf("Scroll Choice%s",mc.m_sName.c_str())) );
|
m_sprScroll[c][*p].Load( THEME->GetPathG(m_sName,ssprintf("Scroll Choice%s",mc.m_sName.c_str())+APPEND_STRING_WITH_SPACE(*p)) );
|
||||||
m_sprScroll[c][0]->SetName( ssprintf("Scroll") );
|
m_sprScroll[c][*p]->SetName( "Scroll"+APPEND_STRING_NO_SPACE(*p) );
|
||||||
m_Scroller[0].AddChild( m_sprScroll[c][0] );
|
m_Scroller[*p].AddChild( m_sprScroll[c][*p] );
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
FOREACH_HumanPlayer( p )
|
|
||||||
{
|
|
||||||
m_Scroller[p].Load3(
|
|
||||||
SCROLLER_SECONDS_PER_ITEM,
|
|
||||||
SCROLLER_NUM_ITEMS_TO_DRAW,
|
|
||||||
SCROLLER_FAST_CATCHUP,
|
|
||||||
SCROLLER_TRANSFORM,
|
|
||||||
false );
|
|
||||||
m_Scroller[p].SetName( ssprintf("ScrollerP%d",p+1) );
|
|
||||||
this->AddChild( &m_Scroller[p] );
|
|
||||||
|
|
||||||
for( unsigned c=0; c<m_aGameCommands.size(); c++ )
|
|
||||||
{
|
|
||||||
const GameCommand& mc = m_aGameCommands[c];
|
|
||||||
|
|
||||||
m_sprScroll[c][p].Load( THEME->GetPathG(m_sName,ssprintf("Scroll Choice%s P%d",mc.m_sName.c_str(),p+1)) );
|
|
||||||
m_sprScroll[c][p]->SetName( ssprintf("ScrollP%d",p+1) );
|
|
||||||
m_Scroller[p].AddChild( m_sprScroll[c][p] );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -156,25 +136,13 @@ void ScreenSelectMaster::Init()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// init preview
|
// init preview
|
||||||
if( SHARED_PREVIEW_AND_CURSOR )
|
FOREACH( PlayerNumber, vpns, p )
|
||||||
{
|
{
|
||||||
for( int i=0; i<NUM_PREVIEW_PARTS; i++ )
|
for( int i=0; i<NUM_PREVIEW_PARTS; i++ )
|
||||||
{
|
{
|
||||||
m_sprPreview[i][c][0].Load( THEME->GetPathG(m_sName,ssprintf("Preview Part%d Choice%s",i+1,mc.m_sName.c_str())) );
|
m_sprPreview[i][c][*p].Load( THEME->GetPathG(m_sName,ssprintf("Preview Part%d Choice%s",i+1,mc.m_sName.c_str())+APPEND_STRING_NO_SPACE(*p)) );
|
||||||
m_sprPreview[i][c][0]->SetName( ssprintf("PreviewPart%d",i+1) );
|
m_sprPreview[i][c][*p]->SetName( ssprintf("PreviewPart%d",i+1)+APPEND_STRING_NO_SPACE(*p) );
|
||||||
this->AddChild( m_sprPreview[i][c][0] );
|
this->AddChild( m_sprPreview[i][c][*p] );
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
FOREACH_HumanPlayer( p )
|
|
||||||
{
|
|
||||||
for( int i=0; i<NUM_PREVIEW_PARTS; i++ )
|
|
||||||
{
|
|
||||||
m_sprPreview[i][c][p].Load( THEME->GetPathG(m_sName,ssprintf("Preview Part%d Choice%s P%d",i+1,mc.m_sName.c_str(),p+1)) );
|
|
||||||
m_sprPreview[i][c][p]->SetName( ssprintf("PreviewPart%dP%d",i+1,p+1) );
|
|
||||||
this->AddChild( m_sprPreview[i][c][p] );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -274,37 +242,39 @@ void ScreenSelectMaster::HandleScreenMessage( const ScreenMessage SM )
|
|||||||
{
|
{
|
||||||
ScreenSelect::HandleScreenMessage( SM );
|
ScreenSelect::HandleScreenMessage( SM );
|
||||||
|
|
||||||
|
|
||||||
|
vector<PlayerNumber> vpns;
|
||||||
|
if( SHARED_PREVIEW_AND_CURSOR )
|
||||||
|
{
|
||||||
|
vpns.push_back( (PlayerNumber)0 );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
FOREACH_HumanPlayer( p )
|
||||||
|
vpns.push_back( p );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if( SM == SM_PlayPostSwitchPage )
|
if( SM == SM_PlayPostSwitchPage )
|
||||||
{
|
{
|
||||||
if( SHARED_PREVIEW_AND_CURSOR )
|
for( int i=0; i<NUM_CURSOR_PARTS; i++ )
|
||||||
{
|
{
|
||||||
for( int i=0; i<NUM_CURSOR_PARTS; i++ )
|
FOREACH( PlayerNumber, vpns, p )
|
||||||
{
|
{
|
||||||
m_sprCursor[i][0]->SetXY( GetCursorX((PlayerNumber)0,i), GetCursorY((PlayerNumber)0,i) );
|
m_sprCursor[i][*p]->SetXY( GetCursorX(*p,i), GetCursorY(*p,i) );
|
||||||
COMMAND( m_sprCursor[i][0], "PostSwitchPage" );
|
COMMAND( m_sprCursor[i][*p], "PostSwitchPage" );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
for( int i=0; i<NUM_PREVIEW_PARTS; i++ )
|
||||||
{
|
{
|
||||||
for( int i=0; i<NUM_CURSOR_PARTS; i++ )
|
FOREACH( PlayerNumber, vpns, p )
|
||||||
FOREACH_HumanPlayer( p )
|
{
|
||||||
{
|
int iChoice = m_iChoice[*p];
|
||||||
m_sprCursor[i][p]->SetXY( GetCursorX(p,i), GetCursorY(p,i) );
|
COMMAND( m_sprPreview[i][iChoice][*p], "PostSwitchPage" );
|
||||||
COMMAND( m_sprCursor[i][p], "PostSwitchPage" );
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if( SHARED_PREVIEW_AND_CURSOR )
|
|
||||||
{
|
|
||||||
for( int i=0; i<NUM_PREVIEW_PARTS; i++ )
|
|
||||||
COMMAND( m_sprPreview[i][m_iChoice[0]][0], "PostSwitchPage" );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
for( int i=0; i<NUM_PREVIEW_PARTS; i++ )
|
|
||||||
FOREACH_HumanPlayer( p )
|
|
||||||
COMMAND( m_sprPreview[i][m_iChoice[p]][p], "PostSwitchPage" );
|
|
||||||
}
|
|
||||||
m_fLockInputSecs = POST_SWITCH_PAGE_SECONDS;
|
m_fLockInputSecs = POST_SWITCH_PAGE_SECONDS;
|
||||||
}
|
}
|
||||||
else if( SM == SM_BeginFadingOut )
|
else if( SM == SM_BeginFadingOut )
|
||||||
@@ -346,22 +316,26 @@ int ScreenSelectMaster::GetSelectionIndex( PlayerNumber pn )
|
|||||||
|
|
||||||
void ScreenSelectMaster::UpdateSelectableChoices()
|
void ScreenSelectMaster::UpdateSelectableChoices()
|
||||||
{
|
{
|
||||||
|
vector<PlayerNumber> vpns;
|
||||||
|
if( SHARED_PREVIEW_AND_CURSOR )
|
||||||
|
{
|
||||||
|
vpns.push_back( (PlayerNumber)0 );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
FOREACH_HumanPlayer( p )
|
||||||
|
vpns.push_back( p );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
for( unsigned c=0; c<m_aGameCommands.size(); c++ )
|
for( unsigned c=0; c<m_aGameCommands.size(); c++ )
|
||||||
{
|
{
|
||||||
for( int i=0; i<NUM_ICON_PARTS; i++ )
|
for( int i=0; i<NUM_ICON_PARTS; i++ )
|
||||||
COMMAND( m_sprIcon[i][c], m_aGameCommands[c].IsPlayable()? "Enabled":"Disabled" );
|
COMMAND( m_sprIcon[i][c], m_aGameCommands[c].IsPlayable()? "Enabled":"Disabled" );
|
||||||
|
|
||||||
if( SHARED_PREVIEW_AND_CURSOR )
|
FOREACH( PlayerNumber, vpns, p )
|
||||||
{
|
if( m_sprScroll[c][*p].IsLoaded() )
|
||||||
if( m_sprScroll[c][0].IsLoaded() )
|
m_sprScroll[c][*p]->PlayCommand( m_aGameCommands[c].IsPlayable()? "Enabled":"Disabled" );
|
||||||
m_sprScroll[c][0]->PlayCommand( m_aGameCommands[c].IsPlayable()? "Enabled":"Disabled" );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
FOREACH_HumanPlayer( p )
|
|
||||||
if( m_sprScroll[c][p].IsLoaded() )
|
|
||||||
m_sprScroll[c][p]->PlayCommand( m_aGameCommands[c].IsPlayable()? "Enabled":"Disabled" );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -471,22 +445,29 @@ bool ScreenSelectMaster::ChangePage( int iNewChoice )
|
|||||||
|
|
||||||
// If anyone has already chosen, don't allow changing of pages
|
// If anyone has already chosen, don't allow changing of pages
|
||||||
FOREACH_PlayerNumber( p )
|
FOREACH_PlayerNumber( p )
|
||||||
|
{
|
||||||
if( GAMESTATE->IsHumanPlayer(p) && m_bChosen[p] )
|
if( GAMESTATE->IsHumanPlayer(p) && m_bChosen[p] )
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
vector<PlayerNumber> vpns;
|
||||||
if( SHARED_PREVIEW_AND_CURSOR )
|
if( SHARED_PREVIEW_AND_CURSOR )
|
||||||
{
|
{
|
||||||
for( int i=0; i<NUM_CURSOR_PARTS; i++ )
|
vpns.push_back( (PlayerNumber)0 );
|
||||||
COMMAND( m_sprCursor[i][0], "PreSwitchPage" );
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
for( int i=0; i<NUM_CURSOR_PARTS; i++ )
|
FOREACH_HumanPlayer( p )
|
||||||
FOREACH_PlayerNumber( p )
|
vpns.push_back( p );
|
||||||
if( GAMESTATE->IsHumanPlayer(p) )
|
|
||||||
COMMAND( m_sprCursor[i][p], "PreSwitchPage" );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
for( int i=0; i<NUM_CURSOR_PARTS; i++ )
|
||||||
|
FOREACH( PlayerNumber, vpns, p )
|
||||||
|
if( GAMESTATE->IsHumanPlayer(*p) )
|
||||||
|
COMMAND( m_sprCursor[i][*p], "PreSwitchPage" );
|
||||||
|
|
||||||
const CString sIconAndExplanationCommand = ssprintf( "SwitchToPage%d", newPage+1 );
|
const CString sIconAndExplanationCommand = ssprintf( "SwitchToPage%d", newPage+1 );
|
||||||
|
|
||||||
for( unsigned c=0; c<m_aGameCommands.size(); c++ )
|
for( unsigned c=0; c<m_aGameCommands.size(); c++ )
|
||||||
@@ -763,6 +744,17 @@ void ScreenSelectMaster::MenuStart( PlayerNumber pn )
|
|||||||
*/
|
*/
|
||||||
void ScreenSelectMaster::TweenOnScreen()
|
void ScreenSelectMaster::TweenOnScreen()
|
||||||
{
|
{
|
||||||
|
vector<PlayerNumber> vpns;
|
||||||
|
if( SHARED_PREVIEW_AND_CURSOR )
|
||||||
|
{
|
||||||
|
vpns.push_back( (PlayerNumber)0 );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
FOREACH_HumanPlayer( p )
|
||||||
|
vpns.push_back( p );
|
||||||
|
}
|
||||||
|
|
||||||
for( unsigned c=0; c<m_aGameCommands.size(); c++ )
|
for( unsigned c=0; c<m_aGameCommands.size(); c++ )
|
||||||
{
|
{
|
||||||
for( int i=0; i<NUM_ICON_PARTS; i++ )
|
for( int i=0; i<NUM_ICON_PARTS; i++ )
|
||||||
@@ -772,64 +764,38 @@ void ScreenSelectMaster::TweenOnScreen()
|
|||||||
SET_XY_AND_ON_COMMAND( m_sprIcon[i][c] );
|
SET_XY_AND_ON_COMMAND( m_sprIcon[i][c] );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( SHARED_PREVIEW_AND_CURSOR )
|
FOREACH( PlayerNumber, vpns, p )
|
||||||
{
|
{
|
||||||
int p=0;
|
|
||||||
for( int i=0; i<NUM_PREVIEW_PARTS; i++ )
|
for( int i=0; i<NUM_PREVIEW_PARTS; i++ )
|
||||||
{
|
{
|
||||||
COMMAND( m_sprPreview[i][c][p], (int(c) == m_iChoice[p])? "GainFocus":"LoseFocus" );
|
COMMAND( m_sprPreview[i][c][*p], (int(c) == m_iChoice[*p])? "GainFocus":"LoseFocus" );
|
||||||
m_sprPreview[i][c][p]->FinishTweening();
|
m_sprPreview[i][c][*p]->FinishTweening();
|
||||||
SET_XY_AND_ON_COMMAND( m_sprPreview[i][c][p] );
|
SET_XY_AND_ON_COMMAND( m_sprPreview[i][c][*p] );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
FOREACH_HumanPlayer( p )
|
|
||||||
for( int i=0; i<NUM_PREVIEW_PARTS; i++ )
|
|
||||||
{
|
|
||||||
COMMAND( m_sprPreview[i][c][p], int(c) == m_iChoice[p]? "GainFocus":"LoseFocus" );
|
|
||||||
m_sprPreview[i][c][p]->FinishTweening();
|
|
||||||
SET_XY_AND_ON_COMMAND( m_sprPreview[i][c][p] );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Need to SetXY of Cursor after Icons since it depends on the Icons' positions.
|
// Need to SetXY of Cursor after Icons since it depends on the Icons' positions.
|
||||||
if( SHARED_PREVIEW_AND_CURSOR )
|
for( int i=0; i<NUM_CURSOR_PARTS; i++ )
|
||||||
{
|
{
|
||||||
for( int i=0; i<NUM_CURSOR_PARTS; i++ )
|
FOREACH( PlayerNumber, vpns, p )
|
||||||
{
|
{
|
||||||
m_sprCursor[i][0]->SetXY( GetCursorX((PlayerNumber)0,i), GetCursorY((PlayerNumber)0,i) );
|
m_sprCursor[i][*p]->SetXY( GetCursorX(*p,i), GetCursorY(*p,i) );
|
||||||
ON_COMMAND( m_sprCursor[i][0] );
|
ON_COMMAND( m_sprCursor[i][*p] );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
for( int i=0; i<NUM_CURSOR_PARTS; i++ )
|
|
||||||
FOREACH_HumanPlayer( p )
|
|
||||||
{
|
|
||||||
m_sprCursor[i][p]->SetXY( GetCursorX(p,i), GetCursorY(p,i) );
|
|
||||||
ON_COMMAND( m_sprCursor[i][p] );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if( SHOW_SCROLLER )
|
if( SHOW_SCROLLER )
|
||||||
{
|
{
|
||||||
if( SHARED_PREVIEW_AND_CURSOR )
|
FOREACH( PlayerNumber, vpns, p )
|
||||||
{
|
{
|
||||||
m_Scroller[0].SetCurrentAndDestinationItem( (float)m_iChoice[0] );
|
// Play Gain/LoseFocus before playing the on command. Gain/Lose will
|
||||||
SET_XY_AND_ON_COMMAND( m_Scroller[0] );
|
// often stop tweening, which ruins the OnCommand.
|
||||||
for( unsigned c=0; c<m_aGameCommands.size(); c++ )
|
for( unsigned c=0; c<m_aGameCommands.size(); c++ )
|
||||||
COMMAND( *m_sprScroll[c][0], int(c) == m_iChoice[0]? "GainFocus":"LoseFocus" );
|
COMMAND( *m_sprScroll[c][*p], int(c) == m_iChoice[*p]? "GainFocus":"LoseFocus" );
|
||||||
|
m_Scroller[*p].SetCurrentAndDestinationItem( (float)m_iChoice[*p] );
|
||||||
|
SET_XY_AND_ON_COMMAND( m_Scroller[*p] );
|
||||||
}
|
}
|
||||||
else
|
|
||||||
FOREACH_HumanPlayer( p )
|
|
||||||
{
|
|
||||||
m_Scroller[p].SetCurrentAndDestinationItem( (float)m_iChoice[p] );
|
|
||||||
SET_XY_AND_ON_COMMAND( m_Scroller[p] );
|
|
||||||
for( unsigned c=0; c<m_aGameCommands.size(); c++ )
|
|
||||||
COMMAND( *m_sprScroll[c][p], int(c) == m_iChoice[p]? "GainFocus":"LoseFocus" );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//We have to move page two's explanation and more off the screen
|
//We have to move page two's explanation and more off the screen
|
||||||
@@ -849,33 +815,33 @@ void ScreenSelectMaster::TweenOnScreen()
|
|||||||
|
|
||||||
void ScreenSelectMaster::TweenOffScreen()
|
void ScreenSelectMaster::TweenOffScreen()
|
||||||
{
|
{
|
||||||
|
vector<PlayerNumber> vpns;
|
||||||
if( SHARED_PREVIEW_AND_CURSOR )
|
if( SHARED_PREVIEW_AND_CURSOR )
|
||||||
{
|
{
|
||||||
for( int i=0; i<NUM_CURSOR_PARTS; i++ )
|
vpns.push_back( (PlayerNumber)0 );
|
||||||
OFF_COMMAND( m_sprCursor[i][0] );
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
for( int i=0; i<NUM_CURSOR_PARTS; i++ )
|
FOREACH_HumanPlayer( p )
|
||||||
FOREACH_HumanPlayer( p )
|
vpns.push_back( p );
|
||||||
OFF_COMMAND( m_sprCursor[i][p] );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
for( int i=0; i<NUM_CURSOR_PARTS; i++ )
|
||||||
|
FOREACH( PlayerNumber, vpns, p )
|
||||||
|
OFF_COMMAND( m_sprCursor[i][*p] );
|
||||||
|
|
||||||
for( unsigned c=0; c<m_aGameCommands.size(); c++ )
|
for( unsigned c=0; c<m_aGameCommands.size(); c++ )
|
||||||
{
|
{
|
||||||
if( GetPage(c) != GetCurrentPage() )
|
if( GetPage(c) != GetCurrentPage() )
|
||||||
continue; // skip
|
continue; // skip
|
||||||
|
|
||||||
bool SelectedByEitherPlayer = false;
|
bool SelectedByEitherPlayer = false;
|
||||||
if( SHARED_PREVIEW_AND_CURSOR )
|
FOREACH( PlayerNumber, vpns, p )
|
||||||
{
|
{
|
||||||
if( m_iChoice[0] == (int)c )
|
if( m_iChoice[*p] == (int)c )
|
||||||
SelectedByEitherPlayer = true;
|
SelectedByEitherPlayer = true;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
FOREACH_HumanPlayer( p )
|
|
||||||
if( m_iChoice[p] == (int)c )
|
|
||||||
SelectedByEitherPlayer = true;
|
|
||||||
|
|
||||||
for( int i=0; i<NUM_ICON_PARTS; i++ )
|
for( int i=0; i<NUM_ICON_PARTS; i++ )
|
||||||
{
|
{
|
||||||
@@ -884,32 +850,20 @@ void ScreenSelectMaster::TweenOffScreen()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if( SHARED_PREVIEW_AND_CURSOR )
|
for( int i=0; i<NUM_PREVIEW_PARTS; i++ )
|
||||||
{
|
{
|
||||||
for( int i=0; i<NUM_PREVIEW_PARTS; i++ )
|
FOREACH( PlayerNumber, vpns, p )
|
||||||
{
|
{
|
||||||
OFF_COMMAND( m_sprPreview[i][c][0] );
|
OFF_COMMAND( m_sprPreview[i][c][*p] );
|
||||||
COMMAND( m_sprPreview[i][c][0], SelectedByEitherPlayer? "OffFocused":"OffUnfocused" );
|
COMMAND( m_sprPreview[i][c][*p], SelectedByEitherPlayer? "OffFocused":"OffUnfocused" );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
for( int i=0; i<NUM_PREVIEW_PARTS; i++ )
|
|
||||||
FOREACH_HumanPlayer( p )
|
|
||||||
{
|
|
||||||
OFF_COMMAND( m_sprPreview[i][c][p] );
|
|
||||||
COMMAND( m_sprPreview[i][c][0], SelectedByEitherPlayer? "OffFocused":"OffUnfocused" );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if( SHOW_SCROLLER )
|
if( SHOW_SCROLLER )
|
||||||
{
|
{
|
||||||
if( SHARED_PREVIEW_AND_CURSOR )
|
FOREACH( PlayerNumber, vpns, p )
|
||||||
OFF_COMMAND( m_Scroller[0] );
|
OFF_COMMAND( m_Scroller[*p] );
|
||||||
else
|
|
||||||
FOREACH_PlayerNumber( p )
|
|
||||||
OFF_COMMAND( m_Scroller[p] );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
OFF_COMMAND( m_sprExplanation[GetCurrentPage()] );
|
OFF_COMMAND( m_sprExplanation[GetCurrentPage()] );
|
||||||
@@ -919,12 +873,14 @@ void ScreenSelectMaster::TweenOffScreen()
|
|||||||
|
|
||||||
float ScreenSelectMaster::GetCursorX( PlayerNumber pn, int iPartIndex )
|
float ScreenSelectMaster::GetCursorX( PlayerNumber pn, int iPartIndex )
|
||||||
{
|
{
|
||||||
return m_sprIcon[0][m_iChoice[pn]]->GetX() + CURSOR_OFFSET_X_FROM_ICON.GetValue(pn, iPartIndex);
|
int iChoice = m_iChoice[pn];
|
||||||
|
return m_sprIcon[0][iChoice]->GetX() + CURSOR_OFFSET_X_FROM_ICON.GetValue(pn, iPartIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
float ScreenSelectMaster::GetCursorY( PlayerNumber pn, int iPartIndex )
|
float ScreenSelectMaster::GetCursorY( PlayerNumber pn, int iPartIndex )
|
||||||
{
|
{
|
||||||
return m_sprIcon[0][m_iChoice[pn]]->GetY() + CURSOR_OFFSET_Y_FROM_ICON.GetValue(pn, iPartIndex);
|
int iChoice = m_iChoice[pn];
|
||||||
|
return m_sprIcon[0][iChoice]->GetY() + CURSOR_OFFSET_Y_FROM_ICON.GetValue(pn, iPartIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
Reference in New Issue
Block a user