From 3153c70ddb04af3cf23f98833bbc69d9255eada8 Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Tue, 4 Jan 2005 01:45:28 +0000 Subject: [PATCH] Load Background's BGAs on first load, not in the ctor, so Jukebox and Demonstration set up first; otherwise, BGAs with Lua expressions that depend on them won't work. --- stepmania/src/Background.cpp | 13 +++++++++++-- stepmania/src/Background.h | 2 ++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/stepmania/src/Background.cpp b/stepmania/src/Background.cpp index 1ca5eb2835..05ebe23427 100644 --- a/stepmania/src/Background.cpp +++ b/stepmania/src/Background.cpp @@ -40,6 +40,15 @@ Background::Background() m_pCurrentBGA = NULL; m_pFadingBGA = NULL; m_fSecsLeftInFade = 0; + m_pDancingCharacters = NULL; + m_bInitted = false; +} + +void Background::Init() +{ + if( m_bInitted ) + return; + m_bInitted = true; m_DangerAll.LoadFromAniDir( THEME->GetPathToB("ScreenGameplay danger all") ); FOREACH_PlayerNumber( p ) @@ -63,8 +72,6 @@ Background::Background() if( bOneOrMoreChars && !bShowingBeginnerHelper ) m_pDancingCharacters = new DancingCharacters; - else - m_pDancingCharacters = NULL; m_quadBorder[0].StretchTo( RectF(SCREEN_LEFT,SCREEN_TOP,LEFT_EDGE,SCREEN_BOTTOM) ); m_quadBorder[0].SetDiffuse( RageColor(0,0,0,1) ); @@ -284,6 +291,8 @@ void Background::LoadFromRandom( float fFirstBeat, float fLastBeat, const Timing void Background::LoadFromSong( const Song* pSong ) { + Init(); + Unload(); m_pSong = pSong; diff --git a/stepmania/src/Background.h b/stepmania/src/Background.h index a2c586ce45..bcdcb96a31 100644 --- a/stepmania/src/Background.h +++ b/stepmania/src/Background.h @@ -33,6 +33,7 @@ class Background : public ActorFrame public: Background(); ~Background(); + void Init(); virtual void LoadFromSong( const Song *pSong ); virtual void Unload(); @@ -55,6 +56,7 @@ protected: bool IsDeadPlayerVisible( PlayerNumber pn ); void UpdateCurBGChange( float fCurrentTime ); + bool m_bInitted; DancingCharacters* m_pDancingCharacters; BGAnimation m_DangerPlayer[NUM_PLAYERS];