From 9731e806b18d4502d2ed397e61c2063708156696 Mon Sep 17 00:00:00 2001 From: Chris Danford Date: Sat, 20 Aug 2005 22:51:43 +0000 Subject: [PATCH] move MultiPlayer and MultiPlayer join info into GameState --- stepmania/src/GameState.cpp | 2 ++ stepmania/src/GameState.h | 1 + stepmania/src/PlayerNumber.h | 16 +++++++++++ stepmania/src/ScreenGameplayMultiplayer.cpp | 2 +- stepmania/src/ScreenGameplayMultiplayer.h | 32 ++++----------------- 5 files changed, 25 insertions(+), 28 deletions(-) diff --git a/stepmania/src/GameState.cpp b/stepmania/src/GameState.cpp index e3f458b36d..a65ae1b764 100644 --- a/stepmania/src/GameState.cpp +++ b/stepmania/src/GameState.cpp @@ -166,6 +166,8 @@ void GameState::Reset() m_pCurStyle.Set( NULL ); FOREACH_PlayerNumber( p ) m_bSideIsJoined[p] = false; + FOREACH_MultiPlayer( p ) + m_bIsMultiPlayerJoined[p] = false; MEMCARDMAN->UnlockCards(); // m_iCoins = 0; // don't reset coin count! m_MasterPlayerNumber = PLAYER_INVALID; diff --git a/stepmania/src/GameState.h b/stepmania/src/GameState.h index bb9c483ae6..069edba5a4 100644 --- a/stepmania/src/GameState.h +++ b/stepmania/src/GameState.h @@ -54,6 +54,7 @@ public: const Game* m_pCurGame; BroadcastOnChangePtr m_pCurStyle; bool m_bSideIsJoined[NUM_PLAYERS]; // left side, right side + bool m_bIsMultiPlayerJoined[NUM_MultiPlayer]; BroadcastOnChange m_PlayMode; // many screens display different info depending on this value int m_iCoins; // not "credits" PlayerNumber m_MasterPlayerNumber; // used in Styles where one player controls both sides diff --git a/stepmania/src/PlayerNumber.h b/stepmania/src/PlayerNumber.h index 8b9b7521e0..9822bfe35d 100644 --- a/stepmania/src/PlayerNumber.h +++ b/stepmania/src/PlayerNumber.h @@ -29,6 +29,22 @@ PlayerNumber GetNextPotentialCpuPlayer( PlayerNumber pn ); const PlayerNumber OPPOSITE_PLAYER[NUM_PLAYERS] = { PLAYER_2, PLAYER_1 }; + +enum MultiPlayer { + MultiPlayer_1 = 0, + MultiPlayer_2, + MultiPlayer_3, + MultiPlayer_4, + MultiPlayer_5, + MultiPlayer_6, + MultiPlayer_7, + MultiPlayer_8, + NUM_MultiPlayer, // leave this at the end + MultiPlayer_Invalid +}; +#define FOREACH_MultiPlayer( pn ) FOREACH_ENUM( MultiPlayer, NUM_MultiPlayer, pn ) + + #endif /* diff --git a/stepmania/src/ScreenGameplayMultiplayer.cpp b/stepmania/src/ScreenGameplayMultiplayer.cpp index 73fda5ece5..d1a36f9882 100644 --- a/stepmania/src/ScreenGameplayMultiplayer.cpp +++ b/stepmania/src/ScreenGameplayMultiplayer.cpp @@ -554,7 +554,7 @@ void ScreenGameplayMultiplayer::Input( const DeviceInput& DeviceI, const InputEv MultiPlayer mp = (MultiPlayer)(DeviceI.device - DEVICE_JOY1); - ASSERT( mp>=0 && mp=0 && mp