broadcast ChangeCourseSongIn/Out (deprecates CourseSongNumberChangeIn/Out)

more general way of showing graphics bound to the song number (still a hack, though)
This commit is contained in:
Glenn Maynard
2006-04-29 02:03:08 +00:00
parent 52f59189dc
commit 96b027ac1d
3 changed files with 19 additions and 0 deletions
+13
View File
@@ -194,6 +194,7 @@ void GameState::Reset()
m_iCurrentStageIndex = 0; m_iCurrentStageIndex = 0;
m_bGameplayLeadIn.Set( false ); m_bGameplayLeadIn.Set( false );
m_iNumStagesOfThisSong = 0; m_iNumStagesOfThisSong = 0;
m_bLoadingNextSong = false;
NOTESKIN->RefreshNoteSkinData( this->m_pCurGame ); NOTESKIN->RefreshNoteSkinData( this->m_pCurGame );
@@ -758,6 +759,16 @@ int GameState::GetCourseSongIndex() const
return iSongIndex; return iSongIndex;
} }
/* Hack: when we're loading a new course song, we want to display the new song number, even
* though we havn't started that song yet. */
int GameState::GetLoadingCourseSongIndex() const
{
int iIndex = GetCourseSongIndex();
if( m_bLoadingNextSong )
++iIndex;
return iIndex;
}
static LocalizedString PLAYER1 ("GameState","Player 1"); static LocalizedString PLAYER1 ("GameState","Player 1");
static LocalizedString PLAYER2 ("GameState","Player 2"); static LocalizedString PLAYER2 ("GameState","Player 2");
static LocalizedString CPU ("GameState","CPU"); static LocalizedString CPU ("GameState","CPU");
@@ -1910,6 +1921,7 @@ public:
static int IsGoalComplete( T* p, lua_State *L ) { lua_pushboolean(L, p->IsGoalComplete((PlayerNumber)IArg(1)) ); return 1; } static int IsGoalComplete( T* p, lua_State *L ) { lua_pushboolean(L, p->IsGoalComplete((PlayerNumber)IArg(1)) ); return 1; }
static int PlayerIsUsingModifier( T* p, lua_State *L ) { lua_pushboolean(L, p->PlayerIsUsingModifier((PlayerNumber)IArg(1),SArg(2)) ); return 1; } static int PlayerIsUsingModifier( T* p, lua_State *L ) { lua_pushboolean(L, p->PlayerIsUsingModifier((PlayerNumber)IArg(1),SArg(2)) ); return 1; }
static int GetCourseSongIndex( T* p, lua_State *L ) { lua_pushnumber(L, p->GetCourseSongIndex() ); return 1; } static int GetCourseSongIndex( T* p, lua_State *L ) { lua_pushnumber(L, p->GetCourseSongIndex() ); return 1; }
static int GetLoadingCourseSongIndex( T* p, lua_State *L ) { lua_pushnumber(L, p->GetLoadingCourseSongIndex() ); return 1; }
static int IsFinalStage( T* p, lua_State *L ) { lua_pushboolean(L, p->IsFinalStage() ); return 1; } static int IsFinalStage( T* p, lua_State *L ) { lua_pushboolean(L, p->IsFinalStage() ); return 1; }
static int IsExtraStage( T* p, lua_State *L ) { lua_pushboolean(L, p->IsExtraStage() ); return 1; } static int IsExtraStage( T* p, lua_State *L ) { lua_pushboolean(L, p->IsExtraStage() ); return 1; }
static int IsExtraStage2( T* p, lua_State *L ) { lua_pushboolean(L, p->IsExtraStage2() ); return 1; } static int IsExtraStage2( T* p, lua_State *L ) { lua_pushboolean(L, p->IsExtraStage2() ); return 1; }
@@ -2025,6 +2037,7 @@ public:
ADD_METHOD( IsGoalComplete ); ADD_METHOD( IsGoalComplete );
ADD_METHOD( PlayerIsUsingModifier ); ADD_METHOD( PlayerIsUsingModifier );
ADD_METHOD( GetCourseSongIndex ); ADD_METHOD( GetCourseSongIndex );
ADD_METHOD( GetLoadingCourseSongIndex );
ADD_METHOD( IsFinalStage ); ADD_METHOD( IsFinalStage );
ADD_METHOD( IsExtraStage ); ADD_METHOD( IsExtraStage );
ADD_METHOD( IsExtraStage2 ); ADD_METHOD( IsExtraStage2 );
+2
View File
@@ -132,6 +132,8 @@ public:
int GetCourseSongIndex() const; int GetCourseSongIndex() const;
RString GetPlayerDisplayName( PlayerNumber pn ) const; RString GetPlayerDisplayName( PlayerNumber pn ) const;
bool m_bLoadingNextSong;
int GetLoadingCourseSongIndex() const;
// //
// State Info used during gameplay // State Info used during gameplay
+4
View File
@@ -2435,19 +2435,23 @@ void ScreenGameplay::HandleScreenMessage( const ScreenMessage SM )
int iPlaySongIndex = GAMESTATE->GetCourseSongIndex()+1; int iPlaySongIndex = GAMESTATE->GetCourseSongIndex()+1;
iPlaySongIndex %= m_apSongsQueue.size(); iPlaySongIndex %= m_apSongsQueue.size();
GAMESTATE->m_bLoadingNextSong = true;
MESSAGEMAN->Broadcast( "BeforeLoadingNextCourseSong" ); MESSAGEMAN->Broadcast( "BeforeLoadingNextCourseSong" );
m_NextSong.Reset(); m_NextSong.Reset();
m_NextSong.PlayCommand( "Start" ); m_NextSong.PlayCommand( "Start" );
m_NextSong.StartTransitioning( SM_LoadNextSong ); m_NextSong.StartTransitioning( SM_LoadNextSong );
LoadCourseSongNumber( GAMESTATE->GetCourseSongIndex()+1 ); LoadCourseSongNumber( GAMESTATE->GetCourseSongIndex()+1 );
MESSAGEMAN->Broadcast( "ChangeCourseSongIn" );
COMMAND( m_sprCourseSongNumber, "ChangeIn" ); COMMAND( m_sprCourseSongNumber, "ChangeIn" );
} }
else if( SM == SM_LoadNextSong ) else if( SM == SM_LoadNextSong )
{ {
SongFinished(); SongFinished();
MESSAGEMAN->Broadcast( "ChangeCourseSongOut" );
COMMAND( m_sprCourseSongNumber, "ChangeOut" ); COMMAND( m_sprCourseSongNumber, "ChangeOut" );
GAMESTATE->m_bLoadingNextSong = false;
LoadNextSong(); LoadNextSong();
m_NextSong.Reset(); m_NextSong.Reset();