From b7add9b47c1aa5f1b9ff74b7ccf54ace66d92749 Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Sun, 28 Sep 2003 02:57:09 +0000 Subject: [PATCH] Add ScreenReloadSongs --- stepmania/src/Screen.cpp | 2 ++ stepmania/src/ScreenReloadSongs.cpp | 29 +++++++++++++++++++++++++++++ stepmania/src/ScreenReloadSongs.h | 15 +++++++++++++++ 3 files changed, 46 insertions(+) create mode 100644 stepmania/src/ScreenReloadSongs.cpp create mode 100644 stepmania/src/ScreenReloadSongs.h diff --git a/stepmania/src/Screen.cpp b/stepmania/src/Screen.cpp index 3f874c8e23..873a36664e 100644 --- a/stepmania/src/Screen.cpp +++ b/stepmania/src/Screen.cpp @@ -296,6 +296,7 @@ void Screen::ClearMessageQueue( const ScreenMessage SM ) #include "ScreenProfileOptions.h" #include "ScreenExit.h" #include "ScreenAttract.h" +#include "ScreenReloadSongs.h" Screen* Screen::Create( CString sClassName ) { @@ -398,6 +399,7 @@ Screen* Screen::Create( CString sClassName ) IF_RETURN( ScreenEditCoursesMenu ); IF_RETURN( ScreenProfileOptions ); IF_RETURN( ScreenExit ); + IF_RETURN( ScreenReloadSongs ); RageException::Throw( "Invalid Screen class name '%s'", sClassName.c_str() ); } diff --git a/stepmania/src/ScreenReloadSongs.cpp b/stepmania/src/ScreenReloadSongs.cpp new file mode 100644 index 0000000000..7504908d27 --- /dev/null +++ b/stepmania/src/ScreenReloadSongs.cpp @@ -0,0 +1,29 @@ +#include "global.h" + +#include "ScreenReloadSongs.h" +#include "SongManager.h" +#include "UnlockSystem.h" +#include "ScreenManager.h" + +/* This could be cleaned up: show progress, for example. Let's not use + * this for the initial load, since we don't want to start up the display + * until we finish loading songs; that way, people can continue to use their + * computer while songs load. */ +ScreenReloadSongs::ScreenReloadSongs( CString sClassName ): Screen(sClassName) +{ + m_FirstUpdate = true; +} + +void ScreenReloadSongs::Update( float fDeltaTime ) +{ + if( !m_FirstUpdate ) + return; + + m_FirstUpdate = false; + SONGMAN->Reload(); + UNLOCKSYS->UpdateSongs(); + SCREENMAN->SetNewScreen( "ScreenTitleMenu" ); +} + + + diff --git a/stepmania/src/ScreenReloadSongs.h b/stepmania/src/ScreenReloadSongs.h new file mode 100644 index 0000000000..d2ed42fe6d --- /dev/null +++ b/stepmania/src/ScreenReloadSongs.h @@ -0,0 +1,15 @@ +#ifndef SCREEN_RELOAD_SONGS_H +#define SCREEN_RELOAD_SONGS_H + +#include "Screen.h" + +class ScreenReloadSongs: public Screen +{ + bool m_FirstUpdate; + +public: + ScreenReloadSongs( CString sClassName ); + void Update( float fDeltaTime ); +}; + +#endif