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

PaneDisplay.h

Go to the documentation of this file.
00001 #ifndef PANE_DISPLAY_H 00002 #define PANE_DISPLAY_H 00003 00004 #include "ActorFrame.h" 00005 #include "Sprite.h" 00006 #include "PlayerNumber.h" 00007 #include "BitmapText.h" 00008 #include "ActorUtil.h" 00009 #include "GameConstantsAndTypes.h" 00010 00011 enum PaneTypes 00012 { 00013 PANE_SONG_DIFFICULTY, 00014 PANE_SONG_PROFILE_SCORES, 00015 PANE_SONG_MACHINE_SCORES, 00016 // PANE_SONG_STATISTICS, 00017 PANE_BATTLE_DIFFICULTY, 00018 PANE_COURSE_MACHINE_SCORES, 00019 PANE_COURSE_PROFILE_SCORES, 00020 // PANE_COURSE_DIFFICULTY, 00021 NUM_PANES, 00022 PANE_INVALID 00023 }; 00024 00025 enum PaneModes 00026 { 00027 PANEMODE_SONG, 00028 PANEMODE_BATTLE, 00029 PANEMODE_COURSE, 00030 NUM_PANE_MODES 00031 }; 00032 00033 /* If the same piece of data is in multiple panes, use separate contents entries, 00034 * so it can be themed differently. */ 00035 enum PaneContents 00036 { 00037 SONG_NUM_STEPS, 00038 SONG_JUMPS, 00039 SONG_HOLDS, 00040 SONG_MINES, 00041 SONG_HANDS, 00042 SONG_DIFFICULTY_RADAR_STREAM, 00043 SONG_DIFFICULTY_RADAR_CHAOS, 00044 SONG_DIFFICULTY_RADAR_FREEZE, 00045 SONG_DIFFICULTY_RADAR_AIR, 00046 SONG_DIFFICULTY_RADAR_VOLTAGE, 00047 SONG_MACHINE_HIGH_SCORE, 00048 SONG_MACHINE_NUM_PLAYS, 00049 SONG_MACHINE_RANK, 00050 SONG_MACHINE_HIGH_NAME, 00051 SONG_PROFILE_HIGH_SCORE, 00052 SONG_PROFILE_NUM_PLAYS, 00053 SONG_PROFILE_RANK, 00054 COURSE_MACHINE_HIGH_SCORE, 00055 COURSE_MACHINE_NUM_PLAYS, 00056 COURSE_MACHINE_RANK, 00057 COURSE_MACHINE_HIGH_NAME, 00058 COURSE_PROFILE_HIGH_SCORE, 00059 COURSE_PROFILE_NUM_PLAYS, 00060 COURSE_PROFILE_RANK, 00061 COURSE_NUM_STEPS, 00062 COURSE_JUMPS, 00063 COURSE_HOLDS, 00064 COURSE_MINES, 00065 COURSE_HANDS, 00066 NUM_PANE_CONTENTS 00067 }; 00068 00069 class PaneDisplay: public ActorFrame 00070 { 00071 public: 00072 PaneDisplay(); 00073 00074 void Load( PlayerNumber pn ); 00075 void SetFromGameState(); 00076 void Move( int dir ); 00077 00078 void Update( float fDeltaTime ); 00079 00080 private: 00081 bool PaneIsValid( PaneTypes p ) const; 00082 PaneTypes GetNext( PaneTypes current, int dir ) const; 00083 void SetFocus( PaneTypes NewPane ); 00084 // void SetMode(); 00085 PaneModes GetMode() const; 00086 void SetContent( PaneContents c ); 00087 00088 AutoActor m_sprPaneUnder; 00089 AutoActor m_sprPaneOver; 00090 00091 BitmapText m_textContents[NUM_PANE_CONTENTS]; 00092 AutoActor m_Labels[NUM_PANE_CONTENTS]; 00093 ActorFrame m_ContentsFrame; 00094 00095 PaneTypes m_CurPane; 00096 PaneModes m_CurMode; 00097 PlayerNumber m_PlayerNumber; 00098 00099 PaneTypes m_PreferredPaneForMode[NUM_PANE_MODES]; 00100 }; 00101 00102 #endif 00103 00104 /* 00105 * (c) 2003 Glenn Maynard 00106 * All rights reserved. 00107 * 00108 * Permission is hereby granted, free of charge, to any person obtaining a 00109 * copy of this software and associated documentation files (the 00110 * "Software"), to deal in the Software without restriction, including 00111 * without limitation the rights to use, copy, modify, merge, publish, 00112 * distribute, and/or sell copies of the Software, and to permit persons to 00113 * whom the Software is furnished to do so, provided that the above 00114 * copyright notice(s) and this permission notice appear in all copies of 00115 * the Software and that both the above copyright notice(s) and this 00116 * permission notice appear in supporting documentation. 00117 * 00118 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 00119 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 00120 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF 00121 * THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS 00122 * INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT 00123 * OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS 00124 * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR 00125 * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 00126 * PERFORMANCE OF THIS SOFTWARE. 00127 */

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