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

DifficultyList.h

Go to the documentation of this file.
00001 #ifndef DIFFICULTY_LIST_H 00002 #define DIFFICULTY_LIST_H 00003 00004 #include "ActorFrame.h" 00005 #include "ActorUtil.h" 00006 #include "PlayerNumber.h" 00007 #include "BitmapText.h" 00008 #include "DifficultyMeter.h" 00009 #include "ThemeMetric.h" 00010 00011 class Song; 00012 class Steps; 00013 00014 class DifficultyList: public ActorFrame 00015 { 00016 public: 00017 DifficultyList(); 00018 ~DifficultyList(); 00019 00020 void Load(); 00021 void SetFromGameState(); 00022 void TweenOnScreen(); 00023 void TweenOffScreen(); 00024 void Hide(); 00025 void Show(); 00026 00027 private: 00028 void UpdatePositions(); 00029 void PositionItems(); 00030 int GetCurrentRowIndex( PlayerNumber pn ) const; 00031 void HideRows(); 00032 CString GetDifficultyString( Difficulty d ) const; 00033 00034 AutoActor m_Cursors[NUM_PLAYERS]; 00035 ActorFrame m_CursorFrames[NUM_PLAYERS]; 00036 00037 struct Line 00038 { 00039 DifficultyMeter m_Meter; 00040 BitmapText m_Description; 00041 BitmapText m_Number; 00042 }; 00043 vector<Line> m_Lines; 00044 00045 Song *m_CurSong; 00046 bool m_bShown; 00047 00048 struct Row 00049 { 00050 Row() 00051 { 00052 m_Steps = NULL; 00053 m_dc = DIFFICULTY_INVALID; 00054 m_fY = 0; 00055 m_bHidden = false; 00056 } 00057 00058 Steps *m_Steps; 00059 Difficulty m_dc; 00060 float m_fY; 00061 bool m_bHidden; // currently off screen 00062 }; 00063 00064 vector<Row> m_Rows; 00065 00066 }; 00067 00068 #endif 00069 00070 /* 00071 * (c) 2003-2004 Glenn Maynard 00072 * All rights reserved. 00073 * 00074 * Permission is hereby granted, free of charge, to any person obtaining a 00075 * copy of this software and associated documentation files (the 00076 * "Software"), to deal in the Software without restriction, including 00077 * without limitation the rights to use, copy, modify, merge, publish, 00078 * distribute, and/or sell copies of the Software, and to permit persons to 00079 * whom the Software is furnished to do so, provided that the above 00080 * copyright notice(s) and this permission notice appear in all copies of 00081 * the Software and that both the above copyright notice(s) and this 00082 * permission notice appear in supporting documentation. 00083 * 00084 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 00085 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 00086 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF 00087 * THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS 00088 * INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT 00089 * OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS 00090 * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR 00091 * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 00092 * PERFORMANCE OF THIS SOFTWARE. 00093 */

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