Integrate C++11 branch into 5_1-new
This commit is contained in:
+64
-68
@@ -10,7 +10,6 @@
|
||||
#include "ActorUtil.h"
|
||||
#include "RageLog.h"
|
||||
#include <set>
|
||||
#include "Foreach.h"
|
||||
#include "InputEventPlus.h"
|
||||
|
||||
static const char *MenuDirNames[] = {
|
||||
@@ -88,21 +87,21 @@ void ScreenSelectMaster::Init()
|
||||
// init cursor
|
||||
if( SHOW_CURSOR )
|
||||
{
|
||||
FOREACH( PlayerNumber, vpns, p )
|
||||
for (PlayerNumber const &p : vpns)
|
||||
{
|
||||
RString sElement = "Cursor" + PLAYER_APPEND_NO_SPACE(*p);
|
||||
m_sprCursor[*p].Load( THEME->GetPathG(m_sName,sElement) );
|
||||
RString sElement = "Cursor" + PLAYER_APPEND_NO_SPACE(p);
|
||||
m_sprCursor[p].Load( THEME->GetPathG(m_sName,sElement) );
|
||||
sElement.Replace( " ", "" );
|
||||
m_sprCursor[*p]->SetName( sElement );
|
||||
this->AddChild( m_sprCursor[*p] );
|
||||
LOAD_ALL_COMMANDS( m_sprCursor[*p] );
|
||||
m_sprCursor[p]->SetName( sElement );
|
||||
this->AddChild( m_sprCursor[p] );
|
||||
LOAD_ALL_COMMANDS( m_sprCursor[p] );
|
||||
}
|
||||
}
|
||||
|
||||
// Resize vectors depending on how many choices there are
|
||||
m_vsprIcon.resize( m_aGameCommands.size() );
|
||||
FOREACH( PlayerNumber, vpns, p )
|
||||
m_vsprScroll[*p].resize( m_aGameCommands.size() );
|
||||
for (PlayerNumber const &p : vpns)
|
||||
m_vsprScroll[p].resize( m_aGameCommands.size() );
|
||||
|
||||
vector<RageVector3> positions;
|
||||
bool positions_set_by_lua= false;
|
||||
@@ -210,21 +209,21 @@ void ScreenSelectMaster::Init()
|
||||
// init scroll
|
||||
if( SHOW_SCROLLER )
|
||||
{
|
||||
FOREACH( PlayerNumber, vpns, p )
|
||||
for (PlayerNumber const &p : vpns)
|
||||
{
|
||||
vector<RString> vs;
|
||||
vs.push_back( "Scroll" );
|
||||
if( PER_CHOICE_SCROLL_ELEMENT )
|
||||
vs.push_back( "Choice" + mc.m_sName );
|
||||
if( !SHARED_SELECTION )
|
||||
vs.push_back( PLAYER_APPEND_NO_SPACE(*p) );
|
||||
vs.push_back( PLAYER_APPEND_NO_SPACE(p) );
|
||||
RString sElement = join( " ", vs );
|
||||
m_vsprScroll[*p][c].Load( THEME->GetPathG(m_sName,sElement) );
|
||||
m_vsprScroll[p][c].Load( THEME->GetPathG(m_sName,sElement) );
|
||||
RString sName = "Scroll" "Choice" + mc.m_sName;
|
||||
if( !SHARED_SELECTION )
|
||||
sName += PLAYER_APPEND_NO_SPACE(*p);
|
||||
m_vsprScroll[*p][c]->SetName( sName );
|
||||
m_Scroller[*p].AddChild( m_vsprScroll[*p][c] );
|
||||
sName += PLAYER_APPEND_NO_SPACE(p);
|
||||
m_vsprScroll[p][c]->SetName( sName );
|
||||
m_Scroller[p].AddChild( m_vsprScroll[p][c] );
|
||||
}
|
||||
|
||||
}
|
||||
@@ -233,17 +232,17 @@ void ScreenSelectMaster::Init()
|
||||
// init scroll
|
||||
if( SHOW_SCROLLER )
|
||||
{
|
||||
FOREACH( PlayerNumber, vpns, p )
|
||||
for (PlayerNumber const &p : vpns)
|
||||
{
|
||||
m_Scroller[*p].SetLoop( LOOP_SCROLLER );
|
||||
m_Scroller[*p].SetNumItemsToDraw( SCROLLER_NUM_ITEMS_TO_DRAW );
|
||||
m_Scroller[*p].Load2();
|
||||
m_Scroller[*p].SetTransformFromReference( SCROLLER_TRANSFORM );
|
||||
m_Scroller[*p].SetSecondsPerItem( SCROLLER_SECONDS_PER_ITEM );
|
||||
m_Scroller[*p].SetNumSubdivisions( SCROLLER_SUBDIVISIONS );
|
||||
m_Scroller[*p].SetName( "Scroller"+PLAYER_APPEND_NO_SPACE(*p) );
|
||||
LOAD_ALL_COMMANDS_AND_SET_XY( m_Scroller[*p] );
|
||||
this->AddChild( &m_Scroller[*p] );
|
||||
m_Scroller[p].SetLoop( LOOP_SCROLLER );
|
||||
m_Scroller[p].SetNumItemsToDraw( SCROLLER_NUM_ITEMS_TO_DRAW );
|
||||
m_Scroller[p].Load2();
|
||||
m_Scroller[p].SetTransformFromReference( SCROLLER_TRANSFORM );
|
||||
m_Scroller[p].SetSecondsPerItem( SCROLLER_SECONDS_PER_ITEM );
|
||||
m_Scroller[p].SetNumSubdivisions( SCROLLER_SUBDIVISIONS );
|
||||
m_Scroller[p].SetName( "Scroller"+PLAYER_APPEND_NO_SPACE(p) );
|
||||
LOAD_ALL_COMMANDS_AND_SET_XY( m_Scroller[p] );
|
||||
this->AddChild( &m_Scroller[p] );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -383,16 +382,16 @@ void ScreenSelectMaster::HandleScreenMessage( const ScreenMessage SM )
|
||||
|
||||
if( SHOW_CURSOR )
|
||||
{
|
||||
FOREACH( PlayerNumber, vpns, p )
|
||||
m_sprCursor[*p]->HandleMessage( msg );
|
||||
for (PlayerNumber const &p : vpns)
|
||||
m_sprCursor[p]->HandleMessage( msg );
|
||||
}
|
||||
|
||||
if( SHOW_SCROLLER )
|
||||
{
|
||||
FOREACH( PlayerNumber, vpns, p )
|
||||
for (PlayerNumber const &p : vpns)
|
||||
{
|
||||
int iChoice = m_iChoice[*p];
|
||||
m_vsprScroll[*p][iChoice]->HandleMessage( msg );
|
||||
int iChoice = m_iChoice[p];
|
||||
m_vsprScroll[p][iChoice]->HandleMessage( msg );
|
||||
}
|
||||
}
|
||||
MESSAGEMAN->Broadcast(msg);
|
||||
@@ -459,23 +458,23 @@ void ScreenSelectMaster::UpdateSelectableChoices()
|
||||
m_vsprIcon[c]->PlayCommand(command);
|
||||
}
|
||||
|
||||
FOREACH( PlayerNumber, vpns, p )
|
||||
for ( PlayerNumber &p : vpns)
|
||||
{
|
||||
if(disabled && m_iChoice[*p] == c)
|
||||
if(disabled && m_iChoice[p] == c)
|
||||
{
|
||||
on_unplayable[*p]= true;
|
||||
on_unplayable[p]= true;
|
||||
}
|
||||
if( m_vsprScroll[*p][c].IsLoaded() )
|
||||
if( m_vsprScroll[p][c].IsLoaded() )
|
||||
{
|
||||
m_vsprScroll[*p][c]->PlayCommand(command);
|
||||
m_vsprScroll[p][c]->PlayCommand(command);
|
||||
}
|
||||
}
|
||||
}
|
||||
FOREACH(PlayerNumber, vpns, pn)
|
||||
for (PlayerNumber &pn : vpns)
|
||||
{
|
||||
if(on_unplayable[*pn] && first_playable != -1)
|
||||
if(on_unplayable[pn] && first_playable != -1)
|
||||
{
|
||||
ChangeSelection(*pn, first_playable < m_iChoice[*pn] ? MenuDir_Left :
|
||||
ChangeSelection(pn, first_playable < m_iChoice[pn] ? MenuDir_Left :
|
||||
MenuDir_Right, first_playable);
|
||||
}
|
||||
}
|
||||
@@ -682,18 +681,18 @@ bool ScreenSelectMaster::ChangePage( int iNewChoice )
|
||||
msg.SetParam( "NewPageIndex", (int)newPage );
|
||||
MESSAGEMAN->Broadcast( msg );
|
||||
|
||||
FOREACH( PlayerNumber, vpns, p )
|
||||
for (PlayerNumber const &p : vpns)
|
||||
{
|
||||
if( GAMESTATE->IsHumanPlayer(*p) || SHARED_SELECTION )
|
||||
if( GAMESTATE->IsHumanPlayer(p) || SHARED_SELECTION )
|
||||
{
|
||||
if( SHOW_CURSOR )
|
||||
{
|
||||
m_sprCursor[*p]->HandleMessage( msg );
|
||||
m_sprCursor[*p]->SetXY( GetCursorX(*p), GetCursorY(*p) );
|
||||
m_sprCursor[p]->HandleMessage( msg );
|
||||
m_sprCursor[p]->SetXY( GetCursorX(p), GetCursorY(p) );
|
||||
}
|
||||
|
||||
if( SHOW_SCROLLER )
|
||||
m_vsprScroll[*p][m_iChoice[*p]]->HandleMessage( msg );
|
||||
m_vsprScroll[p][m_iChoice[p]]->HandleMessage( msg );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -736,10 +735,10 @@ bool ScreenSelectMaster::ChangeSelection( PlayerNumber pn, MenuDir dir, int iNew
|
||||
vpns.push_back( pn );
|
||||
}
|
||||
|
||||
FOREACH( PlayerNumber, vpns, p )
|
||||
for (PlayerNumber const &p : vpns)
|
||||
{
|
||||
const int iOldChoice = m_iChoice[*p];
|
||||
m_iChoice[*p] = iNewChoice;
|
||||
const int iOldChoice = m_iChoice[p];
|
||||
m_iChoice[p] = iNewChoice;
|
||||
|
||||
if( SHOW_ICON )
|
||||
{
|
||||
@@ -750,7 +749,7 @@ bool ScreenSelectMaster::ChangeSelection( PlayerNumber pn, MenuDir dir, int iNew
|
||||
bool bNewAlreadyHadFocus = false;
|
||||
FOREACH_HumanPlayer( p2 )
|
||||
{
|
||||
if( p2 == *p )
|
||||
if( p2 == p )
|
||||
continue;
|
||||
bOldStillHasFocus |= m_iChoice[p2] == iOldChoice;
|
||||
bNewAlreadyHadFocus |= m_iChoice[p2] == iNewChoice;
|
||||
@@ -785,20 +784,20 @@ bool ScreenSelectMaster::ChangeSelection( PlayerNumber pn, MenuDir dir, int iNew
|
||||
|
||||
if( SHOW_CURSOR )
|
||||
{
|
||||
if( GAMESTATE->IsHumanPlayer(*p) )
|
||||
if( GAMESTATE->IsHumanPlayer(p) )
|
||||
{
|
||||
PlayerNumber ep = *p;
|
||||
PlayerNumber ep = p;
|
||||
if( SHARED_SELECTION )
|
||||
ep = PLAYER_1;
|
||||
m_sprCursor[ep]->PlayCommand( "Change" );
|
||||
m_sprCursor[ep]->SetXY( GetCursorX(*p), GetCursorY(*p) );
|
||||
m_sprCursor[ep]->SetXY( GetCursorX(p), GetCursorY(p) );
|
||||
}
|
||||
}
|
||||
|
||||
if( SHOW_SCROLLER )
|
||||
{
|
||||
ActorScroller &scroller = (SHARED_SELECTION || page != PAGE_1 ? m_Scroller[0] : m_Scroller[*p]);
|
||||
vector<AutoActor> &vScroll = (SHARED_SELECTION || page != PAGE_1 ? m_vsprScroll[0] : m_vsprScroll[*p]);
|
||||
ActorScroller &scroller = (SHARED_SELECTION || page != PAGE_1 ? m_Scroller[0] : m_Scroller[p]);
|
||||
vector<AutoActor> &vScroll = (SHARED_SELECTION || page != PAGE_1 ? m_vsprScroll[0] : m_vsprScroll[p]);
|
||||
|
||||
if( WRAP_SCROLLER )
|
||||
{
|
||||
@@ -891,7 +890,7 @@ float ScreenSelectMaster::DoMenuStart( PlayerNumber pn )
|
||||
}
|
||||
if( SHOW_CURSOR )
|
||||
{
|
||||
if(m_sprCursor[pn] != NULL)
|
||||
if(m_sprCursor[pn] != nullptr)
|
||||
{
|
||||
m_sprCursor[pn]->PlayCommand( "Choose" );
|
||||
fSecs = max( fSecs, m_sprCursor[pn]->GetTweenTimeLeft() );
|
||||
@@ -1023,27 +1022,27 @@ void ScreenSelectMaster::TweenOnScreen()
|
||||
|
||||
if( SHOW_SCROLLER )
|
||||
{
|
||||
FOREACH( PlayerNumber, vpns, p )
|
||||
for (PlayerNumber const &p : vpns)
|
||||
{
|
||||
// Play Gain/LoseFocus before playing the on command.
|
||||
// Gain/Lose will often stop tweening, which ruins the OnCommand.
|
||||
for( unsigned c=0; c<m_aGameCommands.size(); c++ )
|
||||
{
|
||||
m_vsprScroll[*p][c]->PlayCommand( int(c) == m_iChoice[*p]? "GainFocus":"LoseFocus" );
|
||||
m_vsprScroll[*p][c]->FinishTweening();
|
||||
m_vsprScroll[p][c]->PlayCommand( int(c) == m_iChoice[p]? "GainFocus":"LoseFocus" );
|
||||
m_vsprScroll[p][c]->FinishTweening();
|
||||
}
|
||||
|
||||
m_Scroller[*p].SetCurrentAndDestinationItem( (float)m_iChoice[*p] );
|
||||
m_Scroller[p].SetCurrentAndDestinationItem( (float)m_iChoice[p] );
|
||||
}
|
||||
}
|
||||
|
||||
// Need to SetXY of Cursor after Icons since it depends on the Icons' positions.
|
||||
if( SHOW_CURSOR )
|
||||
{
|
||||
FOREACH( PlayerNumber, vpns, p )
|
||||
for (PlayerNumber const &p : vpns)
|
||||
{
|
||||
if( GAMESTATE->IsHumanPlayer(*p) || SHARED_SELECTION )
|
||||
m_sprCursor[*p]->SetXY( GetCursorX(*p), GetCursorY(*p) );
|
||||
if( GAMESTATE->IsHumanPlayer(p) || SHARED_SELECTION )
|
||||
m_sprCursor[p]->SetXY( GetCursorX(p), GetCursorY(p) );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1062,20 +1061,17 @@ void ScreenSelectMaster::TweenOffScreen()
|
||||
if( GetPage(c) != GetCurrentPage() )
|
||||
continue; // skip
|
||||
|
||||
bool bSelectedByEitherPlayer = false;
|
||||
FOREACH( PlayerNumber, vpns, p )
|
||||
{
|
||||
if( m_iChoice[*p] == (int)c )
|
||||
bSelectedByEitherPlayer = true;
|
||||
}
|
||||
bool bSelectedByEitherPlayer = std::any_of(vpns.begin(), vpns.end(), [&](PlayerNumber const &p) {
|
||||
return m_iChoice[p] == static_cast<int>(c);
|
||||
});
|
||||
|
||||
if( SHOW_ICON )
|
||||
m_vsprIcon[c]->PlayCommand( bSelectedByEitherPlayer? "OffFocused":"OffUnfocused" );
|
||||
|
||||
if( SHOW_SCROLLER )
|
||||
{
|
||||
FOREACH( PlayerNumber, vpns, p )
|
||||
m_vsprScroll[*p][c]->PlayCommand( bSelectedByEitherPlayer? "OffFocused":"OffUnfocused" );
|
||||
for (PlayerNumber const &p : vpns)
|
||||
m_vsprScroll[p][c]->PlayCommand( bSelectedByEitherPlayer? "OffFocused":"OffUnfocused" );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user