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

ScreenGameplayMultiplayer.h

Go to the documentation of this file.
00001 /* ScreenGameplayMultiplayer */ 00002 00003 #ifndef ScreenGameplayMultiplayer_H 00004 #define ScreenGameplayMultiplayer_H 00005 00006 #include "Screen.h" 00007 #include "Background.h" 00008 #include "Foreground.h" 00009 #include "ScoreDisplay.h" 00010 #include "Transition.h" 00011 #include "Player.h" 00012 #include "EnumHelper.h" 00013 #include "AutoKeysounds.h" 00014 #include "PlayerState.h" 00015 #include "StageStats.h" 00016 00017 enum MultiPlayer { 00018 MPLAYER_1 = 0, 00019 MPLAYER_2, 00020 MPLAYER_3, 00021 MPLAYER_4, 00022 MPLAYER_5, 00023 MPLAYER_6, 00024 MPLAYER_7, 00025 MPLAYER_8, 00026 MPLAYER_9, 00027 MPLAYER_10, 00028 MPLAYER_11, 00029 MPLAYER_12, 00030 MPLAYER_13, 00031 MPLAYER_14, 00032 MPLAYER_15, 00033 MPLAYER_16, 00034 NUM_MULTI_PLAYERS, // leave this at the end 00035 MULTI_PLAYER_INVALID 00036 }; 00037 #define FOREACH_MultiPlayer( pn ) FOREACH_ENUM( MultiPlayer, NUM_MULTI_PLAYERS, pn ) 00038 00039 class Song; 00040 class Steps; 00041 00042 class ScreenGameplayMultiplayer : public Screen 00043 { 00044 public: 00045 ScreenGameplayMultiplayer( CString sName, bool bDemonstration = false ); 00046 virtual void Init(); 00047 virtual ~ScreenGameplayMultiplayer(); 00048 00049 virtual void Update( float fDeltaTime ); 00050 virtual void DrawPrimitives(); 00051 virtual void Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI ); 00052 virtual void HandleScreenMessage( const ScreenMessage SM ); 00053 00054 virtual bool UsesBackground() const { return false; } 00055 00056 protected: 00057 void TweenOnScreen(); 00058 void TweenOffScreen(); 00059 00060 bool IsLastSong(); 00061 void SetupSong( MultiPlayer p, int iSongIndex ); 00062 void LoadNextSong(); 00063 float StartPlayingSong(float MinTimeToNotes, float MinTimeToMusic); 00064 void ShowSavePrompt( ScreenMessage SM_SendWhenDone ); 00065 00066 void UpdateSongPosition( float fDeltaTime ); 00067 void StageFinished( bool bBackedOut ); 00068 00069 vector<Song*> m_vpSongsQueue; 00070 vector<Steps*> m_vpStepsQueue; 00071 vector<AttackArray> m_vModifiersQueue; 00072 00073 Background m_Background; 00074 Foreground m_Foreground; 00075 00076 ScoreDisplay* m_pPrimaryScoreDisplay[NUM_MULTI_PLAYERS]; 00077 ScoreKeeper* m_pPrimaryScoreKeeper[NUM_MULTI_PLAYERS]; 00078 00079 Transition m_In; 00080 Transition m_Out; 00081 Transition m_Back; 00082 00083 Player m_AutoPlayer; 00084 PlayerState m_PlayerState[NUM_MULTI_PLAYERS]; 00085 PlayerStageStats m_PlayerStageStats[NUM_MULTI_PLAYERS]; 00086 Player m_HumanPlayer[NUM_MULTI_PLAYERS]; 00087 00088 AutoKeysounds m_AutoKeysounds; 00089 RageSound *m_pSoundMusic; 00090 }; 00091 00092 00093 #endif 00094 00095 /* 00096 * (c) 2001-2004 Chris Danford, Glenn Maynard 00097 * All rights reserved. 00098 * 00099 * Permission is hereby granted, free of charge, to any person obtaining a 00100 * copy of this software and associated documentation files (the 00101 * "Software"), to deal in the Software without restriction, including 00102 * without limitation the rights to use, copy, modify, merge, publish, 00103 * distribute, and/or sell copies of the Software, and to permit persons to 00104 * whom the Software is furnished to do so, provided that the above 00105 * copyright notice(s) and this permission notice appear in all copies of 00106 * the Software and that both the above copyright notice(s) and this 00107 * permission notice appear in supporting documentation. 00108 * 00109 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 00110 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 00111 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF 00112 * THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS 00113 * INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT 00114 * OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS 00115 * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR 00116 * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 00117 * PERFORMANCE OF THIS SOFTWARE. 00118 */

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