self-registering screen classes
This commit is contained in:
@@ -271,8 +271,10 @@ Actor* MakeActor( const RageTextureID &ID )
|
||||
return pBGA;
|
||||
}
|
||||
else
|
||||
RageException::Throw("File \"%s\" has unknown type, \"%s\"",
|
||||
ID.filename.c_str(), sExt.c_str() );
|
||||
{
|
||||
RageException::Throw("File \"%s\" has unknown type, \"%s\"",
|
||||
ID.filename.c_str(), sExt.c_str() );
|
||||
}
|
||||
}
|
||||
|
||||
void UtilSetXY( Actor& actor, const CString &sClassName )
|
||||
|
||||
+10
-2
@@ -9,7 +9,16 @@
|
||||
#include "GameInput.h"
|
||||
#include "MenuInput.h"
|
||||
#include "StyleInput.h"
|
||||
#include "ScreenManager.h"
|
||||
|
||||
// Each Screen class should have a REGISTER_SCREEN_CLASS in its CPP file.
|
||||
#define REGISTER_SCREEN_CLASS( className ) \
|
||||
Screen* Create##className( const CString &sName ) { return new className( sName ); } \
|
||||
class Register##className { \
|
||||
public: \
|
||||
Register##className() { SCREENMAN->Register(#className,Create##className); } \
|
||||
}; \
|
||||
static Register##className registera;
|
||||
|
||||
class Screen : public ActorFrame
|
||||
{
|
||||
@@ -21,13 +30,12 @@ public:
|
||||
virtual void Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI );
|
||||
virtual void HandleScreenMessage( const ScreenMessage SM );
|
||||
|
||||
void PostScreenMessage( const ScreenMessage SM, const float fDelay );
|
||||
void PostScreenMessage( const ScreenMessage SM, float fDelay );
|
||||
void ClearMessageQueue();
|
||||
void ClearMessageQueue( const ScreenMessage SM ); // clear of a specific SM
|
||||
|
||||
bool IsTransparent() const { return m_bIsTransparent; }
|
||||
|
||||
static Screen* Create( CString sClassName );
|
||||
static bool ChangeCoinModeInput( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI ); // return true if CoinMode changed
|
||||
static bool JoinInput( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI ); // return true if a player joined
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
#define NEXT_SCREEN THEME->GetMetric (m_sName,"NextScreen")
|
||||
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenAttract );
|
||||
ScreenAttract::ScreenAttract( CString sName, bool bResetGameState ) : Screen( sName )
|
||||
{
|
||||
LOG->Trace( "ScreenAttract::ScreenAttract(%s)", m_sName.c_str() );
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
class ScreenAttract : public Screen
|
||||
{
|
||||
public:
|
||||
ScreenAttract( CString sClassName, bool bResetGameState=true );
|
||||
ScreenAttract( CString sName, bool bResetGameState=true );
|
||||
virtual ~ScreenAttract();
|
||||
|
||||
virtual void Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI );
|
||||
@@ -20,7 +20,6 @@ public:
|
||||
virtual void HandleScreenMessage( const ScreenMessage SM );
|
||||
|
||||
protected:
|
||||
|
||||
BGAnimation m_Background;
|
||||
Transition m_In;
|
||||
Transition m_Out;
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
#include "ScreenDimensions.h"
|
||||
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenBookkeeping );
|
||||
ScreenBookkeeping::ScreenBookkeeping( CString sClassName ) : ScreenWithMenuElements( sClassName )
|
||||
{
|
||||
LOG->Trace( "ScreenBookkeeping::ScreenBookkeeping()" );
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
#define CONDITION(choice) THEME->GetMetric (m_sName,"Condition"+choice)
|
||||
#define NEXT_SCREEN(choice) THEME->GetMetric (m_sName,"NextScreen"+choice)
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenBranch );
|
||||
ScreenBranch::ScreenBranch( CString sClassName ) : Screen( sClassName )
|
||||
{
|
||||
LOG->Trace( "ScreenBranch::ScreenBranch()" );
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
#include "GameSoundManager.h"
|
||||
#include "ThemeManager.h"
|
||||
|
||||
|
||||
#define NEXT_SCREEN THEME->GetMetric(m_sName,"NextScreen")
|
||||
|
||||
|
||||
@@ -15,6 +14,7 @@ const ScreenMessage SM_DoneOpening = ScreenMessage(SM_User-7);
|
||||
const ScreenMessage SM_StartClosing = ScreenMessage(SM_User-8);
|
||||
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenCaution );
|
||||
ScreenCaution::ScreenCaution( CString sName ) : Screen( sName )
|
||||
{
|
||||
if(!PREFSMAN->m_bShowDontDie)
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
#include "HelpDisplay.h"
|
||||
#include "ScreenDimensions.h"
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenCenterImage );
|
||||
ScreenCenterImage::ScreenCenterImage( CString sClassName ) : ScreenWithMenuElements( sClassName )
|
||||
{
|
||||
LOG->Trace( "ScreenCenterImage::ScreenCenterImage()" );
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
|
||||
#define NEXT_SCREEN THEME->GetMetric(m_sName,"NextScreen")
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenClearBookkeepingData );
|
||||
ScreenClearBookkeepingData::ScreenClearBookkeepingData( CString sName ): Screen( sName )
|
||||
{
|
||||
BOOKKEEPER->ClearAll();
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
|
||||
#define NEXT_SCREEN THEME->GetMetric(m_sName,"NextScreen")
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenClearMachineStats );
|
||||
ScreenClearMachineStats::ScreenClearMachineStats( CString sName ): Screen( sName )
|
||||
{
|
||||
Profile* pProfile = PROFILEMAN->GetMachineProfile();
|
||||
|
||||
@@ -156,6 +156,7 @@ static const CreditLine CREDIT_LINES[] =
|
||||
{1,"and help us out!"},
|
||||
};
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenCredits );
|
||||
ScreenCredits::ScreenCredits( CString sName ) : ScreenAttract( sName )
|
||||
{
|
||||
vector<Song*> arraySongs;
|
||||
|
||||
@@ -33,6 +33,7 @@ bool PrepareForDemonstration() // always return true.
|
||||
return true;
|
||||
}
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenDemonstration );
|
||||
ScreenDemonstration::ScreenDemonstration( CString sName ) : ScreenJukebox( sName, PrepareForDemonstration() ) // this is a hack to get some code to execute before the ScreenGameplay constructor
|
||||
{
|
||||
LOG->Trace( "ScreenDemonstration::ScreenDemonstration()" );
|
||||
|
||||
@@ -34,6 +34,7 @@ static void SaveMachineStatsToFirstMemCard()
|
||||
SCREENMAN->SystemMessage( "Stats not saved - No memory cards ready." );
|
||||
}
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenDownloadMachineStats );
|
||||
ScreenDownloadMachineStats::ScreenDownloadMachineStats( CString sName ): Screen( sName )
|
||||
{
|
||||
SaveMachineStatsToFirstMemCard();
|
||||
|
||||
@@ -26,7 +26,6 @@
|
||||
#include "ScreenDimensions.h"
|
||||
#include "ThemeMetric.h"
|
||||
|
||||
|
||||
const float RECORD_HOLD_SECONDS = 0.3f;
|
||||
|
||||
|
||||
@@ -376,6 +375,7 @@ DeviceInput TranslateInput(const DeviceInput& DeviceI, const InputEventType type
|
||||
}
|
||||
#endif
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenEdit );
|
||||
ScreenEdit::ScreenEdit( CString sName ) : Screen( sName )
|
||||
{
|
||||
LOG->Trace( "ScreenEdit::ScreenEdit()" );
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
|
||||
const ScreenMessage SM_RefreshSelector = (ScreenMessage)(SM_User+1);
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenEditCoursesMenu );
|
||||
ScreenEditCoursesMenu::ScreenEditCoursesMenu( CString sName ) : ScreenWithMenuElements( sName )
|
||||
{
|
||||
LOG->Trace( "ScreenEditCoursesMenu::ScreenEditCoursesMenu()" );
|
||||
|
||||
@@ -13,12 +13,12 @@
|
||||
#include "Steps.h"
|
||||
#include "song.h"
|
||||
|
||||
|
||||
#define EXPLANATION_TEXT THEME->GetMetric(m_sName,"ExplanationText")
|
||||
#define HELP_TEXT THEME->GetMetric(m_sName,"HelpText")
|
||||
|
||||
const ScreenMessage SM_RefreshSelector = (ScreenMessage)(SM_User+1);
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenEditMenu );
|
||||
ScreenEditMenu::ScreenEditMenu( CString sName ) : ScreenWithMenuElements( sName )
|
||||
{
|
||||
LOG->Trace( "ScreenEditMenu::ScreenEditMenu()" );
|
||||
|
||||
@@ -133,6 +133,7 @@ CString GetStatsLineValue( PlayerNumber pn, EndingStatsLine line )
|
||||
}
|
||||
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenEnding );
|
||||
ScreenEnding::ScreenEnding( CString sClassName ) : ScreenAttract( sClassName, false/*dont reset GAMESTATE*/ )
|
||||
{
|
||||
if( PREFSMAN->m_bScreenTestMode )
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
|
||||
//TODO:: Add scripting support
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenEndlessBreak );
|
||||
ScreenEndlessBreak::ScreenEndlessBreak( CString sName ) : Screen( sName )
|
||||
{
|
||||
LOG->Trace("ScreenEndlessBreak()");
|
||||
|
||||
@@ -83,6 +83,7 @@ static const int NUM_SHOWN_RADAR_CATEGORIES = 5;
|
||||
const ScreenMessage SM_PlayCheer = ScreenMessage(SM_User+6);
|
||||
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenEvaluation );
|
||||
ScreenEvaluation::ScreenEvaluation( CString sClassName ) : ScreenWithMenuElements(sClassName)
|
||||
{
|
||||
LOG->Trace( "ScreenEvaluation::ScreenEvaluation" );
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
* is annoying, because sounds might be deleted at any time; they aren't ours to have
|
||||
* references to. Also, it's better to quit on command instead of waiting several seconds
|
||||
* for a sound to stop. */
|
||||
REGISTER_SCREEN_CLASS( ScreenExit );
|
||||
ScreenExit::ScreenExit( CString sName ): Screen( sName )
|
||||
{
|
||||
m_Exited = false;
|
||||
|
||||
@@ -62,6 +62,7 @@ const float TWEEN_TIME = 0.5f;
|
||||
|
||||
const ScreenMessage SM_NoSongs = ScreenMessage(SM_User+3);
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenEz2SelectMusic );
|
||||
ScreenEz2SelectMusic::ScreenEz2SelectMusic( CString sName ) : ScreenWithMenuElements( sName )
|
||||
{
|
||||
/* Finish any previous stage. It's OK to call this when we havn't played a stage yet. */
|
||||
|
||||
@@ -16,9 +16,6 @@
|
||||
#include "ScreenDimensions.h"
|
||||
|
||||
/* Constants */
|
||||
|
||||
|
||||
|
||||
#define JOIN_FRAME_X( p ) THEME->GetMetricF("ScreenEz2SelectPlayer",ssprintf("JoinFrameP%dX",p+1))
|
||||
#define JOIN_FRAME_Y( i ) THEME->GetMetricF("ScreenEz2SelectPlayer",ssprintf("JoinFrameP%dY",i+1))
|
||||
#define JOIN_MESSAGE_X( p ) THEME->GetMetricF("ScreenEz2SelectPlayer",ssprintf("JoinMessageP%dX",p+1))
|
||||
@@ -38,6 +35,7 @@ ScreenEz2SelectPlayer (Constructor)
|
||||
Desc: Sets up the screen display
|
||||
************************************/
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenEz2SelectPlayer );
|
||||
ScreenEz2SelectPlayer::ScreenEz2SelectPlayer( CString sName ) : ScreenWithMenuElements( sName )
|
||||
{
|
||||
// Unjoin the players, then let them join back in on this screen
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
#include "GameSoundManager.h"
|
||||
#include "ThemeManager.h"
|
||||
|
||||
|
||||
const ScreenMessage SM_StartFadingOut = ScreenMessage(SM_User + 1);
|
||||
const ScreenMessage SM_PlayAnnouncer = ScreenMessage(SM_User + 3);
|
||||
|
||||
@@ -13,6 +12,7 @@ const ScreenMessage SM_PlayAnnouncer = ScreenMessage(SM_User + 3);
|
||||
#define NEXT_SCREEN THEME->GetMetric("ScreenGameOver","NextScreen")
|
||||
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenGameOver );
|
||||
ScreenGameOver::ScreenGameOver( CString sName ) : Screen( sName )
|
||||
{
|
||||
m_Background.LoadFromAniDir( THEME->GetPathToB("ScreenGameOver background") );
|
||||
|
||||
@@ -84,6 +84,7 @@ const ScreenMessage SM_StartHereWeGo = ScreenMessage(SM_User+40);
|
||||
const ScreenMessage SM_StopHereWeGo = ScreenMessage(SM_User+41);
|
||||
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenGameplay );
|
||||
ScreenGameplay::ScreenGameplay( CString sName, bool bDemonstration ) : Screen(sName)
|
||||
{
|
||||
m_bDemonstration = bDemonstration;
|
||||
|
||||
@@ -65,6 +65,7 @@ static bool HaveAllCharAnimations()
|
||||
return true;
|
||||
}
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenHowToPlay );
|
||||
ScreenHowToPlay::ScreenHowToPlay( CString sName ) : ScreenAttract( sName )
|
||||
{
|
||||
m_iPerfects = 0;
|
||||
|
||||
@@ -14,6 +14,7 @@ static void SaveMachineStatsToFirstMemCard()
|
||||
InsertCredit();
|
||||
}
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenInsertCredit );
|
||||
ScreenInsertCredit::ScreenInsertCredit( CString sName ): Screen( sName )
|
||||
{
|
||||
SaveMachineStatsToFirstMemCard();
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
#include "ScreenDimensions.h"
|
||||
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenInstructions );
|
||||
ScreenInstructions::ScreenInstructions( CString sName ) : ScreenWithMenuElements( sName )
|
||||
{
|
||||
LOG->Trace( "ScreenInstructions::ScreenInstructions()" );
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
const ScreenMessage SM_NotesEnded = ScreenMessage(SM_User+10); // MUST be same as in ScreenGameplay
|
||||
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenJukebox );
|
||||
bool ScreenJukebox::SetSong( bool bDemonstration )
|
||||
{
|
||||
vector<Song*> vSongs;
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
#define EXPLANATION_TEXT THEME->GetMetric("ScreenJukeboxMenu","ExplanationText")
|
||||
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenJukeboxMenu );
|
||||
ScreenJukeboxMenu::ScreenJukeboxMenu( CString sClassName ) : ScreenWithMenuElements( sClassName )
|
||||
{
|
||||
LOG->Trace( "ScreenJukeboxMenu::ScreenJukeboxMenu()" );
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
#include "GameState.h"
|
||||
#include "Game.h"
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenLogo );
|
||||
ScreenLogo::ScreenLogo( CString sName ) : ScreenAttract( sName )
|
||||
{
|
||||
m_sprLogo.SetName( "Logo" );
|
||||
|
||||
@@ -32,6 +32,22 @@
|
||||
|
||||
ScreenManager* SCREENMAN = NULL; // global and accessable from anywhere in our program
|
||||
|
||||
|
||||
// Screen registration
|
||||
static map<CString,CreateScreenFn> *g_pmapRegistrees = NULL;
|
||||
|
||||
void ScreenManager::Register( const CString& sClassName, CreateScreenFn pfn )
|
||||
{
|
||||
if( g_pmapRegistrees == NULL )
|
||||
g_pmapRegistrees = new map<CString,CreateScreenFn>;
|
||||
|
||||
map<CString,CreateScreenFn>::iterator iter = g_pmapRegistrees->find( sClassName );
|
||||
ASSERT_M( iter == g_pmapRegistrees->end(), ssprintf("Screen class '%s' already registered.") );
|
||||
|
||||
(*g_pmapRegistrees)[sClassName] = pfn;
|
||||
}
|
||||
|
||||
|
||||
ScreenManager::ScreenManager()
|
||||
{
|
||||
m_SystemLayer = NULL;
|
||||
@@ -186,7 +202,7 @@ void ScreenManager::Input( const DeviceInput& DeviceI, const InputEventType type
|
||||
}
|
||||
|
||||
|
||||
Screen* ScreenManager::MakeNewScreen( CString sClassName )
|
||||
Screen* ScreenManager::MakeNewScreen( const CString &sName )
|
||||
{
|
||||
/* By default, RageSounds handles the song timer. When we change screens, reset this;
|
||||
* screens turn this off in SM_GainFocus if they handle timers themselves (edit).
|
||||
@@ -198,9 +214,20 @@ Screen* ScreenManager::MakeNewScreen( CString sClassName )
|
||||
SONGMAN->Cleanup();
|
||||
|
||||
RageTimer t;
|
||||
LOG->Trace( "Loading screen %s", sClassName.c_str() );
|
||||
Screen *ret = Screen::Create( sClassName );
|
||||
LOG->Trace( "Loaded %s in %f", sClassName.c_str(), t.GetDeltaTime());
|
||||
LOG->Trace( "Loading screen name '%s'", sName.c_str() );
|
||||
|
||||
CString sClassName = sName;
|
||||
// Look up the class in the metrics group sName
|
||||
if( THEME->HasMetric(sClassName,"Class") )
|
||||
sClassName = THEME->GetMetric(sClassName,"Class");
|
||||
|
||||
map<CString,CreateScreenFn>::iterator iter = g_pmapRegistrees->find( sClassName );
|
||||
ASSERT_M( iter != g_pmapRegistrees->end(), ssprintf("Screen '%s' has an invalid class '%s'",sName.c_str(),sClassName.c_str()) )
|
||||
|
||||
CreateScreenFn pfn = iter->second;
|
||||
Screen* ret = pfn( sName );
|
||||
|
||||
LOG->Trace( "Loaded '%s' ('%s') in %f", sName.c_str(), sClassName.c_str(), t.GetDeltaTime());
|
||||
|
||||
/* 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
|
||||
@@ -211,7 +238,7 @@ Screen* ScreenManager::MakeNewScreen( CString sClassName )
|
||||
return ret;
|
||||
}
|
||||
|
||||
void ScreenManager::PrepNewScreen( CString sClassName )
|
||||
void ScreenManager::PrepNewScreen( const CString &sClassName )
|
||||
{
|
||||
ASSERT(m_ScreenBuffered == NULL);
|
||||
m_ScreenBuffered = MakeNewScreen(sClassName);
|
||||
@@ -258,7 +285,7 @@ void ScreenManager::SetFromNewScreen( Screen *pNewScreen, bool Stack )
|
||||
PostMessageToTopScreen( SM_GainFocus, 0 );
|
||||
}
|
||||
|
||||
void ScreenManager::SetNewScreen( CString sClassName )
|
||||
void ScreenManager::SetNewScreen( const CString &sClassName )
|
||||
{
|
||||
m_DelayedScreen = sClassName;
|
||||
|
||||
@@ -328,7 +355,7 @@ retry:
|
||||
SetFromNewScreen( pNewScreen, false );
|
||||
}
|
||||
|
||||
void ScreenManager::AddNewScreenToTop( CString sClassName, ScreenMessage messageSendOnPop )
|
||||
void ScreenManager::AddNewScreenToTop( const CString &sClassName, ScreenMessage messageSendOnPop )
|
||||
{
|
||||
/* Send this before making the new screen, since it might set things that will be re-set
|
||||
* in the new screen's ctor. */
|
||||
@@ -344,7 +371,7 @@ void ScreenManager::AddNewScreenToTop( CString sClassName, ScreenMessage message
|
||||
#include "ScreenTextEntry.h"
|
||||
#include "ScreenMiniMenu.h"
|
||||
|
||||
void ScreenManager::Prompt( ScreenMessage SM_SendWhenDone, CString sText, bool bYesNo, bool bDefaultAnswer, void(*OnYes)(void*), void(*OnNo)(void*), void* pCallbackData )
|
||||
void ScreenManager::Prompt( ScreenMessage SM_SendWhenDone, const CString &sText, bool bYesNo, bool bDefaultAnswer, void(*OnYes)(void*), void(*OnNo)(void*), void* pCallbackData )
|
||||
{
|
||||
if( m_ScreenStack.size() )
|
||||
m_ScreenStack.back()->HandleScreenMessage( SM_LoseFocus );
|
||||
@@ -410,13 +437,13 @@ void ScreenManager::SendMessageToTopScreen( ScreenMessage SM )
|
||||
}
|
||||
|
||||
|
||||
void ScreenManager::SystemMessage( CString sMessage )
|
||||
void ScreenManager::SystemMessage( const CString &sMessage )
|
||||
{
|
||||
LOG->Trace( "%s", sMessage.c_str() );
|
||||
m_SystemLayer->SystemMessage( sMessage );
|
||||
}
|
||||
|
||||
void ScreenManager::SystemMessageNoAnimate( CString sMessage )
|
||||
void ScreenManager::SystemMessageNoAnimate( const CString &sMessage )
|
||||
{
|
||||
// LOG->Trace( "%s", sMessage.c_str() ); // don't log because the caller is likely calling us every frame
|
||||
m_SystemLayer->SystemMessageNoAnimate( sMessage );
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/* ScreenManager - Manager/container for Screens. */
|
||||
|
||||
#ifndef SCREENMANAGER_H
|
||||
#define SCREENMANAGER_H
|
||||
#ifndef ScreenManager_H
|
||||
#define ScreenManager_H
|
||||
|
||||
#include "RageInputDevice.h"
|
||||
#include "ScreenMessage.h"
|
||||
@@ -17,9 +17,15 @@ struct Menu;
|
||||
class ScreenSystemLayer;
|
||||
|
||||
|
||||
typedef Screen* (*CreateScreenFn)(const CString&);
|
||||
|
||||
class ScreenManager
|
||||
{
|
||||
public:
|
||||
// Every screen should register its class at program initialization.
|
||||
static void Register( const CString& sClassName, CreateScreenFn pfn );
|
||||
|
||||
|
||||
ScreenManager();
|
||||
~ScreenManager();
|
||||
|
||||
@@ -28,17 +34,17 @@ public:
|
||||
void Draw();
|
||||
void Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI );
|
||||
|
||||
void PrepNewScreen( CString sClassName );
|
||||
void PrepNewScreen( const CString &sName );
|
||||
void LoadPreppedScreen();
|
||||
void DeletePreppedScreen();
|
||||
void SetNewScreen( CString sClassName );
|
||||
void AddNewScreenToTop( CString sClassName, ScreenMessage messageSendOnPop );
|
||||
void Prompt( ScreenMessage SM_SendWhenDone, CString sText, bool bYesNo = false, bool bDefaultAnswer = false, void(*OnYes)(void*) = NULL, void(*OnNo)(void*) = NULL, void* pCallbackData = NULL );
|
||||
void SetNewScreen( const CString &sName );
|
||||
void AddNewScreenToTop( const CString &sName, ScreenMessage messageSendOnPop );
|
||||
void Prompt( ScreenMessage SM_SendWhenDone, const CString &sText, bool bYesNo = false, bool bDefaultAnswer = false, void(*OnYes)(void*) = NULL, void(*OnNo)(void*) = NULL, void* pCallbackData = NULL );
|
||||
void TextEntry( ScreenMessage SM_SendWhenDone, CString sQuestion, CString sInitialAnswer, void(*OnOK)(CString sAnswer) = NULL, void(*OnCanel)() = NULL );
|
||||
void MiniMenu( Menu* pDef, ScreenMessage SM_SendOnOK, ScreenMessage SM_SendOnCancel = SM_None );
|
||||
void PopTopScreen( ScreenMessage SM = SM_None );
|
||||
void SystemMessage( CString sMessage );
|
||||
void SystemMessageNoAnimate( CString sMessage );
|
||||
void SystemMessage( const CString &sMessage );
|
||||
void SystemMessageNoAnimate( const CString &sMessage );
|
||||
|
||||
void PostMessageToTopScreen( ScreenMessage SM, float fDelay );
|
||||
void SendMessageToTopScreen( ScreenMessage SM );
|
||||
@@ -54,13 +60,13 @@ public:
|
||||
Screen *GetTopScreen();
|
||||
|
||||
private:
|
||||
vector<Screen*> m_ScreenStack; // bottommost to topmost
|
||||
ScreenMessage m_MessageSendOnPop;
|
||||
vector<Screen*> m_ScreensToDelete;
|
||||
Screen *m_ScreenBuffered;
|
||||
ScreenSystemLayer *m_SystemLayer;
|
||||
vector<Screen*> m_ScreenStack; // bottommost to topmost
|
||||
ScreenMessage m_MessageSendOnPop;
|
||||
vector<Screen*> m_ScreensToDelete;
|
||||
Screen *m_ScreenBuffered;
|
||||
ScreenSystemLayer *m_SystemLayer;
|
||||
|
||||
Screen* MakeNewScreen( CString sClassName );
|
||||
Screen* MakeNewScreen( const CString &sName );
|
||||
void SetFromNewScreen( Screen *pNewScreen, bool Stack );
|
||||
CString m_DelayedScreen;
|
||||
void ClearScreenStack();
|
||||
@@ -73,6 +79,7 @@ public:
|
||||
void PlayInvalidSound();
|
||||
void PlayScreenshotSound();
|
||||
void PlayBackSound();
|
||||
|
||||
private:
|
||||
RageSound m_soundStart;
|
||||
RageSound m_soundCoin;
|
||||
|
||||
@@ -34,6 +34,7 @@ const float BUTTON_COLUMN_X[NUM_GAME_TO_DEVICE_SLOTS*MAX_GAME_CONTROLLERS] =
|
||||
};
|
||||
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenMapControllers );
|
||||
ScreenMapControllers::ScreenMapControllers( CString sClassName ) : ScreenWithMenuElements( sClassName )
|
||||
{
|
||||
LOG->Trace( "ScreenMapControllers::ScreenMapControllers()" );
|
||||
|
||||
@@ -28,6 +28,7 @@ int ScreenMiniMenu::s_iLastLine;
|
||||
int ScreenMiniMenu::s_iLastAnswers[MAX_MENU_ROWS];
|
||||
|
||||
|
||||
//REGISTER_SCREEN_CLASS( ScreenMiniMenu );
|
||||
ScreenMiniMenu::ScreenMiniMenu( Menu* pDef, ScreenMessage SM_SendOnOK, ScreenMessage SM_SendOnCancel ) :
|
||||
Screen("ScreenMiniMenu")
|
||||
{
|
||||
|
||||
@@ -21,6 +21,7 @@ const CString CREDIT_LINES[] =
|
||||
const unsigned NUM_CREDIT_LINES = sizeof(CREDIT_LINES) / sizeof(CString);
|
||||
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenMusicScroll );
|
||||
ScreenMusicScroll::ScreenMusicScroll( CString sClassName ) : ScreenAttract( sClassName )
|
||||
{
|
||||
vector<Song*> arraySongs;
|
||||
|
||||
@@ -86,6 +86,7 @@ float GetClosestCharYPos( float fFakeBeat )
|
||||
}
|
||||
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenNameEntry );
|
||||
ScreenNameEntry::ScreenNameEntry( CString sClassName ) : Screen( sClassName )
|
||||
{
|
||||
LOG->Trace( "ScreenNameEntry::ScreenNameEntry()" );
|
||||
|
||||
@@ -124,6 +124,7 @@ float HighScoreWheel::Scroll()
|
||||
return GetTweenTimeLeft();
|
||||
}
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenNameEntryTraditional );
|
||||
ScreenNameEntryTraditional::ScreenNameEntryTraditional( CString sClassName ) : ScreenWithMenuElements( sClassName )
|
||||
{
|
||||
LOG->Trace( "ScreenNameEntryTraditional::ScreenNameEntryTraditional()" );
|
||||
|
||||
@@ -18,6 +18,7 @@ const int NUM_SCORE_DIGITS = 9;
|
||||
|
||||
const ScreenMessage SM_GotEval = ScreenMessage(SM_User+6);
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenNetEvaluation );
|
||||
ScreenNetEvaluation::ScreenNetEvaluation (const CString & sClassName) : ScreenEvaluation( sClassName )
|
||||
{
|
||||
m_bHasStats = false;
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
const ScreenMessage SM_SMOnlinePack = ScreenMessage(SM_User+8); //Unused, but should be known
|
||||
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenNetRoom );
|
||||
ScreenNetRoom::ScreenNetRoom( const CString& sName ) : ScreenNetSelectBase( sName )
|
||||
{
|
||||
GAMESTATE->FinishStage();
|
||||
|
||||
@@ -29,6 +29,7 @@ const ScreenMessage SM_AddToChat = ScreenMessage(SM_User+4);
|
||||
const ScreenMessage SM_UsersUpdate = ScreenMessage(SM_User+7);
|
||||
const ScreenMessage SM_SMOnlinePack = ScreenMessage(SM_User+8); //Unused, but should be known
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenNetSelectBase );
|
||||
ScreenNetSelectBase::ScreenNetSelectBase( const CString& sName ) : ScreenWithMenuElements( sName )
|
||||
{
|
||||
//ChatBox
|
||||
|
||||
@@ -35,6 +35,7 @@ const ScreenMessage SM_SMOnlinePack = ScreenMessage(SM_User+8); //Unused, but sh
|
||||
|
||||
const CString AllGroups = "[ALL MUSIC]";
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenNetSelectMusic );
|
||||
ScreenNetSelectMusic::ScreenNetSelectMusic( const CString& sName ) : ScreenNetSelectBase( sName )
|
||||
{
|
||||
/* Finish any previous stage. It's OK to call this when we havn't played a stage yet. */
|
||||
|
||||
@@ -35,6 +35,7 @@ OptionRowData g_NetworkOptionsLines[NUM_NETWORK_OPTIONS_LINES] = {
|
||||
const ScreenMessage SM_DoneConnecting = ScreenMessage(SM_User+1);
|
||||
const ScreenMessage SM_ServerNameEnter = ScreenMessage(SM_User+2);
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenNetworkOptions );
|
||||
ScreenNetworkOptions::ScreenNetworkOptions( CString sClassName ) : ScreenOptions( sClassName )
|
||||
{
|
||||
LOG->Trace( "ScreenNetworkOptions::ScreenNetworkOptions()" );
|
||||
|
||||
@@ -96,6 +96,7 @@ const float ITEM_X[NUM_PLAYERS] = { 260, 420 };
|
||||
* in player options menus, but it should in the options menu.
|
||||
*/
|
||||
|
||||
//REGISTER_SCREEN_CLASS( ScreenOptions );
|
||||
ScreenOptions::ScreenOptions( CString sClassName ) : ScreenWithMenuElements(sClassName)
|
||||
{
|
||||
LOG->Trace( "ScreenOptions::ScreenOptions()" );
|
||||
|
||||
@@ -194,6 +194,7 @@ void ScreenOptionsMaster::SetCharacter( OptionRowData &row, OptionRowHandler &ha
|
||||
}
|
||||
}
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenOptionsMaster );
|
||||
ScreenOptionsMaster::ScreenOptionsMaster( CString sClassName ):
|
||||
ScreenOptions( sClassName )
|
||||
{
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
|
||||
const ScreenMessage SM_BackFromURL = ScreenMessage(SM_User+2);
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenPackages );
|
||||
ScreenPackages::ScreenPackages( CString sClassName ) : ScreenWithMenuElements( sClassName )
|
||||
{
|
||||
m_iPackagesPos = 0;
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
#define PREV_SCREEN THEME->GetMetric ("ScreenPlayerOptions","PrevScreen")
|
||||
#define NEXT_SCREEN THEME->GetMetric ("ScreenPlayerOptions","NextScreen")
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenPlayerOptions );
|
||||
ScreenPlayerOptions::ScreenPlayerOptions( CString sClassName ) :
|
||||
ScreenOptionsMaster( sClassName )
|
||||
{
|
||||
|
||||
@@ -39,6 +39,7 @@ const ScreenMessage SM_DoneCreating = ScreenMessage(SM_User+1);
|
||||
const ScreenMessage SM_DoneRenaming = ScreenMessage(SM_User+2);
|
||||
const ScreenMessage SM_DoneDeleting = ScreenMessage(SM_User+3);
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenProfileOptions );
|
||||
ScreenProfileOptions::ScreenProfileOptions( CString sClassName ) : ScreenOptions( sClassName )
|
||||
{
|
||||
LOG->Trace( "ScreenProfileOptions::ScreenProfileOptions()" );
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
bool ScreenPrompt::s_bLastAnswer = false;
|
||||
|
||||
//REGISTER_SCREEN_CLASS( ScreenPrompt );
|
||||
ScreenPrompt::ScreenPrompt( CString sText, bool bYesNoPrompt, bool bDefaultAnswer, void(*OnYes)(void*), void(*OnNo)(void*), void* pCallbackData ) :
|
||||
Screen("ScreenPrompt")
|
||||
{
|
||||
|
||||
@@ -87,6 +87,7 @@ const ScreenMessage SM_ShowNextPage = (ScreenMessage)(SM_User+67);
|
||||
const ScreenMessage SM_HidePage = (ScreenMessage)(SM_User+68);
|
||||
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenRanking );
|
||||
ScreenRanking::ScreenRanking( CString sClassName ) : ScreenAttract( sClassName )
|
||||
{
|
||||
// init Actors for category and course
|
||||
|
||||
@@ -44,6 +44,7 @@ public:
|
||||
* 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. */
|
||||
REGISTER_SCREEN_CLASS( ScreenReloadSongs );
|
||||
ScreenReloadSongs::ScreenReloadSongs( CString sClassName ): Screen(sClassName)
|
||||
{
|
||||
m_iUpdates = 0;
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
|
||||
#define NEXT_SCREEN THEME->GetMetric(m_sName,"NextScreen")
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenResetToDefaults );
|
||||
ScreenResetToDefaults::ScreenResetToDefaults( CString sName ): Screen( sName )
|
||||
{
|
||||
PREFSMAN->ResetToFactoryDefaults();
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
#include "RageLog.h"
|
||||
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenSandbox );
|
||||
ScreenSandbox::ScreenSandbox( CString sClassName ) : Screen( sClassName )
|
||||
{
|
||||
}
|
||||
|
||||
@@ -47,6 +47,7 @@ const PlayerNumber CPU_PLAYER[NUM_PLAYERS] = { PLAYER_2, PLAYER_1 };
|
||||
|
||||
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenSelectCharacter );
|
||||
ScreenSelectCharacter::ScreenSelectCharacter( CString sClassName ) : ScreenWithMenuElements( sClassName )
|
||||
{
|
||||
LOG->Trace( "ScreenSelectCharacter::ScreenSelectCharacter()" );
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
|
||||
#define IGNORED_ELEMENT_COMMAND THEME->GetMetricA(m_sName,"IgnoredElementOnCommand")
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenSelectDifficulty );
|
||||
ScreenSelectDifficulty::ScreenSelectDifficulty( CString sClassName ) : ScreenSelect( sClassName )
|
||||
{
|
||||
m_CurrentPage = PAGE_1;
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
#define SLEEP_AFTER_TWEEN_OFF_SECONDS THEME->GetMetricF("ScreenSelectGroup","SleepAfterTweenOffSeconds")
|
||||
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenSelectGroup );
|
||||
ScreenSelectGroup::ScreenSelectGroup( CString sClassName ) : ScreenWithMenuElements( sClassName )
|
||||
{
|
||||
LOG->Trace( "ScreenSelectGroup::ScreenSelectGroup()" );
|
||||
|
||||
@@ -38,6 +38,7 @@ const char *ScreenSelectMaster::dirs[NUM_DIRS] =
|
||||
|
||||
const ScreenMessage SM_PlayPostSwitchPage = (ScreenMessage)(SM_User+1);
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenSelectMaster );
|
||||
ScreenSelectMaster::ScreenSelectMaster( CString sClassName ) : ScreenSelect( sClassName )
|
||||
{
|
||||
int iDefaultChoice = -1;
|
||||
|
||||
@@ -31,6 +31,7 @@ ScreenSelectMode (Constructor)
|
||||
Desc: Sets up the screen display
|
||||
************************************/
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenSelectMode );
|
||||
ScreenSelectMode::ScreenSelectMode( CString sClassName ) : ScreenSelect( sClassName )
|
||||
{
|
||||
m_b2DAvailable = m_bCharsAvailable = false;
|
||||
|
||||
@@ -59,6 +59,7 @@ static bool g_bBannerWaiting = false;
|
||||
static bool g_bSampleMusicWaiting = false;
|
||||
static RageTimer g_StartedLoadingAt(RageZeroTimer);
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenSelectMusic );
|
||||
ScreenSelectMusic::ScreenSelectMusic( CString sClassName ) : ScreenWithMenuElements( sClassName )
|
||||
{
|
||||
LOG->Trace( "ScreenSelectMusic::ScreenSelectMusic()" );
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
#define DISABLED_COLOR THEME->GetMetricC(m_sName,"DisabledColor")
|
||||
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenSelectStyle );
|
||||
ScreenSelectStyle::ScreenSelectStyle( CString sClassName ) : ScreenSelect( sClassName )
|
||||
{
|
||||
m_iSelection = 0;
|
||||
|
||||
@@ -36,6 +36,7 @@ static float GetTitleY( SetTimeSelection s ) { return g_Y[s]; }
|
||||
static float GetValueX( SetTimeSelection s ) { return g_X[s] + 80; }
|
||||
static float GetValueY( SetTimeSelection s ) { return g_Y[s]; }
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenSetTime );
|
||||
ScreenSetTime::ScreenSetTime( CString sClassName ) : ScreenWithMenuElements( sClassName )
|
||||
{
|
||||
LOG->Trace( "ScreenSetTime::ScreenSetTime()" );
|
||||
|
||||
@@ -16,6 +16,7 @@ CString ScreenSongOptions::GetNextScreen()
|
||||
}
|
||||
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenSongOptions );
|
||||
ScreenSongOptions::ScreenSongOptions( CString sClassName ) :
|
||||
ScreenOptionsMaster( sClassName )
|
||||
{
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
|
||||
const ScreenMessage SM_PrepScreen = (ScreenMessage)(SM_User+0);
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenStage );
|
||||
ScreenStage::ScreenStage( CString sClassName ) : Screen( sClassName )
|
||||
{
|
||||
m_bZeroDeltaOnNextUpdate = false;
|
||||
|
||||
@@ -19,6 +19,7 @@ const ScreenMessage SM_DoneOpening = ScreenMessage(SM_User-7);
|
||||
const ScreenMessage SM_StartClosing = ScreenMessage(SM_User-8);
|
||||
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenStyleSplash );
|
||||
ScreenStyleSplash::ScreenStyleSplash( CString sName ) : ScreenWithMenuElements( sName )
|
||||
{
|
||||
SOUND->StopMusic();
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
#define CREDITS_JOIN_ONLY THEME->GetMetricB("ScreenSystemLayer","CreditsJoinOnly")
|
||||
|
||||
|
||||
//REGISTER_SCREEN_CLASS( ScreenSystemLayer );
|
||||
ScreenSystemLayer::ScreenSystemLayer() : Screen("ScreenSystemLayer")
|
||||
{
|
||||
this->AddChild(&m_textMessage);
|
||||
@@ -93,14 +94,14 @@ void ScreenSystemLayer::ReloadCreditsText()
|
||||
}
|
||||
}
|
||||
|
||||
void ScreenSystemLayer::SystemMessage( CString sMessage )
|
||||
void ScreenSystemLayer::SystemMessage( const CString &sMessage )
|
||||
{
|
||||
m_textMessage.SetText( sMessage );
|
||||
static const ActorCommands cmds = ParseActorCommands("finishtweening;diffusealpha,1;addx,-640;linear,0.5;addx,+640;sleep,5;linear,0.5;diffusealpha,0");
|
||||
m_textMessage.Command( cmds );
|
||||
}
|
||||
|
||||
void ScreenSystemLayer::SystemMessageNoAnimate( CString sMessage )
|
||||
void ScreenSystemLayer::SystemMessageNoAnimate( const CString &sMessage )
|
||||
{
|
||||
m_textMessage.FinishTweening();
|
||||
m_textMessage.SetText( sMessage );
|
||||
@@ -209,7 +210,7 @@ void ScreenSystemLayer::RefreshCreditsMessages()
|
||||
}
|
||||
}
|
||||
|
||||
void ScreenSystemLayer::AddTimestampLine( const CString &txt, RageColor color )
|
||||
void ScreenSystemLayer::AddTimestampLine( const CString &txt, const RageColor &color )
|
||||
{
|
||||
m_textSkips[m_LastSkip].SetText( txt );
|
||||
m_textSkips[m_LastSkip].StopTweening();
|
||||
|
||||
@@ -23,13 +23,13 @@ class ScreenSystemLayer : public Screen
|
||||
Quad m_SkipBackground;
|
||||
|
||||
RageTimer SkipTimer;
|
||||
void AddTimestampLine( const CString &txt, RageColor color );
|
||||
void AddTimestampLine( const CString &txt, const RageColor &color );
|
||||
void UpdateTimestampAndSkips();
|
||||
|
||||
public:
|
||||
ScreenSystemLayer();
|
||||
void SystemMessage( CString sMessage );
|
||||
void SystemMessageNoAnimate( CString sMessage );
|
||||
void SystemMessage( const CString &sMessage );
|
||||
void SystemMessageNoAnimate( const CString &sMessage );
|
||||
void ReloadCreditsText();
|
||||
void RefreshCreditsMessages();
|
||||
void Update( float fDeltaTime );
|
||||
|
||||
@@ -25,6 +25,7 @@ void ScreenTest::SetScreen(int num)
|
||||
current=new ScreenTestFonts("ScreenTestFonts");
|
||||
}
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenTest );
|
||||
ScreenTest::ScreenTest( CString sClassName ) : Screen( sClassName )
|
||||
{
|
||||
current = NULL;
|
||||
|
||||
@@ -25,6 +25,7 @@ void ScreenTestFonts::HandleScreenMessage( const ScreenMessage SM )
|
||||
SetText(CustomText);
|
||||
}
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenTestFonts );
|
||||
ScreenTestFonts::ScreenTestFonts( CString sClassName ) : Screen( sClassName )
|
||||
{
|
||||
Hline.SetXY(SCREEN_CENTER_X, SCREEN_CENTER_Y);
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
#include "ScreenDimensions.h"
|
||||
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenTestInput );
|
||||
ScreenTestInput::ScreenTestInput( CString sClassName ) : ScreenWithMenuElements( sClassName )
|
||||
{
|
||||
LOG->Trace( "ScreenTestInput::ScreenTestInput()" );
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
#include "ScreenDimensions.h"
|
||||
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenTestLights );
|
||||
ScreenTestLights::ScreenTestLights( CString sClassName ) : ScreenWithMenuElements( sClassName )
|
||||
{
|
||||
LOG->Trace( "ScreenTestLights::ScreenTestLights()" );
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#include "ThemeManager.h"
|
||||
#include "RageUtil.h"
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenTestSound );
|
||||
ScreenTestSound::ScreenTestSound( CString sClassName ) : Screen( sClassName )
|
||||
{
|
||||
this->AddChild(&HEEEEEEEEELP);
|
||||
|
||||
@@ -34,6 +34,7 @@ bool ScreenTextEntry::s_bCancelledLast = false;
|
||||
* Handle UTF-8. Right now, we need to at least be able to backspace
|
||||
* a whole UTF-8 character. Better would be to operate in longchars.
|
||||
*/
|
||||
//REGISTER_SCREEN_CLASS( ScreenTextEntry );
|
||||
ScreenTextEntry::ScreenTextEntry( CString sClassName, CString sQuestion, CString sInitialAnswer, void(*OnOK)(CString sAnswer), void(*OnCancel)() ) :
|
||||
Screen( sClassName )
|
||||
{
|
||||
|
||||
@@ -54,6 +54,7 @@
|
||||
const ScreenMessage SM_PlayComment = ScreenMessage(SM_User+1);
|
||||
const ScreenMessage SM_GoToAttractLoop = ScreenMessage(SM_User+13);
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenTitleMenu );
|
||||
ScreenTitleMenu::ScreenTitleMenu( CString sClassName ) : ScreenSelect( sClassName )
|
||||
{
|
||||
LOG->Trace( "ScreenTitleMenu::ScreenTitleMenu()" );
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
#define POINTS_ZOOM THEME->GetMetricF("ScreenUnlock","PointsZoom")
|
||||
#define USE_UNLOCKS_DAT THEME->GetMetricI("ScreenUnlock","UseUnlocksDat")
|
||||
|
||||
REGISTER_SCREEN_CLASS( ScreenUnlock );
|
||||
ScreenUnlock::ScreenUnlock( CString sClassName ) : ScreenAttract( sClassName )
|
||||
{
|
||||
LOG->Trace("ScreenUnlock::ScreenUnlock()");
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
#define STYLE_ICON THEME->GetMetricB(m_sName,"StyleIcon")
|
||||
#define MEMORY_CARD_ICONS THEME->GetMetricB(m_sName,"MemoryCardIcons")
|
||||
|
||||
//REGISTER_SCREEN_CLASS( ScreenWithMenuElements );
|
||||
ScreenWithMenuElements::ScreenWithMenuElements( CString sClassName ) : Screen( sClassName )
|
||||
{
|
||||
LOG->Trace( "ScreenWithMenuElements::ScreenWithMenuElements()" );
|
||||
|
||||
Reference in New Issue
Block a user