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_bGameplayLeadIn.Set( false );
m_iNumStagesOfThisSong = 0;
m_bLoadingNextSong = false;
NOTESKIN->RefreshNoteSkinData( this->m_pCurGame );
@@ -758,6 +759,16 @@ int GameState::GetCourseSongIndex() const
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 PLAYER2 ("GameState","Player 2");
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 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 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 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; }
@@ -2025,6 +2037,7 @@ public:
ADD_METHOD( IsGoalComplete );
ADD_METHOD( PlayerIsUsingModifier );
ADD_METHOD( GetCourseSongIndex );
ADD_METHOD( GetLoadingCourseSongIndex );
ADD_METHOD( IsFinalStage );
ADD_METHOD( IsExtraStage );
ADD_METHOD( IsExtraStage2 );
+2
View File
@@ -132,6 +132,8 @@ public:
int GetCourseSongIndex() const;
RString GetPlayerDisplayName( PlayerNumber pn ) const;
bool m_bLoadingNextSong;
int GetLoadingCourseSongIndex() const;
//
// State Info used during gameplay
+4
View File
@@ -2435,19 +2435,23 @@ void ScreenGameplay::HandleScreenMessage( const ScreenMessage SM )
int iPlaySongIndex = GAMESTATE->GetCourseSongIndex()+1;
iPlaySongIndex %= m_apSongsQueue.size();
GAMESTATE->m_bLoadingNextSong = true;
MESSAGEMAN->Broadcast( "BeforeLoadingNextCourseSong" );
m_NextSong.Reset();
m_NextSong.PlayCommand( "Start" );
m_NextSong.StartTransitioning( SM_LoadNextSong );
LoadCourseSongNumber( GAMESTATE->GetCourseSongIndex()+1 );
MESSAGEMAN->Broadcast( "ChangeCourseSongIn" );
COMMAND( m_sprCourseSongNumber, "ChangeIn" );
}
else if( SM == SM_LoadNextSong )
{
SongFinished();
MESSAGEMAN->Broadcast( "ChangeCourseSongOut" );
COMMAND( m_sprCourseSongNumber, "ChangeOut" );
GAMESTATE->m_bLoadingNextSong = false;
LoadNextSong();
m_NextSong.Reset();