Use Init() for all screens, so we can set state before the base class

members are loaded--they'll see resets, score finalization, etc.  It
also results in smaller code, due to a g++ bug that causes constructors
to be emitted several times.
This commit is contained in:
Glenn Maynard
2005-02-23 06:29:05 +00:00
parent 1213a2c9b0
commit b51b0cfb4c
100 changed files with 349 additions and 42 deletions
+8 -2
View File
@@ -68,11 +68,17 @@ ScreenSelectMusic::ScreenSelectMusic( CString sClassName ) : ScreenWithMenuEleme
LIGHTSMAN->SetLightsMode( LIGHTSMODE_MENU );
m_DisplayMode = GAMESTATE->IsCourseMode() ? DISPLAY_COURSES : DISPLAY_SONGS;
/* Finish any previous stage. It's OK to call this when we havn't played a stage yet.
* Do this before anything that might look at GAMESTATE->m_iCurrentStageIndex. */
GAMESTATE->FinishStage();
}
void ScreenSelectMusic::Init()
{
ScreenWithMenuElements::Init();
m_DisplayMode = GAMESTATE->IsCourseMode() ? DISPLAY_COURSES : DISPLAY_SONGS;
/* Cache: */
g_sFallbackCDTitlePath = THEME->GetPathG(m_sName,"fallback cdtitle");