fix ScreenStage delay

This commit is contained in:
Glenn Maynard
2005-02-07 23:46:41 +00:00
parent 2bdff91293
commit ebb4b0b28d
+8 -6
View File
@@ -97,14 +97,16 @@ void ScreenStage::HandleScreenMessage( const ScreenMessage SM )
switch( SM ) switch( SM )
{ {
case SM_PrepScreen: case SM_PrepScreen:
/* Start fading out in after MINIMUM_DELAY seconds. Loading the screen {
* might take longer than that, in which case we'll fade out as early as RageTimer length;
* we can. */
this->PostScreenMessage( SM_BeginFadingOut, MINIMUM_DELAY );
SCREENMAN->PrepareScreen( NEXT_SCREEN ); SCREENMAN->PrepareScreen( NEXT_SCREEN );
break; float fScreenLoadSeconds = length.GetDeltaTime();
/* The screen load took fScreenLoadSeconds. Move on to the next screen after
* no less than MINIMUM_DELAY seconds. */
this->PostScreenMessage( SM_BeginFadingOut, max( 0, MINIMUM_DELAY-fScreenLoadSeconds) );
break;
}
case SM_BeginFadingOut: case SM_BeginFadingOut:
m_Out.StartTransitioning(); m_Out.StartTransitioning();
FOREACH_PlayerNumber( p ) FOREACH_PlayerNumber( p )