Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members

ScreenSelectMusic.h

Go to the documentation of this file.
00001 /* ScreenSelectMusic - Choose a Song and Steps. */ 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 * (c) 2001-2004 Chris Danford 00127 * All rights reserved. 00128 * 00129 * Permission is hereby granted, free of charge, to any person obtaining a 00130 * copy of this software and associated documentation files (the 00131 * "Software"), to deal in the Software without restriction, including 00132 * without limitation the rights to use, copy, modify, merge, publish, 00133 * distribute, and/or sell copies of the Software, and to permit persons to 00134 * whom the Software is furnished to do so, provided that the above 00135 * copyright notice(s) and this permission notice appear in all copies of 00136 * the Software and that both the above copyright notice(s) and this 00137 * permission notice appear in supporting documentation. 00138 * 00139 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 00140 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 00141 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF 00142 * THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS 00143 * INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT 00144 * OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS 00145 * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR 00146 * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 00147 * PERFORMANCE OF THIS SOFTWARE. 00148 */

Generated on Thu Jan 27 20:57:32 2005 for StepMania by doxygen 1.3.7