Only UpdateTextInfo when something changes (fixes skips in playback/record)

This commit is contained in:
Chris Danford
2005-03-30 01:06:13 +00:00
parent 57d906be11
commit d8a269754e
+18 -15
View File
@@ -59,7 +59,7 @@ AutoScreenMessage( SM_BackFromInsertAttackModifiers )
AutoScreenMessage( SM_BackFromPrefs ) AutoScreenMessage( SM_BackFromPrefs )
AutoScreenMessage( SM_BackFromCourseModeMenu ) AutoScreenMessage( SM_BackFromCourseModeMenu )
AutoScreenMessage( SM_DoRevertToLastSave ) AutoScreenMessage( SM_DoRevertToLastSave )
AutoScreenMessage( SM_DoUpdateTextInfo )
AutoScreenMessage( SM_BackFromBPMChange ) AutoScreenMessage( SM_BackFromBPMChange )
AutoScreenMessage( SM_BackFromStopChange ) AutoScreenMessage( SM_BackFromStopChange )
AutoScreenMessage( SM_DoSaveAndExit ) AutoScreenMessage( SM_DoSaveAndExit )
@@ -595,8 +595,6 @@ void ScreenEdit::Init()
m_soundMusic.Load( m_pSong->GetMusicPath() ); m_soundMusic.Load( m_pSong->GetMusicPath() );
m_soundAssistTick.Load( THEME->GetPathS("ScreenEdit","assist tick"), true ); m_soundAssistTick.Load( THEME->GetPathS("ScreenEdit","assist tick"), true );
this->HandleScreenMessage( SM_DoUpdateTextInfo );
} }
ScreenEdit::~ScreenEdit() ScreenEdit::~ScreenEdit()
@@ -786,15 +784,20 @@ void ScreenEdit::Input( const DeviceInput& DeviceI, const InputEventType type, c
DeviceToEdit( di, EditB ); DeviceToEdit( di, EditB );
switch( m_EditMode ) switch( m_EditMode )
{ {
case MODE_EDITING: InputEdit( di, type, GameI, MenuI, StyleI, EditB ); break; case MODE_EDITING:
case MODE_RECORDING: InputRecord( di, type, GameI, MenuI, StyleI, EditB ); break; InputEdit( di, type, GameI, MenuI, StyleI, EditB );
case MODE_PLAYING: InputPlay( di, type, GameI, MenuI, StyleI, EditB ); break; /* Make sure the displayed time is up-to-date after possibly changing something,
* so it doesn't feel lagged. */
UpdateTextInfo();
break;
case MODE_RECORDING:
InputRecord( di, type, GameI, MenuI, StyleI, EditB );
break;
case MODE_PLAYING:
InputPlay( di, type, GameI, MenuI, StyleI, EditB );
break;
default: ASSERT(0); default: ASSERT(0);
} }
/* Make sure the displayed time is up-to-date after possibly changing something,
* so it doesn't feel lagged. */
UpdateTextInfo();
} }
static void ShiftToRightSide( int &iCol, int iNumTracks ) static void ShiftToRightSide( int &iCol, int iNumTracks )
@@ -1496,6 +1499,11 @@ void ScreenEdit::TransitionEditMode( EditMode em )
void ScreenEdit::HandleScreenMessage( const ScreenMessage SM ) void ScreenEdit::HandleScreenMessage( const ScreenMessage SM )
{ {
// There are lots of different messages that signal information changed.
// Rather than picking out those specific messages, just UpdateTextInfo
// on all messages.
UpdateTextInfo();
if( SM == SM_GoToNextScreen ) if( SM == SM_GoToNextScreen )
{ {
SCREENMAN->SetNewScreen( PREV_SCREEN ); SCREENMAN->SetNewScreen( PREV_SCREEN );
@@ -1597,11 +1605,6 @@ void ScreenEdit::HandleScreenMessage( const ScreenMessage SM )
m_Undo.ClearAll(); m_Undo.ClearAll();
} }
} }
else if( SM == SM_DoUpdateTextInfo )
{
this->PostScreenMessage( SM_DoUpdateTextInfo, 0.5f );
UpdateTextInfo();
}
else if( SM == SM_DoSaveAndExit ) // just asked "save before exiting? yes, no, cancel" else if( SM == SM_DoSaveAndExit ) // just asked "save before exiting? yes, no, cancel"
{ {
switch( ScreenPrompt::s_LastAnswer ) switch( ScreenPrompt::s_LastAnswer )