2003-02-16 04:01:45 +00:00
|
|
|
#include "global.h"
|
2002-05-20 08:59:37 +00:00
|
|
|
/*
|
|
|
|
|
-----------------------------------------------------------------------------
|
2002-08-01 20:30:40 +00:00
|
|
|
Class: ScreenSongOptions
|
2002-05-20 08:59:37 +00:00
|
|
|
|
|
|
|
|
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
|
2002-08-01 20:30:40 +00:00
|
|
|
Chris Danford
|
2002-05-20 08:59:37 +00:00
|
|
|
-----------------------------------------------------------------------------
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#include "ScreenSongOptions.h"
|
|
|
|
|
#include "ScreenManager.h"
|
|
|
|
|
#include "RageLog.h"
|
2002-07-23 01:41:40 +00:00
|
|
|
#include "GameState.h"
|
2002-11-11 04:53:31 +00:00
|
|
|
#include "ThemeManager.h"
|
2003-04-21 02:41:10 +00:00
|
|
|
#include "PrefsManager.h"
|
2002-05-20 08:59:37 +00:00
|
|
|
|
2003-04-21 02:41:10 +00:00
|
|
|
#define PREV_SCREEN( play_mode ) THEME->GetMetric ("ScreenSongOptions","PrevScreen"+Capitalize(PlayModeToString(play_mode)))
|
|
|
|
|
#define NEXT_SCREEN( play_mode ) THEME->GetMetric ("ScreenSongOptions","NextScreen"+Capitalize(PlayModeToString(play_mode)))
|
2002-05-20 08:59:37 +00:00
|
|
|
|
2003-04-21 22:36:45 +00:00
|
|
|
/* Get the next screen we'll go to when finished. */
|
|
|
|
|
CString ScreenSongOptions::GetNextScreen()
|
|
|
|
|
{
|
|
|
|
|
return NEXT_SCREEN(GAMESTATE->m_PlayMode);
|
|
|
|
|
}
|
|
|
|
|
|
2002-05-20 08:59:37 +00:00
|
|
|
|
2003-09-27 22:30:51 +00:00
|
|
|
ScreenSongOptions::ScreenSongOptions( CString sClassName ) :
|
2003-09-29 07:19:03 +00:00
|
|
|
ScreenOptionsMaster( sClassName )
|
2002-05-20 08:59:37 +00:00
|
|
|
{
|
2003-09-29 07:19:03 +00:00
|
|
|
/* Hack: If we're coming in from "press start for more options", we need a different
|
|
|
|
|
* fade in. */
|
2003-04-21 22:36:45 +00:00
|
|
|
if(PREFSMAN->m_ShowSongOptions == PrefsManager::ASK)
|
|
|
|
|
{
|
|
|
|
|
m_Menu.m_In.Load( THEME->GetPathToB("ScreenSongOptions option in") );
|
|
|
|
|
m_Menu.m_In.StartTransitioning();
|
|
|
|
|
}
|
2002-05-20 08:59:37 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void ScreenSongOptions::GoToPrevState()
|
|
|
|
|
{
|
2003-02-19 05:46:09 +00:00
|
|
|
if( GAMESTATE->m_bEditing )
|
|
|
|
|
SCREENMAN->PopTopScreen( SM_None );
|
|
|
|
|
else
|
2003-04-21 02:41:10 +00:00
|
|
|
SCREENMAN->SetNewScreen( PREV_SCREEN(GAMESTATE->m_PlayMode) );
|
2002-05-20 08:59:37 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void ScreenSongOptions::GoToNextState()
|
|
|
|
|
{
|
2003-02-19 05:46:09 +00:00
|
|
|
if( GAMESTATE->m_bEditing )
|
|
|
|
|
SCREENMAN->PopTopScreen();
|
|
|
|
|
else
|
2003-04-21 02:41:10 +00:00
|
|
|
SCREENMAN->SetNewScreen( NEXT_SCREEN(GAMESTATE->m_PlayMode) );
|
2002-05-20 08:59:37 +00:00
|
|
|
}
|