diff --git a/stepmania/src/ScreenGameplay.cpp b/stepmania/src/ScreenGameplay.cpp index 35c6dfac2b..a13b1f3488 100644 --- a/stepmania/src/ScreenGameplay.cpp +++ b/stepmania/src/ScreenGameplay.cpp @@ -474,8 +474,6 @@ ScreenGameplay::ScreenGameplay() for( int i=0; i<30; i++ ) this->SendScreenMessage( ScreenMessage(SM_User+i), i/2.0f ); // Send messages to we can get the introduction rolling } - - Update(0); } ScreenGameplay::~ScreenGameplay() diff --git a/stepmania/src/ScreenManager.cpp b/stepmania/src/ScreenManager.cpp index 0c9e381f93..633b552489 100644 --- a/stepmania/src/ScreenManager.cpp +++ b/stepmania/src/ScreenManager.cpp @@ -232,7 +232,12 @@ Screen* ScreenManager::MakeNewScreen( CString sClassName ) else RageException::Throw( "Invalid Screen class name '%s'", sClassName.GetString() ); - /* That probably took a little while. Let's reset stats. This prevents us + /* Give a null update to the new screen. This bumps everything into its + * initial tween state, if any, so we don't show stuff at an incorrect + * position for a frame. */ + ret->Update(0); + + /* Loading probably took a little while. Let's reset stats. This prevents us * from displaying an unnaturally low FPS value, and the next FPS value we * display will be accurate, which makes skips in the initial tween-ins more * apparent. */