00001 /* ScreenSelectMode - The "Style Select Screen" for Ez2dancer */ 00002 00003 #ifndef SCREEN_SELECT_MODE_H 00004 #define SCREEN_SELECT_MODE_H 00005 /* Includes */ 00006 00007 #include "ScreenSelect.h" 00008 #include "BGAnimation.h" 00009 #include "Screen.h" 00010 #include "Sprite.h" 00011 #include "Quad.h" 00012 #include "ScrollingList.h" 00013 #include "GameConstantsAndTypes.h" 00014 #include "GameCommand.h" 00015 #include "BitmapText.h" 00016 #include "RandomSample.h" 00017 #include "Character.h" 00018 00019 /* Class Definition */ 00020 00021 #define MAX_ELEMS 30 00022 00023 class ScreenSelectMode : public ScreenSelect 00024 { 00025 public: 00026 ScreenSelectMode( CString sName ); // Constructor 00027 virtual ~ScreenSelectMode(); // Destructor 00028 virtual void MenuLeft( PlayerNumber pn ); 00029 virtual void MenuRight( PlayerNumber pn ); 00030 virtual void MenuUp(PlayerNumber pn ); 00031 virtual void MenuDown(PlayerNumber pn); 00032 virtual void MenuStart( PlayerNumber pn ); 00033 virtual void Update( float fDelta ); 00034 virtual void DrawPrimitives(); 00035 virtual void HandleScreenMessage( const ScreenMessage SM ); 00036 protected: 00037 virtual int GetSelectionIndex( PlayerNumber pn ); 00038 virtual void UpdateSelectableChoices(); 00039 void SetCharacters(); 00040 void ChangeBGA(); 00041 int m_iNumChoices; 00042 int m_iSelectableChoices[MAX_ELEMS]; 00043 00044 RageSound m_soundModeChange; 00045 RageSound m_soundConfirm; 00046 RageSound m_soundStart; 00047 CStringArray arrayLocations; 00048 ScrollingList m_ScrollingList; 00049 Sprite m_ChoiceListFrame; 00050 Sprite m_ChoiceListHighlight; 00051 Sprite m_sprJoinMessage[NUM_PLAYERS]; 00052 Sprite m_sprJoinFrame[NUM_PLAYERS]; 00053 Sprite m_CurChar[NUM_PLAYERS]; 00054 int m_iCurrentChar[NUM_PLAYERS]; 00055 Sprite m_Guide; 00056 vector<BGAnimation*> m_Backgrounds; 00057 bool m_bSelected; 00058 bool m_b2DAvailable; 00059 bool m_bCharsAvailable; 00060 00061 // private: 00062 // vector<Character*> m_Characters; 00063 }; 00064 00065 #endif 00066 00067 /* 00068 * (c) 2001-2003 "Frieza", Chris Danford 00069 * All rights reserved. 00070 * 00071 * Permission is hereby granted, free of charge, to any person obtaining a 00072 * copy of this software and associated documentation files (the 00073 * "Software"), to deal in the Software without restriction, including 00074 * without limitation the rights to use, copy, modify, merge, publish, 00075 * distribute, and/or sell copies of the Software, and to permit persons to 00076 * whom the Software is furnished to do so, provided that the above 00077 * copyright notice(s) and this permission notice appear in all copies of 00078 * the Software and that both the above copyright notice(s) and this 00079 * permission notice appear in supporting documentation. 00080 * 00081 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 00082 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 00083 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF 00084 * THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS 00085 * INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT 00086 * OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS 00087 * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR 00088 * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 00089 * PERFORMANCE OF THIS SOFTWARE. 00090 */