unload BGA for screens that don't have a background

This commit is contained in:
Chris Danford
2004-12-11 10:22:42 +00:00
parent 7d26f28dee
commit 083db90df8
+16 -12
View File
@@ -355,21 +355,25 @@ retry:
}
// Load shared BGAnimation
CString sNewBGA;
if( pNewScreen->UsesBackground() )
sNewBGA = THEME->GetPathToB(sScreenName+" background");
if( sNewBGA.empty() )
{
CString sNewBGA = THEME->GetPathToB(sScreenName+" background");
if( m_sLastLoadedBackground != sNewBGA )
{
// Create the new background before deleting the previous so that we keep
// any common textures loaded.
BGAnimation *pNewBGA = new BGAnimation;
pNewBGA->LoadFromAniDir( sNewBGA );
SAFE_DELETE( m_pSharedBGA );
m_pSharedBGA = pNewBGA;
m_pSharedBGA->Unload();
m_sLastLoadedBackground = "";
}
else if( m_sLastLoadedBackground != sNewBGA )
{
// Create the new background before deleting the previous so that we keep
// any common textures loaded.
BGAnimation *pNewBGA = new BGAnimation;
pNewBGA->LoadFromAniDir( sNewBGA );
SAFE_DELETE( m_pSharedBGA );
m_pSharedBGA = pNewBGA;
m_sLastLoadedBackground = sNewBGA;
}
}
m_sLastLoadedBackground = sNewBGA;
}
bool bWasOnSystemMenu = GAMESTATE->m_bIsOnSystemMenu;