00001 /* ScreenNameEntry - Enter a name for a new high score. */ 00002 00003 #ifndef SCREEN_NAME_ENTRY_H 00004 #define SCREEN_NAME_ENTRY_H 00005 00006 #include "Screen.h" 00007 #include "BitmapText.h" 00008 #include "Transition.h" 00009 #include "RandomSample.h" 00010 #include "ReceptorArrowRow.h" 00011 #include "MenuTimer.h" 00012 00013 00014 class ScreenNameEntry : public Screen 00015 { 00016 public: 00017 ScreenNameEntry( CString sName ); 00018 virtual ~ScreenNameEntry(); 00019 00020 virtual void Update( float fDeltaTime ); 00021 virtual void DrawPrimitives(); 00022 virtual void Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI ); 00023 virtual void HandleScreenMessage( const ScreenMessage SM ); 00024 00025 virtual void MenuStart( PlayerNumber pn ); 00026 00027 enum { ABS_MAX_RANKING_NAME_LENGTH = 10 }; 00028 private: 00029 bool AnyStillEntering() const; 00030 00031 ReceptorArrowRow m_ReceptorArrowRow[NUM_PLAYERS]; 00032 BitmapText m_textSelectedChars[NUM_PLAYERS][ABS_MAX_RANKING_NAME_LENGTH]; 00033 BitmapText m_textScrollingChars[NUM_PLAYERS][ABS_MAX_RANKING_NAME_LENGTH]; 00034 BitmapText m_textCategory[NUM_PLAYERS]; 00035 MenuTimer m_Timer; 00036 00037 Transition m_In; 00038 Transition m_Out; 00039 00040 RageSound m_soundStep; 00041 00042 float m_fFakeBeat; 00043 CString m_sSelectedName[NUM_PLAYERS]; 00044 bool m_bStillEnteringName[NUM_PLAYERS]; 00045 00046 vector<int> m_ColToStringIndex[NUM_PLAYERS]; 00047 }; 00048 00049 #endif 00050 00051 /* 00052 * (c) 2001-2004 Chris Danford 00053 * All rights reserved. 00054 * 00055 * Permission is hereby granted, free of charge, to any person obtaining a 00056 * copy of this software and associated documentation files (the 00057 * "Software"), to deal in the Software without restriction, including 00058 * without limitation the rights to use, copy, modify, merge, publish, 00059 * distribute, and/or sell copies of the Software, and to permit persons to 00060 * whom the Software is furnished to do so, provided that the above 00061 * copyright notice(s) and this permission notice appear in all copies of 00062 * the Software and that both the above copyright notice(s) and this 00063 * permission notice appear in supporting documentation. 00064 * 00065 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 00066 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 00067 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF 00068 * THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS 00069 * INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT 00070 * OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS 00071 * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR 00072 * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 00073 * PERFORMANCE OF THIS SOFTWARE. 00074 */