Files
itgmania212121/stepmania/src/song.h
T

78 lines
1.6 KiB
C++

/*
-----------------------------------------------------------------------------
File: Song.h
Desc: Holds metadata for a song and the song's step data.
Copyright (c) 2001 Chris Danford. All rights reserved.
-----------------------------------------------------------------------------
*/
#ifndef _SONG_H_
#define _SONG_H_
#include "Steps.h"
class Steps; // why is this needed?
class Song
{
public:
Song();
bool LoadFromSongDir( CString sDir );
bool IsUsingMovieBG()
{
CString sBGFile = m_sBackground;
sBGFile.MakeLower();
return sBGFile.Right(3) == "avi" ||
sBGFile.Right(3) == "mpg";
};
private:
bool LoadSongInfoFromBMSFile( CString sPath );
bool LoadSongInfoFromMSDFile( CString sPath );
void TidyUpData();
public:
CString GetSongFilePath() {return m_sSongDir + m_sSongFile; };
CString GetSongFileDir() {return m_sSongDir; };
CString GetMusicPath() {return m_sSongDir + m_sMusic; };
CString GetBannerPath() {return m_sSongDir + m_sBanner; };
CString GetBackgroundPath() {return m_sSongDir + m_sBackground; };
// Steps& GetStepsAt( int iIndex ) {return arraySteps[iIndex]; };
CString GetTitle() {return m_sTitle; };
CString GetArtist() {return m_sArtist; };
CString GetCreator() {return m_sCreator; };
float GetBeatOffset() {return m_fBeatOffset; };
float GetBPM() {return m_fBPM; };
float GetBeatsPerSecond() {return m_fBPM / 60.0f; };
public:
private:
CString m_sSongFile;
CString m_sSongDir;
CString m_sTitle;
CString m_sArtist;
CString m_sCreator;
float m_fBPM;
float m_fBeatOffset;
CString m_sMusic;
CString m_sBanner;
CString m_sBackground;
public:
CArray<Steps, Steps&> arraySteps;
};
#endif