fix skips in BGAnimation on first update

This commit is contained in:
Chris Danford
2004-12-23 09:48:16 +00:00
parent 9b457eb241
commit 9032ee0163
+11 -9
View File
@@ -142,16 +142,18 @@ void ScreenManager::Update( float fDeltaTime )
*/ */
ASSERT( !m_ScreenStack.empty() || m_sDelayedScreen != "" ); // Why play the game if there is nothing showing? ASSERT( !m_ScreenStack.empty() || m_sDelayedScreen != "" ); // Why play the game if there is nothing showing?
m_pSharedBGA->Update( fDeltaTime ); Screen* pScreen = m_ScreenStack.empty() ? NULL : GetTopScreen();
if( !m_ScreenStack.empty() ) /* Loading a new screen can take seconds and cause a big jump on the new
{ * Screen's first update. Clamp the first update delta so that the
Screen* pScreen = GetTopScreen(); * animations don't jump. */
if( pScreen->IsFirstUpdate() ) if( pScreen && pScreen->IsFirstUpdate() )
pScreen->Update( 0 ); fDeltaTime = 0;
else
pScreen->Update( fDeltaTime ); if( pScreen )
} pScreen->Update( fDeltaTime );
m_pSharedBGA->Update( fDeltaTime );
m_SystemLayer->Update( fDeltaTime ); m_SystemLayer->Update( fDeltaTime );