From cf23c9c14c72c0840da09f45ef32c69f57ebef78 Mon Sep 17 00:00:00 2001 From: Thad Ward Date: Mon, 25 Aug 2003 00:45:12 +0000 Subject: [PATCH] Move all random character selection to a separate function and make everything call that. Make BeginnerHelper attempt to randomly select a character if one isn't selected. --- stepmania/src/BeginnerHelper.cpp | 6 ++++++ stepmania/src/GameState.cpp | 4 ++-- stepmania/src/GameState.h | 7 +++++++ stepmania/src/ScreenHowToPlay.cpp | 27 ++++++++++++--------------- 4 files changed, 27 insertions(+), 17 deletions(-) diff --git a/stepmania/src/BeginnerHelper.cpp b/stepmania/src/BeginnerHelper.cpp index 95d1064a6d..c71b4ff00c 100644 --- a/stepmania/src/BeginnerHelper.cpp +++ b/stepmania/src/BeginnerHelper.cpp @@ -99,6 +99,12 @@ void BeginnerHelper::Initialize( int iDancePadType ) for( int pl=0; plm_pCurCharacters[pl] == NULL ) + { + GAMESTATE->m_pCurCharacters[pl] = GAMESTATE->GetRandomCharacter(); + } + if( GAMESTATE->m_PreferredDifficulty[pl] == DIFFICULTY_BEGINNER && GAMESTATE->m_pCurCharacters[pl] != NULL ) { // Load textures diff --git a/stepmania/src/GameState.cpp b/stepmania/src/GameState.cpp index 70b2aa2eb3..06564608a1 100644 --- a/stepmania/src/GameState.cpp +++ b/stepmania/src/GameState.cpp @@ -107,8 +107,8 @@ void GameState::Reset() for( p=0; pm_bShowDancingCharacters && m_pCharacters.size() ) - m_pCurCharacters[p] = m_pCharacters[rand()%m_pCharacters.size()]; + if( PREFSMAN->m_bShowDancingCharacters ) + m_pCurCharacters[p] = GetRandomCharacter(); else m_pCurCharacters[p] = NULL; } diff --git a/stepmania/src/GameState.h b/stepmania/src/GameState.h index e2492e1a0e..9110b3c2e9 100644 --- a/stepmania/src/GameState.h +++ b/stepmania/src/GameState.h @@ -94,6 +94,13 @@ public: return true; return false; } + Character* GameState::GetRandomCharacter() + { + if( m_pCharacters.size() ) + return m_pCharacters[rand()%m_pCharacters.size()]; + else + return NULL; + } PlayerController m_PlayerController[NUM_PLAYERS]; diff --git a/stepmania/src/ScreenHowToPlay.cpp b/stepmania/src/ScreenHowToPlay.cpp index 1c80b5cee3..5ba80bb2e5 100644 --- a/stepmania/src/ScreenHowToPlay.cpp +++ b/stepmania/src/ScreenHowToPlay.cpp @@ -55,21 +55,18 @@ ScreenHowToPlay::ScreenHowToPlay() : ScreenAttract("ScreenHowToPlay") // Display random character+pad if( GAMESTATE->m_pCharacters.size() ) { - int iRnd; - iRnd = rand() % ( GAMESTATE->m_pCharacters.size() ); - if( iRnd != 0 ) - { - m_mCharacter.LoadMilkshapeAscii( GAMESTATE->m_pCharacters[iRnd]->GetModelPath() ); - m_mDancePad.LoadMilkshapeAscii("Characters" SLASH "DancePad-DDR.txt"); - m_mCharacter.LoadMilkshapeAsciiBones("howtoplay", GAMESTATE->m_pCharacters[iRnd]->GetHowToPlayAnimationPath() ); - - m_mCharacter.SetRotationX( 40 ); - m_mDancePad.SetRotationX( 35 ); - m_mCharacter.Command("X,120;Y,300;Zoom,15;RotationY,180;sleep,4.7;linear,1.0;RotationY,360;Zoom,20;X,120;Y,400"); - m_mDancePad.Command("X,40;Y,310;Zoom,15;RotationY,180;sleep,4.7;linear,1.0;RotationY,360;Zoom,20;X,230;Y,390"); - this->AddChild(&m_mCharacter); - this->AddChild(&m_mDancePad); - } + Character* rndchar = GAMESTATE->GetRandomCharacter(); + + m_mCharacter.LoadMilkshapeAscii( rndchar->GetModelPath() ); + m_mDancePad.LoadMilkshapeAscii("Characters" SLASH "DancePad-DDR.txt"); + m_mCharacter.LoadMilkshapeAsciiBones("howtoplay", rndchar->GetHowToPlayAnimationPath() ); + + m_mCharacter.SetRotationX( 40 ); + m_mDancePad.SetRotationX( 35 ); + m_mCharacter.Command("X,120;Y,300;Zoom,15;RotationY,180;sleep,4.7;linear,1.0;RotationY,360;Zoom,20;X,120;Y,400"); + m_mDancePad.Command("X,40;Y,310;Zoom,15;RotationY,180;sleep,4.7;linear,1.0;RotationY,360;Zoom,20;X,230;Y,390"); + this->AddChild(&m_mCharacter); + this->AddChild(&m_mDancePad); } //