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

GrooveRadar.h

Go to the documentation of this file.
00001 /* GrooveRadar - The song's GrooveRadar displayed in SelectSong. */ 00002 00003 #ifndef GROOVE_RADAR_H 00004 #define GROOVE_RADAR_H 00005 00006 #include "ActorFrame.h" 00007 #include "Sprite.h" 00008 #include "PlayerNumber.h" 00009 #include "GameConstantsAndTypes.h" 00010 class Steps; 00011 00012 00013 class GrooveRadar : public ActorFrame 00014 { 00015 public: 00016 GrooveRadar(); 00017 00018 void SetEmpty( PlayerNumber pn ) 00019 { 00020 SetFromSteps( pn, NULL ); 00021 } 00022 00023 void SetFromSteps( PlayerNumber pn, Steps* pSteps ) // NULL means no Song 00024 { 00025 m_GrooveRadarValueMap.SetFromSteps( pn, pSteps ); 00026 } 00027 00028 void TweenOnScreen(); 00029 void TweenOffScreen(); 00030 00031 protected: 00032 00033 // the value map must be a separate Actor so we can tween it separately from the labels 00034 class GrooveRadarValueMap : public ActorFrame 00035 { 00036 public: 00037 GrooveRadarValueMap(); 00038 00039 virtual void Update( float fDeltaTime ); 00040 virtual void DrawPrimitives(); 00041 00042 void SetFromSteps( PlayerNumber pn, Steps* pSteps ); // NULL means no Song 00043 00044 void TweenOnScreen(); 00045 void TweenOffScreen(); 00046 00047 bool m_bValuesVisible[NUM_PLAYERS]; 00048 float m_PercentTowardNew[NUM_PLAYERS]; 00049 float m_fValuesNew[NUM_PLAYERS][NUM_RADAR_CATEGORIES]; 00050 float m_fValuesOld[NUM_PLAYERS][NUM_RADAR_CATEGORIES]; 00051 00052 Sprite m_sprRadarBase; 00053 }; 00054 00055 GrooveRadarValueMap m_GrooveRadarValueMap; 00056 Sprite m_sprRadarLabels[NUM_RADAR_CATEGORIES]; 00057 }; 00058 00059 #endif 00060 00061 /* 00062 * (c) 2001-2004 Chris Danford 00063 * All rights reserved. 00064 * 00065 * Permission is hereby granted, free of charge, to any person obtaining a 00066 * copy of this software and associated documentation files (the 00067 * "Software"), to deal in the Software without restriction, including 00068 * without limitation the rights to use, copy, modify, merge, publish, 00069 * distribute, and/or sell copies of the Software, and to permit persons to 00070 * whom the Software is furnished to do so, provided that the above 00071 * copyright notice(s) and this permission notice appear in all copies of 00072 * the Software and that both the above copyright notice(s) and this 00073 * permission notice appear in supporting documentation. 00074 * 00075 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 00076 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 00077 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF 00078 * THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS 00079 * INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT 00080 * OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS 00081 * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR 00082 * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 00083 * PERFORMANCE OF THIS SOFTWARE. 00084 */

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