diff --git a/stepmania/src/Background.cpp b/stepmania/src/Background.cpp index 9144aaa88f..7543abdff5 100644 --- a/stepmania/src/Background.cpp +++ b/stepmania/src/Background.cpp @@ -69,7 +69,10 @@ Background::Background() if( GAMESTATE->IsPlayerEnabled(p) ) bOneOrMoreChars = true; if( bOneOrMoreChars ) + { m_pDancingCharacters = new DancingCharacters; + m_pDancingCharacters->LoadNextSong(); + } else m_pDancingCharacters = NULL; @@ -375,6 +378,8 @@ void Background::LoadFromSong( Song* pSong ) m_BGADanger.SetZoomY( fYZoom ); TEXTUREMAN->EnableOddDimensionWarning(); + + m_pDancingCharacters->LoadNextSong(); } diff --git a/stepmania/src/DancingCharacters.cpp b/stepmania/src/DancingCharacters.cpp index 642da8ecfe..e5dd5d04fa 100644 --- a/stepmania/src/DancingCharacters.cpp +++ b/stepmania/src/DancingCharacters.cpp @@ -60,10 +60,12 @@ DancingCharacters::DancingCharacters() m_Character[p].LoadMilkshapeAsciiBones( "warmup", pChar->GetWarmUpAnimationPath() ); m_Character[p].LoadMilkshapeAsciiBones( "dance", pChar->GetDanceAnimationPath() ); m_Character[p].LoadMilkshapeAsciiBones( "howtoplay", pChar->GetHowToPlayAnimationPath() ); - m_Character[p].PlayAnimation( "rest" ); this->AddChild( &m_Character[p] ); } +} +void DancingCharacters::LoadNextSong() +{ // initial camera sweep is still m_CameraDistance = CAMERA_REST_DISTANCE; m_CameraPanYStart = 0; @@ -77,9 +79,13 @@ DancingCharacters::DancingCharacters() * in course mode. Init in first update? */ if( GAMESTATE->m_pCurSong ) m_fThisCameraEndBeat = GAMESTATE->m_pCurSong->m_fFirstBeat; - + + for( int p=0; pIsPlayerEnabled(p) ) + m_Character[p].PlayAnimation( "rest" ); } + int Neg1OrPos1() { return rand()%2 ? -1 : +1; } void DancingCharacters::Update( float fDelta ) diff --git a/stepmania/src/DancingCharacters.h b/stepmania/src/DancingCharacters.h index 643b3b8782..b1be9291d4 100644 --- a/stepmania/src/DancingCharacters.h +++ b/stepmania/src/DancingCharacters.h @@ -21,6 +21,8 @@ class DancingCharacters : public ActorFrame public: DancingCharacters(); + virtual void LoadNextSong(); + virtual void Update( float fDelta ); virtual void DrawPrimitives();