00001
00002
00003
#ifndef SCREEN_SELECT_MUSIC_H
00004
#define SCREEN_SELECT_MUSIC_H
00005
00006
#include "ScreenWithMenuElements.h"
00007
#include "Sprite.h"
00008
#include "BitmapText.h"
00009
#include "GameConstantsAndTypes.h"
00010
#include "MusicWheel.h"
00011
#include "Banner.h"
00012
#include "FadingBanner.h"
00013
#include "BPMDisplay.h"
00014
#include "GrooveRadar.h"
00015
#include "GrooveGraph.h"
00016
#include "DifficultyIcon.h"
00017
#include "DifficultyMeter.h"
00018
#include "OptionIconRow.h"
00019
#include "DifficultyDisplay.h"
00020
#include "DifficultyList.h"
00021
#include "CourseContentsList.h"
00022
#include "HelpDisplay.h"
00023
#include "PaneDisplay.h"
00024
#include "Character.h"
00025
#include "RageUtil_BackgroundLoader.h"
00026
00027 class ScreenSelectMusic :
public ScreenWithMenuElements
00028 {
00029
public:
00030
ScreenSelectMusic(
CString sName );
00031
virtual ~ScreenSelectMusic();
00032
00033
virtual void DrawPrimitives();
00034
00035
virtual void Update(
float fDeltaTime );
00036
virtual void Input(
const DeviceInput& DeviceI,
const InputEventType type,
const GameInput &GameI,
const MenuInput &MenuI,
const StyleInput &StyleI );
00037
virtual void HandleScreenMessage(
const ScreenMessage SM );
00038
00039
virtual void MenuStart(
PlayerNumber pn );
00040
virtual void MenuBack(
PlayerNumber pn );
00041
00042
protected:
00043
void TweenOnScreen();
00044
void TweenOffScreen();
00045
void TweenScoreOnAndOffAfterChangeSort();
00046 enum DisplayMode {
DISPLAY_SONGS,
DISPLAY_COURSES,
DISPLAY_MODES } m_DisplayMode;
00047
void SwitchDisplayMode( DisplayMode dm );
00048
void TweenSongPartsOnScreen(
bool Initial );
00049
void TweenSongPartsOffScreen(
bool Final );
00050
void TweenCoursePartsOnScreen(
bool Initial );
00051
void TweenCoursePartsOffScreen(
bool Final );
00052
void SkipSongPartTweens();
00053
void SkipCoursePartTweens();
00054
00055
void ChangeDifficulty( PlayerNumber pn,
int dir );
00056
00057
void AfterStepsChange( PlayerNumber pn );
00058
void AfterTrailChange( PlayerNumber pn );
00059
void SwitchToPreferredDifficulty();
00060
void AfterMusicChange();
00061
void SortOrderChanged();
00062
00063
void UpdateOptionsDisplays();
00064
void CheckBackgroundRequests();
00065
00066 vector<Steps*>
m_vpSteps;
00067 vector<Trail*>
m_vpTrails;
00068 int m_iSelection[
NUM_PLAYERS];
00069
00070 Sprite m_sprCharacterIcon[
NUM_PLAYERS];
00071 Sprite m_sprBannerMask;
00072 FadingBanner m_Banner;
00073 AutoActor m_sprBannerFrame;
00074 AutoActor m_sprExplanation;
00075 BPMDisplay m_BPMDisplay;
00076 Sprite m_sprStage;
00077 Sprite m_sprCDTitleFront,
m_sprCDTitleBack;
00078 Sprite m_sprDifficultyFrame[
NUM_PLAYERS];
00079 DifficultyIcon m_DifficultyIcon[
NUM_PLAYERS];
00080 Sprite m_AutoGenIcon[
NUM_PLAYERS];
00081 GrooveRadar m_GrooveRadar;
00082 GrooveGraph m_GrooveGraph;
00083 BitmapText m_textSongOptions;
00084 BitmapText m_textNumSongs;
00085 BitmapText m_textTotalTime;
00086 OptionIconRow m_OptionIconRow[
NUM_PLAYERS];
00087 Sprite m_sprMeterFrame[
NUM_PLAYERS];
00088 Sprite m_sprNonPresence[
NUM_PLAYERS];
00089 DifficultyMeter m_DifficultyMeter[
NUM_PLAYERS];
00090 MusicSortDisplay m_MusicSortDisplay;
00091 Sprite m_sprHighScoreFrame[
NUM_PLAYERS];
00092 BitmapText m_textHighScore[
NUM_PLAYERS];
00093 MusicWheel m_MusicWheel;
00094 AutoActor m_MusicWheelUnder;
00095 Sprite m_sprBalloon;
00096 AutoActor m_sprCourseHasMods;
00097 DifficultyDisplay m_DifficultyDisplay;
00098 DifficultyList m_DifficultyList;
00099 CourseContentsList m_CourseContentsFrame;
00100 HelpDisplay m_Artist;
00101 BitmapText m_MachineRank;
00102 PaneDisplay m_PaneDisplay[
NUM_PLAYERS];
00103
00104 bool m_bMadeChoice;
00105 bool m_bGoToOptions;
00106 Sprite m_sprOptionsMessage;
00107 CString m_sSampleMusicToPlay;
00108 TimingData *
m_pSampleMusicTimingData;
00109 float m_fSampleStartSeconds,
m_fSampleLengthSeconds;
00110 bool m_bAllowOptionsMenu,
m_bAllowOptionsMenuRepeat;
00111
00112 Transition m_bgOptionsOut;
00113 Transition m_bgNoOptionsOut;
00114
00115 RageSound m_soundDifficultyEasier;
00116 RageSound m_soundDifficultyHarder;
00117 RageSound m_soundOptionsChange;
00118 RageSound m_soundLocked;
00119
00120 BackgroundLoader m_BackgroundLoader;
00121 };
00122
00123
#endif
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142
00143
00144
00145
00146
00147
00148