broadcast on style change
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -9,6 +9,7 @@ MessageManager* MESSAGEMAN = NULL; // global and accessable from anywhere in our
|
||||
|
||||
|
||||
static const CString MessageNames[] = {
|
||||
"CurrentStyleChanged",
|
||||
"CurrentSongChanged",
|
||||
"CurrentStepsP1Changed",
|
||||
"CurrentStepsP2Changed",
|
||||
|
||||
@@ -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; }
|
||||
};
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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?
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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 );
|
||||
|
||||
//
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 )
|
||||
{
|
||||
|
||||
@@ -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 )
|
||||
{
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user