fix ScreenSelectCharacter timer

This commit is contained in:
Glenn Maynard
2004-05-08 06:42:23 +00:00
parent ccbe03e14e
commit 282e502e6d
4 changed files with 28 additions and 18 deletions
+14 -14
View File
@@ -200,17 +200,14 @@ void ScreenSelectCharacter::HandleScreenMessage( const ScreenMessage SM )
{
case SM_BeginFadingOut:
StartTransitioning( SM_GoToNextScreen );
break;
return;
case SM_MenuTimer:
MenuStart(PLAYER_1);
break;
case SM_GoToPrevScreen:
SCREENMAN->SetNewScreen( PREV_SCREEN );
break;
case SM_GoToNextScreen:
SCREENMAN->SetNewScreen( NEXT_SCREEN );
break;
if( !AllAreFinishedChoosing() )
ResetTimer();
return;
}
Screen::HandleScreenMessage( SM );
}
PlayerNumber ScreenSelectCharacter::GetAffectedPlayerNumber( PlayerNumber pn )
@@ -336,6 +333,14 @@ void ScreenSelectCharacter::Move( PlayerNumber pn, int deltaValue )
}
}
bool ScreenSelectCharacter::AllAreFinishedChoosing() const
{
FOREACH_HumanPlayer( p )
if( m_SelectionRow[p] != FINISHED_CHOOSING )
return false;
return true;
}
void ScreenSelectCharacter::MenuStart( PlayerNumber pn )
{
if( m_SelectionRow[pn] == FINISHED_CHOOSING )
@@ -357,12 +362,7 @@ void ScreenSelectCharacter::MenuStart( PlayerNumber pn )
AfterValueChange(pn);
SCREENMAN->PlayStartSound();
bool bAllAreFinished = true;
for( int p=0; p<NUM_PLAYERS; p++ )
if( GAMESTATE->IsHumanPlayer(p) )
bAllAreFinished &= (m_SelectionRow[p] == FINISHED_CHOOSING);
if( bAllAreFinished )
if( AllAreFinishedChoosing() )
{
for( int p=0; p<NUM_PLAYERS; p++ )
{
+1
View File
@@ -48,6 +48,7 @@ private:
void AfterRowChange( PlayerNumber pn );
void AfterValueChange( PlayerNumber pn );
void Move( PlayerNumber pn, int deltaValue );
bool AllAreFinishedChoosing() const;
int m_iSelectedCharacter[NUM_PLAYERS];
enum {
+12 -4
View File
@@ -76,10 +76,7 @@ ScreenWithMenuElements::ScreenWithMenuElements( CString sClassName ) : Screen( s
m_MenuTimer->SetName( "Timer" );
UtilSetXY( m_MenuTimer, m_sName );
UtilOnCommand( m_MenuTimer, m_sName );
if( TIMER_SECONDS > 0 && PREFSMAN->m_bMenuTimer && !GAMESTATE->m_bEditing )
m_MenuTimer->SetSeconds( TIMER_SECONDS );
else
m_MenuTimer->Disable();
ResetTimer();
this->AddChild( m_MenuTimer );
}
@@ -120,6 +117,17 @@ ScreenWithMenuElements::~ScreenWithMenuElements()
SAFE_DELETE( m_textHelp );
}
void ScreenWithMenuElements::ResetTimer()
{
if( TIMER_SECONDS > 0 && PREFSMAN->m_bMenuTimer && !GAMESTATE->m_bEditing )
{
m_MenuTimer->SetSeconds( TIMER_SECONDS );
m_MenuTimer->Start();
}
else
m_MenuTimer->Disable();
}
void ScreenWithMenuElements::StartTransitioning( ScreenMessage smSendWhenDone )
{
if( m_bTimerEnabled )
+1
View File
@@ -34,6 +34,7 @@ public:
bool m_bTimerEnabled;
void StopTimer();
void ResetTimer();
protected:
BGAnimation m_Background;