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.
This commit is contained in:
@@ -99,6 +99,12 @@ void BeginnerHelper::Initialize( int iDancePadType )
|
|||||||
|
|
||||||
for( int pl=0; pl<NUM_PLAYERS; pl++ ) // Load players
|
for( int pl=0; pl<NUM_PLAYERS; pl++ ) // Load players
|
||||||
{
|
{
|
||||||
|
// if there is no character set, try loading a random one.
|
||||||
|
if( GAMESTATE->m_pCurCharacters[pl] == NULL )
|
||||||
|
{
|
||||||
|
GAMESTATE->m_pCurCharacters[pl] = GAMESTATE->GetRandomCharacter();
|
||||||
|
}
|
||||||
|
|
||||||
if( GAMESTATE->m_PreferredDifficulty[pl] == DIFFICULTY_BEGINNER && GAMESTATE->m_pCurCharacters[pl] != NULL )
|
if( GAMESTATE->m_PreferredDifficulty[pl] == DIFFICULTY_BEGINNER && GAMESTATE->m_pCurCharacters[pl] != NULL )
|
||||||
{
|
{
|
||||||
// Load textures
|
// Load textures
|
||||||
|
|||||||
@@ -107,8 +107,8 @@ void GameState::Reset()
|
|||||||
|
|
||||||
for( p=0; p<NUM_PLAYERS; p++ )
|
for( p=0; p<NUM_PLAYERS; p++ )
|
||||||
{
|
{
|
||||||
if( PREFSMAN->m_bShowDancingCharacters && m_pCharacters.size() )
|
if( PREFSMAN->m_bShowDancingCharacters )
|
||||||
m_pCurCharacters[p] = m_pCharacters[rand()%m_pCharacters.size()];
|
m_pCurCharacters[p] = GetRandomCharacter();
|
||||||
else
|
else
|
||||||
m_pCurCharacters[p] = NULL;
|
m_pCurCharacters[p] = NULL;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -94,6 +94,13 @@ public:
|
|||||||
return true;
|
return true;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
Character* GameState::GetRandomCharacter()
|
||||||
|
{
|
||||||
|
if( m_pCharacters.size() )
|
||||||
|
return m_pCharacters[rand()%m_pCharacters.size()];
|
||||||
|
else
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
PlayerController m_PlayerController[NUM_PLAYERS];
|
PlayerController m_PlayerController[NUM_PLAYERS];
|
||||||
|
|
||||||
|
|||||||
@@ -55,13 +55,11 @@ ScreenHowToPlay::ScreenHowToPlay() : ScreenAttract("ScreenHowToPlay")
|
|||||||
// Display random character+pad
|
// Display random character+pad
|
||||||
if( GAMESTATE->m_pCharacters.size() )
|
if( GAMESTATE->m_pCharacters.size() )
|
||||||
{
|
{
|
||||||
int iRnd;
|
Character* rndchar = GAMESTATE->GetRandomCharacter();
|
||||||
iRnd = rand() % ( GAMESTATE->m_pCharacters.size() );
|
|
||||||
if( iRnd != 0 )
|
m_mCharacter.LoadMilkshapeAscii( rndchar->GetModelPath() );
|
||||||
{
|
|
||||||
m_mCharacter.LoadMilkshapeAscii( GAMESTATE->m_pCharacters[iRnd]->GetModelPath() );
|
|
||||||
m_mDancePad.LoadMilkshapeAscii("Characters" SLASH "DancePad-DDR.txt");
|
m_mDancePad.LoadMilkshapeAscii("Characters" SLASH "DancePad-DDR.txt");
|
||||||
m_mCharacter.LoadMilkshapeAsciiBones("howtoplay", GAMESTATE->m_pCharacters[iRnd]->GetHowToPlayAnimationPath() );
|
m_mCharacter.LoadMilkshapeAsciiBones("howtoplay", rndchar->GetHowToPlayAnimationPath() );
|
||||||
|
|
||||||
m_mCharacter.SetRotationX( 40 );
|
m_mCharacter.SetRotationX( 40 );
|
||||||
m_mDancePad.SetRotationX( 35 );
|
m_mDancePad.SetRotationX( 35 );
|
||||||
@@ -70,7 +68,6 @@ ScreenHowToPlay::ScreenHowToPlay() : ScreenAttract("ScreenHowToPlay")
|
|||||||
this->AddChild(&m_mCharacter);
|
this->AddChild(&m_mCharacter);
|
||||||
this->AddChild(&m_mDancePad);
|
this->AddChild(&m_mDancePad);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user