diff --git a/stepmania/Themes/default/Languages/en.ini b/stepmania/Themes/default/Languages/en.ini index 7b5492fc2a..a9f19edb75 100644 --- a/stepmania/Themes/default/Languages/en.ini +++ b/stepmania/Themes/default/Languages/en.ini @@ -1033,6 +1033,7 @@ HelpText=&UP; &DOWN; to change line &LEFT; &RIGHT; to select between options:: [ScreenMapControllers] HelpText=Use arrow keys to navigate, ENTER to assign, SPACE to clear, ESCAPE when done. InvalidButton=That key can not be mapped. +%s slots=%s slots [ScreenMiniMenu] HelpText= @@ -1465,3 +1466,7 @@ Finish >=Finish > Cancel=Cancel < Back=< Back Install a package=Install a package + +[PlayerNumber] +P1=P1 +P2=P2 diff --git a/stepmania/Themes/default/metrics.ini b/stepmania/Themes/default/metrics.ini index d3a6a5d99d..b72272adb9 100644 --- a/stepmania/Themes/default/metrics.ini +++ b/stepmania/Themes/default/metrics.ini @@ -2584,7 +2584,11 @@ LineOffCommand=%function(self) local LeftToRight = math.mod(self.ItemIndex, 2) = ErrorX=SCREEN_CENTER_X ErrorY=SCREEN_CENTER_Y ErrorOnCommand=diffuse,#00FF00;zoom,0.8 -TitleOnCommand=x,SCREEN_CENTER_X;y,-6;zoom,0.7;shadowlength,2 +LabelP1OnCommand=x,SCREEN_CENTER_X-195;zoom,0.7;shadowlength,2;diffusealpha,0;linear,0.5;diffusealpha,1 +LabelP1OffCommand=linear,0.5;diffusealpha,0 +LabelP2OnCommand=x,SCREEN_CENTER_X+195;zoom,0.7;shadowlength,2;diffusealpha,0;linear,0.5;diffusealpha,1 +LabelP2OffCommand=linear,0.5;diffusealpha,0 +PrimaryOnCommand=x,SCREEN_CENTER_X;y,-6;zoom,0.7;shadowlength,2 SecondaryOnCommand=x,SCREEN_CENTER_X;y,6;zoom,0.5;shadowlength,2 MappedToP1S1Command=x,SCREEN_CENTER_X-270 MappedToP1S2Command=x,SCREEN_CENTER_X-195 @@ -2593,9 +2597,9 @@ MappedToP2S1Command=x,SCREEN_CENTER_X+120 MappedToP2S2Command=x,SCREEN_CENTER_X+195 MappedToP2S3Command=x,SCREEN_CENTER_X+270 MappedToOnCommand=diffuse,#808080;zoom,0.5;shadowlength,0 -MappedToWaitingCommand=diffuse,#FF8080;pulse;effectperiod,0.5;effectmagnitude,0.5,0.6,1 -MappedToMappedInputCommand=diffuse,#FFFFFF;stopeffect -MappedToGainFocusCommand=diffuse,#FFFFFF;stopeffect +MappedToWaitingCommand=diffuse,#FF8080;pulse;effectperiod,0.5;effectmagnitude,0.8,1.3,1 +MappedToMappedInputCommand=diffuse,#808080;diffuseshift;effectcolor2,#808080;effectcolor1,#FFFFFF +MappedToGainFocusCommand=diffuse,#808080;diffuseshift;effectcolor2,#808080;effectcolor1,#FFFFFF MappedToLoseFocusCommand=diffuse,#808080;stopeffect [ScreenCenterImage] diff --git a/stepmania/src/ScreenMapControllers.cpp b/stepmania/src/ScreenMapControllers.cpp index b86cbc01eb..f1f1c41709 100644 --- a/stepmania/src/ScreenMapControllers.cpp +++ b/stepmania/src/ScreenMapControllers.cpp @@ -25,6 +25,7 @@ static const int NUM_CHANGABLE_SLOTS = NUM_SHOWN_GAME_TO_DEVICE_SLOTS-1; REGISTER_SCREEN_CLASS( ScreenMapControllers ); +static LocalizedString PLAYER_SLOTS( "ScreenMapControllers", "%s slots" ); void ScreenMapControllers::Init() { ScreenWithMenuElements::Init(); @@ -56,18 +57,39 @@ void ScreenMapControllers::Init() } } + int iRow = 0; + + // header row + { + for( int c=0; cGetPathF("Common","title") ); + PlayerNumber pn = (PlayerNumber)c; + text.SetName( "Label"+PlayerNumberToString(pn) ); + RString sText = ssprintf(PLAYER_SLOTS.GetValue(), PlayerNumberToLocalizedString(pn).c_str()); + text.SetText( sText ); + ActorUtil::LoadAllCommands( text, m_sName ); + m_Line[iRow].AddChild( &m_textLabel[c] ); + } + m_LineScroller.AddChild( &m_Line[iRow] ); + + iRow++; + } + + // normal rows for( unsigned b=0; bSetName( "Title" ); + pName->SetName( "Primary" ); pName->LoadFromFont( THEME->GetPathF("Common","title") ); RString sText = GameButtonToLocalizedString( GAMESTATE->GetCurrentGame(), pKey->m_GameButton ); pName->SetText( sText ); ActorUtil::LoadAllCommands( *pName, m_sName ); - m_Line[b].AddChild( pName ); + m_Line[iRow].AddChild( pName ); } { BitmapText *pSecondary = new BitmapText; @@ -79,35 +101,39 @@ void ScreenMapControllers::Init() sText = MenuButtonToLocalizedString( mb ); ActorUtil::LoadAllCommands( *pSecondary, m_sName ); pSecondary->SetText( sText ); - m_Line[b].AddChild( pSecondary ); + m_Line[iRow].AddChild( pSecondary ); } - for( int p=0; pm_textMappedTo[p][s] = new BitmapText; - pKey->m_textMappedTo[p][s]->SetName( "MappedTo" ); - pKey->m_textMappedTo[p][s]->LoadFromFont( THEME->GetPathF(m_sName,"entry") ); - pKey->m_textMappedTo[p][s]->RunCommands( MAPPED_TO_COMMAND(p,s) ); - ActorUtil::LoadAllCommands( *pKey->m_textMappedTo[p][s], m_sName ); - m_Line[b].AddChild( pKey->m_textMappedTo[p][s] ); + pKey->m_textMappedTo[c][s] = new BitmapText; + pKey->m_textMappedTo[c][s]->SetName( "MappedTo" ); + pKey->m_textMappedTo[c][s]->LoadFromFont( THEME->GetPathF(m_sName,"entry") ); + pKey->m_textMappedTo[c][s]->RunCommands( MAPPED_TO_COMMAND(c,s) ); + ActorUtil::LoadAllCommands( *pKey->m_textMappedTo[c][s], m_sName ); + m_Line[iRow].AddChild( pKey->m_textMappedTo[c][s] ); } } - m_Line[b].DeleteChildrenWhenDone(); - m_Line[b].SetName( "Line" ); - ActorUtil::LoadAllCommands( m_Line[b], m_sName ); - m_LineScroller.AddChild( &m_Line[b] ); + m_Line[iRow].DeleteChildrenWhenDone(); + m_Line[iRow].SetName( "Line" ); + ActorUtil::LoadAllCommands( m_Line[iRow], m_sName ); + m_LineScroller.AddChild( &m_Line[iRow] ); + + iRow++; } + // exit row { m_pExit = ActorUtil::MakeActor( THEME->GetPathG(m_sName,"exit") ); m_pExit->SetName( "Exit" ); ActorUtil::LoadAllCommands( *m_pExit, m_sName ); - unsigned b = m_KeysToMap.size(); - m_Line[b].AddChild( m_pExit ); - m_LineScroller.AddChild( &m_Line[b] ); + m_Line[iRow].AddChild( m_pExit ); + m_LineScroller.AddChild( &m_Line[iRow] ); + + iRow++; } m_LineScroller.SetName( "LineScroller" ); diff --git a/stepmania/src/ScreenMapControllers.h b/stepmania/src/ScreenMapControllers.h index 800ba0d998..f67747600a 100644 --- a/stepmania/src/ScreenMapControllers.h +++ b/stepmania/src/ScreenMapControllers.h @@ -44,10 +44,13 @@ private: BitmapText *m_textMappedTo[MAX_GAME_CONTROLLERS][NUM_SHOWN_GAME_TO_DEVICE_SLOTS]; }; vector m_KeysToMap; + + BitmapText m_textLabel[MAX_GAME_CONTROLLERS]; + // owned by m_Line Actor *m_pExit; - ActorFrame m_Line[MAX_GAME_BUTTONS+1]; // XXX + ActorFrame m_Line[MAX_GAME_BUTTONS+2]; // label, normal lines, exit ActorScroller m_LineScroller; RageSound m_soundChange;