#pragma once /* ----------------------------------------------------------------------------- Class: Course Desc: A queue of songs and notes. Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved. Chris Danford ----------------------------------------------------------------------------- */ #include "GameConstantsAndTypes.h" struct PlayerOptions; struct SongOptions; class Song; struct Notes; const int MAX_COURSE_STAGES = 300; // Increased since the user can place all Bemani songs in a single folder class Course { public: Course() { m_iStages = 0; m_bRepeat = false; m_bRandomize = false; m_iLives = 4; m_iExtra = 0; for( int i=0; i &apSongs ); void CreateEndlessCourseFromGroupAndDifficultyClass( CString sGroupName, DifficultyClass dc, CArray &apSongsInGroup ); void AddStage( Song* pSong, CString sDescription, CString sModifiers ) { ASSERT( m_iStages <= MAX_COURSE_STAGES - 1 ); m_apSongs[m_iStages] = pSong; m_asDescriptions[m_iStages] = sDescription; m_asModifiers[m_iStages] = sModifiers; SongOrdering[m_iStages] = m_iStages; m_iStages++; } void GetSongAndNotesForCurrentStyle( CArray& apSongsOut, CArray& apNotesOut, CStringArray& asModifiersOut, bool bShuffled ); D3DXCOLOR GetColor(); private: int SongOrdering[MAX_COURSE_STAGES]; void Shuffle(); }; void SortCoursePointerArrayByDifficulty( CArray &apCourses );