This commit is contained in:
Glenn Maynard
2005-09-03 03:52:22 +00:00
parent 8fdaefe8f5
commit 5eb0e9a128
4 changed files with 33 additions and 27 deletions
+4 -8
View File
@@ -129,8 +129,8 @@ void MusicWheel::Load( CString sType )
GAMESTATE->GetCurrentStyle(),
pSong,
pSteps,
po,
so );
&po,
&so );
GAMESTATE->m_pCurSong.Set( pSong );
GAMESTATE->m_pPreferredSong = pSong;
FOREACH_HumanPlayer( p )
@@ -413,9 +413,7 @@ void MusicWheel::GetSongList(vector<Song*> &arraySongs, SortOrder so, CString sP
{
Song* pSong;
Steps* pSteps;
PlayerOptions po;
SongOptions so;
SONGMAN->GetExtraStageInfo( GAMESTATE->IsExtraStage2(), GAMESTATE->GetCurrentStyle(), pSong, pSteps, po, so );
SONGMAN->GetExtraStageInfo( GAMESTATE->IsExtraStage2(), GAMESTATE->GetCurrentStyle(), pSong, pSteps, NULL, NULL );
if( find( arraySongs.begin(), arraySongs.end(), pSong ) == arraySongs.end() )
arraySongs.push_back( pSong );
@@ -612,9 +610,7 @@ void MusicWheel::BuildWheelItemDatas( vector<WheelItemData> &arrayWheelItemDatas
{
Song* pSong;
Steps* pSteps;
PlayerOptions po;
SongOptions so;
SONGMAN->GetExtraStageInfo( GAMESTATE->IsExtraStage2(), GAMESTATE->GetCurrentStyle(), pSong, pSteps, po, so );
SONGMAN->GetExtraStageInfo( GAMESTATE->IsExtraStage2(), GAMESTATE->GetCurrentStyle(), pSong, pSteps, NULL, NULL );
for( unsigned i=0; i<arrayWheelItemDatas.size(); i++ )
{
+1 -3
View File
@@ -1249,9 +1249,7 @@ void ScreenSelectMusic::MenuStart( PlayerNumber pn )
/* Check if user selected the real extra stage. */
Song* pSong;
Steps* pSteps;
PlayerOptions po;
SongOptions so;
SONGMAN->GetExtraStageInfo( false, GAMESTATE->GetCurrentStyle(), pSong, pSteps, po, so );
SONGMAN->GetExtraStageInfo( false, GAMESTATE->GetCurrentStyle(), pSong, pSteps, NULL, NULL );
ASSERT(pSong);
/* Enable 2nd extra stage if user chose the correct song */
+26 -13
View File
@@ -908,7 +908,7 @@ void SongManager::GetCoursesInGroup( vector<Course*> &AddTo, const CString &sCou
}
bool SongManager::GetExtraStageInfoFromCourse( bool bExtra2, CString sPreferredGroup,
Song*& pSongOut, Steps*& pStepsOut, PlayerOptions& po_out, SongOptions& so_out )
Song*& pSongOut, Steps*& pStepsOut, PlayerOptions *pPlayerOptionsOut, SongOptions *pSongOptionsOut )
{
const CString sCourseSuffix = sPreferredGroup + "/" + (bExtra2 ? "extra2" : "extra1") + ".crs";
CString sCoursePath = SONGS_DIR + sCourseSuffix;
@@ -925,10 +925,16 @@ bool SongManager::GetExtraStageInfoFromCourse( bool bExtra2, CString sPreferredG
if( pTrail->m_vEntries.empty() )
return false;
po_out.Init();
po_out.FromString( pTrail->m_vEntries[0].Modifiers );
so_out.Init();
so_out.FromString( pTrail->m_vEntries[0].Modifiers );
if( pPlayerOptionsOut != NULL )
{
pPlayerOptionsOut->Init();
pPlayerOptionsOut->FromString( pTrail->m_vEntries[0].Modifiers );
}
if( pSongOptionsOut != NULL )
{
pSongOptionsOut->Init();
pSongOptionsOut->FromString( pTrail->m_vEntries[0].Modifiers );
}
pSongOut = pTrail->m_vEntries[0].pSong;
pStepsOut = pTrail->m_vEntries[0].pSteps;
@@ -954,7 +960,7 @@ bool CompareNotesPointersForExtra(const Steps *n1, const Steps *n2)
}
void SongManager::GetExtraStageInfo( bool bExtra2, const Style *sd,
Song*& pSongOut, Steps*& pStepsOut, PlayerOptions& po_out, SongOptions& so_out )
Song*& pSongOut, Steps*& pStepsOut, PlayerOptions *pPlayerOptionsOut, SongOptions *pSongOptionsOut )
{
CString sGroup = GAMESTATE->m_sPreferredSongGroup;
if( sGroup == GROUP_ALL )
@@ -973,7 +979,7 @@ void SongManager::GetExtraStageInfo( bool bExtra2, const Style *sd,
GAMESTATE->m_pCurSong? GAMESTATE->m_pCurSong->GetSongDir().c_str():"",
GAMESTATE->m_pCurSong? GAMESTATE->m_pCurSong->m_sGroupName.c_str():"") );
if(GetExtraStageInfoFromCourse(bExtra2, sGroup, pSongOut, pStepsOut, po_out, so_out))
if( GetExtraStageInfoFromCourse(bExtra2, sGroup, pSongOut, pStepsOut, pPlayerOptionsOut, pSongOptionsOut) )
return;
// Choose a hard song for the extra stage
@@ -1026,12 +1032,19 @@ void SongManager::GetExtraStageInfo( bool bExtra2, const Style *sd,
pStepsOut = (bExtra2 ? pExtra2Notes : pExtra1Notes);
po_out.Init();
so_out.Init();
po_out.m_fScrolls[PlayerOptions::SCROLL_REVERSE] = 1;
po_out.m_fScrollSpeed = 1.5f;
so_out.m_DrainType = (bExtra2 ? SongOptions::DRAIN_SUDDEN_DEATH : SongOptions::DRAIN_NO_RECOVER);
po_out.m_fDark = 1;
if( pPlayerOptionsOut != NULL )
{
pPlayerOptionsOut->Init();
pPlayerOptionsOut->m_fScrolls[PlayerOptions::SCROLL_REVERSE] = 1;
pPlayerOptionsOut->m_fScrollSpeed = 1.5f;
pPlayerOptionsOut->m_fDark = 1;
}
if( pSongOptionsOut != NULL )
{
pSongOptionsOut->Init();
pSongOptionsOut->m_DrainType = (bExtra2 ? SongOptions::DRAIN_SUDDEN_DEATH : SongOptions::DRAIN_NO_RECOVER);
}
}
Song* SongManager::GetRandomSong()
+2 -3
View File
@@ -96,8 +96,7 @@ public:
void GetCoursesInGroup( vector<Course*> &AddTo, const CString &sCourseGroup, bool bIncludeAutogen );
void GetExtraStageInfo( bool bExtra2, const Style *s,
Song*& pSongOut, Steps*& pStepsOut, PlayerOptions& po_out, SongOptions& so_out );
Song*& pSongOut, Steps*& pStepsOut, PlayerOptions *pPlayerOptionsOut, SongOptions *pSongOptionsOut );
Song* GetSongFromDir( CString sDir );
Course* GetCourseFromPath( CString sPath ); // path to .crs file, or path to song group dir
Course* GetCourseFromName( CString sName );
@@ -117,7 +116,7 @@ protected:
void LoadStepManiaSongDir( CString sDir, LoadingWindow *ld );
void LoadDWISongDir( CString sDir );
bool GetExtraStageInfoFromCourse( bool bExtra2, CString sPreferredGroup,
Song*& pSongOut, Steps*& pStepsOut, PlayerOptions& po_out, SongOptions& so_out );
Song*& pSongOut, Steps*& pStepsOut, PlayerOptions *pPlayerOptionsOut, SongOptions *pSongOptionsOut );
void SanityCheckGroupDir( CString sDir ) const;
void AddGroup( CString sDir, CString sGroupDirName );
int GetNumEditsLoadedFromProfile( ProfileSlot slot ) const;