Files
itgmania212121/stepmania/src/Course.h
T

69 lines
1.7 KiB
C++
Raw Normal View History

#ifndef COURSE_H
#define COURSE_H
2002-06-14 22:25:22 +00:00
/*
-----------------------------------------------------------------------------
2002-07-27 19:29:51 +00:00
Class: Course
2002-06-14 22:25:22 +00:00
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"
2002-12-17 05:41:04 +00:00
2002-07-28 20:28:37 +00:00
struct PlayerOptions;
struct SongOptions;
2002-06-14 22:25:22 +00:00
class Song;
struct Notes;
class Course
{
2002-12-17 05:30:10 +00:00
int m_iStages;
2002-12-17 05:16:33 +00:00
2002-12-17 05:41:04 +00:00
struct course_entry {
CString description;
CString modifiers; // set player and song options from these
Song *song;
};
vector<course_entry> entries;
vector<int> order;
2002-06-14 22:25:22 +00:00
public:
Course();
2002-06-14 22:25:22 +00:00
CString m_sName;
CString m_sBannerPath;
CString m_sCDTitlePath;
2002-12-17 05:16:33 +00:00
2002-07-02 17:34:20 +00:00
bool m_bRepeat; // repeat after last song?
2002-07-29 03:06:55 +00:00
bool m_bRandomize; // play the songs in a random order
2002-07-27 19:29:51 +00:00
int m_iLives; // -1 means use bar life meter
int m_iExtra; // extra stage number...
2002-07-02 17:34:20 +00:00
2002-12-17 05:16:33 +00:00
Notes *GetNotesForStage( int iStage );
2002-12-17 05:23:45 +00:00
Song *GetSong( int iStage ) const;
CString GetDescription( int iStage ) const;
CString GetModifiers( int iStage ) const;
2002-07-28 20:28:37 +00:00
void GetPlayerOptions( PlayerOptions* pPO_out );
void GetSongOptions( SongOptions* pSO_out);
2002-12-17 05:23:45 +00:00
int GetNumStages() const;
2002-06-14 22:25:22 +00:00
2003-01-03 05:56:28 +00:00
void LoadFromCRSFile( CString sPath, vector<Song*> &apSongs );
void CreateEndlessCourseFromGroupAndDifficulty( CString sGroupName, Difficulty dc, vector<Song*> &apSongsInGroup );
void AddStage( Song* pSong, CString sDescription, CString sModifiers );
2002-06-14 22:25:22 +00:00
2003-01-03 05:56:28 +00:00
void GetSongAndNotesForCurrentStyle( vector<Song*>& apSongsOut, vector<Notes*>& apNotesOut, CStringArray& asModifiersOut, bool bShuffled );
RageColor GetColor();
private:
void Shuffle();
2002-06-14 22:25:22 +00:00
};
2002-07-27 19:29:51 +00:00
2003-01-03 05:56:28 +00:00
void SortCoursePointerArrayByDifficulty( vector<Course*> &apCourses );
2002-07-27 19:29:51 +00:00
#endif