broadcast on style change

This commit is contained in:
Chris Danford
2005-05-07 08:34:20 +00:00
parent ac5a2748e6
commit 16818e54c8
15 changed files with 22 additions and 17 deletions
+2 -2
View File
@@ -86,7 +86,7 @@ bool GameCommand::DescribesCurrentMode( PlayerNumber pn ) const
return false;
if( m_pm != PLAY_MODE_INVALID && GAMESTATE->m_PlayMode != m_pm )
return false;
if( m_pStyle && GAMESTATE->m_pCurStyle != m_pStyle )
if( m_pStyle && GAMESTATE->m_pCurStyle.Get() != m_pStyle )
return false;
// HACK: don't compare m_dc if m_pSteps is set. This causes problems
// in ScreenSelectOptionsMaster::ImportOptions if m_PreferredDifficulty
@@ -679,7 +679,7 @@ void GameCommand::ApplySelf( const vector<PlayerNumber> &vpns ) const
if( m_pStyle != NULL )
{
GAMESTATE->m_pCurStyle = m_pStyle;
GAMESTATE->m_pCurStyle.Set( m_pStyle );
// It's possible to choose a style that didn't have enough
// players joined. If enough players aren't joined, then
+6 -3
View File
@@ -49,13 +49,14 @@ ThemeMetric<bool> USE_NAME_BLACKLIST("GameState","UseNameBlacklist");
GameState::GameState() :
m_PreferredCourseDifficulty( MESSAGE_EDIT_PREFERRED_COURSE_DIFFICULTY_P1_CHANGED ),
m_PreferredDifficulty( MESSAGE_EDIT_PREFERRED_DIFFICULTY_P1_CHANGED ),
m_pCurStyle( MESSAGE_CURRENT_STYLE_CHANGED ),
m_pCurSong( MESSAGE_CURRENT_SONG_CHANGED ),
m_pCurSteps( MESSAGE_CURRENT_STEPS_P1_CHANGED ),
m_stEdit( MESSAGE_EDIT_STEPS_TYPE_CHANGED ),
m_pEditSourceSteps( MESSAGE_EDIT_SOURCE_STEPS_CHANGED ),
m_stEditSource( MESSAGE_EDIT_SOURCE_STEPS_TYPE_CHANGED )
{
m_pCurStyle = NULL;
m_pCurStyle.Set( NULL );
m_pCurGame = NULL;
m_iCoins = 0;
@@ -137,7 +138,7 @@ void GameState::Reset()
ASSERT( THEME );
m_timeGameStarted.SetZero();
m_pCurStyle = NULL;
m_pCurStyle.Set( NULL );
FOREACH_PlayerNumber( p )
m_bSideIsJoined[p] = false;
MEMCARDMAN->UnlockCards();
@@ -297,6 +298,8 @@ void GameState::PlayersFinalized()
if( MEMCARDMAN->GetCardsLocked() )
return;
MESSAGEMAN->Broadcast( PLAYERS_FINALIZED );
MEMCARDMAN->LockCards();
// apply saved default modifiers if any
@@ -2007,7 +2010,7 @@ public:
static int GetCoins( T* p, lua_State *L ) { lua_pushnumber(L, p->m_iCoins ); return 1; }
static int IsSideJoined( T* p, lua_State *L ) { lua_pushboolean(L, p->m_bSideIsJoined[(PlayerNumber)IArg(1)] ); return 1; }
static int GetCoinsNeededToJoin( T* p, lua_State *L ) { lua_pushnumber(L, p->GetCoinsNeededToJoin() ); return 1; }
static int PlayersCanJoin( T* p, lua_State *L ) { lua_pushnumber(L, p->PlayersCanJoin() ); return 1; }
static int PlayersCanJoin( T* p, lua_State *L ) { lua_pushboolean(L, p->PlayersCanJoin() ); return 1; }
static void Register(lua_State *L)
{
+1 -1
View File
@@ -50,7 +50,7 @@ public:
// Main state info
//
const Game* m_pCurGame;
const Style* m_pCurStyle;
BroadcastOnChangePtr<const Style> m_pCurStyle;
bool m_bSideIsJoined[NUM_PLAYERS]; // left side, right side
PlayMode m_PlayMode; // many screens display different info depending on this value
int m_iCoins; // not "credits"
+1
View File
@@ -9,6 +9,7 @@ MessageManager* MESSAGEMAN = NULL; // global and accessable from anywhere in our
static const CString MessageNames[] = {
"CurrentStyleChanged",
"CurrentSongChanged",
"CurrentStepsP1Changed",
"CurrentStepsP2Changed",
+2 -1
View File
@@ -16,6 +16,7 @@ struct lua_State;
enum Message
{
MESSAGE_CURRENT_STYLE_CHANGED,
MESSAGE_CURRENT_SONG_CHANGED,
MESSAGE_CURRENT_STEPS_P1_CHANGED,
MESSAGE_CURRENT_STEPS_P2_CHANGED,
@@ -116,7 +117,7 @@ private:
public:
BroadcastOnChangePtr( Message m ) { mSendWhenChanged = m; }
const T* Get() const { return val; }
void Set( T* t ) { val = t; MESSAGEMAN->Broadcast( MessageToString(mSendWhenChanged) ); }
void Set( T* t ) { val = t; if(MESSAGEMAN) MESSAGEMAN->Broadcast( MessageToString(mSendWhenChanged) ); }
operator T* () const { return val; }
T* operator->() const { return val; }
};
+1 -1
View File
@@ -310,7 +310,7 @@ void ModeSwitcher::ChangeMode(PlayerNumber pn, int dir)
wrap( index, vPossibleStyles.size() );
}
GAMESTATE->m_pCurStyle = vPossibleStyles[index];
GAMESTATE->m_pCurStyle.Set( vPossibleStyles[index] );
}
m_Stylename.SetText(GetStyleName());
m_Nextmode.SetText(GetNextStyleName());
+1 -1
View File
@@ -678,7 +678,7 @@ void NetworkSyncManager::ProcessInput()
StyleName = m_packet.ReadNT();
GAMESTATE->m_pCurGame = GAMEMAN->StringToGameType( GameName );
GAMESTATE->m_pCurStyle = GAMEMAN->GameAndStringToStyle( GAMESTATE->m_pCurGame, StyleName );
GAMESTATE->m_pCurStyle.Set( GAMEMAN->GameAndStringToStyle(GAMESTATE->m_pCurGame,StyleName) );
SCREENMAN->SetNewScreen( "ScreenNetSelectMusic" ); //Should this be metric'd out?
}
+1 -1
View File
@@ -23,7 +23,7 @@ ScreenDemonstration::ScreenDemonstration( CString sName ) : ScreenJukebox( sName
void ScreenDemonstration::Init()
{
GAMESTATE->m_pCurStyle = GAMEMAN->GetDemonstrationStyleForGame(GAMESTATE->m_pCurGame);
GAMESTATE->m_pCurStyle.Set( GAMEMAN->GetDemonstrationStyleForGame(GAMESTATE->m_pCurGame) );
GAMESTATE->m_PlayMode = PLAY_MODE_REGULAR;
+1 -1
View File
@@ -208,7 +208,7 @@ void ScreenEditMenu::MenuStart( PlayerNumber pn )
EditMenuAction action = m_Selector.GetSelectedAction();
GAMESTATE->m_pCurSong.Set( pSong );
GAMESTATE->m_pCurStyle = GAMEMAN->GetEditorStyleForStepsType( st );
GAMESTATE->m_pCurStyle.Set( GAMEMAN->GetEditorStyleForStepsType(st) );
GAMESTATE->m_pCurSteps[PLAYER_1].Set( pSteps );
//
+1 -1
View File
@@ -141,7 +141,7 @@ ScreenEnding::ScreenEnding( CString sClassName ) : ScreenAttract( sClassName, fa
PROFILEMAN->LoadFirstAvailableProfile(PLAYER_2);
GAMESTATE->m_PlayMode = PLAY_MODE_REGULAR;
GAMESTATE->m_pCurStyle = GAMEMAN->GameAndStringToStyle( GAMEMAN->GetDefaultGame(), "versus" );
GAMESTATE->m_pCurStyle.Set( GAMEMAN->GameAndStringToStyle( GAMEMAN->GetDefaultGame(),"versus") );
GAMESTATE->m_bSideIsJoined[PLAYER_1] = true;
GAMESTATE->m_bSideIsJoined[PLAYER_2] = true;
GAMESTATE->m_MasterPlayerNumber = PLAYER_1;
+1 -1
View File
@@ -102,7 +102,7 @@ ScreenEvaluation::ScreenEvaluation( CString sClassName ) : ScreenWithMenuElement
PROFILEMAN->LoadFirstAvailableProfile(PLAYER_2);
GAMESTATE->m_PlayMode = PLAY_MODE_REGULAR;
GAMESTATE->m_pCurStyle = GAMEMAN->GameAndStringToStyle( GAMEMAN->GetDefaultGame(), "versus" );
GAMESTATE->m_pCurStyle.Set( GAMEMAN->GameAndStringToStyle(GAMEMAN->GetDefaultGame(),"versus") );
STATSMAN->m_CurStageStats.playMode = GAMESTATE->m_PlayMode;
STATSMAN->m_CurStageStats.pStyle = GAMESTATE->m_pCurStyle;
STATSMAN->m_CurStageStats.StageType = StageStats::STAGE_NORMAL;
+1 -1
View File
@@ -127,7 +127,7 @@ void ScreenHowToPlay::Init()
m_pLifeMeterBar->FillForHowToPlay( NUM_PERFECTS, NUM_MISSES );
}
GAMESTATE->m_pCurStyle = GAMEMAN->GetHowToPlayStyleForGame(GAMESTATE->m_pCurGame);
GAMESTATE->m_pCurStyle.Set( GAMEMAN->GetHowToPlayStyleForGame(GAMESTATE->m_pCurGame) );
if( USEPLAYER )
{
+1 -1
View File
@@ -146,7 +146,7 @@ ScreenNameEntryTraditional::ScreenNameEntryTraditional( CString sClassName ) : S
GAMESTATE->m_bSideIsJoined[PLAYER_2] = true;
GAMESTATE->m_MasterPlayerNumber = PLAYER_1;
GAMESTATE->m_PlayMode = PLAY_MODE_REGULAR;
GAMESTATE->m_pCurStyle = GAMEMAN->GameAndStringToStyle( GAMEMAN->GetDefaultGame(), "versus" );
GAMESTATE->m_pCurStyle.Set( GAMEMAN->GameAndStringToStyle( GAMEMAN->GetDefaultGame(),"versus") );
StageStats ss;
for( int z = 0; z < 3; ++z )
{
+1 -1
View File
@@ -191,7 +191,7 @@ void ScreenSelect::HandleScreenMessage( const ScreenMessage SM )
{
const int sel = GetSelectionIndex( p );
if( m_aGameCommands[sel].m_pStyle )
GAMESTATE->m_pCurStyle = m_aGameCommands[sel].m_pStyle;
GAMESTATE->m_pCurStyle.Set( m_aGameCommands[sel].m_pStyle );
}
SCREENMAN->RefreshCreditsMessages();
}
+1 -1
View File
@@ -80,7 +80,7 @@ ScreenSelectMusic::ScreenSelectMusic( CString sClassName ) : ScreenWithMenuEleme
if( PREFSMAN->m_bScreenTestMode )
{
GAMESTATE->m_PlayMode = PLAY_MODE_REGULAR;
GAMESTATE->m_pCurStyle = GAMEMAN->GameAndStringToStyle( GAMEMAN->GetDefaultGame(), "versus" );
GAMESTATE->m_pCurStyle.Set( GAMEMAN->GameAndStringToStyle(GAMEMAN->GetDefaultGame(),"versus") );
GAMESTATE->m_bSideIsJoined[PLAYER_1] = true;
GAMESTATE->m_MasterPlayerNumber = PLAYER_1;
}