show ScreenNameEntryTraditional even if no high scores were made
This commit is contained in:
@@ -138,9 +138,6 @@ ScreenNameEntryTraditional::ScreenNameEntryTraditional( CString sClassName ) : S
|
|||||||
{
|
{
|
||||||
LOG->Trace( "ScreenNameEntryTraditional::ScreenNameEntryTraditional()" );
|
LOG->Trace( "ScreenNameEntryTraditional::ScreenNameEntryTraditional()" );
|
||||||
|
|
||||||
ZERO( m_NumFeats );
|
|
||||||
ZERO( m_CurFeat );
|
|
||||||
|
|
||||||
if( PREFSMAN->m_bScreenTestMode )
|
if( PREFSMAN->m_bScreenTestMode )
|
||||||
{
|
{
|
||||||
GAMESTATE->m_bSideIsJoined[PLAYER_1] = true;
|
GAMESTATE->m_bSideIsJoined[PLAYER_1] = true;
|
||||||
@@ -185,222 +182,224 @@ ScreenNameEntryTraditional::ScreenNameEntryTraditional( CString sClassName ) : S
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int p;
|
|
||||||
|
|
||||||
|
|
||||||
// Find out if players deserve to enter their name
|
// Find out if players deserve to enter their name
|
||||||
for( p=0; p<NUM_PLAYERS; p++ )
|
FOREACH_PlayerNumber( p )
|
||||||
{
|
{
|
||||||
vector<GameState::RankingFeat> aFeats;
|
vector<GameState::RankingFeat> aFeats;
|
||||||
GAMESTATE->GetRankingFeats( (PlayerNumber)p, aFeats );
|
GAMESTATE->GetRankingFeats( (PlayerNumber)p, aFeats );
|
||||||
m_bStillEnteringName[p] = aFeats.size()>0;
|
m_bStillEnteringName[p] = aFeats.size()>0;
|
||||||
}
|
m_NumFeats[p] = g_vPlayedStageStats.size();
|
||||||
|
m_CurFeat[p] = 0;
|
||||||
if( !AnyStillEntering() )
|
|
||||||
{
|
|
||||||
/* Nobody made a high score. */
|
|
||||||
HandleScreenMessage( SM_GoToNextScreen );
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
m_Menu.Load( m_sName );
|
m_Menu.Load( m_sName );
|
||||||
this->AddChild( &m_Menu );
|
this->AddChild( &m_Menu );
|
||||||
|
|
||||||
for( p=0; p<NUM_PLAYERS; p++ )
|
//
|
||||||
|
// init keyboards
|
||||||
|
//
|
||||||
{
|
{
|
||||||
m_NumFeats[p] = g_vPlayedStageStats.size();
|
FOREACH_HumanPlayer( p )
|
||||||
m_CurFeat[p] = 0;
|
|
||||||
|
|
||||||
if( !m_bStillEnteringName[p] )
|
|
||||||
continue; // skip
|
|
||||||
|
|
||||||
ASSERT( GAMESTATE->IsHumanPlayer(p) ); // they better be enabled if they made a high score!
|
|
||||||
|
|
||||||
m_sprNameFrame[p].SetName( ssprintf("EntryFrameP%i",p+1) );
|
|
||||||
m_sprNameFrame[p].Load( THEME->GetPathToG( ssprintf("ScreenNameEntryTraditional name frame p%i",p+1) ) );
|
|
||||||
SET_XY_AND_ON_COMMAND( m_sprNameFrame[p] );
|
|
||||||
this->AddChild( &m_sprNameFrame[p] );
|
|
||||||
|
|
||||||
m_Keyboard[p].SetName( ssprintf("KeyboardP%i",p+1) );
|
|
||||||
SET_XY_AND_ON_COMMAND( m_Keyboard[p] );
|
|
||||||
this->AddChild( &m_Keyboard[p] );
|
|
||||||
|
|
||||||
/* Add letters to m_Keyboard. */
|
|
||||||
const CString fontpath = THEME->GetPathToF("ScreenNameEntryTraditional letters");
|
|
||||||
const wstring Chars = CStringToWstring(KEYBOARD_LETTERS);
|
|
||||||
for( unsigned ch = 0; ch < Chars.size(); ++ch )
|
|
||||||
{
|
{
|
||||||
BitmapText *Letter = new BitmapText;
|
// don't show keyboard if didn't make any high scores
|
||||||
Letter->SetName( ssprintf("LetterP%i",p+1) );
|
if( !m_bStillEnteringName[p] )
|
||||||
Letter->LoadFromFont( fontpath );
|
continue; // skip
|
||||||
Letter->SetText( ssprintf("%lc", Chars[ch]) );
|
|
||||||
m_textAlphabet[p].push_back( Letter );
|
|
||||||
m_Keyboard[p].AddChild( Letter );
|
|
||||||
Letter->Command( THEME->GetMetric("ScreenNameEntryTraditional","AlphabetInitCommand") );
|
|
||||||
|
|
||||||
m_AlphabetLetter[p].push_back( Chars[ch] );
|
m_sprNameFrame[p].SetName( ssprintf("EntryFrameP%i",p+1) );
|
||||||
|
m_sprNameFrame[p].Load( THEME->GetPathToG( ssprintf("ScreenNameEntryTraditional name frame p%i",p+1) ) );
|
||||||
|
SET_XY_AND_ON_COMMAND( m_sprNameFrame[p] );
|
||||||
|
this->AddChild( &m_sprNameFrame[p] );
|
||||||
|
|
||||||
|
m_Keyboard[p].SetName( ssprintf("KeyboardP%i",p+1) );
|
||||||
|
SET_XY_AND_ON_COMMAND( m_Keyboard[p] );
|
||||||
|
this->AddChild( &m_Keyboard[p] );
|
||||||
|
|
||||||
|
/* Add letters to m_Keyboard. */
|
||||||
|
const CString fontpath = THEME->GetPathToF("ScreenNameEntryTraditional letters");
|
||||||
|
const wstring Chars = CStringToWstring(KEYBOARD_LETTERS);
|
||||||
|
for( unsigned ch = 0; ch < Chars.size(); ++ch )
|
||||||
|
{
|
||||||
|
BitmapText *Letter = new BitmapText;
|
||||||
|
Letter->SetName( ssprintf("LetterP%i",p+1) );
|
||||||
|
Letter->LoadFromFont( fontpath );
|
||||||
|
Letter->SetText( ssprintf("%lc", Chars[ch]) );
|
||||||
|
m_textAlphabet[p].push_back( Letter );
|
||||||
|
m_Keyboard[p].AddChild( Letter );
|
||||||
|
Letter->Command( THEME->GetMetric("ScreenNameEntryTraditional","AlphabetInitCommand") );
|
||||||
|
|
||||||
|
m_AlphabetLetter[p].push_back( Chars[ch] );
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Add "<-". */
|
||||||
|
{
|
||||||
|
BitmapText *Letter = new BitmapText;
|
||||||
|
Letter->SetName( ssprintf("LetterP%i",p+1) );
|
||||||
|
Letter->LoadFromFont( fontpath );
|
||||||
|
CString text = "←";
|
||||||
|
FontCharAliases::ReplaceMarkers( text );
|
||||||
|
Letter->SetText( text );
|
||||||
|
m_textAlphabet[p].push_back( Letter );
|
||||||
|
m_Keyboard[p].AddChild( Letter );
|
||||||
|
|
||||||
|
m_AlphabetLetter[p].push_back( CHAR_BACK );
|
||||||
|
Letter->Command( THEME->GetMetric("ScreenNameEntryTraditional","OKInitCommand") );
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Add "OK". */
|
||||||
|
{
|
||||||
|
BitmapText *Letter = new BitmapText;
|
||||||
|
Letter->SetName( ssprintf("LetterP%i",p+1) );
|
||||||
|
Letter->LoadFromFont( fontpath );
|
||||||
|
CString text = "&ok;";
|
||||||
|
FontCharAliases::ReplaceMarkers( text );
|
||||||
|
Letter->SetText( text );
|
||||||
|
m_textAlphabet[p].push_back( Letter );
|
||||||
|
m_Keyboard[p].AddChild( Letter );
|
||||||
|
|
||||||
|
m_AlphabetLetter[p].push_back( CHAR_OK );
|
||||||
|
Letter->Command( THEME->GetMetric("ScreenNameEntryTraditional","OKInitCommand") );
|
||||||
|
}
|
||||||
|
|
||||||
|
m_sprCursor[p].SetName( ssprintf("CursorP%i",p+1) );
|
||||||
|
m_sprCursor[p].Load( THEME->GetPathToG( ssprintf("ScreenNameEntryTraditional cursor p%i",p+1) ) );
|
||||||
|
m_Keyboard[p].AddChild( &m_sprCursor[p] );
|
||||||
|
|
||||||
|
m_textSelection[p].SetName( ssprintf("SelectionP%i",p+1) );
|
||||||
|
m_textSelection[p].LoadFromFont( THEME->GetPathToF("ScreenNameEntryTraditional entry") );
|
||||||
|
SET_XY_AND_ON_COMMAND( m_textSelection[p] );
|
||||||
|
this->AddChild( &m_textSelection[p] );
|
||||||
|
|
||||||
|
m_SelectedChar[p] = 0;
|
||||||
|
PositionCharsAndCursor( p );
|
||||||
|
|
||||||
|
// load last used ranking name if any
|
||||||
|
const Profile* pProfile = PROFILEMAN->GetProfile((PlayerNumber)p);
|
||||||
|
if( pProfile && !pProfile->m_sLastUsedHighScoreName.empty() )
|
||||||
|
{
|
||||||
|
m_sSelection[p] = CStringToWstring( pProfile->m_sLastUsedHighScoreName );
|
||||||
|
if( (int) m_sSelection[p].size() > MAX_RANKING_NAME_LENGTH )
|
||||||
|
m_sSelection[p].erase( MAX_RANKING_NAME_LENGTH );
|
||||||
|
ASSERT( (int) m_sSelection[p].size() <= MAX_RANKING_NAME_LENGTH );
|
||||||
|
if( m_sSelection[p].size() )
|
||||||
|
SelectChar( (PlayerNumber) p, CHAR_OK );
|
||||||
|
}
|
||||||
|
|
||||||
|
UpdateSelectionText( p );
|
||||||
|
|
||||||
|
/* Don't tween to the initial position. */
|
||||||
|
unsigned i;
|
||||||
|
for( i = 0; i < m_textAlphabet[p].size(); ++i )
|
||||||
|
m_textAlphabet[p][i]->FinishTweening();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Add "<-". */
|
|
||||||
{
|
|
||||||
BitmapText *Letter = new BitmapText;
|
|
||||||
Letter->SetName( ssprintf("LetterP%i",p+1) );
|
|
||||||
Letter->LoadFromFont( fontpath );
|
|
||||||
CString text = "←";
|
|
||||||
FontCharAliases::ReplaceMarkers( text );
|
|
||||||
Letter->SetText( text );
|
|
||||||
m_textAlphabet[p].push_back( Letter );
|
|
||||||
m_Keyboard[p].AddChild( Letter );
|
|
||||||
|
|
||||||
m_AlphabetLetter[p].push_back( CHAR_BACK );
|
|
||||||
Letter->Command( THEME->GetMetric("ScreenNameEntryTraditional","OKInitCommand") );
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Add "OK". */
|
|
||||||
{
|
|
||||||
BitmapText *Letter = new BitmapText;
|
|
||||||
Letter->SetName( ssprintf("LetterP%i",p+1) );
|
|
||||||
Letter->LoadFromFont( fontpath );
|
|
||||||
CString text = "&ok;";
|
|
||||||
FontCharAliases::ReplaceMarkers( text );
|
|
||||||
Letter->SetText( text );
|
|
||||||
m_textAlphabet[p].push_back( Letter );
|
|
||||||
m_Keyboard[p].AddChild( Letter );
|
|
||||||
|
|
||||||
m_AlphabetLetter[p].push_back( CHAR_OK );
|
|
||||||
Letter->Command( THEME->GetMetric("ScreenNameEntryTraditional","OKInitCommand") );
|
|
||||||
}
|
|
||||||
|
|
||||||
m_sprCursor[p].SetName( ssprintf("CursorP%i",p+1) );
|
|
||||||
m_sprCursor[p].Load( THEME->GetPathToG( ssprintf("ScreenNameEntryTraditional cursor p%i",p+1) ) );
|
|
||||||
m_Keyboard[p].AddChild( &m_sprCursor[p] );
|
|
||||||
|
|
||||||
m_textSelection[p].SetName( ssprintf("SelectionP%i",p+1) );
|
|
||||||
m_textSelection[p].LoadFromFont( THEME->GetPathToF("ScreenNameEntryTraditional entry") );
|
|
||||||
SET_XY_AND_ON_COMMAND( m_textSelection[p] );
|
|
||||||
this->AddChild( &m_textSelection[p] );
|
|
||||||
|
|
||||||
m_SelectedChar[p] = 0;
|
|
||||||
PositionCharsAndCursor( p );
|
|
||||||
|
|
||||||
// load last used ranking name if any
|
|
||||||
const Profile* pProfile = PROFILEMAN->GetProfile((PlayerNumber)p);
|
|
||||||
if( pProfile && !pProfile->m_sLastUsedHighScoreName.empty() )
|
|
||||||
{
|
|
||||||
m_sSelection[p] = CStringToWstring( pProfile->m_sLastUsedHighScoreName );
|
|
||||||
if( (int) m_sSelection[p].size() > MAX_RANKING_NAME_LENGTH )
|
|
||||||
m_sSelection[p].erase( MAX_RANKING_NAME_LENGTH );
|
|
||||||
ASSERT( (int) m_sSelection[p].size() <= MAX_RANKING_NAME_LENGTH );
|
|
||||||
if( m_sSelection[p].size() )
|
|
||||||
SelectChar( (PlayerNumber) p, CHAR_OK );
|
|
||||||
}
|
|
||||||
|
|
||||||
UpdateSelectionText( p );
|
|
||||||
|
|
||||||
/* Don't tween to the initial position. */
|
|
||||||
unsigned i;
|
|
||||||
for( i = 0; i < m_textAlphabet[p].size(); ++i )
|
|
||||||
m_textAlphabet[p][i]->FinishTweening();
|
|
||||||
|
|
||||||
/* Show feat 0, hide others without tweening. Run the ON command for
|
|
||||||
* all actors, even if we're going to hide it anyway, so any style commands
|
|
||||||
* are run. */
|
|
||||||
#define SET_ON( actor ) \
|
|
||||||
SET_XY_AND_ON_COMMAND( actor ); \
|
|
||||||
if( i != 0 ) \
|
|
||||||
{ \
|
|
||||||
COMMAND( actor, "Hide" ); \
|
|
||||||
actor.FinishTweening(); \
|
|
||||||
}
|
}
|
||||||
|
|
||||||
m_FeatDisplay[p].resize( m_NumFeats[p] );
|
//
|
||||||
for( i = 0; int(i) < m_NumFeats[p]; ++i )
|
// init feat displays
|
||||||
|
//
|
||||||
|
{
|
||||||
|
FOREACH_HumanPlayer( p )
|
||||||
{
|
{
|
||||||
StageStats &ss = g_vPlayedStageStats[i];
|
/* Show feat 0, hide others without tweening. Run the ON command for
|
||||||
Song* pSong = ss.pSong;
|
* all actors, even if we're going to hide it anyway, so any style commands
|
||||||
Steps* pSteps = ss.pSteps[p];
|
* are run. */
|
||||||
Course* pCourse = GAMESTATE->m_pCurCourse;
|
#define SET_ON( actor ) \
|
||||||
int iHighScoreIndex = -1; // -1 means "out of ranking"
|
SET_XY_AND_ON_COMMAND( actor ); \
|
||||||
Grade grade = ss.GetGrade((PlayerNumber)p);
|
if( i != 0 ) \
|
||||||
int iScore = ss.iScore[p];
|
{ \
|
||||||
float fPercentDP = ss.GetPercentDancePoints((PlayerNumber)p);
|
COMMAND( actor, "Hide" ); \
|
||||||
|
actor.FinishTweening(); \
|
||||||
|
}
|
||||||
|
|
||||||
const HighScoreList& hsl =
|
m_FeatDisplay[p].resize( m_NumFeats[p] );
|
||||||
GAMESTATE->IsCourseMode() ?
|
for( int i = 0; int(i) < m_NumFeats[p]; ++i )
|
||||||
PROFILEMAN->GetMachineProfile()->GetCourseHighScoreList(pCourse, GAMESTATE->GetCurrentStyleDef()->m_StepsType, GAMESTATE->m_PreferredCourseDifficulty[p]) :
|
{
|
||||||
PROFILEMAN->GetMachineProfile()->GetStepsHighScoreList(pSteps);
|
StageStats &ss = g_vPlayedStageStats[i];
|
||||||
|
Song* pSong = ss.pSong;
|
||||||
|
Steps* pSteps = ss.pSteps[p];
|
||||||
|
Course* pCourse = GAMESTATE->m_pCurCourse;
|
||||||
|
int iHighScoreIndex = -1; // -1 means "out of ranking"
|
||||||
|
Grade grade = ss.GetGrade((PlayerNumber)p);
|
||||||
|
int iScore = ss.iScore[p];
|
||||||
|
float fPercentDP = ss.GetPercentDancePoints((PlayerNumber)p);
|
||||||
|
|
||||||
|
const HighScoreList& hsl =
|
||||||
|
GAMESTATE->IsCourseMode() ?
|
||||||
|
PROFILEMAN->GetMachineProfile()->GetCourseHighScoreList(pCourse, GAMESTATE->GetCurrentStyleDef()->m_StepsType, GAMESTATE->m_PreferredCourseDifficulty[p]) :
|
||||||
|
PROFILEMAN->GetMachineProfile()->GetStepsHighScoreList(pSteps);
|
||||||
|
|
||||||
for( unsigned h=0; h<hsl.vHighScores.size(); h++ )
|
for( unsigned h=0; h<hsl.vHighScores.size(); h++ )
|
||||||
{
|
|
||||||
const HighScore &hs = hsl.vHighScores[h];
|
|
||||||
if( hs.sName == RANKING_TO_FILL_IN_MARKER[p] &&
|
|
||||||
hs.fPercentDP == fPercentDP &&
|
|
||||||
hs.iScore == iScore )
|
|
||||||
{
|
{
|
||||||
iHighScoreIndex = h;
|
const HighScore &hs = hsl.vHighScores[h];
|
||||||
break;
|
if( hs.sName == RANKING_TO_FILL_IN_MARKER[p] &&
|
||||||
|
hs.fPercentDP == fPercentDP &&
|
||||||
|
hs.iScore == iScore )
|
||||||
|
{
|
||||||
|
iHighScoreIndex = h;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
m_FeatDisplay[p][i].m_Wheel.SetName( ssprintf("WheelP%i",p+1) );
|
m_FeatDisplay[p][i].m_Wheel.SetName( ssprintf("WheelP%i",p+1) );
|
||||||
m_FeatDisplay[p][i].m_Wheel.Load( hsl, iHighScoreIndex );
|
m_FeatDisplay[p][i].m_Wheel.Load( hsl, iHighScoreIndex );
|
||||||
SET_ON( m_FeatDisplay[p][i].m_Wheel );
|
SET_ON( m_FeatDisplay[p][i].m_Wheel );
|
||||||
this->AddChild( &m_FeatDisplay[p][i].m_Wheel );
|
this->AddChild( &m_FeatDisplay[p][i].m_Wheel );
|
||||||
|
|
||||||
CString sBanner;
|
CString sBanner;
|
||||||
if( GAMESTATE->IsCourseMode() )
|
if( GAMESTATE->IsCourseMode() )
|
||||||
sBanner = pCourse->m_sBannerPath;
|
sBanner = pCourse->m_sBannerPath;
|
||||||
else
|
else
|
||||||
sBanner = pSong->GetBannerPath();
|
sBanner = pSong->GetBannerPath();
|
||||||
if( !sBanner.empty() )
|
if( !sBanner.empty() )
|
||||||
{
|
{
|
||||||
m_FeatDisplay[p][i].m_sprBanner.SetName( ssprintf("BannerP%i",p+1) );
|
m_FeatDisplay[p][i].m_sprBanner.SetName( ssprintf("BannerP%i",p+1) );
|
||||||
m_FeatDisplay[p][i].m_sprBanner.Load( sBanner );
|
m_FeatDisplay[p][i].m_sprBanner.Load( sBanner );
|
||||||
SET_ON( m_FeatDisplay[p][i].m_sprBanner );
|
SET_ON( m_FeatDisplay[p][i].m_sprBanner );
|
||||||
this->AddChild( &m_FeatDisplay[p][i].m_sprBanner );
|
this->AddChild( &m_FeatDisplay[p][i].m_sprBanner );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( grade != GRADE_NO_DATA )
|
if( grade != GRADE_NO_DATA )
|
||||||
{
|
{
|
||||||
m_FeatDisplay[p][i].m_Grade.SetName( ssprintf("GradeP%i",p+1) );
|
m_FeatDisplay[p][i].m_Grade.SetName( ssprintf("GradeP%i",p+1) );
|
||||||
m_FeatDisplay[p][i].m_Grade.Load( THEME->GetPathToG("ScreenNameEntryTraditional grades") );
|
m_FeatDisplay[p][i].m_Grade.Load( THEME->GetPathToG("ScreenNameEntryTraditional grades") );
|
||||||
m_FeatDisplay[p][i].m_Grade.SetGrade( (PlayerNumber)p, grade );
|
m_FeatDisplay[p][i].m_Grade.SetGrade( (PlayerNumber)p, grade );
|
||||||
SET_ON( m_FeatDisplay[p][i].m_Grade );
|
SET_ON( m_FeatDisplay[p][i].m_Grade );
|
||||||
this->AddChild( &m_FeatDisplay[p][i].m_Grade );
|
this->AddChild( &m_FeatDisplay[p][i].m_Grade );
|
||||||
}
|
}
|
||||||
|
|
||||||
m_FeatDisplay[p][i].m_Difficulty.SetName( ssprintf("DifficultyP%i",p+1) );
|
m_FeatDisplay[p][i].m_Difficulty.SetName( ssprintf("DifficultyP%i",p+1) );
|
||||||
m_FeatDisplay[p][i].m_Difficulty.Load( THEME->GetPathToG(ssprintf("ScreenNameEntryTraditional difficulty icons 1x%d",NUM_DIFFICULTIES)) );
|
m_FeatDisplay[p][i].m_Difficulty.Load( THEME->GetPathToG(ssprintf("ScreenNameEntryTraditional difficulty icons 1x%d",NUM_DIFFICULTIES)) );
|
||||||
if( GAMESTATE->IsCourseMode() )
|
if( GAMESTATE->IsCourseMode() )
|
||||||
m_FeatDisplay[p][i].m_Difficulty.SetFromCourseDifficulty( (PlayerNumber)p, GAMESTATE->m_PreferredCourseDifficulty[p] );
|
m_FeatDisplay[p][i].m_Difficulty.SetFromCourseDifficulty( (PlayerNumber)p, GAMESTATE->m_PreferredCourseDifficulty[p] );
|
||||||
else
|
else
|
||||||
m_FeatDisplay[p][i].m_Difficulty.SetFromNotes( (PlayerNumber)p, pSteps );
|
m_FeatDisplay[p][i].m_Difficulty.SetFromNotes( (PlayerNumber)p, pSteps );
|
||||||
SET_ON( m_FeatDisplay[p][i].m_Difficulty );
|
SET_ON( m_FeatDisplay[p][i].m_Difficulty );
|
||||||
this->AddChild( &m_FeatDisplay[p][i].m_Difficulty );
|
this->AddChild( &m_FeatDisplay[p][i].m_Difficulty );
|
||||||
|
|
||||||
m_FeatDisplay[p][i].m_textScore.SetName( "ScreenNameEntryTraditional Percent" );
|
m_FeatDisplay[p][i].m_textScore.SetName( "ScreenNameEntryTraditional Percent" );
|
||||||
m_FeatDisplay[p][i].m_textScore.Load( (PlayerNumber)p, &ss, false );
|
m_FeatDisplay[p][i].m_textScore.Load( (PlayerNumber)p, &ss, false );
|
||||||
m_FeatDisplay[p][i].m_textScore.SetName( ssprintf("ScoreP%i",p+1) );
|
m_FeatDisplay[p][i].m_textScore.SetName( ssprintf("ScoreP%i",p+1) );
|
||||||
SET_ON( m_FeatDisplay[p][i].m_textScore );
|
SET_ON( m_FeatDisplay[p][i].m_textScore );
|
||||||
this->AddChild( &m_FeatDisplay[p][i].m_textScore );
|
this->AddChild( &m_FeatDisplay[p][i].m_textScore );
|
||||||
|
|
||||||
// if( feat.Feat != "" )
|
// if( feat.Feat != "" )
|
||||||
// {
|
// {
|
||||||
// m_FeatDisplay[p][i].m_textCategory.SetName( ssprintf("CategoryP%i", p+1) );
|
// m_FeatDisplay[p][i].m_textCategory.SetName( ssprintf("CategoryP%i", p+1) );
|
||||||
// m_FeatDisplay[p][i].m_textCategory.LoadFromFont( THEME->GetPathToF("ScreenNameEntryTraditional category") );
|
// m_FeatDisplay[p][i].m_textCategory.LoadFromFont( THEME->GetPathToF("ScreenNameEntryTraditional category") );
|
||||||
// m_FeatDisplay[p][i].m_textCategory.SetText( feat.Feat );
|
// m_FeatDisplay[p][i].m_textCategory.SetText( feat.Feat );
|
||||||
// SET_ON( m_FeatDisplay[p][i].m_textCategory );
|
// SET_ON( m_FeatDisplay[p][i].m_textCategory );
|
||||||
// this->AddChild( &m_FeatDisplay[p][i].m_textCategory );
|
// this->AddChild( &m_FeatDisplay[p][i].m_textCategory );
|
||||||
// }
|
// }
|
||||||
|
|
||||||
/* We always show the banner frame (if any), because fading from a graphic to
|
/* We always show the banner frame (if any), because fading from a graphic to
|
||||||
* itself is ugly. */
|
* itself is ugly. */
|
||||||
m_FeatDisplay[p][i].m_sprBannerFrame.SetName( ssprintf("BannerFrameP%i",p+1) );
|
m_FeatDisplay[p][i].m_sprBannerFrame.SetName( ssprintf("BannerFrameP%i",p+1) );
|
||||||
m_FeatDisplay[p][i].m_sprBannerFrame.Load( THEME->GetPathToG(ssprintf("ScreenNameEntryTraditional banner frame p%i",p+1)) );
|
m_FeatDisplay[p][i].m_sprBannerFrame.Load( THEME->GetPathToG(ssprintf("ScreenNameEntryTraditional banner frame p%i",p+1)) );
|
||||||
SET_XY_AND_ON_COMMAND( m_FeatDisplay[p][i].m_sprBannerFrame );
|
SET_XY_AND_ON_COMMAND( m_FeatDisplay[p][i].m_sprBannerFrame );
|
||||||
this->AddChild( &m_FeatDisplay[p][i].m_sprBannerFrame );
|
this->AddChild( &m_FeatDisplay[p][i].m_sprBannerFrame );
|
||||||
|
}
|
||||||
|
#undef SET_ON
|
||||||
}
|
}
|
||||||
#undef SET_ON
|
|
||||||
}
|
}
|
||||||
|
|
||||||
this->PostScreenMessage( SM_ChangeDisplayedFeat, FEAT_INTERVAL );
|
this->PostScreenMessage( SM_ChangeDisplayedFeat, FEAT_INTERVAL );
|
||||||
@@ -484,6 +483,14 @@ void ScreenNameEntryTraditional::DrawPrimitives()
|
|||||||
DISPLAY->CameraPopMatrix();
|
DISPLAY->CameraPopMatrix();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ScreenNameEntryTraditional::Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI )
|
||||||
|
{
|
||||||
|
if( m_Menu.IsTransitioning() )
|
||||||
|
return;
|
||||||
|
|
||||||
|
Screen::Input( DeviceI, type, GameI, MenuI, StyleI );
|
||||||
|
}
|
||||||
|
|
||||||
void ScreenNameEntryTraditional::ChangeDisplayedFeat()
|
void ScreenNameEntryTraditional::ChangeDisplayedFeat()
|
||||||
{
|
{
|
||||||
CHECKPOINT;
|
CHECKPOINT;
|
||||||
@@ -583,7 +590,7 @@ void ScreenNameEntryTraditional::Finish( PlayerNumber pn )
|
|||||||
OFF_COMMAND( m_textAlphabet[pn][i] );
|
OFF_COMMAND( m_textAlphabet[pn][i] );
|
||||||
OFF_COMMAND( m_sprCursor[pn] );
|
OFF_COMMAND( m_sprCursor[pn] );
|
||||||
|
|
||||||
if( !AnyStillEntering() && !m_Menu.m_Out.IsTransitioning() )
|
if( !AnyStillEntering() )
|
||||||
m_Menu.StartTransitioning( SM_GoToNextScreen );
|
m_Menu.StartTransitioning( SM_GoToNextScreen );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -598,9 +605,12 @@ void ScreenNameEntryTraditional::UpdateSelectionText( int pn )
|
|||||||
|
|
||||||
void ScreenNameEntryTraditional::MenuStart( PlayerNumber pn, const InputEventType type )
|
void ScreenNameEntryTraditional::MenuStart( PlayerNumber pn, const InputEventType type )
|
||||||
{
|
{
|
||||||
if( !m_bStillEnteringName[pn] || m_Menu.IsTransitioning() )
|
if( !AnyStillEntering() )
|
||||||
return;
|
m_Menu.StartTransitioning( SM_GoToNextScreen );
|
||||||
if( type == IET_RELEASE )
|
|
||||||
|
if( !m_bStillEnteringName[pn] )
|
||||||
|
return; // ignore
|
||||||
|
if( type != IET_FIRST_PRESS )
|
||||||
return; // ignore
|
return; // ignore
|
||||||
|
|
||||||
const int CurrentSelection = m_SelectedChar[pn];
|
const int CurrentSelection = m_SelectedChar[pn];
|
||||||
|
|||||||
@@ -52,6 +52,7 @@ public:
|
|||||||
void Update( float fDeltaTime );
|
void Update( float fDeltaTime );
|
||||||
void DrawPrimitives();
|
void DrawPrimitives();
|
||||||
void HandleScreenMessage( const ScreenMessage SM );
|
void HandleScreenMessage( const ScreenMessage SM );
|
||||||
|
void Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI );
|
||||||
|
|
||||||
void MenuStart( PlayerNumber pn, const InputEventType type );
|
void MenuStart( PlayerNumber pn, const InputEventType type );
|
||||||
void MenuLeft( PlayerNumber pn, const InputEventType type );
|
void MenuLeft( PlayerNumber pn, const InputEventType type );
|
||||||
|
|||||||
Reference in New Issue
Block a user