fix ScreenSelectCharacter timer
This commit is contained in:
@@ -200,17 +200,14 @@ void ScreenSelectCharacter::HandleScreenMessage( const ScreenMessage SM )
|
|||||||
{
|
{
|
||||||
case SM_BeginFadingOut:
|
case SM_BeginFadingOut:
|
||||||
StartTransitioning( SM_GoToNextScreen );
|
StartTransitioning( SM_GoToNextScreen );
|
||||||
break;
|
return;
|
||||||
case SM_MenuTimer:
|
case SM_MenuTimer:
|
||||||
MenuStart(PLAYER_1);
|
MenuStart(PLAYER_1);
|
||||||
break;
|
if( !AllAreFinishedChoosing() )
|
||||||
case SM_GoToPrevScreen:
|
ResetTimer();
|
||||||
SCREENMAN->SetNewScreen( PREV_SCREEN );
|
return;
|
||||||
break;
|
|
||||||
case SM_GoToNextScreen:
|
|
||||||
SCREENMAN->SetNewScreen( NEXT_SCREEN );
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
Screen::HandleScreenMessage( SM );
|
||||||
}
|
}
|
||||||
|
|
||||||
PlayerNumber ScreenSelectCharacter::GetAffectedPlayerNumber( PlayerNumber pn )
|
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 )
|
void ScreenSelectCharacter::MenuStart( PlayerNumber pn )
|
||||||
{
|
{
|
||||||
if( m_SelectionRow[pn] == FINISHED_CHOOSING )
|
if( m_SelectionRow[pn] == FINISHED_CHOOSING )
|
||||||
@@ -357,12 +362,7 @@ void ScreenSelectCharacter::MenuStart( PlayerNumber pn )
|
|||||||
AfterValueChange(pn);
|
AfterValueChange(pn);
|
||||||
SCREENMAN->PlayStartSound();
|
SCREENMAN->PlayStartSound();
|
||||||
|
|
||||||
bool bAllAreFinished = true;
|
if( AllAreFinishedChoosing() )
|
||||||
for( int p=0; p<NUM_PLAYERS; p++ )
|
|
||||||
if( GAMESTATE->IsHumanPlayer(p) )
|
|
||||||
bAllAreFinished &= (m_SelectionRow[p] == FINISHED_CHOOSING);
|
|
||||||
|
|
||||||
if( bAllAreFinished )
|
|
||||||
{
|
{
|
||||||
for( int p=0; p<NUM_PLAYERS; p++ )
|
for( int p=0; p<NUM_PLAYERS; p++ )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -48,6 +48,7 @@ private:
|
|||||||
void AfterRowChange( PlayerNumber pn );
|
void AfterRowChange( PlayerNumber pn );
|
||||||
void AfterValueChange( PlayerNumber pn );
|
void AfterValueChange( PlayerNumber pn );
|
||||||
void Move( PlayerNumber pn, int deltaValue );
|
void Move( PlayerNumber pn, int deltaValue );
|
||||||
|
bool AllAreFinishedChoosing() const;
|
||||||
|
|
||||||
int m_iSelectedCharacter[NUM_PLAYERS];
|
int m_iSelectedCharacter[NUM_PLAYERS];
|
||||||
enum {
|
enum {
|
||||||
|
|||||||
@@ -76,10 +76,7 @@ ScreenWithMenuElements::ScreenWithMenuElements( CString sClassName ) : Screen( s
|
|||||||
m_MenuTimer->SetName( "Timer" );
|
m_MenuTimer->SetName( "Timer" );
|
||||||
UtilSetXY( m_MenuTimer, m_sName );
|
UtilSetXY( m_MenuTimer, m_sName );
|
||||||
UtilOnCommand( m_MenuTimer, m_sName );
|
UtilOnCommand( m_MenuTimer, m_sName );
|
||||||
if( TIMER_SECONDS > 0 && PREFSMAN->m_bMenuTimer && !GAMESTATE->m_bEditing )
|
ResetTimer();
|
||||||
m_MenuTimer->SetSeconds( TIMER_SECONDS );
|
|
||||||
else
|
|
||||||
m_MenuTimer->Disable();
|
|
||||||
this->AddChild( m_MenuTimer );
|
this->AddChild( m_MenuTimer );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -120,6 +117,17 @@ ScreenWithMenuElements::~ScreenWithMenuElements()
|
|||||||
SAFE_DELETE( m_textHelp );
|
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 )
|
void ScreenWithMenuElements::StartTransitioning( ScreenMessage smSendWhenDone )
|
||||||
{
|
{
|
||||||
if( m_bTimerEnabled )
|
if( m_bTimerEnabled )
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ public:
|
|||||||
bool m_bTimerEnabled;
|
bool m_bTimerEnabled;
|
||||||
|
|
||||||
void StopTimer();
|
void StopTimer();
|
||||||
|
void ResetTimer();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
BGAnimation m_Background;
|
BGAnimation m_Background;
|
||||||
|
|||||||
Reference in New Issue
Block a user